From jenkins at lists.osmocom.org Fri Feb 1 00:05:39 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 1 Feb 2019 00:05:39 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_mas?= =?UTF-8?Q?ter-osmo-hlr_=C2=BB_a1=3Ddefault,a2=3D?= =?UTF-8?Q?default,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#1978?= Message-ID: <1539788846.20.1548979539027.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 30.07 KB...] checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /bin/dd checking how to truncate binary pipes... /bin/dd bs=4096 count=1 checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... no checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for ANSI C header files... (cached) yes checking execinfo.h usability... yes checking execinfo.h presence... yes checking for execinfo.h... yes checking sys/select.h usability... yes checking sys/select.h presence... yes checking for sys/select.h... yes checking sys/socket.h usability... yes checking sys/socket.h presence... yes checking for sys/socket.h... yes checking sys/timerfd.h usability... yes checking sys/timerfd.h presence... yes checking for sys/timerfd.h... yes checking syslog.h usability... yes checking syslog.h presence... yes checking for syslog.h... yes checking ctype.h usability... yes checking ctype.h presence... yes checking for ctype.h... yes checking netinet/tcp.h usability... yes checking netinet/tcp.h presence... yes checking for netinet/tcp.h... yes checking for size_t... yes checking for working alloca.h... yes checking for alloca... yes checking for library containing dlopen... -ldl checking for library containing dlsym... -ldl checking for backtrace in -lexecinfo... no checking for library containing clock_gettime... none required checking for doxygen... (cached) false checking whether SYS_getrandom is declared... yes checking if gcc supports -fvisibility=hidden... yes checking for clock_gettime... yes checking for localtime_r... yes checking whether struct tm has tm_gmtoff member... yes checking for TALLOC... yes checking for PCSC... yes checking for LIBGNUTLS... yes checking whether to enable VTY/CTRL tests... no checking whether C compiler accepts -mavx2... yes checking whether C compiler accepts -mssse3... yes checking whether C compiler accepts -msse4.1... yes checking whether gcc has __builtin_cpu_supports built-in... yes CFLAGS="-g -O2 -DBUILDING_LIBOSMOCORE -Wall" CPPFLAGS=" -DBUILDING_LIBOSMOCORE -Wall" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmocore.pc config.status: creating libosmocodec.pc config.status: creating libosmocoding.pc config.status: creating libosmovty.pc config.status: creating libosmogsm.pc config.status: creating libosmogb.pc config.status: creating libosmoctrl.pc config.status: creating libosmosim.pc config.status: creating include/Makefile config.status: creating src/Makefile config.status: creating src/vty/Makefile config.status: creating src/codec/Makefile config.status: creating src/coding/Makefile config.status: creating src/sim/Makefile config.status: creating src/gsm/Makefile config.status: creating src/gb/Makefile config.status: creating src/ctrl/Makefile config.status: creating src/pseudotalloc/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating utils/Makefile config.status: creating Doxyfile.core config.status: creating Doxyfile.gsm config.status: creating Doxyfile.vty config.status: creating Doxyfile.codec config.status: creating Doxyfile.coding config.status: creating Doxyfile.gb config.status: creating Doxyfile.ctrl config.status: creating Makefile config.status: creating config.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands configure: WARNING: unrecognized options: --with-systemdsystemunitdir + make -j 8 install echo 1.0.1.13-bd5a > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory ' Making install in include make[2]: Entering directory ' GEN osmocom/gsm/gsm0503.h Generating header file... Generate 'xcch' declaration Generate 'rach' declaration Generate 'rach_ext' declaration Generate 'sch' declaration Generate 'cs2' declaration Generate 'cs3' declaration Generate 'cs2_np' declaration Generate 'cs3_np' declaration Generate 'tch_afs_12_2' declaration Generate 'tch_afs_10_2' declaration Generate 'tch_afs_7_95' declaration Generate 'tch_afs_7_4' declaration Generate 'tch_afs_6_7' declaration Generate 'tch_afs_5_9' declaration Generate 'tch_afs_5_15' declaration Generate 'tch_afs_4_75' declaration Generate 'tch_fr' declaration Generate 'tch_hr' declaration Generate 'tch_ahs_7_95' declaration Generate 'tch_ahs_7_4' declaration Generate 'tch_ahs_6_7' declaration Generate 'tch_ahs_5_9' declaration Generate 'tch_ahs_5_15' declaration Generate 'tch_ahs_4_75' declaration Generate 'mcs1_dl_hdr' declaration Generate 'mcs1_ul_hdr' declaration Generate 'mcs1' declaration Generate 'mcs2' declaration Generate 'mcs3' declaration Generate 'mcs4' declaration Generate 'mcs5_dl_hdr' declaration Generate 'mcs5_ul_hdr' declaration Generate 'mcs5' declaration Generate 'mcs6' declaration Generate 'mcs7_dl_hdr' declaration Generate 'mcs7_ul_hdr' declaration Generate 'mcs7' declaration Generate 'mcs8' declaration Generate 'mcs9' declaration Generation complete. make install-am make[3]: Entering directory ' GEN osmocom/core/bit32gen.h GEN osmocom/core/bit16gen.h GEN osmocom/core/crc32gen.h GEN osmocom/core/crc16gen.h GEN osmocom/core/crc64gen.h GEN osmocom/core/crc8gen.h GEN osmocom/core/bit64gen.h GEN osmocom/core/bit32gen.h GEN osmocom/core/bit16gen.h GEN osmocom/core/bit64gen.h GEN osmocom/core/crc64gen.h GEN osmocom/core/crc8gen.h GEN osmocom/core/crc16gen.h GEN osmocom/core/crc32gen.h make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/core/application.h osmocom/core/backtrace.h osmocom/core/bit16gen.h osmocom/core/bit32gen.h osmocom/core/bit64gen.h osmocom/core/bits.h osmocom/core/bitvec.h osmocom/core/bitcomp.h osmocom/core/byteswap.h osmocom/core/conv.h osmocom/core/counter.h osmocom/core/crc16.h osmocom/core/crc16gen.h osmocom/core/crc32gen.h osmocom/core/crc64gen.h osmocom/core/crc8gen.h osmocom/core/crcgen.h osmocom/core/endian.h osmocom/core/defs.h osmocom/core/fsm.h osmocom/core/gsmtap.h osmocom/core/gsmtap_util.h osmocom/core/isdnhdlc.h osmocom/core/linuxlist.h osmocom/core/linuxrbtree.h osmocom/core/logging.h osmocom/core/loggingrb.h osmocom/core/stats.h osmocom/core/macaddr.h osmocom/core/msgb.h osmocom/core/panic.h osmocom/core/prbs.h osmocom/core/prim.h osmocom/core/process.h osmocom/core/rate_ctr.h osmocom/core/stat_item.h osmocom/core/select.h osmocom/core/sercomm.h osmocom/core/signal.h osmocom/core/socket.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/gsm/a5.h osmocom/gsm/abis_nm.h osmocom/gsm/apn.h osmocom/gsm/bts_features.h osmocom/gsm/comp128.h osmocom/gsm/comp128v23.h osmocom/gsm/bitvec_gsm.h osmocom/gsm/gan.h osmocom/gsm/gsm0341.h osmocom/gsm/gsm0411_smc.h osmocom/gsm/gsm0411_smr.h osmocom/gsm/gsm0411_utils.h osmocom/gsm/gsm0480.h osmocom/gsm/gsm0502.h osmocom/gsm/gsm0503.h osmocom/gsm/gsm0808.h osmocom/gsm/gsm29205.h osmocom/gsm/gsm0808_utils.h osmocom/gsm/gsm23003.h osmocom/gsm/gsm29118.h osmocom/gsm/gsm48.h osmocom/gsm/gsm48_arfcn_range_encode.h osmocom/gsm/gsm48_ie.h osmocom/gsm/gsm48_rest_octets.h osmocom/gsm/gsm_utils.h osmocom/gsm/gsup.h osmocom/gsm/gsup_sms.h osmocom/gsm/ipa.h osmocom/gsm/lapd_core.h osmocom/gsm/lapdm.h osmocom/gsm/meas_rep.h osmocom/gsm/mncc.h osmocom/gsm/prim.h osmocom/gsm/l1sap.h osmocom/gsm/oap.h osmocom/gsm/oap_client.h osmocom/gsm/rsl.h osmocom/gsm/rxlev_stat.h osmocom/gsm/sysinfo.h osmocom/gsm/tlv.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/coding/gsm0503_tables.h osmocom/coding/gsm0503_parity.h osmocom/coding/gsm0503_mapping.h osmocom/coding/gsm0503_interleaving.h osmocom/coding/gsm0503_coding.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/core/statistics.h osmocom/core/strrb.h osmocom/core/talloc.h osmocom/core/timer.h osmocom/core/timer_compat.h osmocom/core/utils.h osmocom/core/write_queue.h osmocom/core/plugin.h osmocom/core/msgfile.h osmocom/core/serial.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/vty/buffer.h osmocom/vty/command.h osmocom/vty/logging.h osmocom/vty/stats.h osmocom/vty/misc.h osmocom/vty/telnet_interface.h osmocom/vty/vector.h osmocom/vty/vty.h osmocom/vty/ports.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/gsm/protocol/gsm_03_40.h osmocom/gsm/protocol/gsm_03_41.h osmocom/gsm/protocol/gsm_04_08.h osmocom/gsm/protocol/gsm_04_08_gprs.h osmocom/gsm/protocol/gsm_04_11.h osmocom/gsm/protocol/gsm_04_12.h osmocom/gsm/protocol/gsm_04_14.h osmocom/gsm/protocol/gsm_04_80.h osmocom/gsm/protocol/gsm_08_08.h osmocom/gsm/protocol/gsm_08_58.h osmocom/gsm/protocol/gsm_09_02.h osmocom/gsm/protocol/gsm_12_21.h osmocom/gsm/protocol/gsm_23_003.h osmocom/gsm/protocol/gsm_29_118.h osmocom/gsm/protocol/gsm_44_318.h osmocom/gsm/protocol/ipaccess.h osmocom/gsm/protocol/smpp34_osmocom.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/sim/class_tables.h osmocom/sim/sim.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/gprs/gprs_bssgp.h osmocom/gprs/gprs_bssgp_bss.h osmocom/gprs/gprs_msgb.h osmocom/gprs/gprs_ns.h osmocom/gprs/gprs_ns_frgre.h osmocom/gprs/gprs_rlc.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/crypt/auth.h osmocom/crypt/gprs_cipher.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/ctrl/control_cmd.h osmocom/ctrl/control_if.h osmocom/ctrl/ports.h osmocom/ctrl/control_vty.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/gprs/protocol/gsm_04_60.h osmocom/gprs/protocol/gsm_08_16.h osmocom/gprs/protocol/gsm_08_18.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/codec/ecu.h osmocom/codec/codec.h osmocom/codec/gsm610_bits.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in src make[2]: Entering directory ' GEN crc8gen.c GEN crc32gen.c GEN crc64gen.c GEN crc16gen.c make install-am make[3]: Entering directory ' CC timer_gettimeofday.lo CC timer.lo CC timer_clockgettime.lo CC select.lo CC bits.lo CC signal.lo CC msgb.lo CC bitvec.lo /bin/bash: line 2: 9193 Illegal instruction /bin/bash ../libtool --silent --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../include -DBUILDING_LIBOSMOCORE -Wall -Wall -g -O2 -DBUILDING_LIBOSMOCORE -Wall -MT signal.lo -MD -MP -MF $depbase.Tpo -c -o signal.lo signal.c Makefile:560: recipe for target 'signal.lo' failed make[3]: *** [signal.lo] Error 132 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory ' Makefile:664: recipe for target 'install' failed make[2]: *** [install] Error 2 make[2]: Leaving directory ' Makefile:615: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:914: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Feb 1 00:52:22 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 1 Feb 2019 00:52:22 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal?= =?UTF-8?Q?_:_master-osmo-hlr_=C2=BB_a1=3Ddefault?= =?UTF-8?Q?,a2=3Ddefault,a3=3Ddefault,a4=3Ddefau?= =?UTF-8?Q?lt,osmocom-master-debian9_#1979?= In-Reply-To: <1539788846.20.1548979539027.JavaMail.jenkins@jenkins.osmocom.org> References: <1539788846.20.1548979539027.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1957786796.21.1548982342280.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Fri Feb 1 05:17:41 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 1 Feb 2019 05:17:41 +0000 Subject: Change in libosmocore[master]: vty api: add vty_out_va() Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/12773 Change subject: vty api: add vty_out_va() ...................................................................... vty api: add vty_out_va() Provide a va_list type vty_out() variant, to be able to pass on variable arguments from other function signatures to vty_out(). This will be used by Ibd6b1ed7f1bd6e1f2e0fde53352055a4468f23e5 for osmo_tdef. Change-Id: Ie6e6f11a6b794f3cb686350c1ed678e4d5bbbb75 --- M include/osmocom/vty/vty.h M src/vty/vty.c 2 files changed, 20 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/73/12773/1 diff --git a/include/osmocom/vty/vty.h b/include/osmocom/vty/vty.h index c4cf707..8d2e1b3 100644 --- a/include/osmocom/vty/vty.h +++ b/include/osmocom/vty/vty.h @@ -193,6 +193,7 @@ struct vty *vty_new (void); struct vty *vty_create (int vty_sock, void *priv); int vty_out (struct vty *, const char *, ...) VTY_PRINTF_ATTRIBUTE(2, 3); +int vty_out_va(struct vty *vty, const char *format, va_list ap); int vty_out_newline(struct vty *); int vty_read(struct vty *vty); //void vty_time_print (struct vty *, int); diff --git a/src/vty/vty.c b/src/vty/vty.c index 8c89197..98b332d 100644 --- a/src/vty/vty.c +++ b/src/vty/vty.c @@ -249,26 +249,19 @@ return vty->type == VTY_SHELL ? 1 : 0; } - -/*! VTY standard output function - * \param[in] vty VTY to which we should print - * \param[in] format variable-length format string - */ -int vty_out(struct vty *vty, const char *format, ...) +int vty_out_va(struct vty *vty, const char *format, va_list ap) { - va_list args; int len = 0; int size = 1024; char buf[1024]; char *p = NULL; if (vty_shell(vty)) { - va_start(args, format); - vprintf(format, args); - va_end(args); + vprintf(format, ap); } else { + va_list args; /* Try to write to initial buffer. */ - va_start(args, format); + va_copy(args, ap); len = vsnprintf(buf, sizeof buf, format, args); va_end(args); @@ -284,7 +277,7 @@ if (!p) return -1; - va_start(args, format); + va_copy(args, ap); len = vsnprintf(p, size, format, args); va_end(args); @@ -310,6 +303,20 @@ return len; } +/*! VTY standard output function + * \param[in] vty VTY to which we should print + * \param[in] format variable-length format string + */ +int vty_out(struct vty *vty, const char *format, ...) +{ + va_list args; + int rc; + va_start(args, format); + rc = vty_out_va(vty, format, args); + va_end(args); + return rc; +} + /*! print a newline on the given VTY */ int vty_out_newline(struct vty *vty) { -- To view, visit https://gerrit.osmocom.org/12773 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie6e6f11a6b794f3cb686350c1ed678e4d5bbbb75 Gerrit-Change-Number: 12773 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 05:17:30 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 1 Feb 2019 05:17:30 +0000 Subject: Change in libosmocore[master]: add osmo_tdef API, originally adopted from osmo-bsc T_def In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12717 to look at the new patch set (#4). Change subject: add osmo_tdef API, originally adopted from osmo-bsc T_def ...................................................................... add osmo_tdef API, originally adopted from osmo-bsc T_def Move T_def from osmo-bsc to libosmocore as osmo_tdef. Adjust naming to be more consistent. Upgrade to first class API: - add timer grouping - add generic vty support - add mising API doc - add C test - add VTY transcript tests, also as examples for using the API >From osmo_fsm_inst_state_chg() API doc, cross reference to osmo_tdef API. The root reason for moving to libosmocore is that I want to use the mgw_endpoint_fsm in osmo-msc for inter-MSC handover, and hence want to move the FSM to libosmo-mgcp-client. This FSM uses the T_def from osmo-bsc. Though the mgw_endpoint_fsm's use of T_def is minimal, I intend to use the osmo_tdef API in osmo-msc (and probably elsewhere) as well. libosmocore is the most sensible place for this. osmo_tdef provides: - a list of Tnnnn (GSM) timers with description, unit and default value. - vty UI to allow users to configure non-default timeouts. - API to tie T timers to osmo_fsm states and set them on state transitions. - a few standard units (minute, second, millisecond) as well as a custom unit (which relies on the timer's human readable description to indicate the meaning of the value). - conversion for standard units: for example, some GSM timers are defined in minutes, while our FSM definitions need timeouts in seconds. Conversion is for convenience only and can be easily avoided via the custom unit. By keeping separate osmo_tdef arrays, several groups of timers can be kept separately. The VTY tests in tests/tdef/ showcase different schemes: - tests/vty/tdef_vty_test_config_root.c: Keep several timer definitions in separately named groups: showcase the osmo_tdef_vty_groups*() API. Each timer group exists exactly once. - tests/vty/tdef_vty_test_config_subnode.c: Keep a single list of timers without separate grouping. Put this list on a specific subnode below the CONFIG_NODE. There could be several separate subnodes with timers like this, i.e. continuing from this example, sets timers could be separated by placing timers in specific config subnodes instead of using the global group name. - tests/vty/tdef_vty_test_dynamic.c: Dynamically allocate timer definitions per each new created object. Thus there can be an arbitrary number of independent timer definitions, one per allocated object. T_def was introduced during the recent osmo-bsc refactoring for inter-BSC handover, and has proven useful: - without osmo_tdef, each invocation of osmo_fsm_inst_state_chg() needs to be programmed with the right timeout value, for all code paths that invoke this state change. It is a likely source of errors to get one of them wrong. By defining a T timer exactly for an FSM state, the caller can merely invoke the state change and trust on the original state definition to apply the correct timeout. - it is helpful to have a standardized config file UI to provide user configurable timeouts, instead of inventing new VTY commands for each separate application of T timer numbers. Change-Id: Ibd6b1ed7f1bd6e1f2e0fde53352055a4468f23e5 --- M include/Makefile.am A include/osmocom/core/tdef.h A include/osmocom/vty/tdef_vty.h M src/Makefile.am M src/fsm.c A src/tdef.c M src/vty/Makefile.am A src/vty/tdef_vty.c M tests/Makefile.am A tests/tdef/tdef_test.c A tests/tdef/tdef_test.ok A tests/tdef/tdef_vty_test_config_root.c A tests/tdef/tdef_vty_test_config_root.vty A tests/tdef/tdef_vty_test_config_subnode.c A tests/tdef/tdef_vty_test_config_subnode.vty A tests/tdef/tdef_vty_test_dynamic.c A tests/tdef/tdef_vty_test_dynamic.vty M tests/testsuite.at 18 files changed, 2,979 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/17/12717/4 -- To view, visit https://gerrit.osmocom.org/12717 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ibd6b1ed7f1bd6e1f2e0fde53352055a4468f23e5 Gerrit-Change-Number: 12717 Gerrit-PatchSet: 4 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 05:17:44 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 1 Feb 2019 05:17:44 +0000 Subject: Change in libosmocore[master]: doxygen: allow manual 'make apidoc' even if --disable-doxygen Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/12776 Change subject: doxygen: allow manual 'make apidoc' even if --disable-doxygen ...................................................................... doxygen: allow manual 'make apidoc' even if --disable-doxygen Even if ./configure --disable-doxygen was passed and doxygen builds are by default skipped, provide a manual 'make apidoc' target that nevertheless generates the API doc on the premise that a 'doxygen' program is available. Especially since we do a two-pass doxygen build whenever any source file changes, my guess is --disable-doxygen could be a common choice. It is then cumbersome to have to ./configure just to get one doxygen build started. Change-Id: If8d8dfb8365c8f28612b8ce2b8ddf88f74df9a90 --- M Makefile.am 1 file changed, 17 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/76/12776/1 diff --git a/Makefile.am b/Makefile.am index 07fd666..ee3ad2e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -24,19 +24,27 @@ EXTRA_DIST = git-version-gen .version README.md osmo-release.mk osmo-release.sh -if HAVE_DOXYGEN +HTML = \ + $(top_builddir)/doc/core/html/index.html \ + $(top_builddir)/doc/gsm/html/index.html \ + $(top_builddir)/doc/vty/html/index.html \ + $(top_builddir)/doc/codec/html/index.html \ + $(top_builddir)/doc/coding/html/index.html \ + $(top_builddir)/doc/ctrl/html/index.html \ + $(top_builddir)/doc/gb/html/index.html +if HAVE_DOXYGEN html_DATA = $(top_builddir)/doc/html.tar doc: $(html_DATA) -$(html_DATA): $(top_builddir)/doc/core/html/index.html \ - $(top_builddir)/doc/gsm/html/index.html \ - $(top_builddir)/doc/vty/html/index.html \ - $(top_builddir)/doc/codec/html/index.html \ - $(top_builddir)/doc/coding/html/index.html \ - $(top_builddir)/doc/ctrl/html/index.html \ - $(top_builddir)/doc/gb/html/index.html +$(html_DATA): apidoc +else +DOXYGEN=doxygen +endif + +.PHONY: apidoc +apidoc: $(HTML) cd $(top_builddir)/doc && tar cf html.tar */html # Support doxygen cross references from each library to each other library: @@ -193,6 +201,7 @@ rm -rf $(top_builddir)/doc/gb; mkdir -p $(top_builddir)/doc/gb $(DOXYGEN) Doxyfile.gb +if HAVE_DOXYGEN install-data-hook: cd $(DESTDIR)$(htmldir) && tar xf html.tar && rm -f html.tar -- To view, visit https://gerrit.osmocom.org/12776 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If8d8dfb8365c8f28612b8ce2b8ddf88f74df9a90 Gerrit-Change-Number: 12776 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 05:17:39 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 1 Feb 2019 05:17:39 +0000 Subject: Change in libosmocore[master]: vty: enable optional-multi-choice syntax: [(one|two)] Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/12770 Change subject: vty: enable optional-multi-choice syntax: [(one|two)] ...................................................................... vty: enable optional-multi-choice syntax: [(one|two)] Since very recently we sensibly handle commands like cmd ([one]|[two]|[three]) as optional multi-choice arguments. In addition, support the more obvious syntax of cmd [(one|two|three)] Internally, the tokens are mangled to [one] [two] and [three], which is how the rest of the code detects optional args, and makes sense in terms of UI: > cmd ? [one] [two] [three] (i.e. optional arguments are always shown in braces in '?' listings) Before this patch, commands defined with a syntax like [(one|two)], would lead to an assertion (shows as "multiple") during program startup. Change-Id: I952b3c00f97e2447f2308b0ec6f5f1714692b5b2 --- M src/vty/command.c M tests/vty/vty_transcript_test.c M tests/vty/vty_transcript_test.vty 3 files changed, 45 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/70/12770/1 diff --git a/src/vty/command.c b/src/vty/command.c index 9d02d69..2242e76 100644 --- a/src/vty/command.c +++ b/src/vty/command.c @@ -380,6 +380,7 @@ static vector cmd_make_descvec(const char *string, const char *descstr) { int multiple = 0; + int optional_brace = 0; const char *sp; char *token; int len; @@ -401,6 +402,12 @@ while (isspace((int)*cp) && *cp != '\0') cp++; + /* Explicitly detect optional multi-choice braces like [(one|two)]. */ + if (cp[0] == '[' && cp[1] == '(') { + optional_brace = 1; + cp++; + } + if (*cp == '(') { multiple = 1; cp++; @@ -408,6 +415,9 @@ if (*cp == ')') { multiple = 0; cp++; + if (*cp == ']') + cp++; + optional_brace = 0; } if (*cp == '|') { OSMO_ASSERT(multiple); @@ -434,9 +444,17 @@ len = cp - sp; - token = _talloc_zero(tall_vty_cmd_ctx, len + 1, "cmd_make_descvec"); - memcpy(token, sp, len); - *(token + len) = '\0'; + token = _talloc_zero(tall_vty_cmd_ctx, len + (optional_brace? 2 : 0) + 1, "cmd_make_descvec"); + if (optional_brace) { + /* Place each individual multi-choice token in its own square braces */ + token[0] = '['; + memcpy(token + 1, sp, len); + token[1 + len] = ']'; + token[2 + len] = '\0'; + } else { + memcpy(token, sp, len); + *(token + len) = '\0'; + } desc = talloc_zero(tall_vty_cmd_ctx, struct desc); desc->cmd = token; diff --git a/tests/vty/vty_transcript_test.c b/tests/vty/vty_transcript_test.c index 50131ea..7ffe713 100644 --- a/tests/vty/vty_transcript_test.c +++ b/tests/vty/vty_transcript_test.c @@ -170,10 +170,19 @@ return CMD_SUCCESS; } +DEFUN(multi2, multi2_cmd, + "multi2 [(one|two|three)]", + "multi2 test command\n" "1\n2\n3\n") +{ + vty_out(vty, "ok argc=%d%s%s%s", argc, argc ? " " : "", argc ? argv[0] : "", VTY_NEWLINE); + return CMD_SUCCESS; +} + static void init_vty_cmds() { install_element_ve(&multi0_cmd); install_element_ve(&multi1_cmd); + install_element_ve(&multi2_cmd); } int main(int argc, char **argv) diff --git a/tests/vty/vty_transcript_test.vty b/tests/vty/vty_transcript_test.vty index 514a5ed..57920a8 100644 --- a/tests/vty/vty_transcript_test.vty +++ b/tests/vty/vty_transcript_test.vty @@ -2,6 +2,7 @@ ... multi0 (one|two|three) multi1 ([one]|[two]|[three]) + multi2 [(one|two|three)] vty_transcript_test> multi0 ? one 1 @@ -51,3 +52,17 @@ vty_transcript_test> multi1 [one] % Unknown command. + +vty_transcript_test> multi2 ? + [one] 1 + [two] 2 + [three] 3 + +vty_transcript_test> multi2 one +ok argc=1 one + +vty_transcript_test> multi2 two +ok argc=1 two + +vty_transcript_test> multi2 +ok argc=0 -- To view, visit https://gerrit.osmocom.org/12770 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I952b3c00f97e2447f2308b0ec6f5f1714692b5b2 Gerrit-Change-Number: 12770 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 05:17:41 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 1 Feb 2019 05:17:41 +0000 Subject: Change in libosmocore[master]: vty telnet: consistently never change nodes upon CTRL-C Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/12772 Change subject: vty telnet: consistently never change nodes upon CTRL-C ...................................................................... vty telnet: consistently never change nodes upon CTRL-C Remove any special node exiting from the VTY CTRL-C handling. >From a curious VTY transcript test glitch, I noticed weird behavior by the VTY telnet shell: usually, when the user hits CTRL-C, that means to cancel the current command line and present a fresh, clean prompt. However, only on the CONFIG_NODE and CFG_LOG_NODE, a CTRL-C also exits the current node and moves up by one level. This behavior is unexplainable and makes zero sense. No other nodes exit on CTRL-C: - on the ENABLE node, a CTRL-C stays on the ENABLE_NODE and doesn't exit to the VIEW_NODE. - any sub-nodes of the CONFIG_NODE stay unchanged, e.g. 'network' or 'bts' / 'trx', etc. There is no apparent special meaning of CTRL-C on CONFIG_NODE nor CFG_LOG_NODE to justify this odd choice. Particularly, the vty transcript tests using osmo_verify_transcript_vty.py rely on sending CTRL-C to clear the command prompt, so that we can properly test sending '?' to the VTY during transcripts. In a live session, a '?' prints available options and then updates the prompt with identical command arguments. In a transcript test, that doesn't make sense, because each time the transcript writes out a new command to run. Consider e.g. a transcript test like: tdef_vty_test(config)# timer ? tea Tea time test Test timers software Typical software development cycle tdef_vty_test(config)# timer tea ? [TNNNN] T-number, optionally preceded by 't' or 'T'. To be able to issue a fresh command after '?', osmo_verify_transcript_vty.py explicitly sends a CTRL-C to clear the command buffer. Hence there we rely on predictable behavior of CTRL-C. More particularly, the upcoming osmo_tdef_vty transcript tests are apparently the first that want to test '?' behavior on the CONFIG_NODE's root level and fall on their face, because of the implicit exit that happens only there. Change-Id: I4f339ba61f1c273fa7da85caf77ba116ae2697b1 --- M src/vty/vty.c 1 file changed, 0 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/72/12772/1 diff --git a/src/vty/vty.c b/src/vty/vty.c index abce887..8c89197 100644 --- a/src/vty/vty.c +++ b/src/vty/vty.c @@ -1217,24 +1217,6 @@ vty->cp = vty->length = 0; vty_clear_buf(vty); vty_out(vty, "%s", VTY_NEWLINE); - - switch (vty->node) { - case VIEW_NODE: - case ENABLE_NODE: - /* Nothing to do. */ - break; - case CONFIG_NODE: - case VTY_NODE: - vty_config_unlock(vty); - vty->node = ENABLE_NODE; - break; - case CFG_LOG_NODE: - vty->node = CONFIG_NODE; - break; - default: - /* Unknown node, we have to ignore it. */ - break; - } vty_prompt(vty); /* Set history pointer to the latest one. */ -- To view, visit https://gerrit.osmocom.org/12772 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I4f339ba61f1c273fa7da85caf77ba116ae2697b1 Gerrit-Change-Number: 12772 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 05:17:37 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 1 Feb 2019 05:17:37 +0000 Subject: Change in libosmocore[master]: add generic vty_transcript_test.c, vty_transcript_test.vty Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/12768 Change subject: add generic vty_transcript_test.c, vty_transcript_test.vty ...................................................................... add generic vty_transcript_test.c, vty_transcript_test.vty I want to tweak general VTY features and need to cover with a transcript test to show the differences. Start by showing the current situation of optional and multi-choice arguments. Change-Id: I5a79c83fabd02aba6406b6e0d620969c4bd0cc1d --- M tests/Makefile.am A tests/vty/vty_transcript_test.c A tests/vty/vty_transcript_test.vty 3 files changed, 298 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/68/12768/1 diff --git a/tests/Makefile.am b/tests/Makefile.am index a307886..83922ff 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -26,6 +26,7 @@ codec/codec_ecu_fr_test timer/clk_override_test \ oap/oap_client_test gsm29205/gsm29205_test \ logging/logging_vty_test \ + vty/vty_transcript_test \ $(NULL) if ENABLE_MSGFILE @@ -156,6 +157,9 @@ logging_logging_vty_test_SOURCES = logging/logging_vty_test.c logging_logging_vty_test_LDADD = $(LDADD) $(top_builddir)/src/vty/libosmovty.la +vty_vty_transcript_test_SOURCES = vty/vty_transcript_test.c +vty_vty_transcript_test_LDADD = $(LDADD) $(top_builddir)/src/vty/libosmovty.la + fr_fr_test_SOURCES = fr/fr_test.c fr_fr_test_LDADD = $(LDADD) $(top_builddir)/src/gb/libosmogb.la $(LIBRARY_DLSYM) \ $(top_builddir)/src/vty/libosmovty.la \ @@ -322,11 +326,21 @@ # To update the VTY script from current application behavior, # pass -u to osmo_verify_transcript_vty.py by doing: # make vty-test U=-u -vty-test: +vty-test-logging: osmo_verify_transcript_vty.py -v \ -p 42042 \ -r "$(top_builddir)/tests/logging/logging_vty_test" \ $(U) $(srcdir)/logging/*.vty +vty-test-vty: + osmo_verify_transcript_vty.py -v \ + -p 42042 \ + -r "$(top_builddir)/tests/vty/vty_transcript_test" \ + $(U) $(srcdir)/vty/*.vty + +vty-test: + $(MAKE) vty-test-logging + $(MAKE) vty-test-vty + ctrl-test: echo "No CTRL tests exist currently" diff --git a/tests/vty/vty_transcript_test.c b/tests/vty/vty_transcript_test.c new file mode 100644 index 0000000..50131ea --- /dev/null +++ b/tests/vty/vty_transcript_test.c @@ -0,0 +1,230 @@ +/* Test implementation for VTY transcript testing. */ +/* + * (C) 2019 by sysmocom s.f.m.c. GmbH + * + * All Rights Reserved + * + * SPDX-License-Identifier: GPL-2.0+ + * + * Author: Neels Hofmeyr + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#define _GNU_SOURCE +#include +#include +#include +#include + +#include + +#include +#include +#include + +#include + +#include "config.h" + +void *root_ctx = NULL; + +static void print_help() +{ + printf( "options:\n" + " -h --help this text\n" + " -d --debug MASK Enable debugging (e.g. -d DRSL:DOML:DLAPDM)\n" + " -D --daemonize For the process into a background daemon\n" + " -c --config-file Specify the filename of the config file\n" + " -s --disable-color Don't use colors in stderr log output\n" + " -T --timestamp Prefix every log line with a timestamp\n" + " -V --version Print version information and exit\n" + " -e --log-level Set a global log-level\n" + ); +} + +static struct { + const char *config_file; + int daemonize; +} cmdline_config = {}; + +static void handle_options(int argc, char **argv) +{ + while (1) { + int option_idx = 0, c; + static const struct option long_options[] = { + { "help", 0, 0, 'h' }, + { "debug", 1, 0, 'd' }, + { "daemonize", 0, 0, 'D' }, + { "config-file", 1, 0, 'c' }, + { "disable-color", 0, 0, 's' }, + { "timestamp", 0, 0, 'T' }, + { "version", 0, 0, 'V' }, + { "log-level", 1, 0, 'e' }, + {} + }; + + c = getopt_long(argc, argv, "hc:d:Dc:sTVe:", + long_options, &option_idx); + if (c == -1) + break; + + switch (c) { + case 'h': + print_help(); + exit(0); + case 's': + log_set_use_color(osmo_stderr_target, 0); + break; + case 'd': + log_parse_category_mask(osmo_stderr_target, optarg); + break; + case 'D': + cmdline_config.daemonize = 1; + break; + case 'c': + cmdline_config.config_file = optarg; + break; + case 'T': + log_set_print_timestamp(osmo_stderr_target, 1); + break; + case 'e': + log_set_log_level(osmo_stderr_target, atoi(optarg)); + break; + case 'V': + print_version(1); + exit(0); + break; + default: + /* catch unknown options *as well as* missing arguments. */ + fprintf(stderr, "Error in command line options. Exiting.\n"); + exit(-1); + } + } +} + +static int quit = 0; + +static void signal_handler(int signal) +{ + fprintf(stdout, "signal %u received\n", signal); + + switch (signal) { + case SIGINT: + case SIGTERM: + quit++; + break; + case SIGABRT: + osmo_generate_backtrace(); + /* in case of abort, we want to obtain a talloc report + * and then return to the caller, who will abort the process */ + case SIGUSR1: + talloc_report(tall_vty_ctx, stderr); + talloc_report_full(root_ctx, stderr); + break; + case SIGUSR2: + talloc_report_full(tall_vty_ctx, stderr); + break; + default: + break; + } +} + +static struct vty_app_info vty_info = { + .name = "vty_transcript_test", + .version = PACKAGE_VERSION, +}; + +static const struct log_info_cat default_categories[] = {}; + +const struct log_info log_info = { + .cat = default_categories, + .num_cat = ARRAY_SIZE(default_categories), +}; + +DEFUN(multi0, multi0_cmd, + "multi0 (one|two|three)", + "multi0 test command\n" "1\n2\n3\n") +{ + vty_out(vty, "ok argc=%d%s%s%s", argc, argc ? " " : "", argc ? argv[0] : "", VTY_NEWLINE); + return CMD_SUCCESS; +} + +DEFUN(multi1, multi1_cmd, + "multi1 ([one]|[two]|[three])", + "multi1 test command\n" "1\n2\n3\n") +{ + vty_out(vty, "ok argc=%d%s%s%s", argc, argc ? " " : "", argc ? argv[0] : "", VTY_NEWLINE); + return CMD_SUCCESS; +} + +static void init_vty_cmds() +{ + install_element_ve(&multi0_cmd); + install_element_ve(&multi1_cmd); +} + +int main(int argc, char **argv) +{ + int rc; + + root_ctx = talloc_named_const(NULL, 0, "vty_transcript_test"); + + vty_info.tall_ctx = root_ctx; + vty_init(&vty_info); + osmo_talloc_vty_add_cmds(); + init_vty_cmds(); + + osmo_init_logging2(root_ctx, &log_info); + + handle_options(argc, argv); + + if (cmdline_config.config_file) { + rc = vty_read_config_file(cmdline_config.config_file, NULL); + if (rc < 0) { + fprintf(stderr, "Failed to parse the config file: '%s'\n", cmdline_config.config_file); + return 1; + } + } + + rc = telnet_init_dynif(root_ctx, NULL, vty_get_bind_addr(), 42042); + if (rc < 0) + return 2; + + signal(SIGINT, &signal_handler); + signal(SIGTERM, &signal_handler); + signal(SIGABRT, &signal_handler); + signal(SIGUSR1, &signal_handler); + signal(SIGUSR2, &signal_handler); + osmo_init_ignore_signals(); + + if (cmdline_config.daemonize) { + rc = osmo_daemonize(); + if (rc < 0) { + perror("Error during daemonize"); + return 6; + } + } + + while (!quit) { + log_reset_context(); + osmo_select_main(0); + } + + talloc_free(root_ctx); + talloc_free(tall_vty_ctx); + + return 0; +} diff --git a/tests/vty/vty_transcript_test.vty b/tests/vty/vty_transcript_test.vty new file mode 100644 index 0000000..1ae7c0d --- /dev/null +++ b/tests/vty/vty_transcript_test.vty @@ -0,0 +1,53 @@ +vty_transcript_test> list +... + multi0 (one|two|three) + multi1 ([one]|[two]|[three]) + +vty_transcript_test> multi0 ? + one 1 + two 2 + three 3 + +vty_transcript_test> multi0 one +ok argc=1 one + +vty_transcript_test> multi0 two +ok argc=1 two + +vty_transcript_test> multi0 o +ok argc=1 o + +vty_transcript_test> multi0 t +ok argc=1 t + +vty_transcript_test> multi0 th +ok argc=1 th + +vty_transcript_test> multi0 +% Command incomplete. + +vty_transcript_test> multi1 ? + [one] 1 + [two] 2 + [three] 3 + +vty_transcript_test> multi1 one +ok argc=1 one + +vty_transcript_test> multi1 two +ok argc=1 two + +vty_transcript_test> multi1 o +ok argc=1 o + +vty_transcript_test> multi1 t +ok argc=1 t + +vty_transcript_test> multi1 th +ok argc=1 th + +vty_transcript_test> multi1 +% Command incomplete. + +vty_transcript_test> multi1 [one] +% Unknown command. -- To view, visit https://gerrit.osmocom.org/12768 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5a79c83fabd02aba6406b6e0d620969c4bd0cc1d Gerrit-Change-Number: 12768 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 05:17:40 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 1 Feb 2019 05:17:40 +0000 Subject: Change in libosmocore[master]: vty: enable tab-completion for optional-multi-choice args Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/12771 Change subject: vty: enable tab-completion for optional-multi-choice args ...................................................................... vty: enable tab-completion for optional-multi-choice args In cmd_complete_command_real(), detect and strip square braces from multi-choice arguments, to enable tab-completion for commands like > list cmd [(alpha|beta)] > cmd alpha beta > cmd be > cmd beta Change-Id: I8c304300b3633bb6e9b3457fcfa42121c8272ac0 --- M src/vty/command.c 1 file changed, 10 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/71/12771/1 diff --git a/src/vty/command.c b/src/vty/command.c index 2242e76..de084ab 100644 --- a/src/vty/command.c +++ b/src/vty/command.c @@ -2010,9 +2010,18 @@ descvec = vector_slot(strvec, index); for (j = 0; j < vector_active(descvec); j++) if ((desc = vector_slot(descvec, j))) { - if ((string = cmd_entry_function(vector_slot(vline, index), desc->cmd))) + const char *cmd = desc->cmd; + char *tmp = NULL; + + if (CMD_OPTION(desc->cmd)) { + tmp = cmd_deopt(tall_vty_cmd_ctx, desc->cmd); + cmd = tmp; + } + if ((string = cmd_entry_function(vector_slot(vline, index), cmd))) if (cmd_unique_string (matchvec, string)) vector_set (matchvec, talloc_strdup(tall_vty_cmd_ctx, string)); + if (tmp) + talloc_free(tmp); } } } -- To view, visit https://gerrit.osmocom.org/12771 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I8c304300b3633bb6e9b3457fcfa42121c8272ac0 Gerrit-Change-Number: 12771 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 05:17:39 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 1 Feb 2019 05:17:39 +0000 Subject: Change in libosmocore[master]: vty: enable optional-multi-choice syntax: ([one]|[two]) Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/12769 Change subject: vty: enable optional-multi-choice syntax: ([one]|[two]) ...................................................................... vty: enable optional-multi-choice syntax: ([one]|[two]) Add basic optional multi-choice argument support. The VTY detects optional arguments by square braces. > cmd ? [optional-arg] > cmd optional-arg ok > cmd ok However, within multi-choice args, these braces were so far not treated as optional: > list cmd2 ([one]|[two]|[three]) > cmd2 % Command incomplete In preparation for I952b3c00f97e2447f2308b0ec6f5f1714692b5b2 which will enable the more obvious syntax of cmd [(one|two)] for reasons of internal implementation, first support a syntax of cmd ([one]|[two]) The internal vty implementation always needs square braces around each option. There is currently no good way to prevent developers from defining braces inside multi-arguments, so it is easiest to allow and handle them: > list cmd2 ([one]|[two]|[three]) > cmd2 ok The VTY doesn't guard against a mix like cmd (one|[two]) With this patch, a multi-choice command is treated as optional iff the first element is in square brackets. The remaining elements' square brackets have no effect besides confusing the user. This is not explicitly checked against. In general, I would prefer to check all of these details, but the current VTY code with its endless code duplication and obscure string mangling just doesn't provide that luxury. There are numerous worse errors hidden in there. Change-Id: I9a8474bd89ddc2155c58bfca7bd038d586aaa60a --- M src/vty/command.c M tests/vty/vty_transcript_test.vty 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/69/12769/1 diff --git a/src/vty/command.c b/src/vty/command.c index a540cd5..9d02d69 100644 --- a/src/vty/command.c +++ b/src/vty/command.c @@ -467,7 +467,7 @@ for (i = 0; i < vector_active(strvec); i++) if ((descvec = vector_slot(strvec, i)) != NULL) { - if ((vector_active(descvec)) == 1 + if ((vector_active(descvec)) >= 1 && (desc = vector_slot(descvec, 0)) != NULL) { if (desc->cmd == NULL || CMD_OPTION(desc->cmd)) return size; diff --git a/tests/vty/vty_transcript_test.vty b/tests/vty/vty_transcript_test.vty index 1ae7c0d..514a5ed 100644 --- a/tests/vty/vty_transcript_test.vty +++ b/tests/vty/vty_transcript_test.vty @@ -47,7 +47,7 @@ ok argc=1 th vty_transcript_test> multi1 -% Command incomplete. +ok argc=0 vty_transcript_test> multi1 [one] % Unknown command. -- To view, visit https://gerrit.osmocom.org/12769 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I9a8474bd89ddc2155c58bfca7bd038d586aaa60a Gerrit-Change-Number: 12769 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 05:17:43 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 1 Feb 2019 05:17:43 +0000 Subject: Change in libosmocore[master]: doxygen: add source files as dependencies Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/12775 Change subject: doxygen: add source files as dependencies ...................................................................... doxygen: add source files as dependencies So far, when modifying a source file, the doxygen docs were not regenerated automatically. It required a manual 'rm -rf docs/core' or similar. Make it rebuild automatically: Add each library's source files to the list of dependencies for the first-pass doxygen build. Attention, since all libraries depend on the .map files of each other library, and each library depends on its own source files, that means that a single touch on one .c file anywhere will result in rebuilding the entire doxygen docs. It is correct to do so, since any file may introduce \ref targets used anywhere else. If you don't want that, --disable-doxygen. Change-Id: I15ea96be6e7abe91264b91f0b06963a0f2d63b0b --- M Makefile.am 1 file changed, 25 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/75/12775/1 diff --git a/Makefile.am b/Makefile.am index ca01d10..07fd666 100644 --- a/Makefile.am +++ b/Makefile.am @@ -51,43 +51,61 @@ # circular dependency: we would rebuild all every time 'make' is invoked. # The .prep file also depends on all the source files for that library. -$(top_builddir)/doc/libosmocore.tag.prep: $(top_builddir)/Doxyfile.core +$(top_builddir)/doc/libosmocore.tag.prep: $(top_builddir)/Doxyfile.core \ + $(top_srcdir)/include/osmocom/core/*.h \ + $(top_srcdir)/src/*.c \ + $(top_srcdir)/src/pseudotalloc/*.[hc] \ + $(top_builddir)/src/crc*.c rm -rf $(top_builddir)/doc/core; mkdir -p $(top_builddir)/doc/core rm -rf $(top_builddir)/doc/libosmocore.map -$(DOXYGEN) $(top_builddir)/Doxyfile.core touch "$@" -$(top_builddir)/doc/libosmogsm.tag.prep: $(top_builddir)/Doxyfile.gsm +$(top_builddir)/doc/libosmogsm.tag.prep: $(top_builddir)/Doxyfile.gsm \ + $(top_srcdir)/include/osmocom/gsm/*.h \ + $(top_srcdir)/include/osmocom/gsm/protocol/*.h \ + $(top_srcdir)/include/osmocom/crypt/*.h \ + $(top_srcdir)/src/gsm/*.c rm -rf $(top_builddir)/doc/gsm; mkdir -p $(top_builddir)/doc/gsm rm -rf $(top_builddir)/doc/libosmogsm.map -$(DOXYGEN) $(top_builddir)/Doxyfile.gsm touch "$@" -$(top_builddir)/doc/libosmovty.tag.prep: $(top_builddir)/Doxyfile.vty +$(top_builddir)/doc/libosmovty.tag.prep: $(top_builddir)/Doxyfile.vty \ + $(top_srcdir)/include/osmocom/vty/*.h \ + $(top_srcdir)/src/vty/*.c rm -rf $(top_builddir)/doc/vty; mkdir -p $(top_builddir)/doc/vty rm -rf $(top_builddir)/doc/libosmovty.map -$(DOXYGEN) $(top_builddir)/Doxyfile.vty touch "$@" -$(top_builddir)/doc/libosmocodec.tag.prep: $(top_builddir)/Doxyfile.codec +$(top_builddir)/doc/libosmocodec.tag.prep: $(top_builddir)/Doxyfile.codec \ + $(top_srcdir)/include/osmocom/codec/*.h \ + $(top_srcdir)/src/codec/*.c rm -rf $(top_builddir)/doc/codec; mkdir -p $(top_builddir)/doc/codec rm -rf $(top_builddir)/doc/libosmocodec.map -$(DOXYGEN) $(top_builddir)/Doxyfile.codec touch "$@" -$(top_builddir)/doc/libosmocoding.tag.prep: $(top_builddir)/Doxyfile.coding +$(top_builddir)/doc/libosmocoding.tag.prep: $(top_builddir)/Doxyfile.coding \ + $(top_srcdir)/include/osmocom/coding/*.h \ + $(top_srcdir)/src/coding/*.c rm -rf $(top_builddir)/doc/coding; mkdir -p $(top_builddir)/doc/coding rm -rf $(top_builddir)/doc/libosmocoding.map -$(DOXYGEN) $(top_builddir)/Doxyfile.coding touch "$@" -$(top_builddir)/doc/libosmoctrl.tag.prep: $(top_builddir)/Doxyfile.ctrl +$(top_builddir)/doc/libosmoctrl.tag.prep: $(top_builddir)/Doxyfile.ctrl \ + $(top_srcdir)/include/osmocom/ctrl/*.h \ + $(top_srcdir)/src/ctrl/*.c rm -rf $(top_builddir)/doc/ctrl; mkdir -p $(top_builddir)/doc/ctrl rm -rf $(top_builddir)/doc/libosmoctrl.map -$(DOXYGEN) $(top_builddir)/Doxyfile.ctrl touch "$@" -$(top_builddir)/doc/libosmogb.tag.prep: $(top_builddir)/Doxyfile.gb +$(top_builddir)/doc/libosmogb.tag.prep: $(top_builddir)/Doxyfile.gb \ + $(top_srcdir)/include/osmocom/gprs/*.h \ + $(top_srcdir)/src/gb/*.[hc] rm -rf $(top_builddir)/doc/gb; mkdir -p $(top_builddir)/doc/gb rm -rf $(top_builddir)/doc/libosmogb.map -$(DOXYGEN) $(top_builddir)/Doxyfile.gb -- To view, visit https://gerrit.osmocom.org/12775 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I15ea96be6e7abe91264b91f0b06963a0f2d63b0b Gerrit-Change-Number: 12775 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 05:17:42 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 1 Feb 2019 05:17:42 +0000 Subject: Change in libosmocore[master]: doxygen: enable cross referencing everywhere Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/12774 Change subject: doxygen: enable cross referencing everywhere ...................................................................... doxygen: enable cross referencing everywhere doxygen \ref cross-references to groups or files from other libraries only work when the .map file was present when the HTML was generated, and when that .map file was listed in TAGFILES in the Doxyfile. - Makefile.am: introduce a two-pass build for doxygen API docs. - First build pass makes sure the .tag files are present. - Second build pass picks up all the references, hence generates hyperlinks properly. - Add all libraries to TAGFILES of all other libraries, so we can from now on freely criss-cross reference from everywhere to everywhere. - Add all libraries' tag files as dependencies for all others. Example: in upcoming tdef.h, I would like to cross reference to tdef_vty.h, and vice versa, even though they are in libosmocore and libosmovty, respectively. This is now possible. We may still need to fix some problems with naming collisions, see for example stats.h, which exists twice with identical doxygen handle (different source dirs seems to not suffice for doxygen). Change-Id: Ib03d0b70d536c8f1386def666c89106a840f7363 --- M Doxyfile.codec.in M Doxyfile.coding.in M Doxyfile.core.in M Doxyfile.ctrl.in M Doxyfile.gb.in M Doxyfile.gsm.in M Doxyfile.vty.in M Makefile.am 8 files changed, 129 insertions(+), 27 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/74/12774/1 diff --git a/Doxyfile.codec.in b/Doxyfile.codec.in index 037ef7a..307e3e1 100644 --- a/Doxyfile.codec.in +++ b/Doxyfile.codec.in @@ -1485,7 +1485,7 @@ # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. -TAGFILES = doc/libosmocore.tag=../../core/html +TAGFILES = doc/libosmocore.tag=../../core/html doc/libosmogsm.tag=../../gsm/html doc/libosmovty.tag=../../vty/html doc/libosmocoding.tag=../../coding/html doc/libosmoctrl.tag=../../ctrl/html doc/libosmogb.tag=../../gb/html # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. diff --git a/Doxyfile.coding.in b/Doxyfile.coding.in index 43c4f82..d0e9942 100644 --- a/Doxyfile.coding.in +++ b/Doxyfile.coding.in @@ -1485,7 +1485,7 @@ # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. -TAGFILES = doc/libosmocore.tag=../../core/html +TAGFILES = doc/libosmocore.tag=../../core/html doc/libosmogsm.tag=../../gsm/html doc/libosmovty.tag=../../vty/html doc/libosmocodec.tag=../../codec/html doc/libosmoctrl.tag=../../ctrl/html doc/libosmogb.tag=../../gb/html # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. diff --git a/Doxyfile.core.in b/Doxyfile.core.in index 7a3cce5..f83205a 100644 --- a/Doxyfile.core.in +++ b/Doxyfile.core.in @@ -1485,7 +1485,7 @@ # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. -TAGFILES = +TAGFILES = doc/libosmogsm.tag=../../gsm/html doc/libosmovty.tag=../../vty/html doc/libosmocodec.tag=../../codec/html doc/libosmocoding.tag=../../coding/html doc/libosmoctrl.tag=../../ctrl/html doc/libosmogb.tag=../../gb/html # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. diff --git a/Doxyfile.ctrl.in b/Doxyfile.ctrl.in index eb363bb..5612a74 100644 --- a/Doxyfile.ctrl.in +++ b/Doxyfile.ctrl.in @@ -1485,7 +1485,7 @@ # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. -TAGFILES = doc/libosmocore.tag=../../core/html +TAGFILES = doc/libosmocore.tag=../../core/html doc/libosmogsm.tag=../../gsm/html doc/libosmovty.tag=../../vty/html doc/libosmocodec.tag=../../codec/html doc/libosmocoding.tag=../../coding/html doc/libosmogb.tag=../../gb/html # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. diff --git a/Doxyfile.gb.in b/Doxyfile.gb.in index e6b7826..b3b2128 100644 --- a/Doxyfile.gb.in +++ b/Doxyfile.gb.in @@ -1485,7 +1485,7 @@ # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. -TAGFILES = doc/libosmocore.tag=../../core/html +TAGFILES = doc/libosmocore.tag=../../core/html doc/libosmogsm.tag=../../gsm/html doc/libosmovty.tag=../../vty/html doc/libosmocodec.tag=../../codec/html doc/libosmocoding.tag=../../coding/html doc/libosmoctrl.tag=../../ctrl/html # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. diff --git a/Doxyfile.gsm.in b/Doxyfile.gsm.in index 27d14cc..aae0e89 100644 --- a/Doxyfile.gsm.in +++ b/Doxyfile.gsm.in @@ -1485,7 +1485,7 @@ # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. -TAGFILES = doc/libosmocore.tag=../../core/html +TAGFILES = doc/libosmocore.tag=../../core/html doc/libosmovty.tag=../../vty/html doc/libosmocodec.tag=../../codec/html doc/libosmocoding.tag=../../coding/html doc/libosmoctrl.tag=../../ctrl/html doc/libosmogb.tag=../../gb/html # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. diff --git a/Doxyfile.vty.in b/Doxyfile.vty.in index 0e138ee..fb1cabf 100644 --- a/Doxyfile.vty.in +++ b/Doxyfile.vty.in @@ -1485,7 +1485,7 @@ # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. -TAGFILES = doc/libosmocore.tag=../../core/html +TAGFILES = doc/libosmocore.tag=../../core/html doc/libosmogsm.tag=../../gsm/html doc/libosmocodec.tag=../../codec/html doc/libosmocoding.tag=../../coding/html doc/libosmoctrl.tag=../../ctrl/html doc/libosmogb.tag=../../gb/html # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. diff --git a/Makefile.am b/Makefile.am index de5eb35..ca01d10 100644 --- a/Makefile.am +++ b/Makefile.am @@ -39,38 +39,140 @@ $(top_builddir)/doc/gb/html/index.html cd $(top_builddir)/doc && tar cf html.tar */html -$(top_builddir)/doc/core/html/index.html: $(SOURCES) Doxyfile.core - @rm -rf doc/core - mkdir -p doc/core +# Support doxygen cross references from each library to each other library: +# First generate the docs to make sure all .tag files are in place. +# In a second run, generate the content with proper referencing. +# For example, libosmocore references tags from libosmovty and vice versa, +# so both need to generate tag files first, and then do another run. +# +# Generate each docs tree, and touch a libosmofoo.tag.prep file when done. +# It means that a libosmofoo.tag file is up-to-date. +# Touch a separate "*.prep" target: libosmofoo.tag as target would create +# circular dependency: we would rebuild all every time 'make' is invoked. +# The .prep file also depends on all the source files for that library. + +$(top_builddir)/doc/libosmocore.tag.prep: $(top_builddir)/Doxyfile.core + rm -rf $(top_builddir)/doc/core; mkdir -p $(top_builddir)/doc/core + rm -rf $(top_builddir)/doc/libosmocore.map + -$(DOXYGEN) $(top_builddir)/Doxyfile.core + touch "$@" + +$(top_builddir)/doc/libosmogsm.tag.prep: $(top_builddir)/Doxyfile.gsm + rm -rf $(top_builddir)/doc/gsm; mkdir -p $(top_builddir)/doc/gsm + rm -rf $(top_builddir)/doc/libosmogsm.map + -$(DOXYGEN) $(top_builddir)/Doxyfile.gsm + touch "$@" + +$(top_builddir)/doc/libosmovty.tag.prep: $(top_builddir)/Doxyfile.vty + rm -rf $(top_builddir)/doc/vty; mkdir -p $(top_builddir)/doc/vty + rm -rf $(top_builddir)/doc/libosmovty.map + -$(DOXYGEN) $(top_builddir)/Doxyfile.vty + touch "$@" + +$(top_builddir)/doc/libosmocodec.tag.prep: $(top_builddir)/Doxyfile.codec + rm -rf $(top_builddir)/doc/codec; mkdir -p $(top_builddir)/doc/codec + rm -rf $(top_builddir)/doc/libosmocodec.map + -$(DOXYGEN) $(top_builddir)/Doxyfile.codec + touch "$@" + +$(top_builddir)/doc/libosmocoding.tag.prep: $(top_builddir)/Doxyfile.coding + rm -rf $(top_builddir)/doc/coding; mkdir -p $(top_builddir)/doc/coding + rm -rf $(top_builddir)/doc/libosmocoding.map + -$(DOXYGEN) $(top_builddir)/Doxyfile.coding + touch "$@" + +$(top_builddir)/doc/libosmoctrl.tag.prep: $(top_builddir)/Doxyfile.ctrl + rm -rf $(top_builddir)/doc/ctrl; mkdir -p $(top_builddir)/doc/ctrl + rm -rf $(top_builddir)/doc/libosmoctrl.map + -$(DOXYGEN) $(top_builddir)/Doxyfile.ctrl + touch "$@" + +$(top_builddir)/doc/libosmogb.tag.prep: $(top_builddir)/Doxyfile.gb + rm -rf $(top_builddir)/doc/gb; mkdir -p $(top_builddir)/doc/gb + rm -rf $(top_builddir)/doc/libosmogb.map + -$(DOXYGEN) $(top_builddir)/Doxyfile.gb + touch "$@" + +# Build for real once all depending .tag files are in place. +# Depend on the own .tag.prep file to avoid concurrent builds of the same doc +# tree, and to also depend on all the source files listed above. +# +# Each library should depend on all the tag.prep files of which it lists .tag +# files in Doxyfile under TAGFILES. +# +# In turn, include all .tag files in TAGFILES of libraries to which "\ref" +# references point. +# +# Easiest is to just depend on all tag.prep files all across everywhere. + +$(top_builddir)/doc/core/html/index.html: $(top_builddir)/doc/libosmocore.tag.prep \ + $(top_builddir)/doc/libosmogsm.tag.prep \ + $(top_builddir)/doc/libosmovty.tag.prep \ + $(top_builddir)/doc/libosmocodec.tag.prep \ + $(top_builddir)/doc/libosmocoding.tag.prep \ + $(top_builddir)/doc/libosmoctrl.tag.prep \ + $(top_builddir)/doc/libosmogb.tag.prep + rm -rf $(top_builddir)/doc/core; mkdir -p $(top_builddir)/doc/core $(DOXYGEN) Doxyfile.core -$(top_builddir)/doc/gsm/html/index.html: $(SOURCES) Doxyfile.gsm - @rm -rf doc/gsm - mkdir -p doc/gsm +$(top_builddir)/doc/gsm/html/index.html: $(top_builddir)/doc/libosmogsm.tag.prep \ + $(top_builddir)/doc/libosmocore.tag.prep \ + $(top_builddir)/doc/libosmovty.tag.prep \ + $(top_builddir)/doc/libosmocodec.tag.prep \ + $(top_builddir)/doc/libosmocoding.tag.prep \ + $(top_builddir)/doc/libosmoctrl.tag.prep \ + $(top_builddir)/doc/libosmogb.tag.prep + rm -rf $(top_builddir)/doc/gsm; mkdir -p $(top_builddir)/doc/gsm $(DOXYGEN) Doxyfile.gsm -$(top_builddir)/doc/vty/html/index.html: $(SOURCES) Doxyfile.vty - @rm -rf doc/vty/{html,latex} +$(top_builddir)/doc/vty/html/index.html: $(top_builddir)/doc/libosmovty.tag.prep \ + $(top_builddir)/doc/libosmocore.tag.prep \ + $(top_builddir)/doc/libosmogsm.tag.prep \ + $(top_builddir)/doc/libosmocodec.tag.prep \ + $(top_builddir)/doc/libosmocoding.tag.prep \ + $(top_builddir)/doc/libosmoctrl.tag.prep \ + $(top_builddir)/doc/libosmogb.tag.prep + rm -rf $(top_builddir)/doc/vty; mkdir -p $(top_builddir)/doc/vty $(DOXYGEN) Doxyfile.vty -$(top_builddir)/doc/codec/html/index.html: $(SOURCES) Doxyfile.codec - @rm -rf doc/codec - mkdir -p doc/codec +$(top_builddir)/doc/codec/html/index.html: $(top_builddir)/doc/libosmocodec.tag.prep \ + $(top_builddir)/doc/libosmocore.tag.prep \ + $(top_builddir)/doc/libosmogsm.tag.prep \ + $(top_builddir)/doc/libosmovty.tag.prep \ + $(top_builddir)/doc/libosmocoding.tag.prep \ + $(top_builddir)/doc/libosmoctrl.tag.prep \ + $(top_builddir)/doc/libosmogb.tag.prep + rm -rf $(top_builddir)/doc/codec; mkdir -p $(top_builddir)/doc/codec $(DOXYGEN) Doxyfile.codec -$(top_builddir)/doc/coding/html/index.html: Doxyfile.coding - @rm -rf doc/coding - mkdir -p doc/coding +$(top_builddir)/doc/coding/html/index.html: $(top_builddir)/doc/libosmocoding.tag.prep \ + $(top_builddir)/doc/libosmocore.tag.prep \ + $(top_builddir)/doc/libosmogsm.tag.prep \ + $(top_builddir)/doc/libosmovty.tag.prep \ + $(top_builddir)/doc/libosmocodec.tag.prep \ + $(top_builddir)/doc/libosmoctrl.tag.prep \ + $(top_builddir)/doc/libosmogb.tag.prep + rm -rf $(top_builddir)/doc/coding; mkdir -p $(top_builddir)/doc/coding $(DOXYGEN) Doxyfile.coding -$(top_builddir)/doc/ctrl/html/index.html: $(SOURCES) Doxyfile.ctrl - @rm -rf doc/ctrl - mkdir -p doc/ctrl +$(top_builddir)/doc/ctrl/html/index.html: $(top_builddir)/doc/libosmoctrl.tag.prep \ + $(top_builddir)/doc/libosmocore.tag.prep \ + $(top_builddir)/doc/libosmogsm.tag.prep \ + $(top_builddir)/doc/libosmovty.tag.prep \ + $(top_builddir)/doc/libosmocodec.tag.prep \ + $(top_builddir)/doc/libosmocoding.tag.prep \ + $(top_builddir)/doc/libosmogb.tag.prep + rm -rf $(top_builddir)/doc/ctrl; mkdir -p $(top_builddir)/doc/ctrl $(DOXYGEN) Doxyfile.ctrl -$(top_builddir)/doc/gb/html/index.html: $(SOURCES) Doxyfile.gb - @rm -rf doc/gb - mkdir -p doc/gb +$(top_builddir)/doc/gb/html/index.html: $(top_builddir)/doc/libosmogb.tag.prep \ + $(top_builddir)/doc/libosmocore.tag.prep \ + $(top_builddir)/doc/libosmogsm.tag.prep \ + $(top_builddir)/doc/libosmovty.tag.prep \ + $(top_builddir)/doc/libosmocodec.tag.prep \ + $(top_builddir)/doc/libosmocoding.tag.prep \ + $(top_builddir)/doc/libosmoctrl.tag.prep + rm -rf $(top_builddir)/doc/gb; mkdir -p $(top_builddir)/doc/gb $(DOXYGEN) Doxyfile.gb install-data-hook: -- To view, visit https://gerrit.osmocom.org/12774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib03d0b70d536c8f1386def666c89106a840f7363 Gerrit-Change-Number: 12774 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 09:05:38 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 1 Feb 2019 09:05:38 +0000 Subject: Change in libosmocore[master]: osmo_fsm_inst_state_chg(): clamp timeout_secs to <= ~68 years In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12716 ) Change subject: osmo_fsm_inst_state_chg(): clamp timeout_secs to <= ~68 years ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12716 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I35ec4654467b1d6040c8aa215049766089e5e64a Gerrit-Change-Number: 12716 Gerrit-PatchSet: 4 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 01 Feb 2019 09:05:38 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 15:09:36 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 1 Feb 2019 15:09:36 +0000 Subject: Change in libosmocore[master]: GSUP: deprecate osmo_gsup_get_err_msg_type() Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/12777 Change subject: GSUP: deprecate osmo_gsup_get_err_msg_type() ...................................................................... GSUP: deprecate osmo_gsup_get_err_msg_type() Replace osmo_gsup_get_err_msg_type() with a wrapper to OSMO_GSUP_TO_MSGT_ERROR(). This macro assumes, that all error messages are (request message | 0x000001). Add a big comment header for osmo_gsup_message_type, describing this already implicitly followed rule and therefore making it explicit. With this change, we don't need to maintain the request -> error message mapping in osmo_gsup_get_err_msg_type() anymore. Related: Iec1b4ce4b7d8eb157406f006e1c4241e8fba2cd6 (osmo-gsm-manuals) Change-Id: I46d9f2327791978710e2f90b4d28a3761d723d8f --- M include/osmocom/gsm/gsup.h M src/gsm/gsup.c 2 files changed, 17 insertions(+), 29 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/77/12777/1 diff --git a/include/osmocom/gsm/gsup.h b/include/osmocom/gsm/gsup.h index 5dc2a82..003b0da 100644 --- a/include/osmocom/gsm/gsup.h +++ b/include/osmocom/gsm/gsup.h @@ -105,7 +105,18 @@ _OSMO_GSUP_IEI_END_MARKER }; -/*! GSUP message type */ +/*! GSUP message type + * Make sure that new messages follow this scheme: + * .----------------------------. + * | Ending Bits | Category | + * |----------------------------| + * | 00 | Request | + * | 01 | Error | + * | 10 | Result | + * | 11 | Other | + * '----------------------------' + * Request, Error and Result messages must only differ in these last two bits. + */ enum osmo_gsup_message_type { OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST = 0b00000100, OSMO_GSUP_MSGT_UPDATE_LOCATION_ERROR = 0b00000101, @@ -280,6 +291,8 @@ int osmo_gsup_decode(const uint8_t *data, size_t data_len, struct osmo_gsup_message *gsup_msg); int osmo_gsup_encode(struct msgb *msg, const struct osmo_gsup_message *gsup_msg); + +/* deprecated: use OSMO_GSUP_TO_MSGT_ERROR() instead */ int osmo_gsup_get_err_msg_type(enum osmo_gsup_message_type type_in); /*! @} */ diff --git a/src/gsm/gsup.c b/src/gsm/gsup.c index 3d2a8e2..a089322 100644 --- a/src/gsm/gsup.c +++ b/src/gsm/gsup.c @@ -95,36 +95,11 @@ }; -/*! return the error message type corresponding to \a type_in - * \returns matching error message type; -1 on error */ +/*! return the error message type corresponding to \a type_in. + * Deprecated, use OSMO_GSUP_TO_MSGT_ERROR() instead. */ int osmo_gsup_get_err_msg_type(enum osmo_gsup_message_type type_in) { - switch (type_in) { - case OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: - return OSMO_GSUP_MSGT_UPDATE_LOCATION_ERROR; - case OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: - return OSMO_GSUP_MSGT_SEND_AUTH_INFO_ERROR; - case OSMO_GSUP_MSGT_PURGE_MS_REQUEST: - return OSMO_GSUP_MSGT_PURGE_MS_ERROR; - case OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: - return OSMO_GSUP_MSGT_INSERT_DATA_ERROR; - case OSMO_GSUP_MSGT_DELETE_DATA_REQUEST: - return OSMO_GSUP_MSGT_DELETE_DATA_ERROR; - case OSMO_GSUP_MSGT_LOCATION_CANCEL_REQUEST: - return OSMO_GSUP_MSGT_LOCATION_CANCEL_ERROR; - case OSMO_GSUP_MSGT_PROC_SS_REQUEST: - return OSMO_GSUP_MSGT_PROC_SS_ERROR; - case OSMO_GSUP_MSGT_MO_FORWARD_SM_REQUEST: - return OSMO_GSUP_MSGT_MO_FORWARD_SM_ERROR; - case OSMO_GSUP_MSGT_MT_FORWARD_SM_REQUEST: - return OSMO_GSUP_MSGT_MT_FORWARD_SM_ERROR; - case OSMO_GSUP_MSGT_READY_FOR_SM_REQUEST: - return OSMO_GSUP_MSGT_READY_FOR_SM_ERROR; - case OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: - return OSMO_GSUP_MSGT_CHECK_IMEI_ERROR; - default: - return -1; - } + return OSMO_GSUP_TO_MSGT_ERROR(type_in); } static int decode_pdp_info(uint8_t *data, size_t data_len, -- To view, visit https://gerrit.osmocom.org/12777 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I46d9f2327791978710e2f90b4d28a3761d723d8f Gerrit-Change-Number: 12777 Gerrit-PatchSet: 1 Gerrit-Owner: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 15:10:01 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 1 Feb 2019 15:10:01 +0000 Subject: Change in osmo-gsm-manuals[master]: GSUP: message category indicated by last two bits Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/12778 Change subject: GSUP: message category indicated by last two bits ...................................................................... GSUP: message category indicated by last two bits Make this part of the specification, so we can simplify libosmocore code by knowing that error message is (request message | 0x000001). Related: I46d9f2327791978710e2f90b4d28a3761d723d8f (libosmocore) Change-Id: Iec1b4ce4b7d8eb157406f006e1c4241e8fba2cd6 --- M common/chapters/gsup.adoc 1 file changed, 13 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/78/12778/1 diff --git a/common/chapters/gsup.adoc b/common/chapters/gsup.adoc index 673ed59..7a16e64 100644 --- a/common/chapters/gsup.adoc +++ b/common/chapters/gsup.adoc @@ -766,6 +766,19 @@ |0x32|CHECK-IMEI Result |=== +The category of the message is indicated by the last two bits of the type. +Request, Error and Result messages only differ in these last two bits, so it is +trivial to transform them. + +[options="header",cols="20%,80%"] +|=== +|Ending Bits|Message Category +|00|Request +|01|Error +|10|Result +|11|Other +|=== + [[gsup-ie-ipaddr]] ==== IP Address -- To view, visit https://gerrit.osmocom.org/12778 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iec1b4ce4b7d8eb157406f006e1c4241e8fba2cd6 Gerrit-Change-Number: 12778 Gerrit-PatchSet: 1 Gerrit-Owner: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 15:12:29 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 1 Feb 2019 15:12:29 +0000 Subject: Change in libosmocore[master]: GSUP: fix missing osmo_gsup_get_err_msg_type()s In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12408 ) Change subject: GSUP: fix missing osmo_gsup_get_err_msg_type()s ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12408/1/src/gsm/gsup.c File src/gsm/gsup.c: https://gerrit.osmocom.org/#/c/12408/1/src/gsm/gsup.c at 96 PS1, Line 96: osmo_gsup_get_err_msg_type > while the existing GSUP message definitions "by coincidence" implicitly follow the rule that the err [?] Done: * https://gerrit.osmocom.org/#/c/osmo-gsm-manuals/+/12778/ * https://gerrit.osmocom.org/#/c/libosmocore/+/12777/ (I will add MSC handover related GSUP messages next, so having this simplified is already useful.) -- To view, visit https://gerrit.osmocom.org/12408 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I801a0d6ffe09cfc75b77ab602bd25b3dc40f19c0 Gerrit-Change-Number: 12408 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 01 Feb 2019 15:12:29 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 15:13:48 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 1 Feb 2019 15:13:48 +0000 Subject: Change in libosmocore[master]: GSUP: deprecate osmo_gsup_get_err_msg_type() In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12777 ) Change subject: GSUP: deprecate osmo_gsup_get_err_msg_type() ...................................................................... Patch Set 1: As recommended by Harald here: https://gerrit.osmocom.org/#/c/libosmocore/+/12408/ I'll add MSC handover GSUP messages next, so having this simplified is already useful. -- To view, visit https://gerrit.osmocom.org/12777 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I46d9f2327791978710e2f90b4d28a3761d723d8f Gerrit-Change-Number: 12777 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 01 Feb 2019 15:13:48 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 16:06:44 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 1 Feb 2019 16:06:44 +0000 Subject: Change in osmo-sysmon[master]: Add generic host config and related helpers In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12761 ) Change subject: Add generic host config and related helpers ...................................................................... Patch Set 5: Code-Review-1 (6 comments) Without looking at next patches, I have the feeling most of these APIs are so simple they are really not needed. Having the struct would be enough. Also I don't like this way of splitting between commits where a bunch of APIs not being used anywhere are added in one commit. https://gerrit.osmocom.org/#/c/12761/5/contrib/jenkins.sh File contrib/jenkins.sh: https://gerrit.osmocom.org/#/c/12761/5/contrib/jenkins.sh at 27 PS5, Line 27: export PATH="$inst/bin:$PATH" why is this line needed? https://gerrit.osmocom.org/#/c/12761/5/src/client.c File src/client.c: https://gerrit.osmocom.org/#/c/12761/5/src/client.c at 34 PS5, Line 34: #define MATCH(a, b) (strcmp(a, b) != 0) ? false : true can be simplified: #define MATCH(a, b) (strcmp(a,b) == 0) which makes me think if we really need this MATCH statement... https://gerrit.osmocom.org/#/c/12761/5/src/client.c at 38 PS5, Line 38: bool m_name = MATCH(match, cfg->name), m_host = MATCH(match, cfg->remote_host); separate lines please. https://gerrit.osmocom.org/#/c/12761/5/src/client.c at 56 PS5, Line 56: struct host_cfg *make_config(void *ctx, const char *name, const char *host, uint16_t port) This is basically a constructor/allocator, so better name it like we usually do, like talloc_host_cfg or host_cfg_alloc. https://gerrit.osmocom.org/#/c/12761/5/src/client.c at 79 PS5, Line 79: char *get_authority(void *ctx, const struct host_cfg *cfg) It's allocating something and the method is not const, so I'd better name it "create_authority" or "make_authority". https://gerrit.osmocom.org/#/c/12761/5/src/client.c at 81 PS5, Line 81: if (!cfg->remote_host) Is this really needed? -- To view, visit https://gerrit.osmocom.org/12761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie321655a92cdbefbfaa056ac0d583397c83beccb Gerrit-Change-Number: 12761 Gerrit-PatchSet: 5 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Fri, 01 Feb 2019 16:06:44 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Fri Feb 1 16:09:44 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 1 Feb 2019 16:09:44 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-o?= =?UTF-8?Q?penbsc_=C2=BB_--disable-iu,--disable-m?= =?UTF-8?Q?gcp-transcoding,--enable-smpp,def?= =?UTF-8?Q?ault,osmocom-master-debian9_#3763?= Message-ID: <705013721.33.1549037384555.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 193.06 KB...] + branch=origin/master + test -d libosmo-sccp + git clone git://git.osmocom.org/libosmo-sccp libosmo-sccp Cloning into 'libosmo-sccp'... + cd libosmo-sccp + git fetch --tags origin + git fetch origin + deps= osmo-clean-workspace.sh + chmod -R +w . + git checkout -f HEAD Your branch is up-to-date with 'origin/master'. + git clean -dxf + [ -d ] + [ -d layer1-headers ] + git checkout -f origin/master Note: checking out 'origin/master'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b new_branch_name HEAD is now at 81c6a0a... Bump version: 0.10.0.39-b723 ? 1.0.0 + git rev-parse HEAD 81c6a0a97980f9da76ef0e698ca6ab526b98c7c2 + cd libosmo-sccp + mkdir -p /build/deps/install/stow + autoreconf --install --force libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `.'. libtoolize: copying file `./ltmain.sh' libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree. libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am. configure.ac:21: installing './compile' configure.ac:23: installing './config.guess' configure.ac:23: installing './config.sub' configure.ac:9: installing './install-sh' configure.ac:9: installing './missing' examples/Makefile.am: installing './depcomp' tests/sccp/Makefile.am:8: warning: source file '$(top_srcdir)/src/sccp.c' is in a subdirectory, tests/sccp/Makefile.am:8: but option 'subdir-objects' is disabled automake: warning: possible forward-incompatibility. automake: At least a source file is in a subdirectory, but the 'subdir-objects' automake: automake option hasn't been enabled. For now, the corresponding output automake: object file(s) will be placed in the top-level directory. However, automake: this behaviour will change in future Automake versions: they will automake: unconditionally cause object files to be placed in the same subdirectory automake: of the corresponding sources. automake: You are advised to start using 'subdir-objects' option throughout your automake: project, to avoid future incompatibilities. + ./configure --prefix=/build/deps/install/stow/libosmo-sccp --with-systemdsystemunitdir=/build/deps/install/stow/libosmo-sccp/lib/systemd/system checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking whether make sets $(MAKE)... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for LIBOSMOCORE... yes checking for LIBOSMOVTY... yes checking for LIBOSMOGSM... yes checking for LIBOSMONETIF... yes checking for library containing sctp_send... -lsctp checking if gcc supports -fvisibility=hidden... yes checking for doxygen... /usr/bin/doxygen checking whether to enable VTY/CTRL tests... no CFLAGS="-g -O2 -Wall" CPPFLAGS=" -Wall" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmo-sigtran.pc config.status: creating libosmo-sccp.pc config.status: creating libosmo-mtp.pc config.status: creating libosmo-xua.pc config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/sccp/Makefile config.status: creating include/osmocom/mtp/Makefile config.status: creating include/osmocom/sigtran/Makefile config.status: creating include/Makefile config.status: creating src/Makefile config.status: creating tests/Makefile config.status: creating tests/sccp/Makefile config.status: creating tests/mtp/Makefile config.status: creating tests/m2ua/Makefile config.status: creating tests/xua/Makefile config.status: creating tests/ss7/Makefile config.status: creating tests/vty/Makefile config.status: creating examples/Makefile config.status: creating stp/Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating doc/manuals/Makefile config.status: creating contrib/Makefile config.status: creating contrib/systemd/Makefile config.status: creating Doxyfile config.status: creating Makefile config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 install echo 1.0.0 > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory '/build/deps/libosmo-sccp' Making install in include make[2]: Entering directory '/build/deps/libosmo-sccp/include' Making install in osmocom make[3]: Entering directory '/build/deps/libosmo-sccp/include/osmocom' Making install in mtp make[4]: Entering directory '/build/deps/libosmo-sccp/include/osmocom/mtp' make[5]: Entering directory '/build/deps/libosmo-sccp/include/osmocom/mtp' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/deps/install/stow/libosmo-sccp/include/osmocom/mtp' /usr/bin/install -c -m 644 mtp_level3.h mtp_pcap.h '/build/deps/install/stow/libosmo-sccp/include/osmocom/mtp' make[5]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom/mtp' make[4]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom/mtp' Making install in sccp make[4]: Entering directory '/build/deps/libosmo-sccp/include/osmocom/sccp' make[5]: Entering directory '/build/deps/libosmo-sccp/include/osmocom/sccp' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/deps/install/stow/libosmo-sccp/include/osmocom/sccp' /usr/bin/install -c -m 644 sccp_types.h sccp.h '/build/deps/install/stow/libosmo-sccp/include/osmocom/sccp' make[5]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom/sccp' make[4]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom/sccp' Making install in sigtran make[4]: Entering directory '/build/deps/libosmo-sccp/include/osmocom/sigtran' make[5]: Entering directory '/build/deps/libosmo-sccp/include/osmocom/sigtran' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/deps/install/stow/libosmo-sccp/include/osmocom/sigtran/protocol' /bin/mkdir -p '/build/deps/install/stow/libosmo-sccp/include/osmocom/sigtran' /usr/bin/install -c -m 644 xua_types.h xua_msg.h m2ua_types.h sccp_sap.h sigtran_sap.h sccp_helpers.h mtp_sap.h osmo_ss7.h '/build/deps/install/stow/libosmo-sccp/include/osmocom/sigtran' /usr/bin/install -c -m 644 protocol/sua.h protocol/m3ua.h protocol/mtp.h '/build/deps/install/stow/libosmo-sccp/include/osmocom/sigtran/protocol' make[5]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom/sigtran' make[4]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom/sigtran' make[4]: Entering directory '/build/deps/libosmo-sccp/include/osmocom' make[5]: Entering directory '/build/deps/libosmo-sccp/include/osmocom' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom' make[4]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom' make[3]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom' make[3]: Entering directory '/build/deps/libosmo-sccp/include' make[4]: Entering directory '/build/deps/libosmo-sccp/include' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/build/deps/libosmo-sccp/include' make[3]: Leaving directory '/build/deps/libosmo-sccp/include' make[2]: Leaving directory '/build/deps/libosmo-sccp/include' Making install in src make[2]: Entering directory '/build/deps/libosmo-sccp/src' CC sccp.o CC mtp_pcap.o CC libxua_a-xua_msg.o CC sccp_sap.lo CC m3ua.lo CC sua.lo CC xua_msg.lo CC sccp_helpers.lo CC sccp2sua.lo CC sccp_scrc.lo CC sccp_sclc.lo /bin/bash: line 1: 19677 Segmentation fault (core dumped) /bin/bash ../libtool --silent --tag=CC --mode=compile gcc -DPACKAGE_NAME=\"libosmo-sccp\" -DPACKAGE_TARNAME=\"libosmo-sccp\" -DPACKAGE_VERSION=\"1.0.0\" -DPACKAGE_STRING=\"libosmo-sccp\ 1.0.0\" -DPACKAGE_BUGREPORT=\"openbsc at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libosmo-sccp\" -DVERSION=\"1.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_LIBSCTP=1 -I. -I../include -I.. -Wall -Wall -I/build/deps/install/stow/libosmocore/include/ -I/build/deps/install/stow/libosmocore/include/ -I/build/deps/install/stow/libosmocore/include/ -I/build/deps/install/stow/libosmo-netif/include/ -g -O2 -Wall -MT sccp_scrc.lo -MD -MP -MF .deps/sccp_scrc.Tpo -c -o sccp_scrc.lo sccp_scrc.c make[2]: *** [sccp_scrc.lo] Error 139 make[2]: *** Waiting for unfinished jobs.... Makefile:562: recipe for target 'sccp_scrc.lo' failed make[2]: Leaving directory '/build/deps/libosmo-sccp/src' make[1]: *** [install-recursive] Error 1 Makefile:488: recipe for target 'install-recursive' failed make[1]: Leaving directory '/build/deps/libosmo-sccp' Makefile:787: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Fri Feb 1 16:11:34 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 1 Feb 2019 16:11:34 +0000 Subject: Change in osmo-gsm-manuals[master]: GSUP: message category indicated by last two bits In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12778 ) Change subject: GSUP: message category indicated by last two bits ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12778/1/common/chapters/gsup.adoc File common/chapters/gsup.adoc: https://gerrit.osmocom.org/#/c/12778/1/common/chapters/gsup.adoc at 779 PS1, Line 779: Other Do we have any messages of such category? If no, we shouldn't mention this 0b11. -- To view, visit https://gerrit.osmocom.org/12778 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iec1b4ce4b7d8eb157406f006e1c4241e8fba2cd6 Gerrit-Change-Number: 12778 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 01 Feb 2019 16:11:34 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 16:12:46 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 1 Feb 2019 16:12:46 +0000 Subject: Change in osmo-gsm-manuals[master]: GSUP: message category indicated by last two bits In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12778 ) Change subject: GSUP: message category indicated by last two bits ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/12778/1/common/chapters/gsup.adoc File common/chapters/gsup.adoc: https://gerrit.osmocom.org/#/c/12778/1/common/chapters/gsup.adoc at 779 PS1, Line 779: Other > Do we have any messages of such category? If no, we shouldn't mention this 0b11. Hmm, ok, at least OSMO_GSUP_MSGT_AUTH_FAIL_REPORT. -- To view, visit https://gerrit.osmocom.org/12778 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iec1b4ce4b7d8eb157406f006e1c4241e8fba2cd6 Gerrit-Change-Number: 12778 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 01 Feb 2019 16:12:46 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 16:14:48 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 1 Feb 2019 16:14:48 +0000 Subject: Change in osmo-gsm-manuals[master]: GSUP: message category indicated by last two bits In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12778 ) Change subject: GSUP: message category indicated by last two bits ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12778/1/common/chapters/gsup.adoc File common/chapters/gsup.adoc: https://gerrit.osmocom.org/#/c/12778/1/common/chapters/gsup.adoc at 779 PS1, Line 779: Other > Hmm, ok, at least OSMO_GSUP_MSGT_AUTH_FAIL_REPORT. And there will be more messages, looking at Neels' draft: https://git.osmocom.org/osmo-msc/tree/doc/interMSC_HO_GSUP_msgs.txt?h=neels/ho [processAccessSignalling|forwardAccessSignalling|close|abort] All these don't have result and error counterparts, so they should belong in the "other" category IMHO. -- To view, visit https://gerrit.osmocom.org/12778 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iec1b4ce4b7d8eb157406f006e1c4241e8fba2cd6 Gerrit-Change-Number: 12778 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 01 Feb 2019 16:14:48 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 16:15:14 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 1 Feb 2019 16:15:14 +0000 Subject: Change in libosmocore[master]: GSUP: deprecate osmo_gsup_get_err_msg_type() In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12777 ) Change subject: GSUP: deprecate osmo_gsup_get_err_msg_type() ...................................................................... Patch Set 1: Code-Review-1 (1 comment) https://gerrit.osmocom.org/#/c/12777/1/include/osmocom/gsm/gsup.h File include/osmocom/gsm/gsup.h: https://gerrit.osmocom.org/#/c/12777/1/include/osmocom/gsm/gsup.h at 295 PS1, Line 295: deprecated: use OSMO_GSUP_TO_MSGT_ERROR() instead Please use OSMO_DEPRECATED() instead of this comment. -- To view, visit https://gerrit.osmocom.org/12777 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I46d9f2327791978710e2f90b4d28a3761d723d8f Gerrit-Change-Number: 12777 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 01 Feb 2019 16:15:14 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 16:34:56 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 1 Feb 2019 16:34:56 +0000 Subject: Change in osmo-sysmon[master]: Add OpenVPN probe In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12763 ) Change subject: Add OpenVPN probe ...................................................................... Patch Set 5: Code-Review-1 (13 comments) https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c File src/osysmon_openvpn.c: https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 68 PS5, Line 68: get_authority(NULL, vpn->cfg), msgb_length(msg), 128); get_authority memleak, https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 74 PS5, Line 74: fprintf(stderr, "[%s] received message is empty, ignoring...\n", get_authority(NULL, vpn->cfg)); get_authority memleak. https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 79 PS5, Line 79: tmp[sizeof(tmp) - 1] = '\0'; if that's a string, then you can simply use osmo_strlcpy afaik. https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 82 PS5, Line 82: if (tok) add missing {}, otherwise it's confusing. Only use conditionals without bracket for one-line sections. https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 83 PS5, Line 83: switch (i++) { if I understand correctly, first time switch is checked against i=0 (because it's incremented afterwards), and I see no 0 case here. https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 127 PS5, Line 127: if (msg == NULL) { (!msg) https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 134 PS5, Line 134: fprintf(stderr, "[%s] unable to receive message in callback\n", get_authority(NULL, vpn->cfg)); mem leak, get_authority allocates stuff. also, msg is leaked. better use goto. https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 149 PS5, Line 149: return true; that's weird from API point of view. You usually expect a "create" API to allocate and return newly-allocated struct. Otherwise you never know if a new struct was allocated (which needs to be freed at some point) or an already previously struct was returned (and then avoid double freeing). Calling it "find_or_create" would be more clear. https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 159 PS5, Line 159: talloc_free(vpn); Instead of talloc_free + return false in lots of places, use a goto to end of function. https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 178 PS5, Line 178: osmo_stream_cli_set_reconnect_timeout(vpn->mgmt, 60); /* FIXME: this seems to be ignored by libosmo-netif */ was this already fixed? otherwise please open a ticket and put the ticket number in the commit for later reference. https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 263 PS5, Line 263: value_node_add(vn_host, "remote", remote); possible memleak of remote later on, to be checked. https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 267 PS5, Line 267: msgb_printf(msg, "state\n"); Not sure what is this for. https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 287 PS5, Line 287: if (llist_count(&g_oss->openvpn_clients)) { No need to count, just check if the list is not empty. -- To view, visit https://gerrit.osmocom.org/12763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4493e19b9a09dcebd289457eacd1719f7f8cc31c Gerrit-Change-Number: 12763 Gerrit-PatchSet: 5 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Fri, 01 Feb 2019 16:34:56 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 17:27:46 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 1 Feb 2019 17:27:46 +0000 Subject: Change in osmo-bts[master]: scheduler_trx: use stored block fn instead of calculating it. Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/12779 Change subject: scheduler_trx: use stored block fn instead of calculating it. ...................................................................... scheduler_trx: use stored block fn instead of calculating it. When the block is passed up into the higher layers it it marked with the frame number that points to the beginning of the block. At the moment some strange calculations are used to calculate the beginning of the block fn from the current fn that points at the end of the block: PDTCH: fn != (fn + GSM_HYPERFRAME - 3) % GSM_HYPERFRAME FACCH/F: fn != (fn + GSM_HYPERFRAME - 7) % GSM_HYPERFRAME TCH/F: fn != (fn + GSM_HYPERFRAME - 7) % GSM_HYPERFRAME Despite the fact that those equations do not look very trustworthy, it is also not necessary to calculate the fn since the code stores the fn of each beginning of a new block in chan_state->ul_first_fn (*first_fn), so we can just use the stored fn when passing the block up. This also makes the code more logical since the measurement indications already use the stored frame number as well. Change-Id: Ia27254bbf6e36426f7890ece6154dcd395673f63 Related: OS#2977 --- M src/osmo-bts-trx/scheduler_trx.c 1 file changed, 10 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/79/12779/1 diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index fa3aed2..30ef674 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -946,9 +946,9 @@ return 0; } ber10k = compute_ber10k(n_bits_total, n_errors); - return _sched_compose_ph_data_ind(l1t, tn, (fn + GSM_HYPERFRAME - 3) % GSM_HYPERFRAME, chan, - l2, rc, *rssi_sum / *rssi_num, 4 * (*toa256_sum) / *toa_num, 0, - ber10k, PRES_INFO_BOTH); + return _sched_compose_ph_data_ind(l1t, tn, *first_fn, chan, l2, rc, + *rssi_sum / *rssi_num, 4 * (*toa256_sum) / *toa_num, 0, ber10k, + PRES_INFO_BOTH); } /*! \brief a single TCH/F burst was received by the PHY, process it */ @@ -1070,9 +1070,8 @@ /* FACCH */ if (rc == GSM_MACBLOCK_LEN) { uint16_t ber10k = compute_ber10k(n_bits_total, n_errors); - _sched_compose_ph_data_ind(l1t, tn, (fn + GSM_HYPERFRAME - 7) % GSM_HYPERFRAME, chan, - tch_data + amr, GSM_MACBLOCK_LEN, rssi, 4 * toa256, 0, - ber10k, PRES_INFO_UNKNOWN); + _sched_compose_ph_data_ind(l1t, tn, *first_fn, chan, tch_data + amr, + GSM_MACBLOCK_LEN, rssi, 4 * toa256, 0, ber10k, PRES_INFO_UNKNOWN); bfi: if (rsl_cmode == RSL_CMOD_SPD_SPEECH) { /* indicate bad frame */ @@ -1124,7 +1123,7 @@ /* TCH or BFI */ compose_l1sap: - return _sched_compose_tch_ind(l1t, tn, (fn + GSM_HYPERFRAME - 7) % GSM_HYPERFRAME, chan, + return _sched_compose_tch_ind(l1t, tn, *first_fn, chan, tch_data, rc); } @@ -1261,10 +1260,8 @@ if (rc == GSM_MACBLOCK_LEN) { chan_state->ul_ongoing_facch = 1; uint16_t ber10k = compute_ber10k(n_bits_total, n_errors); - _sched_compose_ph_data_ind(l1t, tn, - (fn + GSM_HYPERFRAME - 10 - ((fn % 26) >= 19)) % GSM_HYPERFRAME, chan, - tch_data + amr, GSM_MACBLOCK_LEN, rssi, toa256/64, 0, - ber10k, PRES_INFO_UNKNOWN); + _sched_compose_ph_data_ind(l1t, tn, *first_fn, chan, tch_data + amr, + GSM_MACBLOCK_LEN, rssi, toa256/64, 0, ber10k, PRES_INFO_UNKNOWN); bfi: if (rsl_cmode == RSL_CMOD_SPD_SPEECH) { /* indicate bad frame */ @@ -1306,9 +1303,8 @@ * with the slot 12, so an extra FN must be subtracted to get correct * start of frame. */ - return _sched_compose_tch_ind(l1t, tn, - (fn + GSM_HYPERFRAME - 10 - ((fn%26)==19) - ((fn%26)==20)) % GSM_HYPERFRAME, - chan, tch_data, rc); + printf("TCHH\n"); + return _sched_compose_tch_ind(l1t, tn, *first_fn, chan, tch_data, rc); } /* schedule all frames of all TRX for given FN */ -- To view, visit https://gerrit.osmocom.org/12779 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ia27254bbf6e36426f7890ece6154dcd395673f63 Gerrit-Change-Number: 12779 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Fri Feb 1 18:11:05 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 1 Feb 2019 18:11:05 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_m?= =?UTF-8?Q?aster-openbsc_=C2=BB_--disable-iu,--disa?= =?UTF-8?Q?ble-mgcp-transcoding,--enable-smpp,?= =?UTF-8?Q?default,osmocom-master-debian9_#3764?= In-Reply-To: <705013721.33.1549037384555.JavaMail.jenkins@jenkins.osmocom.org> References: <705013721.33.1549037384555.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1865620073.34.1549044665637.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Fri Feb 1 18:12:26 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 1 Feb 2019 18:12:26 +0000 Subject: Change in osmo-bts[master]: scheduler_trx: use stored block fn instead of calculating it. In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12779 ) Change subject: scheduler_trx: use stored block fn instead of calculating it. ...................................................................... Patch Set 1: Code-Review-2 (6 comments) https://gerrit.osmocom.org/#/c/12779/1/src/osmo-bts-trx/scheduler_trx.c File src/osmo-bts-trx/scheduler_trx.c: https://gerrit.osmocom.org/#/c/12779/1/src/osmo-bts-trx/scheduler_trx.c at 949 PS1, Line 949: first_fn I am agree here, as a PDTCH block is interleaved over 4 consequent bursts. Similar to xCCH. https://gerrit.osmocom.org/#/c/12779/1/src/osmo-bts-trx/scheduler_trx.c at 1073 PS1, Line 1073: first_fn Sorry, but this change makes the situation with TCH frame number calculation even worse. Both TCH/F (speech) and FACCH/F blocks are being interleaved over 8 bursts, so this is why we have 'fn - 7'. Neither the current, nor the suggested approach is correct. After this change we would have the frame number of 5/8 burst instead of 1/8, because we update *first_fn when bid == 0. Doing 'fn - 7' is (I think) also incorrect because there are SACCH and IDLE frames between the TCH/F frames. As I already pointed out, we need some functions for such calculations, which would rely on the multi-frame layout. https://gerrit.osmocom.org/#/c/12779/1/src/osmo-bts-trx/scheduler_trx.c at 1126 PS1, Line 1126: first_fn same here :/ https://gerrit.osmocom.org/#/c/12779/1/src/osmo-bts-trx/scheduler_trx.c at 1263 PS1, Line 1263: first_fn Here it's even more complicated, so this change would result in having frame number of 5/6 burst instead of 1/6 for FACCH/H. https://gerrit.osmocom.org/#/c/12779/1/src/osmo-bts-trx/scheduler_trx.c at 1306 PS1, Line 1306: printf Left from debugging? ;) https://gerrit.osmocom.org/#/c/12779/1/src/osmo-bts-trx/scheduler_trx.c at 1307 PS1, Line 1307: first_fn ... and here we would have frame number of 3/4 burst instead of 1/4. -- To view, visit https://gerrit.osmocom.org/12779 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia27254bbf6e36426f7890ece6154dcd395673f63 Gerrit-Change-Number: 12779 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 01 Feb 2019 18:12:26 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 18:15:53 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 1 Feb 2019 18:15:53 +0000 Subject: Change in osmo-bts[master]: scheduler_trx: use stored block fn instead of calculating it. In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12779 ) Change subject: scheduler_trx: use stored block fn instead of calculating it. ...................................................................... Patch Set 1: Feel free to send a patch for PDTCH though. -- To view, visit https://gerrit.osmocom.org/12779 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia27254bbf6e36426f7890ece6154dcd395673f63 Gerrit-Change-Number: 12779 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 01 Feb 2019 18:15:53 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 18:28:26 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 1 Feb 2019 18:28:26 +0000 Subject: Change in osmo-bsc[master]: bsc_vty: add features to disable specific lchans via vty In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12624 ) Change subject: bsc_vty: add features to disable specific lchans via vty ...................................................................... Patch Set 7: (2 comments) https://gerrit.osmocom.org/#/c/12624/7/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/#/c/12624/7/src/osmo-bsc/bsc_vty.c at 4794 PS7, Line 4794: Other definitions in this file are using a single tab without alignment, so let's follow this too. https://gerrit.osmocom.org/#/c/12624/7/src/osmo-bsc/bsc_vty.c at 4805 PS7, Line 4805: lchan = &ts->lchan[ss_nr]; Shouldn't we check 'ss_nr >= pchan_subslots(ts->pchan_is)' before doing this? -- To view, visit https://gerrit.osmocom.org/12624 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I397e68e26d6a1727890353fa34f4897b54795866 Gerrit-Change-Number: 12624 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: dexter Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 01 Feb 2019 18:28:26 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 18:35:08 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 1 Feb 2019 18:35:08 +0000 Subject: Change in libosmocore[master]: add generic vty_transcript_test.c, vty_transcript_test.vty In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12768 ) Change subject: add generic vty_transcript_test.c, vty_transcript_test.vty ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/#/c/12768/1/tests/Makefile.am File tests/Makefile.am: https://gerrit.osmocom.org/#/c/12768/1/tests/Makefile.am at 339 PS1, Line 339: $(srcdir)/vty/*.vty I think you need to add *.vty to EXTRA_DIST. https://gerrit.osmocom.org/#/c/12768/1/tests/vty/vty_transcript_test.c File tests/vty/vty_transcript_test.c: https://gerrit.osmocom.org/#/c/12768/1/tests/vty/vty_transcript_test.c at 132 PS1, Line 132: * and then return to the caller, who will abort the process */ Please add some 'fall-through' label. -- To view, visit https://gerrit.osmocom.org/12768 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5a79c83fabd02aba6406b6e0d620969c4bd0cc1d Gerrit-Change-Number: 12768 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 01 Feb 2019 18:35:08 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 18:38:36 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 1 Feb 2019 18:38:36 +0000 Subject: Change in libosmocore[master]: vty: enable optional-multi-choice syntax: [(one|two)] In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12770 ) Change subject: vty: enable optional-multi-choice syntax: [(one|two)] ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12770/1/src/vty/command.c File src/vty/command.c: https://gerrit.osmocom.org/#/c/12770/1/src/vty/command.c at 383 PS1, Line 383: int bool? -- To view, visit https://gerrit.osmocom.org/12770 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I952b3c00f97e2447f2308b0ec6f5f1714692b5b2 Gerrit-Change-Number: 12770 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 01 Feb 2019 18:38:36 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 18:46:38 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 1 Feb 2019 18:46:38 +0000 Subject: Change in libosmocore[master]: vty telnet: consistently never change nodes upon CTRL-C In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12772 ) Change subject: vty telnet: consistently never change nodes upon CTRL-C ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12772 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4f339ba61f1c273fa7da85caf77ba116ae2697b1 Gerrit-Change-Number: 12772 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 01 Feb 2019 18:46:38 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 18:55:29 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 1 Feb 2019 18:55:29 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC_Tests.ttcn: introduce TC_gsup_mt_sms_rp_mr In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/12627 ) Change subject: MSC_Tests.ttcn: introduce TC_gsup_mt_sms_rp_mr ...................................................................... MSC_Tests.ttcn: introduce TC_gsup_mt_sms_rp_mr The idea of this test case is to verify SM-RP-MR assignment for a few MT SMS being sent over GSUP. Basically, the algorythm is the following: 1.0 send the 1st SMS using MT-ForwardSM-Req on GSUP, 1.1 expect Paging Request on RAN, 1.2 establish a RAN connection, 1.3 expect CP-DATA/RP-DATA for the 1st SMS, 2.0 send the 2nd SMS using MT-ForwardSM-Req on GSUP, 2.1 expect CP-DATA/RP-DATA for the 2nd SMS, 3.0 compare both SM-RP-MR values assigned by the MSC, 3.1 send CP-DATA/RP-ACK for both 1st and 2nd SMS messages, 3.2 expect MT-ForwardSM-Res for both 1st and 2nd SMS messages. The SM-RP-MR values for both 1st and 2nd messages shall not match. Change-Id: I3a52d44f4abde9b6b471b9108c1cee905884c9bc --- M msc/MSC_Tests.ttcn M msc/expected-results.xml 2 files changed, 114 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index a8f37bd..fb0798c 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -2409,6 +2409,118 @@ f_vty_config(MSCVTY, "msc", "no sms-over-gsup"); } +/* Test SM-RP-MR assignment for MT-SMS over GSUP */ +private function f_tc_gsup_mt_sms_rp_mr(charstring id, BSC_ConnHdlrPars pars) +runs on BSC_ConnHdlr { + var SmsParameters spars1 := valueof(t_SmsPars); /* 1st SMS */ + var SmsParameters spars2 := valueof(t_SmsPars); /* 2nd SMS */ + + f_init_handler(pars); + + /* We need to inspect GSUP activity */ + f_create_gsup_expect(hex2str(g_pars.imsi)); + + /* Perform location update */ + f_perform_lu(); + + /* Register an 'expect' for given IMSI (+TMSI) */ + if (isvalue(g_pars.tmsi)) { + f_bssmap_register_imsi(g_pars.imsi, g_pars.tmsi); + } else { + f_bssmap_register_imsi(g_pars.imsi, 'FFFFFFFF'O); + } + + /* Submit the 1st MT SMS on GSUP */ + log("TX MT-forwardSM-Req for the 1st SMS"); + f_gsup_forwardSM_req(spars1); + + /* Expect Paging Request and Establish DTAP / BSSAP / SCCP connection */ + BSSAP.receive(tr_BSSMAP_Paging(g_pars.imsi)); + f_establish_fully(EST_TYPE_PAG_RESP); + + /* Wait for 1st MT SMS on DTAP */ + f_mt_sms_expect(spars1); + log("RX the 1st SMS on DTAP, DTAP TID is ", spars1.tid, + ", SM-RP-MR is ", spars1.rp.msg_ref); + + /* Submit the 2nd MT SMS on GSUP */ + log("TX MT-forwardSM-Req for the 2nd SMS"); + f_gsup_forwardSM_req(spars2); + + /* Wait for 2nd MT SMS on DTAP */ + f_mt_sms_expect(spars2); + log("RX the 2nd SMS on DTAP, DTAP TID is ", spars2.tid, + ", SM-RP-MR is ", spars2.rp.msg_ref); + + /* Both transaction IDs shall be different */ + if (spars1.tid == spars2.tid) { + log("Both DTAP transaction IDs shall be different"); + setverdict(fail); + } + + /* Both SM-RP-MR values shall be different */ + if (spars1.rp.msg_ref == spars2.rp.msg_ref) { + log("Both SM-RP-MR values shall be different"); + setverdict(fail); + } + + /* Both SM-RP-MR values shall be assigned */ + if (spars1.rp.msg_ref == 'FF'O) { + log("Unassigned SM-RP-MR value for the 1st SMS"); + setverdict(fail); + } + if (spars2.rp.msg_ref == 'FF'O) { + log("Unassigned SM-RP-MR value for the 2nd SMS"); + setverdict(fail); + } + + /* Send the 1st RP-ACK and expect MT-forwardSM-Res on GSUP */ + f_mt_sms_send_rp_ack(spars1); + alt { + [] GSUP.receive(tr_GSUP_MT_FORWARD_SM_RES( + imsi := g_pars.imsi, + sm_rp_mr := spars1.rp.msg_ref + )) { + log("RX MT-forwardSM-Res (RP-ACK)"); + setverdict(pass); + } + [] GSUP.receive { + log("RX unexpected GSUP message"); + setverdict(fail); + mtc.stop; + } + } + + /* Send the 2nd RP-ACK and expect MT-forwardSM-Res on GSUP */ + f_mt_sms_send_rp_ack(spars2); + alt { + [] GSUP.receive(tr_GSUP_MT_FORWARD_SM_RES( + imsi := g_pars.imsi, + sm_rp_mr := spars2.rp.msg_ref + )) { + log("RX MT-forwardSM-Res (RP-ACK)"); + setverdict(pass); + } + [] GSUP.receive { + log("RX unexpected GSUP message"); + setverdict(fail); + mtc.stop; + } + } + + f_expect_clear(); +} +testcase TC_gsup_mt_sms_rp_mr() runs on MTC_CT { + var BSC_ConnHdlrPars pars; + var BSC_ConnHdlr vc_conn; + f_init(); + pars := f_init_pars(92); + f_vty_config(MSCVTY, "msc", "sms-over-gsup"); + vc_conn := f_start_handler_with_pars(refers(f_tc_gsup_mt_sms_rp_mr), pars); + vc_conn.done; + f_vty_config(MSCVTY, "msc", "no sms-over-gsup"); +} + /* Test multi-part MT-SMS over GSUP */ private function f_tc_gsup_mt_multi_part_sms(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { @@ -4344,6 +4456,7 @@ execute( TC_gsup_mo_smma() ); execute( TC_gsup_mt_sms_ack() ); execute( TC_gsup_mt_sms_err() ); + execute( TC_gsup_mt_sms_rp_mr() ); execute( TC_gsup_mt_multi_part_sms() ); execute( TC_lu_and_mo_ussd_single_request() ); diff --git a/msc/expected-results.xml b/msc/expected-results.xml index aeb2d24..84df264 100644 --- a/msc/expected-results.xml +++ b/msc/expected-results.xml @@ -58,6 +58,7 @@ + Tguard timeout MSC_Tests.ttcn:MASKED MSC_Tests control part -- To view, visit https://gerrit.osmocom.org/12627 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I3a52d44f4abde9b6b471b9108c1cee905884c9bc Gerrit-Change-Number: 12627 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 18:55:30 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 1 Feb 2019 18:55:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC_Tests.ttcn: introduce TC_gsup_mo_mt_sms_rp_mr In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/12689 ) Change subject: MSC_Tests.ttcn: introduce TC_gsup_mo_mt_sms_rp_mr ...................................................................... MSC_Tests.ttcn: introduce TC_gsup_mo_mt_sms_rp_mr The idea of this test case is to verify SM-RP-MR assignment for a few concurrent MO/MT SMS being sent over GSUP. Basically, the algorythm is the following: 1.0 establish a RAN connection, 1.1 send CM Service Request for MO SMMA indication, 1.2 submit MO SMMA indication on DTAP, 1.3 expect MO-ForwardSM-Req on GSUP, 2.0 send MT SMS using MT-ForwardSM-Req on GSUP, 2.1 expect CP-DATA/RP-DATA for MT SMS on DTAP, 3.0 compare both SM-RP-MR values (for MT, assigned by the MSC), 3.1 send MO-ForwardSM-Res for MO SMMA on GSUP, 3.1.1 expect CP-DATA/RP-ACK for MO SMMA on DTAP, 3.2 send CP-DATA/RP-ACK for MT SMS on DTAP, 3.2.1 expect MT-ForwardSM-Res for MT SMS on GSUP. Change-Id: I17cbbaa64d9bce770f985588e93cd3eecd732120 --- M msc/MSC_Tests.ttcn M msc/expected-results.xml 2 files changed, 106 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index fb0798c..8d29e7a 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -2521,6 +2521,110 @@ f_vty_config(MSCVTY, "msc", "no sms-over-gsup"); } +/* Test SM-RP-MR assignment for MT-SMS over GSUP */ +private function f_tc_gsup_mo_mt_sms_rp_mr(charstring id, BSC_ConnHdlrPars pars) +runs on BSC_ConnHdlr { + var SmsParameters spars_mo := valueof(t_SmsPars); /* MO SMMA */ + var SmsParameters spars_mt := valueof(t_SmsPars); /* MT SMS */ + + f_init_handler(pars); + + /* We need to inspect GSUP activity */ + f_create_gsup_expect(hex2str(g_pars.imsi)); + + /* Perform location update */ + f_perform_lu(); + + /* Register an 'expect' for given IMSI (+TMSI) */ + if (isvalue(g_pars.tmsi)) { + f_bssmap_register_imsi(g_pars.imsi, g_pars.tmsi); + } else { + f_bssmap_register_imsi(g_pars.imsi, 'FFFFFFFF'O); + } + + /* Send CM Service Request for MO SMMA */ + f_establish_fully(EST_TYPE_MO_SMS); + + /* Submit MO SMMA on DTAP */ + log("Submit MO SMMA on DTAP, SM-RP-MR is '00'O"); + spars_mo.rp.msg_ref := '00'O; + f_mo_smma(spars_mo); + + /* Expect MO-forwardSM-Req for MO SMMA on GSUP */ + alt { + [] GSUP.receive(tr_GSUP_MO_READY_FOR_SM_REQ( + imsi := g_pars.imsi, + sm_rp_mr := spars_mo.rp.msg_ref, + sm_alert_rsn := GSUP_SM_ALERT_RSN_TYPE_MEM_AVAIL + )) { + log("RX MO-ReadyForSM-Req, SM-RP-MR is '00'O"); + setverdict(pass); + } + [] GSUP.receive { + log("RX unexpected GSUP message"); + setverdict(fail); + mtc.stop; + } + } + + /* Submit MT SMS on GSUP */ + log("TX MT-forwardSM-Req for the MT SMS"); + f_gsup_forwardSM_req(spars_mt); + + /* Wait for MT SMS on DTAP */ + f_mt_sms_expect(spars_mt); + log("RX MT SMS on DTAP, DTAP TID is ", spars_mt.tid, + ", SM-RP-MR is ", spars_mt.rp.msg_ref); + + /* Both SM-RP-MR values shall be different */ + if (spars_mo.rp.msg_ref == spars_mt.rp.msg_ref) { + log("Both SM-RP-MR values shall be different"); + setverdict(fail); + } + + /* SM-RP-MR value for MT SMS shall be assigned */ + if (spars_mt.rp.msg_ref == 'FF'O) { + log("Unassigned SM-RP-MR value for the MT SMS"); + setverdict(fail); + } + + /* Trigger RP-ACK for MO SMMA by sending MO-forwardSM-Res */ + GSUP.send(valueof(ts_GSUP_MO_READY_FOR_SM_RES( + imsi := g_pars.imsi, + sm_rp_mr := spars_mo.rp.msg_ref))); + /* Expect RP-ACK for MO SMMA on DTAP */ + f_mo_sms_wait_rp_ack(spars_mo); + + /* Send RP-ACK for MT SMS and expect MT-forwardSM-Res on GSUP */ + f_mt_sms_send_rp_ack(spars_mt); + alt { + [] GSUP.receive(tr_GSUP_MT_FORWARD_SM_RES( + imsi := g_pars.imsi, + sm_rp_mr := spars_mt.rp.msg_ref + )) { + log("RX MT-forwardSM-Res (RP-ACK)"); + setverdict(pass); + } + [] GSUP.receive { + log("RX unexpected GSUP message"); + setverdict(fail); + mtc.stop; + } + } + + f_expect_clear(); +} +testcase TC_gsup_mo_mt_sms_rp_mr() runs on MTC_CT { + var BSC_ConnHdlrPars pars; + var BSC_ConnHdlr vc_conn; + f_init(); + pars := f_init_pars(93); + f_vty_config(MSCVTY, "msc", "sms-over-gsup"); + vc_conn := f_start_handler_with_pars(refers(f_tc_gsup_mo_mt_sms_rp_mr), pars); + vc_conn.done; + f_vty_config(MSCVTY, "msc", "no sms-over-gsup"); +} + /* Test multi-part MT-SMS over GSUP */ private function f_tc_gsup_mt_multi_part_sms(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr { @@ -4457,6 +4561,7 @@ execute( TC_gsup_mt_sms_ack() ); execute( TC_gsup_mt_sms_err() ); execute( TC_gsup_mt_sms_rp_mr() ); + execute( TC_gsup_mo_mt_sms_rp_mr() ); execute( TC_gsup_mt_multi_part_sms() ); execute( TC_lu_and_mo_ussd_single_request() ); diff --git a/msc/expected-results.xml b/msc/expected-results.xml index 84df264..efe7219 100644 --- a/msc/expected-results.xml +++ b/msc/expected-results.xml @@ -59,6 +59,7 @@ + Tguard timeout MSC_Tests.ttcn:MASKED MSC_Tests control part -- To view, visit https://gerrit.osmocom.org/12689 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I17cbbaa64d9bce770f985588e93cd3eecd732120 Gerrit-Change-Number: 12689 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 18:55:54 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 1 Feb 2019 18:55:54 +0000 Subject: Change in osmo-msc[master]: transaction: change arguments of trans_find_by_sm_rp_mr() In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/12686 ) Change subject: transaction: change arguments of trans_find_by_sm_rp_mr() ...................................................................... transaction: change arguments of trans_find_by_sm_rp_mr() The need to pass a pointer to RAN connection in order to find a transaction limits possible use cases of trans_find_by_sm_rp_mr(), e.g. when we need to find a transaction, but RAN connection is not established yet. Moreover, the pointer to RAN connection was only used to obtain pointers to gsm_network and vlr_subscr, so we can just pass them directly. Change-Id: I093f36d63e671e50e54fc6236e97a777cc6da77b --- M include/osmocom/msc/transaction.h M src/libmsc/gsm_04_11_gsup.c M src/libmsc/transaction.c 3 files changed, 7 insertions(+), 6 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/msc/transaction.h b/include/osmocom/msc/transaction.h index 6e67f39..36e9bc1 100644 --- a/include/osmocom/msc/transaction.h +++ b/include/osmocom/msc/transaction.h @@ -100,7 +100,8 @@ uint8_t proto, uint8_t trans_id); struct gsm_trans *trans_find_by_callref(const struct gsm_network *net, uint32_t callref); -struct gsm_trans *trans_find_by_sm_rp_mr(const struct ran_conn *conn, +struct gsm_trans *trans_find_by_sm_rp_mr(const struct gsm_network *net, + const struct vlr_subscr *vsub, uint8_t sm_rp_mr); struct gsm_trans *trans_alloc(struct gsm_network *net, diff --git a/src/libmsc/gsm_04_11_gsup.c b/src/libmsc/gsm_04_11_gsup.c index f2de95f..8b1225e 100644 --- a/src/libmsc/gsm_04_11_gsup.c +++ b/src/libmsc/gsm_04_11_gsup.c @@ -176,7 +176,7 @@ } /* Attempt to find DTAP-transaction */ - trans = trans_find_by_sm_rp_mr(conn, *(gsup_msg->sm_rp_mr)); + trans = trans_find_by_sm_rp_mr(net, vsub, *(gsup_msg->sm_rp_mr)); if (!trans) { LOGP(DLSMS, LOGL_NOTICE, "No transaction found for %s, " "ignoring %s-%s message...\n", vlr_subscr_name(vsub), diff --git a/src/libmsc/transaction.c b/src/libmsc/transaction.c index 70a39e8..7c91c92 100644 --- a/src/libmsc/transaction.c +++ b/src/libmsc/transaction.c @@ -72,15 +72,15 @@ } /*! Find a transaction by SM-RP-MR (RP Message Reference) - * \param[in] conn Connection in which we want to find transaction + * \param[in] net Network in which we should search + * \param[in] vsub Subscriber for which we should search * \param[in] sm_rp_mr RP Message Reference (see GSM TS 04.11, section 8.2.3) * \returns Matching transaction, NULL otherwise */ -struct gsm_trans *trans_find_by_sm_rp_mr(const struct ran_conn *conn, +struct gsm_trans *trans_find_by_sm_rp_mr(const struct gsm_network *net, + const struct vlr_subscr *vsub, uint8_t sm_rp_mr) { - struct gsm_network *net = conn->network; - struct vlr_subscr *vsub = conn->vsub; struct gsm_trans *trans; llist_for_each_entry(trans, &net->trans_list, entry) { -- To view, visit https://gerrit.osmocom.org/12686 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I093f36d63e671e50e54fc6236e97a777cc6da77b Gerrit-Change-Number: 12686 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 18:55:55 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 1 Feb 2019 18:55:55 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_11.c: also assign SM-RP-MR to MO transactions In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/12687 ) Change subject: libmsc/gsm_04_11.c: also assign SM-RP-MR to MO transactions ...................................................................... libmsc/gsm_04_11.c: also assign SM-RP-MR to MO transactions Previously, SM-RP Message Reference was assigned to MT transactions only, but not to MO transactions. As a result, this could lead to having a few transactions with duplicate SM-RP-MR value, because in case of MO SMS, trans->sms.sm_rp_mr would remain 0x00. Let's parse SM-RP-MR from MO SMS messages in gsm0411_rcv_sms(), and assign it to the new transaction after allocation. Change-Id: I4d07354175444f9764fb0dd6ea188a64494d79fe --- M src/libmsc/gsm_04_11.c 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/libmsc/gsm_04_11.c b/src/libmsc/gsm_04_11.c index 4dc07bd..2f39b06 100644 --- a/src/libmsc/gsm_04_11.c +++ b/src/libmsc/gsm_04_11.c @@ -1179,6 +1179,7 @@ struct gsm48_hdr *gh = msgb_l3(msg); uint8_t msg_type = gh->msg_type; uint8_t transaction_id = gsm48_hdr_trans_id_flip_ti(gh); + struct gsm411_rp_hdr *rph = (struct gsm411_rp_hdr *) gh->data; struct gsm_trans *trans; int new_trans = 0; int rc = 0; @@ -1210,6 +1211,7 @@ return -ENOMEM; } + trans->sms.sm_rp_mr = rph->msg_ref; /* SM-RP Message Reference */ trans->dlci = OMSC_LINKID_CB(msg); /* DLCI as received from BSC */ new_trans = 1; -- To view, visit https://gerrit.osmocom.org/12687 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I4d07354175444f9764fb0dd6ea188a64494d79fe Gerrit-Change-Number: 12687 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 18:55:55 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 1 Feb 2019 18:55:55 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_11.c: introduce and use gsm411_assign_sm_rp_mr() In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/12628 ) Change subject: libmsc/gsm_04_11.c: introduce and use gsm411_assign_sm_rp_mr() ...................................................................... libmsc/gsm_04_11.c: introduce and use gsm411_assign_sm_rp_mr() Initially, it was assumed that if there is no active RAN connection, we can just start counting from 0x00, as there are no other SMS related transactions, and transaction itself is allocated using talloc_zero(). Until now it was looking good, but... As soon as we establish RAN connection with subscriber, we already have a transaction with SM-RP-MR 0x00, but conn->next_rp_ref also remains 0x00 - it isn't being increased! It means that we can face a SM-RP-MR conflict (or collision) if another MT SMS would arrive to the MSC (from SMSC over GSUP) when this transaction is still active, i.e. the first SMS is still being sent, because conn->next_rp_ref++ would return 0x00 again. Moreover, there might be already a MO SMS transaction, and using the conn->next_rp_ref counter wouldn't prevent us from having duplicate SM-RP-MR value. Let's get rid of this per-connection counter, and introduce a function instead, that would iterate over existing transactions and look for an unused SM-RP-MR value. This change makes the following test cases pass: - TC_gsup_mt_sms_rp_mr, - TC_gsup_mo_mt_sms_rp_mr. Discovered by: Neels Hofmeyr Related Change-Id: (TTCN) I3a52d44f4abde9b6b471b9108c1cee905884c9bc Related Change-Id: (TTCN) I17cbbaa64d9bce770f985588e93cd3eecd732120 Change-Id: Ife6d954c46b7d8348a4221ab677d0355eb3ee7ac --- M include/osmocom/msc/ran_conn.h M src/libmsc/gsm_04_11.c 2 files changed, 29 insertions(+), 5 deletions(-) Approvals: Harald Welte: Looks good to me, approved Max: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/msc/ran_conn.h b/include/osmocom/msc/ran_conn.h index bec7201..affebc8 100644 --- a/include/osmocom/msc/ran_conn.h +++ b/include/osmocom/msc/ran_conn.h @@ -102,8 +102,6 @@ /* LU expiration handling */ uint8_t expire_timer_stopped; - /* SMS helpers for libmsc */ - uint8_t next_rp_ref; /* Are we part of a special "silent" call */ int silent_call; diff --git a/src/libmsc/gsm_04_11.c b/src/libmsc/gsm_04_11.c index 2f39b06..1edf2d4 100644 --- a/src/libmsc/gsm_04_11.c +++ b/src/libmsc/gsm_04_11.c @@ -1028,6 +1028,30 @@ return trans; } +/* Assigns an (unused) SM-RP-MR value to a given transaction */ +static int gsm411_assign_sm_rp_mr(struct gsm_trans *trans) +{ + uint8_t mr; + + /* After allocation a given transaction has zero-initialized + * SM-RP-MR value, so trans_find_by_sm_rp_mr() may consider + * 0x00 as used. This is why we "poison" this transaction + * using the highest value. */ + trans->sms.sm_rp_mr = 0xff; + + /* According to 8.2.3, MR is in the range 0 through 255 */ + for (mr = 0x00; mr < 0xff; mr++) { + if (trans_find_by_sm_rp_mr(trans->net, trans->vsub, mr)) + continue; /* this MR is busy, find another one */ + /* An unused value has been found, assign it */ + trans->sms.sm_rp_mr = mr; + return 0; + } + + /* All possible values are busy */ + return -EBUSY; +} + static struct gsm_trans *gsm411_alloc_mt_trans(struct gsm_network *net, struct vlr_subscr *vsub) { @@ -1052,9 +1076,11 @@ if (!trans) return NULL; - if (conn) { - /* Generate unique RP Message Reference */ - trans->sms.sm_rp_mr = conn->next_rp_ref++; + /* Assign a unique SM-RP Message Reference */ + if (gsm411_assign_sm_rp_mr(trans) != 0) { + LOGP(DLSMS, LOGL_ERROR, "Failed to assign SM-RP-MR\n"); + trans_free(trans); + return NULL; } /* Use SAPI 3 (see GSM 04.11, section 2.3) */ -- To view, visit https://gerrit.osmocom.org/12628 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ife6d954c46b7d8348a4221ab677d0355eb3ee7ac Gerrit-Change-Number: 12628 Gerrit-PatchSet: 4 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 22:35:55 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Feb 2019 22:35:55 +0000 Subject: Change in libosmocore[master]: add osmo_tdef API, originally adopted from osmo-bsc T_def In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12717 ) Change subject: add osmo_tdef API, originally adopted from osmo-bsc T_def ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12717 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ibd6b1ed7f1bd6e1f2e0fde53352055a4468f23e5 Gerrit-Change-Number: 12717 Gerrit-PatchSet: 4 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Fri, 01 Feb 2019 22:35:55 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 22:36:17 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Feb 2019 22:36:17 +0000 Subject: Change in libosmocore[master]: osmo_fsm_inst_state_chg(): clamp timeout_secs to <= ~68 years In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12716 ) Change subject: osmo_fsm_inst_state_chg(): clamp timeout_secs to <= ~68 years ...................................................................... osmo_fsm_inst_state_chg(): clamp timeout_secs to <= ~68 years During testing of the upcoming tdef API, it became apparent that passing very large timeout values to osmo_fsm_inst_state_chg() wraps back in the number range, and might actually result in effectively very short timeouts instead. Since time_t's range is not well defined across platforms, use a reasonable maximum value of signed 32 bit integer. Hence this will be safe at least on systems with an int32_t for struct timeval.tv_sec and larger. Clamp the osmo_fsm_inst_state_chg() timeout_secs argument to a maximum of 0x7fffffff, which amounts to just above 68 years: float(0x7fffffff) / (60. * 60 * 24 * 365.25) = 68.04965038532715 (In upcoming patch Ibd6b1ed7f1bd6e1f2e0fde53352055a4468f23e5, this can be verified to work by invoking tdef_test manually with a cmdline argument passed to enable the range check.) Change-Id: I35ec4654467b1d6040c8aa215049766089e5e64a --- M src/fsm.c 1 file changed, 13 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved Vadim Yanitskiy: Looks good to me, but someone else must approve diff --git a/src/fsm.c b/src/fsm.c index ae7c0f5..0d31f87 100644 --- a/src/fsm.c +++ b/src/fsm.c @@ -437,6 +437,11 @@ uint32_t old_state = fi->state; const struct osmo_fsm_state *st = &fsm->states[fi->state]; + /* Limit to 0x7fffffff seconds as explained by + * _osmo_fsm_inst_state_chg()'s API doc. */ + if (timeout_secs > 0x7fffffff) + timeout_secs = 0x7fffffff; + /* validate if new_state is a valid state */ if (!(st->out_state_mask & (1 << new_state))) { LOGPFSMLSRC(fi, LOGL_ERROR, file, line, @@ -493,9 +498,16 @@ * timer_cb. If passing timeout_secs == 0, it is recommended to also pass T == * 0, so that fi->T is reset to 0 when no timeout is invoked. * + * Range: since time_t's maximum value is not well defined in a cross platform + * way, clamp timeout_secs to the maximum of the signed 32bit range, or roughly + * 68 years (float(0x7fffffff) / (60. * 60 * 24 * 365.25) = 68.0497). Thus + * ensure that very large timeouts do not wrap around to become very small + * ones. Note though that this might still be unsafe on systems with a time_t + * range below 32 bits. + * * \param[in] fi FSM instance whose state is to change * \param[in] new_state The new state into which we should change - * \param[in] timeout_secs Timeout in seconds (if !=0) + * \param[in] timeout_secs Timeout in seconds (if !=0), maximum-clamped to 2147483647 seconds. * \param[in] T Timer number (if \ref timeout_secs != 0) * \param[in] file Calling source file (from osmo_fsm_inst_state_chg macro) * \param[in] line Calling source line (from osmo_fsm_inst_state_chg macro) -- To view, visit https://gerrit.osmocom.org/12716 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I35ec4654467b1d6040c8aa215049766089e5e64a Gerrit-Change-Number: 12716 Gerrit-PatchSet: 4 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 22:37:41 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Feb 2019 22:37:41 +0000 Subject: Change in libosmocore[master]: vty: enable optional-multi-choice syntax: ([one]|[two]) In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12769 ) Change subject: vty: enable optional-multi-choice syntax: ([one]|[two]) ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12769 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9a8474bd89ddc2155c58bfca7bd038d586aaa60a Gerrit-Change-Number: 12769 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Fri, 01 Feb 2019 22:37:41 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 22:39:11 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Feb 2019 22:39:11 +0000 Subject: Change in libosmocore[master]: vty: enable optional-multi-choice syntax: [(one|two)] In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12770 ) Change subject: vty: enable optional-multi-choice syntax: [(one|two)] ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12770 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I952b3c00f97e2447f2308b0ec6f5f1714692b5b2 Gerrit-Change-Number: 12770 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 01 Feb 2019 22:39:11 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 22:40:18 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Feb 2019 22:40:18 +0000 Subject: Change in libosmocore[master]: vty: enable tab-completion for optional-multi-choice args In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12771 ) Change subject: vty: enable tab-completion for optional-multi-choice args ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12771 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I8c304300b3633bb6e9b3457fcfa42121c8272ac0 Gerrit-Change-Number: 12771 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Fri, 01 Feb 2019 22:40:18 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 22:41:17 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Feb 2019 22:41:17 +0000 Subject: Change in libosmocore[master]: vty telnet: consistently never change nodes upon CTRL-C In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12772 ) Change subject: vty telnet: consistently never change nodes upon CTRL-C ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12772 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4f339ba61f1c273fa7da85caf77ba116ae2697b1 Gerrit-Change-Number: 12772 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 01 Feb 2019 22:41:17 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 22:41:41 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Feb 2019 22:41:41 +0000 Subject: Change in libosmocore[master]: vty api: add vty_out_va() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12773 ) Change subject: vty api: add vty_out_va() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12773 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie6e6f11a6b794f3cb686350c1ed678e4d5bbbb75 Gerrit-Change-Number: 12773 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Fri, 01 Feb 2019 22:41:41 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 1 22:42:45 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 1 Feb 2019 22:42:45 +0000 Subject: Change in libosmocore[master]: doxygen: enable cross referencing everywhere In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12774 ) Change subject: doxygen: enable cross referencing everywhere ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib03d0b70d536c8f1386def666c89106a840f7363 Gerrit-Change-Number: 12774 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Fri, 01 Feb 2019 22:42:45 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sat Feb 2 14:18:34 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 2 Feb 2019 14:18:34 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-trx_=C2=BB_--with-ss?= =?UTF-8?Q?e,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#855?= Message-ID: <464661780.47.1549117114197.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 107.73 KB...] Parsing files Building group list... Building directory list... Building namespace list... Building file list... Building class list... Associating documentation with classes... Computing nesting relations for classes... Building example list... Searching for enumerations... Searching for documented typedefs... Searching for members imported via using declarations... Searching for included using directives... Searching for documented variables... Building interface member list... Building member list... Searching for friends... Searching for documented defines... Computing class inheritance relations... Computing class usage relations... Flushing cached template relations that have become invalid... Computing class relations... Add enum values to enums... Searching for member function documentation... Creating members for template instances... Building page list... Search for main page... Computing page relations... Determining the scope of groups... Sorting lists... Freeing entry tree Determining which enums are documented Computing member relations... Building full member lists recursively... Adding members to member groups. Computing member references... Inheriting documentation... Generating disk names... Adding source references... Adding xrefitems... Sorting member lists... Computing dependencies between directories... Generating citations page... Counting data structures... Resolving user defined references... Finding anchors and sections in the documentation... Transferring function references... Combining using relations... Adding members to index pages... Generating style sheet... Generating search indices... Generating example documentation... Generating file sources... Generating file documentation... Generating page documentation... Generating group documentation... Generating class documentation... Generating namespace index... Generating graph info page... Generating directory documentation... Generating index page... Generating page index... Generating module index... Generating namespace index... Generating namespace member index... Generating annotated compound index... Generating alphabetical compound index... Generating hierarchical class index... Generating graphical class hierarchy... Generating member index... Generating file index... Generating file member index... Generating example index... finalizing index lists... writing tag file... Running dot... Running dot for graph 1/1 lookup cache used 0/65536 hits=0 misses=0 finished... make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_guide.html /usr/bin/install -c -m 644 ../README ' cp -r html make[5]: Leaving directory ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in firmware make[2]: Entering directory ' Making install in include make[3]: Entering directory ' PYTHONPATH=../../usrp/firmware/include ./generate_regs.py ./fpga_regs_common.h fpga_regs_common.v PYTHONPATH=../../usrp/firmware/include ./generate_regs.py ./fpga_regs_standard.h fpga_regs_standard.v make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_i2c_addr.h usrp_spi_defs.h fpga_regs_common.h fpga_regs_standard.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' Making install in lib make[3]: Entering directory ' sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c delay.c -o delay.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c fx2utils.c -o fx2utils.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c i2c.c -o i2c.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c isr.c -o isr.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c timer.c -o timer.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c usb_common.c -o usb_common.rel usb_common.c:65: warning 196: pointer target lost const qualifier usb_common.c:66: warning 196: pointer target lost const qualifier usb_common.c:67: warning 196: pointer target lost const qualifier usb_common.c:68: warning 196: pointer target lost const qualifier usb_common.c:71: warning 196: pointer target lost const qualifier usb_common.c:72: warning 196: pointer target lost const qualifier usb_common.c:73: warning 196: pointer target lost const qualifier usb_common.c:74: warning 196: pointer target lost const qualifier timer.c:45: warning 158: overflow in implicit constant conversion -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'int fixed' to type 'volatile-unsigned-char xdata* xdata' isr.c:73: warning 94: comparison is always false due to limited range of data type isr.c:100: warning 94: comparison is always false due to limited range of data type usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:217: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:226: warning 126: unreachable code usb_common.c:184: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG usb_common.c:315: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG rm -f libfx2.lib touch libfx2.lib for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done make[3]: Leaving directory ' Making install in src make[3]: Entering directory ' Making install in common make[4]: Entering directory ' make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory ' make[4]: Leaving directory ' Making install in usrp2 make[4]: Entering directory ' test -f `basename 'eeprom_boot.a51'` || ln -s 'eeprom_boot.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_init.rel `test -f 'eeprom_init.c' || echo './'`eeprom_init.c test -f `basename '_startup.a51'` || ln -s '_startup.a51' . test -f `basename 'vectors.a51'` || ln -s 'vectors.a51' . srcdir=. /usr/bin/python ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_common.rel `test -f 'usrp_common.c' || echo './'`usrp_common.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o board_specific.rel `test -f 'board_specific.c' || echo './'`board_specific.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_load.rel `test -f 'fpga_load.c' || echo './'`fpga_load.c test -f ../common/`basename '_startup.a51'` -o \ \! -f `dirname '_startup.a51'`/../common/`basename '_startup.a51'` \ || ln -s `dirname '_startup.a51'`/../common/`basename '_startup.a51'` ../common/`basename '_startup.a51'` test -f ../common/`basename 'vectors.a51'` -o \ \! -f `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` \ || ln -s `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` ../common/`basename 'vectors.a51'` test -f ../common/`basename 'eeprom_boot.a51'` -o \ \! -f `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` \ || ln -s `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` ../common/`basename 'eeprom_boot.a51'` sdas8051 -plosgff `basename '_startup.a51'` sdas8051 -plosgff `basename 'vectors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_rev2.rel `test -f 'fpga_rev2.c' || echo './'`fpga_rev2.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o init_gpif.rel `test -f 'init_gpif.c' || echo './'`init_gpif.c ../common/fpga_load.c:139: warning 85: in function clock_out_config_byte unreferenced function argument : 'bits' board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'bits' board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'mask' srcdir=. /usr/bin/python ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h ../common/fpga_load.c:181: warning 126: unreachable code sdas8051 -plosgff `basename 'eeprom_boot.a51'` test -f `basename 'usb_descriptors.a51'` || ln -s 'usb_descriptors.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o spi.rel `test -f 'spi.c' || echo './'`spi.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_io.rel `test -f 'eeprom_io.c' || echo './'`eeprom_io.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_main.rel `test -f 'usrp_main.c' || echo './'`usrp_main.c test -f ../common/`basename 'usb_descriptors.a51'` -o \ \! -f `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` \ || ln -s `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` ../common/`basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o eeprom_boot.ihx eeprom_boot.rel eeprom_init.rel _startup.rel sdas8051 -plosgff `basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_gpif.rel `test -f 'usrp_gpif.c' || echo './'`usrp_gpif.c /usr/bin/python ./../common/build_eeprom.py -p -r2 eeprom_boot.ihx > burn-usrp2-eeprom /usr/bin/python ./../common/build_eeprom.py -p -r4 eeprom_boot.ihx > burn-usrp4-eeprom usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion chmod +x burn-usrp2-eeprom usrp_main.c:223: warning 112: function 'setup_flowstate_common' implicit declaration usrp_main.c:260: warning 112: function 'setup_flowstate_write' implicit declaration usrp_main.c:282: warning 112: function 'setup_flowstate_read' implicit declaration chmod +x burn-usrp4-eeprom usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o std.ihx vectors.rel usrp_main.rel usrp_common.rel board_specific.rel fpga_load.rel fpga_rev2.rel init_gpif.rel usrp_gpif.rel usb_descriptors.rel spi.rel eeprom_io.rel _startup.rel ?ASlink-Warning-Undefined Global '_setup_flowstate_read' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_write' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_common' referenced by module 'usrp_main' Makefile:688: recipe for target 'std.ihx' failed make[4]: *** [std.ihx] Error 1 make[4]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[3]: *** [install-recursive] Error 1 make[3]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[2]: *** [install-recursive] Error 1 make[2]: Leaving directory ' Makefile:628: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:925: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Sat Feb 2 23:38:01 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Feb 2019 23:38:01 +0000 Subject: Change in libosmocore[master]: Extend gsm_04_08.h with CSFB related definitiosn form 44.018 Rel 15 Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12780 Change subject: Extend gsm_04_08.h with CSFB related definitiosn form 44.018 Rel 15 ...................................................................... Extend gsm_04_08.h with CSFB related definitiosn form 44.018 Rel 15 These are some IEI definitions that we'll need for CSFB Fast Return Change-Id: I0e101af316438b56d63d43fc2cb16d7caf563d07 --- M include/osmocom/gsm/protocol/gsm_04_08.h 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/80/12780/1 diff --git a/include/osmocom/gsm/protocol/gsm_04_08.h b/include/osmocom/gsm/protocol/gsm_04_08.h index fbd4fe6..c052e4c 100644 --- a/include/osmocom/gsm/protocol/gsm_04_08.h +++ b/include/osmocom/gsm/protocol/gsm_04_08.h @@ -1770,8 +1770,10 @@ #define GSM48_IE_GROUP_CHDES 0x74 #define GSM48_IE_BA_LIST_PREF 0x75 #define GSM48_IE_MOB_OVSERV_DIF 0x77 +#define GSM48_IE_CELL_SEL_IND_AFTER_REL 0x77 /* 44.018 Section 9.1.7 */ #define GSM48_IE_REALTIME_DIFF 0x7b #define GSM48_IE_START_TIME 0x7c +#define GSM48_IE_INDIVIDUAL_PRIORITIES 0x7c /* 44.018 Section 9.1.7 */ #define GSM48_IE_TIMING_ADVANCE 0x7d #define GSM48_IE_GROUP_CIP_SEQ 0x80 #define GSM48_IE_CIP_MODE_SET 0x90 -- To view, visit https://gerrit.osmocom.org/12780 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0e101af316438b56d63d43fc2cb16d7caf563d07 Gerrit-Change-Number: 12780 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 2 23:42:44 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 2 Feb 2019 23:42:44 +0000 Subject: Change in libosmocore[master]: gsm_08_08.h: Add IEI definitions from Release 15 Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12781 Change subject: gsm_08_08.h: Add IEI definitions from Release 15 ...................................................................... gsm_08_08.h: Add IEI definitions from Release 15 Change-Id: If3649606ba7c25121e30ed02939ca08c94665be5 --- M include/osmocom/gsm/protocol/gsm_08_08.h 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/81/12781/1 diff --git a/include/osmocom/gsm/protocol/gsm_08_08.h b/include/osmocom/gsm/protocol/gsm_08_08.h index 33f3a6f..721da33 100644 --- a/include/osmocom/gsm/protocol/gsm_08_08.h +++ b/include/osmocom/gsm/protocol/gsm_08_08.h @@ -298,6 +298,11 @@ GSM0808_IE_CN_TO_MS_TRANSP_INFO = 0x93, GSM0808_IE_SELECTED_PLMN_ID = 0x94, GSM0808_IE_LAST_USED_EUTRAN_PLMN_ID = 0x95, + GSM0808_IE_OLD_LAI = 0x96, + GSM0808_IE_ATTACH_INDICATOR = 0x97, + GSM0808_IE_SELECTED_OPERATOR = 0x98, + GSM0808_IE_PS_REGISTERED_OPERATOR = 0x99, + GSM0808_IE_CS_REGISTERED_OPERATOR = 0x9a, }; /* 3GPP TS 48.008 3.2.3 Signalling Field Element Coding */ -- To view, visit https://gerrit.osmocom.org/12781 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If3649606ba7c25121e30ed02939ca08c94665be5 Gerrit-Change-Number: 12781 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 09:26:37 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 3 Feb 2019 09:26:37 +0000 Subject: Change in osmocom-bb[master]: mobile/gsm322.c: fix: properly print stored BA list entities Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/12782 Change subject: mobile/gsm322.c: fix: properly print stored BA list entities ...................................................................... mobile/gsm322.c: fix: properly print stored BA list entities As we do iterate over all entities in the BA list, it makes more sense to print each one separately instead of printing the last one. Moreover, as soon as the iteration is finished, *ba points to some zero-initialized part of memory: gsm322.c:5170 Write stored BA list (mcc=000 mnc=000 Marshall Islands, 000) After this patch: gsm322.c:5162 Write stored BA list (mcc=250 mnc=99 Russian Federation, Beeline) gsm322.c:5162 Write stored BA list (mcc=250 mnc=01 Russian Federation, MegaFon) gsm322.c:5162 Write stored BA list (mcc=250 mnc=02 Russian Federation, MTS) gsm322.c:5162 Write stored BA list (mcc=544 mnc=31 Serbia, Telenor) Change-Id: I5160492e6125401c6a1765f54d129b1f1cd503fc --- M src/host/layer23/src/mobile/gsm322.c 1 file changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/82/12782/1 diff --git a/src/host/layer23/src/mobile/gsm322.c b/src/host/layer23/src/mobile/gsm322.c index f2b51df..7da63e3 100644 --- a/src/host/layer23/src/mobile/gsm322.c +++ b/src/host/layer23/src/mobile/gsm322.c @@ -5156,6 +5156,11 @@ buf[2] = ba->mnc >> 8; buf[3] = ba->mnc & 0xff; + LOGP(DCS, LOGL_INFO, "Write stored BA list (mcc=%s " + "mnc=%s %s, %s)\n", gsm_print_mcc(ba->mcc), + gsm_print_mnc(ba->mnc), gsm_get_mcc(ba->mcc), + gsm_get_mnc(ba->mcc, ba->mnc)); + rc += fwrite(buf, 4, 1, fp); rc += fwrite(ba->freq, sizeof(ba->freq), 1, fp); } @@ -5163,12 +5168,7 @@ } } - if (rc == 2) - LOGP(DCS, LOGL_INFO, "Write stored BA list (mcc=%s " - "mnc=%s %s, %s)\n", gsm_print_mcc(ba->mcc), - gsm_print_mnc(ba->mnc), gsm_get_mcc(ba->mcc), - gsm_get_mnc(ba->mcc, ba->mnc)); - else + if (rc != 2) LOGP(DCS, LOGL_ERROR, "Failed to write BA list\n"); /* free lists */ -- To view, visit https://gerrit.osmocom.org/12782 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5160492e6125401c6a1765f54d129b1f1cd503fc Gerrit-Change-Number: 12782 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 09:26:37 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 3 Feb 2019 09:26:37 +0000 Subject: Change in osmocom-bb[master]: common/sap_fsm.c: register SAP FSM on DSO load Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/12783 Change subject: common/sap_fsm.c: register SAP FSM on DSO load ...................................................................... common/sap_fsm.c: register SAP FSM on DSO load Change-Id: Id539c2a3477526b816918070bab93b26c900998a --- M src/host/layer23/src/common/sap_fsm.c 1 file changed, 5 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/83/12783/1 diff --git a/src/host/layer23/src/common/sap_fsm.c b/src/host/layer23/src/common/sap_fsm.c index 9591dab..f07488f 100644 --- a/src/host/layer23/src/common/sap_fsm.c +++ b/src/host/layer23/src/common/sap_fsm.c @@ -674,10 +674,6 @@ sap = &ms->sap_entity; OSMO_ASSERT(sap->fi == NULL); - /* Register our FSM (if required) */ - if (!osmo_fsm_find_by_name(sap_fsm_def.name)) - OSMO_ASSERT(osmo_fsm_register(&sap_fsm_def) == 0); - /* Allocate an instance using ms as talloc context */ sap->fi = osmo_fsm_inst_alloc(&sap_fsm_def, ms, ms, LOGL_DEBUG, ms->name); @@ -688,3 +684,8 @@ return 0; } + +static __attribute__((constructor)) void on_dso_load(void) +{ + OSMO_ASSERT(osmo_fsm_register(&sap_fsm_def) == 0); +} -- To view, visit https://gerrit.osmocom.org/12783 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id539c2a3477526b816918070bab93b26c900998a Gerrit-Change-Number: 12783 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 09:26:38 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 3 Feb 2019 09:26:38 +0000 Subject: Change in osmocom-bb[master]: common/osmocom_data.h: use proper type for SAP card status Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/12784 Change subject: common/osmocom_data.h: use proper type for SAP card status ...................................................................... common/osmocom_data.h: use proper type for SAP card status Change-Id: I7388ec60ca2dff59c0a0e3fdacf5a3af0c244c73 --- M src/host/layer23/include/osmocom/bb/common/osmocom_data.h 1 file changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/84/12784/1 diff --git a/src/host/layer23/include/osmocom/bb/common/osmocom_data.h b/src/host/layer23/include/osmocom/bb/common/osmocom_data.h index ee48d6d..14e594c 100644 --- a/src/host/layer23/include/osmocom/bb/common/osmocom_data.h +++ b/src/host/layer23/include/osmocom/bb/common/osmocom_data.h @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -25,7 +26,9 @@ struct osmosap_entity { struct osmo_fsm_inst *fi; uint16_t max_msg_size; - uint8_t card_status; + + /* Current state of remote SIM card */ + enum sap_card_status_type card_status; /* Optional SAP message call-back */ sap_msg_cb_t sap_msg_cb; -- To view, visit https://gerrit.osmocom.org/12784 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I7388ec60ca2dff59c0a0e3fdacf5a3af0c244c73 Gerrit-Change-Number: 12784 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 09:26:38 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 3 Feb 2019 09:26:38 +0000 Subject: Change in osmocom-bb[master]: common/sim.c: get rid of unused 'payload' pointer Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/12785 Change subject: common/sim.c: get rid of unused 'payload' pointer ...................................................................... common/sim.c: get rid of unused 'payload' pointer This change fixes the following compiler warning: sim.c: In function ?gsm_sim_reply?: sim.c:149:11: warning: variable ?payload? set but not used [-Wunused-but-set-variable] uint8_t *payload; Change-Id: I3767b23bb1b28d3f4bb515d399bce160ba2eee09 --- M src/host/layer23/src/common/sim.c 1 file changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/85/12785/1 diff --git a/src/host/layer23/src/common/sim.c b/src/host/layer23/src/common/sim.c index a63ae2a..f214e67 100644 --- a/src/host/layer23/src/common/sim.c +++ b/src/host/layer23/src/common/sim.c @@ -146,7 +146,6 @@ struct gsm_sim *sim = &ms->sim; struct msgb *msg = sim->job_msg; struct sim_hdr *sh; - uint8_t *payload; uint16_t payload_len; struct gsm_sim_handler *handler; @@ -165,7 +164,6 @@ return; } - payload = msg->data + sizeof(*sh); payload_len = msg->len - sizeof(*sh); /* remove data */ -- To view, visit https://gerrit.osmocom.org/12785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I3767b23bb1b28d3f4bb515d399bce160ba2eee09 Gerrit-Change-Number: 12785 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 09:26:38 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 3 Feb 2019 09:26:38 +0000 Subject: Change in osmocom-bb[master]: common/sim.c: use msgb_get() in gsm_sim_reply() Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/12786 Change subject: common/sim.c: use msgb_get() in gsm_sim_reply() ...................................................................... common/sim.c: use msgb_get() in gsm_sim_reply() Change-Id: Ie5843c8adafc37da0d69c335c97b422552b85049 --- M src/host/layer23/src/common/sim.c 1 file changed, 1 insertion(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/86/12786/1 diff --git a/src/host/layer23/src/common/sim.c b/src/host/layer23/src/common/sim.c index f214e67..2c6c83c 100644 --- a/src/host/layer23/src/common/sim.c +++ b/src/host/layer23/src/common/sim.c @@ -146,7 +146,6 @@ struct gsm_sim *sim = &ms->sim; struct msgb *msg = sim->job_msg; struct sim_hdr *sh; - uint16_t payload_len; struct gsm_sim_handler *handler; LOGP(DSIM, LOGL_INFO, "sending result to callback function " @@ -164,11 +163,8 @@ return; } - payload_len = msg->len - sizeof(*sh); - /* remove data */ - msg->tail -= payload_len; - msg->len -= payload_len; + msgb_get(msg, msg->len - sizeof(*sh)); /* add reply data */ sh->job_type = result_type; -- To view, visit https://gerrit.osmocom.org/12786 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie5843c8adafc37da0d69c335c97b422552b85049 Gerrit-Change-Number: 12786 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sun Feb 3 09:46:01 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sun, 3 Feb 2019 09:46:01 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-trx_=C2=BB_--wit?= =?UTF-8?Q?h-sse,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#856?= In-Reply-To: <464661780.47.1549117114197.JavaMail.jenkins@jenkins.osmocom.org> References: <464661780.47.1549117114197.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <191495967.60.1549187161608.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Sun Feb 3 11:07:45 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Feb 2019 11:07:45 +0000 Subject: Change in libosmocore[master]: bitvec: Add bitvec_bytes_used() function Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12787 Change subject: bitvec: Add bitvec_bytes_used() function ...................................................................... bitvec: Add bitvec_bytes_used() function This new bitvec API function returns the number of bytes used in a given bit-vector. Change-Id: Id4bd7f7543f5b0f4f6f876e283bd065039c37646 --- M include/osmocom/core/bitvec.h M tests/bitvec/bitvec_test.c M tests/bitvec/bitvec_test.ok 3 files changed, 37 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/87/12787/1 diff --git a/include/osmocom/core/bitvec.h b/include/osmocom/core/bitvec.h index c9bab39..da2d4e4 100644 --- a/include/osmocom/core/bitvec.h +++ b/include/osmocom/core/bitvec.h @@ -84,4 +84,13 @@ unsigned int array_len, bool dry_run, unsigned int num_bits); +/*! Return the number of bytes used within the bit vector */ +static inline unsigned int bitvec_used_bytes(const struct bitvec *bv) +{ + unsigned int bytes = bv->cur_bit/8; + if (bv->cur_bit%8) + bytes++; + return bytes; +} + /*! @} */ diff --git a/tests/bitvec/bitvec_test.c b/tests/bitvec/bitvec_test.c index d0bc30c..c8795db 100644 --- a/tests/bitvec/bitvec_test.c +++ b/tests/bitvec/bitvec_test.c @@ -181,6 +181,29 @@ test_array_item(17, &b, n, array, n * 3); } +static void test_used_bytes() +{ + struct bitvec b; + uint8_t d[32]; + unsigned int i; + + b.data = d; + b.data_len = sizeof(d); + bitvec_zero(&b); + + OSMO_ASSERT(bitvec_used_bytes(&b) == 0); + + for (i = 0; i < 8; i++) { + bitvec_set_bit(&b, 1); + OSMO_ASSERT(bitvec_used_bytes(&b) == 1); + } + + for (i = 8; i < 16; i++) { + bitvec_set_bit(&b, 1); + OSMO_ASSERT(bitvec_used_bytes(&b) == 2); + } +} + int main(int argc, char **argv) { struct bitvec bv; @@ -286,6 +309,9 @@ bitvec_zero(&bv); test_bitvec_rl_curbit(&bv, 1, 64, 0); + printf("\nbitvec bytes used.\n"); + test_used_bytes(); + printf("\nbitvec ok.\n"); return 0; } diff --git a/tests/bitvec/bitvec_test.ok b/tests/bitvec/bitvec_test.ok index 6281973..a48912d 100644 --- a/tests/bitvec/bitvec_test.ok +++ b/tests/bitvec/bitvec_test.ok @@ -168,4 +168,6 @@ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ bitvec_runlength.... +bitvec bytes used. + bitvec ok. -- To view, visit https://gerrit.osmocom.org/12787 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id4bd7f7543f5b0f4f6f876e283bd065039c37646 Gerrit-Change-Number: 12787 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 11:17:52 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Feb 2019 11:17:52 +0000 Subject: Change in osmo-bsc[master]: WIP: Implement CSFB "Fast Return" Handling at RR RELEASE Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12788 Change subject: WIP: Implement CSFB "Fast Return" Handling at RR RELEASE ...................................................................... WIP: Implement CSFB "Fast Return" Handling at RR RELEASE When the MSC sends a BSSMAP CLEAR CMD containing a CSFB Indication IE, it lets us know that the to-be-released connection related to a CSFB call. We as the BSC then subsequently should include the "Cell Selection Indocator after release of all TCH and SDCCH" IE in the RR RELEASE message sent to the MS/UE. This IE contains the LTE neighbor cells that we're configured to broadcast in si2quater. That in turn will make sure the MS/UE can return very quickly to the LTE cell. Change-Id: Ibfbb87e2e16b05032ad1cb91c11fad1b2f76d755 Requires: libosmocore Id4bd7f7543f5b0f4f6f876e283bd065039c37646 Requires: libosmocore I0e101af316438b56d63d43fc2cb16d7caf563d07 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/gsm_04_08_rr.c M src/osmo-bsc/osmo_bsc_bssap.c 4 files changed, 75 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/88/12788/1 diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 9f7ce8d..58c0541 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -557,6 +557,9 @@ /* If a release event is being handled, ignore other ricocheting release events until that * release handling has concluded. */ bool in_release_handler; + + /* is this release at the end of a CSFB call? */ + bool is_csfb; } release; /* The logical channel type */ diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index fc34968..13a5730 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -718,6 +718,8 @@ /* Regular allstate event processing */ switch (event) { case GSCON_EV_A_CLEAR_CMD: + if (conn->lchan) + conn->lchan->release.is_csfb = *(bool *)data; /* MSC tells us to cleanly shut down */ if (conn->fi->state != ST_CLEARING) osmo_fsm_inst_state_chg(fi, ST_CLEARING, 60, 999); diff --git a/src/osmo-bsc/gsm_04_08_rr.c b/src/osmo-bsc/gsm_04_08_rr.c index f1061ef..5c86d53 100644 --- a/src/osmo-bsc/gsm_04_08_rr.c +++ b/src/osmo-bsc/gsm_04_08_rr.c @@ -28,7 +28,9 @@ #include #include +#include #include +#include #include #include @@ -40,6 +42,8 @@ #include #include #include +#include + /* should ip.access BTS use direct RTP streams between each other (1), * or should OpenBSC always act as RTP relay/proxy in between (0) ? */ @@ -236,6 +240,46 @@ lchan->mr_ms_lv + 1); } + +#define CELL_SEL_IND_AFTER_REL_MAX_BITS (4+MAX_EARFCN_LIST*19) +#define CELL_SEL_IND_AFTER_REL_MAX_BYTES ((CELL_SEL_IND_AFTER_REL_MAX_BITS/8)+1) + +/* Generate a CSN.1 encoded "Cell Selection Indocator after release of all TCH and SDCCH" + * as per TF 44.018 version 15.3.0 Table 10.5.2.1e.1. This only generates the "value" + * part of the IE, not the tag+length wrapper */ +static int generate_cell_sel_ind_after_rel(uint8_t *out, unsigned int out_len, const struct gsm_bts *bts) +{ + struct bitvec bv; + unsigned int i; + + bv.data = out; + bv.data_len = out_len; + bitvec_zero(&bv); + + /* E-UTRAN Description */ + bitvec_set_uint(&bv, 3, 3); + bitvec_set_bit(&bv, 1); + + for (i = 0; i < MAX_EARFCN_LIST; i++) { + const struct osmo_earfcn_si2q *e = &bts->si_common.si2quater_neigh_list; + if (e->arfcn[i] == OSMO_EARFCN_INVALID) + continue; + + if (0/* no more space in bitvec for 19 bits*/) + break; + + bitvec_set_uint(&bv, e->arfcn[i], 16); + /* No "Measurement Bandwidth" */ + bitvec_set_bit(&bv, 0); + /* No "Not Allowed Cells" */ + bitvec_set_bit(&bv, 0); + /* No "TARGET_PCID" */ + bitvec_set_bit(&bv, 0); + } + /* return the number of bytes used */ + return bitvec_used_bytes(&bv); +} + /* 7.1.7 and 9.1.7: RR CHANnel RELease */ int gsm48_send_rr_release(struct gsm_lchan *lchan) { @@ -250,6 +294,14 @@ cause = msgb_put(msg, 1); cause[0] = GSM48_RR_CAUSE_NORMAL; + if (lchan->release.is_csfb) { + uint8_t buf[CELL_SEL_IND_AFTER_REL_MAX_BYTES]; + int len; + + len = generate_cell_sel_ind_after_rel(buf, sizeof(buf), lchan->ts->trx->bts); + msgb_tlv_put(msg, GSM48_IE_CELL_SEL_IND_AFTER_REL, len, buf); + } + DEBUGP(DRR, "Sending Channel Release: Chan: Number: %d Type: %d\n", lchan->nr, lchan->type); diff --git a/src/osmo-bsc/osmo_bsc_bssap.c b/src/osmo-bsc/osmo_bsc_bssap.c index f2ccf2c..ab7f79c 100644 --- a/src/osmo-bsc/osmo_bsc_bssap.c +++ b/src/osmo-bsc/osmo_bsc_bssap.c @@ -420,6 +420,23 @@ return gsm48_send_rr_ciph_mode(conn->lchan, include_imeisv); } +static int bssmap_handle_clear_cmd(struct gsm_subscriber_connection *conn, + struct msgb *msg, unsigned int length) +{ + struct tlv_parsed tp; + bool is_csfb = false; + + tlv_parse(&tp, gsm0808_att_tlvdef(), msg->l4h + 1, length - 1, 0, 0); + + /* FIXME: Check for mandatory cause IE, and use that in RR RELEASE cause! */ + if (TLVP_PRESENT(&tp, GSM0808_IE_CSFB_INDICATION)) + is_csfb = true; + + osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_A_CLEAR_CMD, &is_csfb); + + return 0; +} + /* * GSM 08.08 ? 3.1.14 cipher mode handling. We will have to pick * the cipher to be used for this. In case we are already using @@ -867,7 +884,7 @@ switch (msg->l4h[0]) { case BSS_MAP_MSG_CLEAR_CMD: - osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_A_CLEAR_CMD, msg); + ret = bssmap_handle_clear_cmd(conn, msg, length); break; case BSS_MAP_MSG_CIPHER_MODE_CMD: ret = bssmap_handle_cipher_mode(conn, msg, length); -- To view, visit https://gerrit.osmocom.org/12788 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ibfbb87e2e16b05032ad1cb91c11fad1b2f76d755 Gerrit-Change-Number: 12788 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 11:19:53 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Feb 2019 11:19:53 +0000 Subject: Change in osmocom-bb[master]: common/osmocom_data.h: use proper type for SAP card status In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12784 ) Change subject: common/osmocom_data.h: use proper type for SAP card status ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12784 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7388ec60ca2dff59c0a0e3fdacf5a3af0c244c73 Gerrit-Change-Number: 12784 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Sun, 03 Feb 2019 11:19:53 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 11:20:29 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Feb 2019 11:20:29 +0000 Subject: Change in osmocom-bb[master]: mobile/gsm322.c: fix: properly print stored BA list entities In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12782 ) Change subject: mobile/gsm322.c: fix: properly print stored BA list entities ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12782 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5160492e6125401c6a1765f54d129b1f1cd503fc Gerrit-Change-Number: 12782 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Sun, 03 Feb 2019 11:20:29 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 11:20:49 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Feb 2019 11:20:49 +0000 Subject: Change in osmocom-bb[master]: common/sap_fsm.c: register SAP FSM on DSO load In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12783 ) Change subject: common/sap_fsm.c: register SAP FSM on DSO load ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12783 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id539c2a3477526b816918070bab93b26c900998a Gerrit-Change-Number: 12783 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Sun, 03 Feb 2019 11:20:49 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 11:21:21 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Feb 2019 11:21:21 +0000 Subject: Change in osmocom-bb[master]: common/sim.c: get rid of unused 'payload' pointer In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12785 ) Change subject: common/sim.c: get rid of unused 'payload' pointer ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3767b23bb1b28d3f4bb515d399bce160ba2eee09 Gerrit-Change-Number: 12785 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Sun, 03 Feb 2019 11:21:21 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 11:21:35 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Feb 2019 11:21:35 +0000 Subject: Change in osmocom-bb[master]: common/sim.c: use msgb_get() in gsm_sim_reply() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12786 ) Change subject: common/sim.c: use msgb_get() in gsm_sim_reply() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12786 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie5843c8adafc37da0d69c335c97b422552b85049 Gerrit-Change-Number: 12786 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Sun, 03 Feb 2019 11:21:35 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 11:26:38 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 3 Feb 2019 11:26:38 +0000 Subject: Change in osmocom-bb[master]: mobile/gsm322.c: fix: properly print stored BA list entities In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/12782 ) Change subject: mobile/gsm322.c: fix: properly print stored BA list entities ...................................................................... mobile/gsm322.c: fix: properly print stored BA list entities As we do iterate over all entities in the BA list, it makes more sense to print each one separately instead of printing the last one. Moreover, as soon as the iteration is finished, *ba points to some zero-initialized part of memory: gsm322.c:5170 Write stored BA list (mcc=000 mnc=000 Marshall Islands, 000) After this patch: gsm322.c:5162 Write stored BA list (mcc=250 mnc=99 Russian Federation, Beeline) gsm322.c:5162 Write stored BA list (mcc=250 mnc=01 Russian Federation, MegaFon) gsm322.c:5162 Write stored BA list (mcc=250 mnc=02 Russian Federation, MTS) gsm322.c:5162 Write stored BA list (mcc=544 mnc=31 Serbia, Telenor) Change-Id: I5160492e6125401c6a1765f54d129b1f1cd503fc --- M src/host/layer23/src/mobile/gsm322.c 1 file changed, 6 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/host/layer23/src/mobile/gsm322.c b/src/host/layer23/src/mobile/gsm322.c index f2b51df..7da63e3 100644 --- a/src/host/layer23/src/mobile/gsm322.c +++ b/src/host/layer23/src/mobile/gsm322.c @@ -5156,6 +5156,11 @@ buf[2] = ba->mnc >> 8; buf[3] = ba->mnc & 0xff; + LOGP(DCS, LOGL_INFO, "Write stored BA list (mcc=%s " + "mnc=%s %s, %s)\n", gsm_print_mcc(ba->mcc), + gsm_print_mnc(ba->mnc), gsm_get_mcc(ba->mcc), + gsm_get_mnc(ba->mcc, ba->mnc)); + rc += fwrite(buf, 4, 1, fp); rc += fwrite(ba->freq, sizeof(ba->freq), 1, fp); } @@ -5163,12 +5168,7 @@ } } - if (rc == 2) - LOGP(DCS, LOGL_INFO, "Write stored BA list (mcc=%s " - "mnc=%s %s, %s)\n", gsm_print_mcc(ba->mcc), - gsm_print_mnc(ba->mnc), gsm_get_mcc(ba->mcc), - gsm_get_mnc(ba->mcc, ba->mnc)); - else + if (rc != 2) LOGP(DCS, LOGL_ERROR, "Failed to write BA list\n"); /* free lists */ -- To view, visit https://gerrit.osmocom.org/12782 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5160492e6125401c6a1765f54d129b1f1cd503fc Gerrit-Change-Number: 12782 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 11:26:40 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 3 Feb 2019 11:26:40 +0000 Subject: Change in osmocom-bb[master]: common/sap_fsm.c: register SAP FSM on DSO load In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/12783 ) Change subject: common/sap_fsm.c: register SAP FSM on DSO load ...................................................................... common/sap_fsm.c: register SAP FSM on DSO load Change-Id: Id539c2a3477526b816918070bab93b26c900998a --- M src/host/layer23/src/common/sap_fsm.c 1 file changed, 5 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/host/layer23/src/common/sap_fsm.c b/src/host/layer23/src/common/sap_fsm.c index 9591dab..f07488f 100644 --- a/src/host/layer23/src/common/sap_fsm.c +++ b/src/host/layer23/src/common/sap_fsm.c @@ -674,10 +674,6 @@ sap = &ms->sap_entity; OSMO_ASSERT(sap->fi == NULL); - /* Register our FSM (if required) */ - if (!osmo_fsm_find_by_name(sap_fsm_def.name)) - OSMO_ASSERT(osmo_fsm_register(&sap_fsm_def) == 0); - /* Allocate an instance using ms as talloc context */ sap->fi = osmo_fsm_inst_alloc(&sap_fsm_def, ms, ms, LOGL_DEBUG, ms->name); @@ -688,3 +684,8 @@ return 0; } + +static __attribute__((constructor)) void on_dso_load(void) +{ + OSMO_ASSERT(osmo_fsm_register(&sap_fsm_def) == 0); +} -- To view, visit https://gerrit.osmocom.org/12783 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Id539c2a3477526b816918070bab93b26c900998a Gerrit-Change-Number: 12783 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 11:26:40 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 3 Feb 2019 11:26:40 +0000 Subject: Change in osmocom-bb[master]: common/osmocom_data.h: use proper type for SAP card status In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/12784 ) Change subject: common/osmocom_data.h: use proper type for SAP card status ...................................................................... common/osmocom_data.h: use proper type for SAP card status Change-Id: I7388ec60ca2dff59c0a0e3fdacf5a3af0c244c73 --- M src/host/layer23/include/osmocom/bb/common/osmocom_data.h 1 file changed, 4 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/host/layer23/include/osmocom/bb/common/osmocom_data.h b/src/host/layer23/include/osmocom/bb/common/osmocom_data.h index ee48d6d..14e594c 100644 --- a/src/host/layer23/include/osmocom/bb/common/osmocom_data.h +++ b/src/host/layer23/include/osmocom/bb/common/osmocom_data.h @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -25,7 +26,9 @@ struct osmosap_entity { struct osmo_fsm_inst *fi; uint16_t max_msg_size; - uint8_t card_status; + + /* Current state of remote SIM card */ + enum sap_card_status_type card_status; /* Optional SAP message call-back */ sap_msg_cb_t sap_msg_cb; -- To view, visit https://gerrit.osmocom.org/12784 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I7388ec60ca2dff59c0a0e3fdacf5a3af0c244c73 Gerrit-Change-Number: 12784 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 11:26:41 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 3 Feb 2019 11:26:41 +0000 Subject: Change in osmocom-bb[master]: common/sim.c: get rid of unused 'payload' pointer In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/12785 ) Change subject: common/sim.c: get rid of unused 'payload' pointer ...................................................................... common/sim.c: get rid of unused 'payload' pointer This change fixes the following compiler warning: sim.c: In function ?gsm_sim_reply?: sim.c:149:11: warning: variable ?payload? set but not used [-Wunused-but-set-variable] uint8_t *payload; Change-Id: I3767b23bb1b28d3f4bb515d399bce160ba2eee09 --- M src/host/layer23/src/common/sim.c 1 file changed, 0 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/host/layer23/src/common/sim.c b/src/host/layer23/src/common/sim.c index a63ae2a..f214e67 100644 --- a/src/host/layer23/src/common/sim.c +++ b/src/host/layer23/src/common/sim.c @@ -146,7 +146,6 @@ struct gsm_sim *sim = &ms->sim; struct msgb *msg = sim->job_msg; struct sim_hdr *sh; - uint8_t *payload; uint16_t payload_len; struct gsm_sim_handler *handler; @@ -165,7 +164,6 @@ return; } - payload = msg->data + sizeof(*sh); payload_len = msg->len - sizeof(*sh); /* remove data */ -- To view, visit https://gerrit.osmocom.org/12785 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I3767b23bb1b28d3f4bb515d399bce160ba2eee09 Gerrit-Change-Number: 12785 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 11:26:42 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 3 Feb 2019 11:26:42 +0000 Subject: Change in osmocom-bb[master]: common/sim.c: use msgb_get() in gsm_sim_reply() In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/12786 ) Change subject: common/sim.c: use msgb_get() in gsm_sim_reply() ...................................................................... common/sim.c: use msgb_get() in gsm_sim_reply() Change-Id: Ie5843c8adafc37da0d69c335c97b422552b85049 --- M src/host/layer23/src/common/sim.c 1 file changed, 1 insertion(+), 5 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/host/layer23/src/common/sim.c b/src/host/layer23/src/common/sim.c index f214e67..2c6c83c 100644 --- a/src/host/layer23/src/common/sim.c +++ b/src/host/layer23/src/common/sim.c @@ -146,7 +146,6 @@ struct gsm_sim *sim = &ms->sim; struct msgb *msg = sim->job_msg; struct sim_hdr *sh; - uint16_t payload_len; struct gsm_sim_handler *handler; LOGP(DSIM, LOGL_INFO, "sending result to callback function " @@ -164,11 +163,8 @@ return; } - payload_len = msg->len - sizeof(*sh); - /* remove data */ - msg->tail -= payload_len; - msg->len -= payload_len; + msgb_get(msg, msg->len - sizeof(*sh)); /* add reply data */ sh->job_type = result_type; -- To view, visit https://gerrit.osmocom.org/12786 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie5843c8adafc37da0d69c335c97b422552b85049 Gerrit-Change-Number: 12786 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:03:52 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:03:52 +0000 Subject: Change in osmo-asf4-dfu[sysmoOCTSIM]: change LED and switch to sysmoOCTSIM board Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12789 Change subject: change LED and switch to sysmoOCTSIM board ...................................................................... change LED and switch to sysmoOCTSIM board Change-Id: I481d96a284240310b634f6dc0806d4a1972cd3b9 --- M atmel_start_pins.h M driver_init.c M usb_dfu_main.c M usb_start.c 4 files changed, 8 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-asf4-dfu refs/changes/89/12789/1 diff --git a/atmel_start_pins.h b/atmel_start_pins.h index 86e1dfb..7460529 100644 --- a/atmel_start_pins.h +++ b/atmel_start_pins.h @@ -27,11 +27,11 @@ #define GPIO_PIN_FUNCTION_M 12 #define GPIO_PIN_FUNCTION_N 13 -/** LED pin to indicate system state (pull low to switch on) */ -#define LED_SYSTEM GPIO(GPIO_PORTC, 18) +/** LED pin to indicate system state (pull high to switch on) */ +#define LED_SYSTEM GPIO(GPIO_PORTC, 26) /** User button to force DFu bootloader (connected to ground when pressed) */ -#define BUTTON_FORCE_DFU GPIO(GPIO_PORTB, 31) +#define BUTTON_FORCE_DFU GPIO(GPIO_PORTC, 14) /** USB D+/D- pins */ #define PA24 GPIO(GPIO_PORTA, 24) diff --git a/driver_init.c b/driver_init.c index a91b0eb..d5a151f 100644 --- a/driver_init.c +++ b/driver_init.c @@ -144,13 +144,12 @@ init_mcu(); // configure system LED - gpio_set_pin_level(LED_SYSTEM, true); // switch off LED + gpio_set_pin_level(LED_SYSTEM, false); // switch off LED gpio_set_pin_direction(LED_SYSTEM, GPIO_DIRECTION_OUT); gpio_set_pin_function(LED_SYSTEM, GPIO_PIN_FUNCTION_OFF); // configure force DFU user button gpio_set_pin_direction(BUTTON_FORCE_DFU, GPIO_DIRECTION_IN); - gpio_set_pin_pull_mode(BUTTON_FORCE_DFU, GPIO_PULL_UP); gpio_set_pin_function(BUTTON_FORCE_DFU, GPIO_PIN_FUNCTION_OFF); USB_DEVICE_INSTANCE_init(); diff --git a/usb_dfu_main.c b/usb_dfu_main.c index 449b311..6a524e4 100644 --- a/usb_dfu_main.c +++ b/usb_dfu_main.c @@ -48,8 +48,7 @@ */ static bool check_force_dfu(void) { - gpio_set_pin_pull_mode(BUTTON_FORCE_DFU, GPIO_PULL_UP); // pull button high - return (0 == gpio_get_pin_level(BUTTON_FORCE_DFU)); // signal is low when button is pressed + return (0 == gpio_get_pin_level(BUTTON_FORCE_DFU)); // signal is low when button is pressed (pulled high externally) } /** Check if the application is valid diff --git a/usb_start.c b/usb_start.c index ad91840..ab0f332 100644 --- a/usb_start.c +++ b/usb_start.c @@ -80,7 +80,7 @@ void usb_dfu(void) { while (!dfudf_is_enabled()); // wait for DFU to be installed - gpio_set_pin_level(LED_SYSTEM, false); // switch LED on to indicate USB DFU stack is ready + gpio_set_pin_level(LED_SYSTEM, true); // switch LED on to indicate USB DFU stack is ready ASSERT(hri_nvmctrl_read_STATUS_BOOTPROT_bf(FLASH_0.dev.hw) <= 15); uint32_t application_start_address = (15 - hri_nvmctrl_read_STATUS_BOOTPROT_bf(FLASH_0.dev.hw)) * 8192; // calculate bootloader size to know where we should write the application firmware @@ -89,7 +89,7 @@ while (true) { // main DFU infinite loop // run the second part of the USB DFU state machine handling non-USB aspects if (USB_DFU_STATE_DFU_DNLOAD_SYNC == dfu_state || USB_DFU_STATE_DFU_DNBUSY == dfu_state) { // there is some data to be flashed - gpio_set_pin_level(LED_SYSTEM, true); // switch LED off to indicate we are flashing + gpio_set_pin_level(LED_SYSTEM, false); // switch LED off to indicate we are flashing if (dfu_download_length > 0) { // there is some data to be flashed int32_t rc = flash_write(&FLASH_0, application_start_address + dfu_download_offset, dfu_download_data, dfu_download_length); // write downloaded data chunk to flash if (ERR_NONE == rc) { @@ -108,7 +108,7 @@ // this case should not happen, but it's not a critical error dfu_state = USB_DFU_STATE_DFU_DNLOAD_IDLE; // indicate flashing can continue } - gpio_set_pin_level(LED_SYSTEM, false); // switch LED on to indicate USB DFU can resume + gpio_set_pin_level(LED_SYSTEM, true); // switch LED on to indicate USB DFU can resume } if (USB_DFU_STATE_DFU_MANIFEST == dfu_state) { // we can start manifestation (finish flashing) // in theory every DFU files should have a suffix to with a CRC to check the data -- To view, visit https://gerrit.osmocom.org/12789 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: sysmoOCTSIM Gerrit-MessageType: newchange Gerrit-Change-Id: I481d96a284240310b634f6dc0806d4a1972cd3b9 Gerrit-Change-Number: 12789 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:03:52 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:03:52 +0000 Subject: Change in osmo-asf4-dfu[sysmoOCTSIM]: use sysmoOCTSIM USB PID and strings Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12790 Change subject: use sysmoOCTSIM USB PID and strings ...................................................................... use sysmoOCTSIM USB PID and strings Change-Id: I1294d5f648240ddbaddeffcfffb4b0d61a88a39e --- M config/usbd_config.h 1 file changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-asf4-dfu refs/changes/90/12790/1 diff --git a/config/usbd_config.h b/config/usbd_config.h index c20dfb2..801ee3c 100644 --- a/config/usbd_config.h +++ b/config/usbd_config.h @@ -85,7 +85,7 @@ // <0x6140=> osmo-ASF4-DFU // usb_dfud_idproduct #ifndef CONF_USB_OSMOASF4DFU_IDPRODUCT -#define CONF_USB_OSMOASF4DFU_IDPRODUCT 0x6140 +#define CONF_USB_OSMOASF4DFU_IDPRODUCT 0x6141 #endif // bcdDevice <0x0000-0xFFFF> @@ -107,11 +107,11 @@ // Unicode string of iManufact // usb_dfud_imanufact_str #ifndef CONF_USB_DFUD_IMANUFACT_STR -#define CONF_USB_DFUD_IMANUFACT_STR "osmocom" +#define CONF_USB_DFUD_IMANUFACT_STR "sysmocom" #endif #ifndef CONF_USB_DFUD_IMANUFACT_STR_DESC -#define CONF_USB_DFUD_IMANUFACT_STR_DESC 16, 0x03, 'o', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, 'c', 0x00, 'o', 0x00, 'm', 0x00, +#define CONF_USB_DFUD_IMANUFACT_STR_DESC 18, 0x03, 's', 0x00, 'y', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, 'c', 0x00, 'o', 0x00, 'm', 0x00, #endif // @@ -130,11 +130,11 @@ // Unicode string of iProduct // usb_dfud_iproduct_str #ifndef CONF_USB_DFUD_IPRODUCT_STR -#define CONF_USB_DFUD_IPRODUCT_STR "osmo-ASF4-DFU" +#define CONF_USB_DFUD_IPRODUCT_STR "sysmoOCTSIM (osmo-ASF4-DFU)" #endif #ifndef CONF_USB_DFUD_IPRODUCT_STR_DESC -#define CONF_USB_DFUD_IPRODUCT_STR_DESC 28, 0x03, 'o', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, '-', 0x00, 'A', 0x00, 'S', 0x00, 'F', 0x00, '4', 0x00, '-', 0x00, 'D', 0x00, 'F', 0x00, 'U', 0x00, +#define CONF_USB_DFUD_IPRODUCT_STR_DESC 56, 0x03, 's', 0x00, 'y', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, 'O', 0x00, 'C', 0x00, 'T', 0x00, 'S', 0x00, 'I', 0x00, 'M', 0x00, ' ', 0x00, '(', 0x00, 'o', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, '-', 0x00, 'A', 0x00, 'S', 0x00, 'F', 0x00, '4', 0x00, '-', 0x00, 'D', 0x00, 'F', 0x00, 'U', 0x00, ')', 0x00, #endif // -- To view, visit https://gerrit.osmocom.org/12790 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: sysmoOCTSIM Gerrit-MessageType: newchange Gerrit-Change-Id: I1294d5f648240ddbaddeffcfffb4b0d61a88a39e Gerrit-Change-Number: 12790 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:03:52 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:03:52 +0000 Subject: Change in osmo-asf4-dfu[sysmoOCTSIM]: document flashing procedure for sysmoOCTSIM Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12791 Change subject: document flashing procedure for sysmoOCTSIM ...................................................................... document flashing procedure for sysmoOCTSIM the sysmoOCTSIM board does not have an onboard EDBG adapter such as the SAM E54 Xplained Pro board. instead SWD is used directly. Change-Id: I85aa4db62464d0a1b558968d0423e2adbe491a4f --- M README.md 1 file changed, 12 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-asf4-dfu refs/changes/91/12791/1 diff --git a/README.md b/README.md index 031bc27..e39f5c1 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,7 @@ This is an implementation of the DFU mode of the [USB DFU Device Class Specification](https://usb.org/document-library/device-firmware-upgrade-11-new-version-31-aug-2004) for the Microchip SAM D5x/E5x micro-controller. It is meant to be used as bootloader to allow flashing the main application over USB. -The code has been developed for the Microchip [SAM E54 Xplained Pro](https://www.microchip.com/DevelopmentTools/ProductDetails/PartNo/ATSAME54-XPRO) development board using a [SAM E54](https://www.microchip.com/wwwproducts/en/ATSAME54P20A) micro-controller. -It should work on any chip of the SAM D5x/E5x device family by replacing the corresponding device-specific definitions (usually including the chip name in the file name). +This branch is specific to the proprietary sysmocom sysmoOCTSIM hardware. The code uses the [Atmel START](https://start.atmel.com/) ASFv4 library. @@ -31,7 +30,7 @@ Flashing ======== -To flash the bootloader you can either use the [edbg tool](https://github.com/ataradov/edbg) over the EDBG interface of the SAM E54 Xplained Pro development board, or OpenICD with any SWJ adapter. +To flash the bootloader you can use OpenOCD with any SWJ adapter. The USB DFU bootloader should be flashed in a protected area of the flash memory to prevent for erasing it, as specified in data sheet section 25.6.2 Memory Organization. The bootloader size is configured in the NVM user configuration BOOTPROT field, as specified in data sheet section 25.6.9 NVM User Configuration. @@ -40,11 +39,14 @@ This setting will also tell the bootloader where to flash the application firmware to (e.g. after the bootloader reserved space). The LED will blink once per second if this size is not set. -EDBG ----- +ST-LINK/V2 +---------- -To flash the USB DFU bootloader, perform the following actions: -* remove reserved bootloader space so we can erase it: `edbg --target atmel_cm4v2 --fuse wv,29:26,15` -* erase the whole flash: `edbg --target atmel_cm4v2 --fuse v,29:26,15 --erase` -* program the bootloader: `edbg --target atmel_cm4v2 --fuse v,29:26,15 --program --verify --file AtmelStart.bin` -* reserve bootloader space: `edbg --target atmel_cm4v2 --fuse wv,29:26,13` +To flash the USB DFU bootloader, we will use OpenOCD (with the [SAM E54 patch](http://openocd.zylin.com/#/c/4272/) and a ST-LINK/V2 SWD adapter. +The command will perform the following actions: +* remove reserved bootloader space so we can erase it (and reset MCU for change to be effective) +* erase the whole flash +* program the bootloader +* reserve bootloader space + +`openocd --file interface/stlink.cfg --command "transport select hla_swd" --command "set CHIPNAME same54" --command "set CPUTAPID 0x2ba01477" --file target/atsame5x.cfg --command "init" --command "reset halt" --command "atsame5 bootloader 0" --command "flash erase_sector 0 0 last" --command "reset halt" --command "program ./AtmelStart.bin" --command "atsame5 bootloader 16384" --command "reset run" --command "shutdown"` -- To view, visit https://gerrit.osmocom.org/12791 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: sysmoOCTSIM Gerrit-MessageType: newchange Gerrit-Change-Id: I85aa4db62464d0a1b558968d0423e2adbe491a4f Gerrit-Change-Number: 12791 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:41:50 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:41:50 +0000 Subject: Change in osmo-ccid-firmware[master]: start with USB CDC echo example Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12792 Change subject: start with USB CDC echo example ...................................................................... start with USB CDC echo example this is the Atmel START USB CDC Echo example project for the SAM E54 Xplained Pro board using an Atmel ATSAME54P20A microcontroller. Atmel START information: - Version: 1.4.1810 (Dec 18, 2018, 5:52 AM GMT+1) - Server: 1.4.93 - Content version: 1.0.1340 This will serve as basis for the sysmoOCTSIM project Change-Id: I356de75e7b730d63fb819248e71d36f785932199 --- A sysmoOCTSIM/AtmelStart.env_conf A sysmoOCTSIM/AtmelStart.gpdsc A sysmoOCTSIM/CMSIS/Documentation/Core/html/index.html A sysmoOCTSIM/CMSIS/Include/arm_common_tables.h A sysmoOCTSIM/CMSIS/Include/arm_const_structs.h A sysmoOCTSIM/CMSIS/Include/arm_math.h A sysmoOCTSIM/CMSIS/Include/cmsis_armcc.h A sysmoOCTSIM/CMSIS/Include/cmsis_armclang.h A sysmoOCTSIM/CMSIS/Include/cmsis_compiler.h A sysmoOCTSIM/CMSIS/Include/cmsis_gcc.h A sysmoOCTSIM/CMSIS/Include/core_armv8mbl.h A sysmoOCTSIM/CMSIS/Include/core_armv8mml.h A sysmoOCTSIM/CMSIS/Include/core_cm0.h A sysmoOCTSIM/CMSIS/Include/core_cm0plus.h A sysmoOCTSIM/CMSIS/Include/core_cm23.h A sysmoOCTSIM/CMSIS/Include/core_cm3.h A sysmoOCTSIM/CMSIS/Include/core_cm33.h A sysmoOCTSIM/CMSIS/Include/core_cm4.h A sysmoOCTSIM/CMSIS/Include/core_cm7.h A sysmoOCTSIM/CMSIS/Include/core_sc000.h A sysmoOCTSIM/CMSIS/Include/core_sc300.h A sysmoOCTSIM/CMSIS/Include/tz_context.h A sysmoOCTSIM/armcc/Makefile A sysmoOCTSIM/armcc/arm_addon/armcc/arm/startup_same54.s A sysmoOCTSIM/armcc/arm_addon/armcc/system_same54.c A sysmoOCTSIM/atmel_start.c A sysmoOCTSIM/atmel_start.h A sysmoOCTSIM/atmel_start_config.atstart A sysmoOCTSIM/atmel_start_pins.h A sysmoOCTSIM/config/hpl_cmcc_config.h A sysmoOCTSIM/config/hpl_dmac_config.h A sysmoOCTSIM/config/hpl_gclk_config.h A sysmoOCTSIM/config/hpl_mclk_config.h A sysmoOCTSIM/config/hpl_osc32kctrl_config.h A sysmoOCTSIM/config/hpl_oscctrl_config.h A sysmoOCTSIM/config/hpl_port_config.h A sysmoOCTSIM/config/hpl_usb_config.h A sysmoOCTSIM/config/peripheral_clk_config.h A sysmoOCTSIM/config/usbd_config.h A sysmoOCTSIM/documentation/usb_cdc_echo.rst A sysmoOCTSIM/documentation/usb_device_cdc.rst A sysmoOCTSIM/documentation/usb_device_core.rst A sysmoOCTSIM/documentation/usb_protocol_cdc.rst A sysmoOCTSIM/documentation/usb_protocol_core.rst A sysmoOCTSIM/driver_init.c A sysmoOCTSIM/driver_init.h A sysmoOCTSIM/examples/driver_examples.c A sysmoOCTSIM/examples/driver_examples.h A sysmoOCTSIM/gcc/Makefile A sysmoOCTSIM/gcc/gcc/same54p20a_flash.ld A sysmoOCTSIM/gcc/gcc/same54p20a_sram.ld A sysmoOCTSIM/gcc/gcc/startup_same54.c A sysmoOCTSIM/gcc/system_same54.c A sysmoOCTSIM/hal/documentation/usb_device_async.rst A sysmoOCTSIM/hal/include/hal_atomic.h A sysmoOCTSIM/hal/include/hal_cache.h A sysmoOCTSIM/hal/include/hal_delay.h A sysmoOCTSIM/hal/include/hal_gpio.h A sysmoOCTSIM/hal/include/hal_init.h A sysmoOCTSIM/hal/include/hal_io.h A sysmoOCTSIM/hal/include/hal_sleep.h A sysmoOCTSIM/hal/include/hal_usb_device.h A sysmoOCTSIM/hal/include/hpl_cmcc.h A sysmoOCTSIM/hal/include/hpl_core.h A sysmoOCTSIM/hal/include/hpl_delay.h A sysmoOCTSIM/hal/include/hpl_dma.h A sysmoOCTSIM/hal/include/hpl_gpio.h A sysmoOCTSIM/hal/include/hpl_init.h A sysmoOCTSIM/hal/include/hpl_irq.h A sysmoOCTSIM/hal/include/hpl_missing_features.h A sysmoOCTSIM/hal/include/hpl_ramecc.h A sysmoOCTSIM/hal/include/hpl_reset.h A sysmoOCTSIM/hal/include/hpl_sleep.h A sysmoOCTSIM/hal/include/hpl_usb.h A sysmoOCTSIM/hal/include/hpl_usb_device.h A sysmoOCTSIM/hal/include/hpl_usb_host.h A sysmoOCTSIM/hal/src/hal_atomic.c A sysmoOCTSIM/hal/src/hal_cache.c A sysmoOCTSIM/hal/src/hal_delay.c A sysmoOCTSIM/hal/src/hal_gpio.c A sysmoOCTSIM/hal/src/hal_init.c A sysmoOCTSIM/hal/src/hal_io.c A sysmoOCTSIM/hal/src/hal_sleep.c A sysmoOCTSIM/hal/src/hal_usb_device.c A sysmoOCTSIM/hal/utils/include/compiler.h A sysmoOCTSIM/hal/utils/include/err_codes.h A sysmoOCTSIM/hal/utils/include/events.h A sysmoOCTSIM/hal/utils/include/parts.h A sysmoOCTSIM/hal/utils/include/utils.h A sysmoOCTSIM/hal/utils/include/utils_assert.h A sysmoOCTSIM/hal/utils/include/utils_event.h A sysmoOCTSIM/hal/utils/include/utils_increment_macro.h A sysmoOCTSIM/hal/utils/include/utils_list.h A sysmoOCTSIM/hal/utils/include/utils_repeat_macro.h A sysmoOCTSIM/hal/utils/src/utils_assert.c A sysmoOCTSIM/hal/utils/src/utils_event.c A sysmoOCTSIM/hal/utils/src/utils_list.c A sysmoOCTSIM/hal/utils/src/utils_syscalls.c A sysmoOCTSIM/hpl/cmcc/hpl_cmcc.c A sysmoOCTSIM/hpl/core/hpl_core_m4.c A sysmoOCTSIM/hpl/core/hpl_core_port.h A sysmoOCTSIM/hpl/core/hpl_init.c A sysmoOCTSIM/hpl/dmac/hpl_dmac.c A sysmoOCTSIM/hpl/gclk/hpl_gclk.c A sysmoOCTSIM/hpl/gclk/hpl_gclk_base.h A sysmoOCTSIM/hpl/mclk/hpl_mclk.c A sysmoOCTSIM/hpl/osc32kctrl/hpl_osc32kctrl.c A sysmoOCTSIM/hpl/oscctrl/hpl_oscctrl.c A sysmoOCTSIM/hpl/pm/hpl_pm.c A sysmoOCTSIM/hpl/pm/hpl_pm_base.h A sysmoOCTSIM/hpl/port/hpl_gpio_base.h A sysmoOCTSIM/hpl/ramecc/hpl_ramecc.c A sysmoOCTSIM/hpl/usb/hpl_usb.c A sysmoOCTSIM/hri/hri_ac_e54.h A sysmoOCTSIM/hri/hri_adc_e54.h A sysmoOCTSIM/hri/hri_aes_e54.h A sysmoOCTSIM/hri/hri_can_e54.h A sysmoOCTSIM/hri/hri_ccl_e54.h A sysmoOCTSIM/hri/hri_cmcc_e54.h A sysmoOCTSIM/hri/hri_dac_e54.h A sysmoOCTSIM/hri/hri_dmac_e54.h A sysmoOCTSIM/hri/hri_dsu_e54.h A sysmoOCTSIM/hri/hri_e54.h A sysmoOCTSIM/hri/hri_eic_e54.h A sysmoOCTSIM/hri/hri_evsys_e54.h A sysmoOCTSIM/hri/hri_freqm_e54.h A sysmoOCTSIM/hri/hri_gclk_e54.h A sysmoOCTSIM/hri/hri_gmac_e54.h A sysmoOCTSIM/hri/hri_hmatrixb_e54.h A sysmoOCTSIM/hri/hri_i2s_e54.h A sysmoOCTSIM/hri/hri_icm_e54.h A sysmoOCTSIM/hri/hri_mclk_e54.h A sysmoOCTSIM/hri/hri_mpu_e54.h A sysmoOCTSIM/hri/hri_nvic_e54.h A sysmoOCTSIM/hri/hri_nvmctrl_e54.h A sysmoOCTSIM/hri/hri_osc32kctrl_e54.h A sysmoOCTSIM/hri/hri_oscctrl_e54.h A sysmoOCTSIM/hri/hri_pac_e54.h A sysmoOCTSIM/hri/hri_pcc_e54.h A sysmoOCTSIM/hri/hri_pdec_e54.h A sysmoOCTSIM/hri/hri_pm_e54.h A sysmoOCTSIM/hri/hri_port_e54.h A sysmoOCTSIM/hri/hri_qspi_e54.h A sysmoOCTSIM/hri/hri_ramecc_e54.h A sysmoOCTSIM/hri/hri_rstc_e54.h A sysmoOCTSIM/hri/hri_rtc_e54.h A sysmoOCTSIM/hri/hri_sdhc_e54.h A sysmoOCTSIM/hri/hri_sercom_e54.h A sysmoOCTSIM/hri/hri_supc_e54.h A sysmoOCTSIM/hri/hri_systemcontrol_e54.h A sysmoOCTSIM/hri/hri_systick_e54.h A sysmoOCTSIM/hri/hri_tc_e54.h A sysmoOCTSIM/hri/hri_tcc_e54.h A sysmoOCTSIM/hri/hri_trng_e54.h A sysmoOCTSIM/hri/hri_usb_e54.h A sysmoOCTSIM/hri/hri_wdt_e54.h A sysmoOCTSIM/include/component-version.h A sysmoOCTSIM/include/component/ac.h A sysmoOCTSIM/include/component/adc.h A sysmoOCTSIM/include/component/aes.h A sysmoOCTSIM/include/component/can.h A sysmoOCTSIM/include/component/ccl.h A sysmoOCTSIM/include/component/cmcc.h A sysmoOCTSIM/include/component/dac.h A sysmoOCTSIM/include/component/dmac.h A sysmoOCTSIM/include/component/dsu.h A sysmoOCTSIM/include/component/eic.h A sysmoOCTSIM/include/component/evsys.h A sysmoOCTSIM/include/component/freqm.h A sysmoOCTSIM/include/component/gclk.h A sysmoOCTSIM/include/component/gmac.h A sysmoOCTSIM/include/component/hmatrixb.h A sysmoOCTSIM/include/component/i2s.h A sysmoOCTSIM/include/component/icm.h A sysmoOCTSIM/include/component/mclk.h A sysmoOCTSIM/include/component/nvmctrl.h A sysmoOCTSIM/include/component/osc32kctrl.h A sysmoOCTSIM/include/component/oscctrl.h A sysmoOCTSIM/include/component/pac.h A sysmoOCTSIM/include/component/pcc.h A sysmoOCTSIM/include/component/pdec.h A sysmoOCTSIM/include/component/picop.h A sysmoOCTSIM/include/component/pm.h A sysmoOCTSIM/include/component/port.h A sysmoOCTSIM/include/component/qspi.h A sysmoOCTSIM/include/component/ramecc.h A sysmoOCTSIM/include/component/rstc.h A sysmoOCTSIM/include/component/rtc.h A sysmoOCTSIM/include/component/sdhc.h A sysmoOCTSIM/include/component/sercom.h A sysmoOCTSIM/include/component/supc.h A sysmoOCTSIM/include/component/tc.h A sysmoOCTSIM/include/component/tcc.h A sysmoOCTSIM/include/component/trng.h A sysmoOCTSIM/include/component/usb.h A sysmoOCTSIM/include/component/wdt.h A sysmoOCTSIM/include/instance/ac.h A sysmoOCTSIM/include/instance/adc0.h A sysmoOCTSIM/include/instance/adc1.h A sysmoOCTSIM/include/instance/aes.h A sysmoOCTSIM/include/instance/can0.h A sysmoOCTSIM/include/instance/can1.h A sysmoOCTSIM/include/instance/ccl.h A sysmoOCTSIM/include/instance/cmcc.h A sysmoOCTSIM/include/instance/dac.h A sysmoOCTSIM/include/instance/dmac.h A sysmoOCTSIM/include/instance/dsu.h A sysmoOCTSIM/include/instance/eic.h A sysmoOCTSIM/include/instance/evsys.h A sysmoOCTSIM/include/instance/freqm.h A sysmoOCTSIM/include/instance/gclk.h A sysmoOCTSIM/include/instance/gmac.h A sysmoOCTSIM/include/instance/hmatrix.h A sysmoOCTSIM/include/instance/i2s.h A sysmoOCTSIM/include/instance/icm.h A sysmoOCTSIM/include/instance/mclk.h A sysmoOCTSIM/include/instance/nvmctrl.h A sysmoOCTSIM/include/instance/osc32kctrl.h A sysmoOCTSIM/include/instance/oscctrl.h A sysmoOCTSIM/include/instance/pac.h A sysmoOCTSIM/include/instance/pcc.h A sysmoOCTSIM/include/instance/pdec.h A sysmoOCTSIM/include/instance/picop.h A sysmoOCTSIM/include/instance/pm.h A sysmoOCTSIM/include/instance/port.h A sysmoOCTSIM/include/instance/pukcc.h A sysmoOCTSIM/include/instance/qspi.h A sysmoOCTSIM/include/instance/ramecc.h A sysmoOCTSIM/include/instance/rstc.h A sysmoOCTSIM/include/instance/rtc.h A sysmoOCTSIM/include/instance/sdhc0.h A sysmoOCTSIM/include/instance/sdhc1.h A sysmoOCTSIM/include/instance/sercom0.h A sysmoOCTSIM/include/instance/sercom1.h A sysmoOCTSIM/include/instance/sercom2.h A sysmoOCTSIM/include/instance/sercom3.h A sysmoOCTSIM/include/instance/sercom4.h A sysmoOCTSIM/include/instance/sercom5.h A sysmoOCTSIM/include/instance/sercom6.h A sysmoOCTSIM/include/instance/sercom7.h A sysmoOCTSIM/include/instance/supc.h A sysmoOCTSIM/include/instance/tc0.h A sysmoOCTSIM/include/instance/tc1.h A sysmoOCTSIM/include/instance/tc2.h A sysmoOCTSIM/include/instance/tc3.h A sysmoOCTSIM/include/instance/tc4.h A sysmoOCTSIM/include/instance/tc5.h A sysmoOCTSIM/include/instance/tc6.h A sysmoOCTSIM/include/instance/tc7.h A sysmoOCTSIM/include/instance/tcc0.h A sysmoOCTSIM/include/instance/tcc1.h A sysmoOCTSIM/include/instance/tcc2.h A sysmoOCTSIM/include/instance/tcc3.h A sysmoOCTSIM/include/instance/tcc4.h A sysmoOCTSIM/include/instance/trng.h A sysmoOCTSIM/include/instance/usb.h A sysmoOCTSIM/include/instance/wdt.h A sysmoOCTSIM/include/pio/same54n19a.h A sysmoOCTSIM/include/pio/same54n20a.h A sysmoOCTSIM/include/pio/same54p19a.h A sysmoOCTSIM/include/pio/same54p20a.h A sysmoOCTSIM/include/sam.h A sysmoOCTSIM/include/same54.h A sysmoOCTSIM/include/same54n19a.h A sysmoOCTSIM/include/same54n20a.h A sysmoOCTSIM/include/same54p19a.h A sysmoOCTSIM/include/same54p20a.h A sysmoOCTSIM/include/system_same54.h A sysmoOCTSIM/usb/class/cdc/device/atmel_devices_cdc.cat A sysmoOCTSIM/usb/class/cdc/device/atmel_devices_cdc.inf A sysmoOCTSIM/usb/class/cdc/device/cdcdf_acm.c A sysmoOCTSIM/usb/class/cdc/device/cdcdf_acm.h A sysmoOCTSIM/usb/class/cdc/device/cdcdf_acm_desc.h A sysmoOCTSIM/usb/class/cdc/usb_protocol_cdc.h A sysmoOCTSIM/usb/device/usbdc.c A sysmoOCTSIM/usb/device/usbdc.h A sysmoOCTSIM/usb/usb_atmel.h A sysmoOCTSIM/usb/usb_debug.h A sysmoOCTSIM/usb/usb_includes.h A sysmoOCTSIM/usb/usb_protocol.c A sysmoOCTSIM/usb/usb_protocol.h A sysmoOCTSIM/usb_cdc_echo_main.c A sysmoOCTSIM/usb_start.c A sysmoOCTSIM/usb_start.h 284 files changed, 242,161 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/92/12792/1 -- To view, visit https://gerrit.osmocom.org/12792 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I356de75e7b730d63fb819248e71d36f785932199 Gerrit-Change-Number: 12792 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:47:37 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:47:37 +0000 Subject: Change in osmo-ccid-firmware[master]: start with USB CDC echo example In-Reply-To: References: Message-ID: K?vin Redon has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/12792 ) Change subject: start with USB CDC echo example ...................................................................... start with USB CDC echo example this is the Atmel START USB CDC Echo example project for the SAM E54 Xplained Pro board using an Atmel ATSAME54P20A microcontroller. Atmel START information: - Version: 1.4.1810 (Dec 18, 2018, 5:52 AM GMT+1) - Server: 1.4.93 - Content version: 1.0.1340 This will serve as basis for the sysmoOCTSIM project Change-Id: I356de75e7b730d63fb819248e71d36f785932199 --- A sysmoOCTSIM/AtmelStart.env_conf A sysmoOCTSIM/AtmelStart.gpdsc A sysmoOCTSIM/CMSIS/Documentation/Core/html/index.html A sysmoOCTSIM/CMSIS/Include/arm_common_tables.h A sysmoOCTSIM/CMSIS/Include/arm_const_structs.h A sysmoOCTSIM/CMSIS/Include/arm_math.h A sysmoOCTSIM/CMSIS/Include/cmsis_armcc.h A sysmoOCTSIM/CMSIS/Include/cmsis_armclang.h A sysmoOCTSIM/CMSIS/Include/cmsis_compiler.h A sysmoOCTSIM/CMSIS/Include/cmsis_gcc.h A sysmoOCTSIM/CMSIS/Include/core_armv8mbl.h A sysmoOCTSIM/CMSIS/Include/core_armv8mml.h A sysmoOCTSIM/CMSIS/Include/core_cm0.h A sysmoOCTSIM/CMSIS/Include/core_cm0plus.h A sysmoOCTSIM/CMSIS/Include/core_cm23.h A sysmoOCTSIM/CMSIS/Include/core_cm3.h A sysmoOCTSIM/CMSIS/Include/core_cm33.h A sysmoOCTSIM/CMSIS/Include/core_cm4.h A sysmoOCTSIM/CMSIS/Include/core_cm7.h A sysmoOCTSIM/CMSIS/Include/core_sc000.h A sysmoOCTSIM/CMSIS/Include/core_sc300.h A sysmoOCTSIM/CMSIS/Include/tz_context.h A sysmoOCTSIM/armcc/Makefile A sysmoOCTSIM/armcc/arm_addon/armcc/arm/startup_same54.s A sysmoOCTSIM/armcc/arm_addon/armcc/system_same54.c A sysmoOCTSIM/atmel_start.c A sysmoOCTSIM/atmel_start.h A sysmoOCTSIM/atmel_start_config.atstart A sysmoOCTSIM/atmel_start_pins.h A sysmoOCTSIM/config/hpl_cmcc_config.h A sysmoOCTSIM/config/hpl_dmac_config.h A sysmoOCTSIM/config/hpl_gclk_config.h A sysmoOCTSIM/config/hpl_mclk_config.h A sysmoOCTSIM/config/hpl_osc32kctrl_config.h A sysmoOCTSIM/config/hpl_oscctrl_config.h A sysmoOCTSIM/config/hpl_port_config.h A sysmoOCTSIM/config/hpl_usb_config.h A sysmoOCTSIM/config/peripheral_clk_config.h A sysmoOCTSIM/config/usbd_config.h A sysmoOCTSIM/documentation/usb_cdc_echo.rst A sysmoOCTSIM/documentation/usb_device_cdc.rst A sysmoOCTSIM/documentation/usb_device_core.rst A sysmoOCTSIM/documentation/usb_protocol_cdc.rst A sysmoOCTSIM/documentation/usb_protocol_core.rst A sysmoOCTSIM/driver_init.c A sysmoOCTSIM/driver_init.h A sysmoOCTSIM/examples/driver_examples.c A sysmoOCTSIM/examples/driver_examples.h A sysmoOCTSIM/gcc/Makefile A sysmoOCTSIM/gcc/gcc/same54p20a_flash.ld A sysmoOCTSIM/gcc/gcc/same54p20a_sram.ld A sysmoOCTSIM/gcc/gcc/startup_same54.c A sysmoOCTSIM/gcc/system_same54.c A sysmoOCTSIM/hal/documentation/usb_device_async.rst A sysmoOCTSIM/hal/include/hal_atomic.h A sysmoOCTSIM/hal/include/hal_cache.h A sysmoOCTSIM/hal/include/hal_delay.h A sysmoOCTSIM/hal/include/hal_gpio.h A sysmoOCTSIM/hal/include/hal_init.h A sysmoOCTSIM/hal/include/hal_io.h A sysmoOCTSIM/hal/include/hal_sleep.h A sysmoOCTSIM/hal/include/hal_usb_device.h A sysmoOCTSIM/hal/include/hpl_cmcc.h A sysmoOCTSIM/hal/include/hpl_core.h A sysmoOCTSIM/hal/include/hpl_delay.h A sysmoOCTSIM/hal/include/hpl_dma.h A sysmoOCTSIM/hal/include/hpl_gpio.h A sysmoOCTSIM/hal/include/hpl_init.h A sysmoOCTSIM/hal/include/hpl_irq.h A sysmoOCTSIM/hal/include/hpl_missing_features.h A sysmoOCTSIM/hal/include/hpl_ramecc.h A sysmoOCTSIM/hal/include/hpl_reset.h A sysmoOCTSIM/hal/include/hpl_sleep.h A sysmoOCTSIM/hal/include/hpl_usb.h A sysmoOCTSIM/hal/include/hpl_usb_device.h A sysmoOCTSIM/hal/include/hpl_usb_host.h A sysmoOCTSIM/hal/src/hal_atomic.c A sysmoOCTSIM/hal/src/hal_cache.c A sysmoOCTSIM/hal/src/hal_delay.c A sysmoOCTSIM/hal/src/hal_gpio.c A sysmoOCTSIM/hal/src/hal_init.c A sysmoOCTSIM/hal/src/hal_io.c A sysmoOCTSIM/hal/src/hal_sleep.c A sysmoOCTSIM/hal/src/hal_usb_device.c A sysmoOCTSIM/hal/utils/include/compiler.h A sysmoOCTSIM/hal/utils/include/err_codes.h A sysmoOCTSIM/hal/utils/include/events.h A sysmoOCTSIM/hal/utils/include/parts.h A sysmoOCTSIM/hal/utils/include/utils.h A sysmoOCTSIM/hal/utils/include/utils_assert.h A sysmoOCTSIM/hal/utils/include/utils_event.h A sysmoOCTSIM/hal/utils/include/utils_increment_macro.h A sysmoOCTSIM/hal/utils/include/utils_list.h A sysmoOCTSIM/hal/utils/include/utils_repeat_macro.h A sysmoOCTSIM/hal/utils/src/utils_assert.c A sysmoOCTSIM/hal/utils/src/utils_event.c A sysmoOCTSIM/hal/utils/src/utils_list.c A sysmoOCTSIM/hal/utils/src/utils_syscalls.c A sysmoOCTSIM/hpl/cmcc/hpl_cmcc.c A sysmoOCTSIM/hpl/core/hpl_core_m4.c A sysmoOCTSIM/hpl/core/hpl_core_port.h A sysmoOCTSIM/hpl/core/hpl_init.c A sysmoOCTSIM/hpl/dmac/hpl_dmac.c A sysmoOCTSIM/hpl/gclk/hpl_gclk.c A sysmoOCTSIM/hpl/gclk/hpl_gclk_base.h A sysmoOCTSIM/hpl/mclk/hpl_mclk.c A sysmoOCTSIM/hpl/osc32kctrl/hpl_osc32kctrl.c A sysmoOCTSIM/hpl/oscctrl/hpl_oscctrl.c A sysmoOCTSIM/hpl/pm/hpl_pm.c A sysmoOCTSIM/hpl/pm/hpl_pm_base.h A sysmoOCTSIM/hpl/port/hpl_gpio_base.h A sysmoOCTSIM/hpl/ramecc/hpl_ramecc.c A sysmoOCTSIM/hpl/usb/hpl_usb.c A sysmoOCTSIM/hri/hri_ac_e54.h A sysmoOCTSIM/hri/hri_adc_e54.h A sysmoOCTSIM/hri/hri_aes_e54.h A sysmoOCTSIM/hri/hri_can_e54.h A sysmoOCTSIM/hri/hri_ccl_e54.h A sysmoOCTSIM/hri/hri_cmcc_e54.h A sysmoOCTSIM/hri/hri_dac_e54.h A sysmoOCTSIM/hri/hri_dmac_e54.h A sysmoOCTSIM/hri/hri_dsu_e54.h A sysmoOCTSIM/hri/hri_e54.h A sysmoOCTSIM/hri/hri_eic_e54.h A sysmoOCTSIM/hri/hri_evsys_e54.h A sysmoOCTSIM/hri/hri_freqm_e54.h A sysmoOCTSIM/hri/hri_gclk_e54.h A sysmoOCTSIM/hri/hri_gmac_e54.h A sysmoOCTSIM/hri/hri_hmatrixb_e54.h A sysmoOCTSIM/hri/hri_i2s_e54.h A sysmoOCTSIM/hri/hri_icm_e54.h A sysmoOCTSIM/hri/hri_mclk_e54.h A sysmoOCTSIM/hri/hri_mpu_e54.h A sysmoOCTSIM/hri/hri_nvic_e54.h A sysmoOCTSIM/hri/hri_nvmctrl_e54.h A sysmoOCTSIM/hri/hri_osc32kctrl_e54.h A sysmoOCTSIM/hri/hri_oscctrl_e54.h A sysmoOCTSIM/hri/hri_pac_e54.h A sysmoOCTSIM/hri/hri_pcc_e54.h A sysmoOCTSIM/hri/hri_pdec_e54.h A sysmoOCTSIM/hri/hri_pm_e54.h A sysmoOCTSIM/hri/hri_port_e54.h A sysmoOCTSIM/hri/hri_qspi_e54.h A sysmoOCTSIM/hri/hri_ramecc_e54.h A sysmoOCTSIM/hri/hri_rstc_e54.h A sysmoOCTSIM/hri/hri_rtc_e54.h A sysmoOCTSIM/hri/hri_sdhc_e54.h A sysmoOCTSIM/hri/hri_sercom_e54.h A sysmoOCTSIM/hri/hri_supc_e54.h A sysmoOCTSIM/hri/hri_systemcontrol_e54.h A sysmoOCTSIM/hri/hri_systick_e54.h A sysmoOCTSIM/hri/hri_tc_e54.h A sysmoOCTSIM/hri/hri_tcc_e54.h A sysmoOCTSIM/hri/hri_trng_e54.h A sysmoOCTSIM/hri/hri_usb_e54.h A sysmoOCTSIM/hri/hri_wdt_e54.h A sysmoOCTSIM/include/component-version.h A sysmoOCTSIM/include/component/ac.h A sysmoOCTSIM/include/component/adc.h A sysmoOCTSIM/include/component/aes.h A sysmoOCTSIM/include/component/can.h A sysmoOCTSIM/include/component/ccl.h A sysmoOCTSIM/include/component/cmcc.h A sysmoOCTSIM/include/component/dac.h A sysmoOCTSIM/include/component/dmac.h A sysmoOCTSIM/include/component/dsu.h A sysmoOCTSIM/include/component/eic.h A sysmoOCTSIM/include/component/evsys.h A sysmoOCTSIM/include/component/freqm.h A sysmoOCTSIM/include/component/gclk.h A sysmoOCTSIM/include/component/gmac.h A sysmoOCTSIM/include/component/hmatrixb.h A sysmoOCTSIM/include/component/i2s.h A sysmoOCTSIM/include/component/icm.h A sysmoOCTSIM/include/component/mclk.h A sysmoOCTSIM/include/component/nvmctrl.h A sysmoOCTSIM/include/component/osc32kctrl.h A sysmoOCTSIM/include/component/oscctrl.h A sysmoOCTSIM/include/component/pac.h A sysmoOCTSIM/include/component/pcc.h A sysmoOCTSIM/include/component/pdec.h A sysmoOCTSIM/include/component/picop.h A sysmoOCTSIM/include/component/pm.h A sysmoOCTSIM/include/component/port.h A sysmoOCTSIM/include/component/qspi.h A sysmoOCTSIM/include/component/ramecc.h A sysmoOCTSIM/include/component/rstc.h A sysmoOCTSIM/include/component/rtc.h A sysmoOCTSIM/include/component/sdhc.h A sysmoOCTSIM/include/component/sercom.h A sysmoOCTSIM/include/component/supc.h A sysmoOCTSIM/include/component/tc.h A sysmoOCTSIM/include/component/tcc.h A sysmoOCTSIM/include/component/trng.h A sysmoOCTSIM/include/component/usb.h A sysmoOCTSIM/include/component/wdt.h A sysmoOCTSIM/include/instance/ac.h A sysmoOCTSIM/include/instance/adc0.h A sysmoOCTSIM/include/instance/adc1.h A sysmoOCTSIM/include/instance/aes.h A sysmoOCTSIM/include/instance/can0.h A sysmoOCTSIM/include/instance/can1.h A sysmoOCTSIM/include/instance/ccl.h A sysmoOCTSIM/include/instance/cmcc.h A sysmoOCTSIM/include/instance/dac.h A sysmoOCTSIM/include/instance/dmac.h A sysmoOCTSIM/include/instance/dsu.h A sysmoOCTSIM/include/instance/eic.h A sysmoOCTSIM/include/instance/evsys.h A sysmoOCTSIM/include/instance/freqm.h A sysmoOCTSIM/include/instance/gclk.h A sysmoOCTSIM/include/instance/gmac.h A sysmoOCTSIM/include/instance/hmatrix.h A sysmoOCTSIM/include/instance/i2s.h A sysmoOCTSIM/include/instance/icm.h A sysmoOCTSIM/include/instance/mclk.h A sysmoOCTSIM/include/instance/nvmctrl.h A sysmoOCTSIM/include/instance/osc32kctrl.h A sysmoOCTSIM/include/instance/oscctrl.h A sysmoOCTSIM/include/instance/pac.h A sysmoOCTSIM/include/instance/pcc.h A sysmoOCTSIM/include/instance/pdec.h A sysmoOCTSIM/include/instance/picop.h A sysmoOCTSIM/include/instance/pm.h A sysmoOCTSIM/include/instance/port.h A sysmoOCTSIM/include/instance/pukcc.h A sysmoOCTSIM/include/instance/qspi.h A sysmoOCTSIM/include/instance/ramecc.h A sysmoOCTSIM/include/instance/rstc.h A sysmoOCTSIM/include/instance/rtc.h A sysmoOCTSIM/include/instance/sdhc0.h A sysmoOCTSIM/include/instance/sdhc1.h A sysmoOCTSIM/include/instance/sercom0.h A sysmoOCTSIM/include/instance/sercom1.h A sysmoOCTSIM/include/instance/sercom2.h A sysmoOCTSIM/include/instance/sercom3.h A sysmoOCTSIM/include/instance/sercom4.h A sysmoOCTSIM/include/instance/sercom5.h A sysmoOCTSIM/include/instance/sercom6.h A sysmoOCTSIM/include/instance/sercom7.h A sysmoOCTSIM/include/instance/supc.h A sysmoOCTSIM/include/instance/tc0.h A sysmoOCTSIM/include/instance/tc1.h A sysmoOCTSIM/include/instance/tc2.h A sysmoOCTSIM/include/instance/tc3.h A sysmoOCTSIM/include/instance/tc4.h A sysmoOCTSIM/include/instance/tc5.h A sysmoOCTSIM/include/instance/tc6.h A sysmoOCTSIM/include/instance/tc7.h A sysmoOCTSIM/include/instance/tcc0.h A sysmoOCTSIM/include/instance/tcc1.h A sysmoOCTSIM/include/instance/tcc2.h A sysmoOCTSIM/include/instance/tcc3.h A sysmoOCTSIM/include/instance/tcc4.h A sysmoOCTSIM/include/instance/trng.h A sysmoOCTSIM/include/instance/usb.h A sysmoOCTSIM/include/instance/wdt.h A sysmoOCTSIM/include/pio/same54n19a.h A sysmoOCTSIM/include/pio/same54n20a.h A sysmoOCTSIM/include/pio/same54p19a.h A sysmoOCTSIM/include/pio/same54p20a.h A sysmoOCTSIM/include/sam.h A sysmoOCTSIM/include/same54.h A sysmoOCTSIM/include/same54n19a.h A sysmoOCTSIM/include/same54n20a.h A sysmoOCTSIM/include/same54p19a.h A sysmoOCTSIM/include/same54p20a.h A sysmoOCTSIM/include/system_same54.h A sysmoOCTSIM/usb/class/cdc/device/atmel_devices_cdc.cat A sysmoOCTSIM/usb/class/cdc/device/atmel_devices_cdc.inf A sysmoOCTSIM/usb/class/cdc/device/cdcdf_acm.c A sysmoOCTSIM/usb/class/cdc/device/cdcdf_acm.h A sysmoOCTSIM/usb/class/cdc/device/cdcdf_acm_desc.h A sysmoOCTSIM/usb/class/cdc/usb_protocol_cdc.h A sysmoOCTSIM/usb/device/usbdc.c A sysmoOCTSIM/usb/device/usbdc.h A sysmoOCTSIM/usb/usb_atmel.h A sysmoOCTSIM/usb/usb_debug.h A sysmoOCTSIM/usb/usb_includes.h A sysmoOCTSIM/usb/usb_protocol.c A sysmoOCTSIM/usb/usb_protocol.h A sysmoOCTSIM/usb_cdc_echo_main.c A sysmoOCTSIM/usb_start.c A sysmoOCTSIM/usb_start.h 284 files changed, 242,161 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/92/12792/2 -- To view, visit https://gerrit.osmocom.org/12792 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I356de75e7b730d63fb819248e71d36f785932199 Gerrit-Change-Number: 12792 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:47:37 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:47:37 +0000 Subject: Change in osmo-ccid-firmware[master]: rename project to sysmoOCTSIM Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12793 Change subject: rename project to sysmoOCTSIM ...................................................................... rename project to sysmoOCTSIM Change-Id: I1ff2ac6e2ae1b1b4765f2ca27c5b3fa6e93baa95 --- M sysmoOCTSIM/AtmelStart.gpdsc M sysmoOCTSIM/atmel_start_config.atstart 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/93/12793/1 diff --git a/sysmoOCTSIM/AtmelStart.gpdsc b/sysmoOCTSIM/AtmelStart.gpdsc index 20a44d8..4784595 100644 --- a/sysmoOCTSIM/AtmelStart.gpdsc +++ b/sysmoOCTSIM/AtmelStart.gpdsc @@ -1,6 +1,6 @@ Atmel - USB CDC Echo + sysmoOCTSIM Project generated by Atmel Start http://start.atmel.com/ diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index f0369f4..8a87ba2 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -1,5 +1,5 @@ format_version: '2' -name: USB CDC Echo +name: sysmoOCTSIM versions: api: '1.0' backend: 1.4.93 -- To view, visit https://gerrit.osmocom.org/12793 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I1ff2ac6e2ae1b1b4765f2ca27c5b3fa6e93baa95 Gerrit-Change-Number: 12793 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:47:38 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:47:38 +0000 Subject: Change in osmo-ccid-firmware[master]: change USB description to sysmoOCTSIM Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12794 Change subject: change USB description to sysmoOCTSIM ...................................................................... change USB description to sysmoOCTSIM Change-Id: I1f9819df5b4737a9a6dfa69c918d05c60ec5f86a --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/config/usbd_config.h 2 files changed, 20 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/94/12794/1 diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index 8a87ba2..f3620ee 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -68,16 +68,16 @@ usb_cdcd_acm_epaddr: EndpointAddress = 0x82 usb_cdcd_acm_iconfig_en: false usb_cdcd_acm_iconfig_str: '' - usb_cdcd_acm_idproduct: 9220 - usb_cdcd_acm_idvender: 1003 - usb_cdcd_acm_imanufact_en: false - usb_cdcd_acm_imanufact_str: Atmel - usb_cdcd_acm_iproduct_en: false - usb_cdcd_acm_iproduct_str: CDC ACM Serial Bridge Demo + usb_cdcd_acm_idproduct: 24897 + usb_cdcd_acm_idvender: 7504 + usb_cdcd_acm_imanufact_en: true + usb_cdcd_acm_imanufact_str: sysmocom + usb_cdcd_acm_iproduct_en: true + usb_cdcd_acm_iproduct_str: sysmoOCTSIM usb_cdcd_acm_iserialnum_en: false usb_cdcd_acm_iserialnum_str: 123456789ABCDEF usb_cdcd_acm_langid: '0x0409' - usb_cdcd_acm_str_en: false + usb_cdcd_acm_str_en: true definition: Atmel:USB:0.0.1::USB_Device_CDC_ACM functionality: USB_Device_CDC_ACM api: USB:Device:CDC_ACM diff --git a/sysmoOCTSIM/config/usbd_config.h b/sysmoOCTSIM/config/usbd_config.h index e8334ec..0be4363 100644 --- a/sysmoOCTSIM/config/usbd_config.h +++ b/sysmoOCTSIM/config/usbd_config.h @@ -19,7 +19,7 @@ // Enable String Descriptors // usb_cdcd_acm_str_en #ifndef CONF_USB_CDCD_ACM_STR_EN -#define CONF_USB_CDCD_ACM_STR_EN 0 +#define CONF_USB_CDCD_ACM_STR_EN 1 #endif // Language IDs // Language IDs in c format, split by comma (E.g., 0x0409 ...) @@ -29,7 +29,7 @@ #endif #ifndef CONF_USB_CDCD_ACM_LANGID_DESC -#define CONF_USB_CDCD_ACM_LANGID_DESC +#define CONF_USB_CDCD_ACM_LANGID_DESC 4, 0x03, 0x09, 0x04, #endif // @@ -56,13 +56,13 @@ // idVender <0x0000-0xFFFF> // usb_cdcd_acm_idvender #ifndef CONF_USB_CDCD_ACM_IDVENDER -#define CONF_USB_CDCD_ACM_IDVENDER 0x3eb +#define CONF_USB_CDCD_ACM_IDVENDER 0x1d50 #endif // idProduct <0x0000-0xFFFF> // usb_cdcd_acm_idproduct #ifndef CONF_USB_CDCD_ACM_IDPRODUCT -#define CONF_USB_CDCD_ACM_IDPRODUCT 0x2404 +#define CONF_USB_CDCD_ACM_IDPRODUCT 0x6141 #endif // bcdDevice <0x0000-0xFFFF> @@ -74,7 +74,7 @@ // Enable string descriptor of iManufact // usb_cdcd_acm_imanufact_en #ifndef CONF_USB_CDCD_ACM_IMANUFACT_EN -#define CONF_USB_CDCD_ACM_IMANUFACT_EN 0 +#define CONF_USB_CDCD_ACM_IMANUFACT_EN 1 #endif #ifndef CONF_USB_CDCD_ACM_IMANUFACT @@ -84,11 +84,12 @@ // Unicode string of iManufact // usb_cdcd_acm_imanufact_str #ifndef CONF_USB_CDCD_ACM_IMANUFACT_STR -#define CONF_USB_CDCD_ACM_IMANUFACT_STR "Atmel" +#define CONF_USB_CDCD_ACM_IMANUFACT_STR "sysmocom" #endif #ifndef CONF_USB_CDCD_ACM_IMANUFACT_STR_DESC -#define CONF_USB_CDCD_ACM_IMANUFACT_STR_DESC +#define CONF_USB_CDCD_ACM_IMANUFACT_STR_DESC \ + 18, 0x03, 's', 0x00, 'y', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, 'c', 0x00, 'o', 0x00, 'm', 0x00, #endif // @@ -96,7 +97,7 @@ // Enable string descriptor of iProduct // usb_cdcd_acm_iproduct_en #ifndef CONF_USB_CDCD_ACM_IPRODUCT_EN -#define CONF_USB_CDCD_ACM_IPRODUCT_EN 0 +#define CONF_USB_CDCD_ACM_IPRODUCT_EN 1 #endif #ifndef CONF_USB_CDCD_ACM_IPRODUCT @@ -107,11 +108,13 @@ // Unicode string of iProduct // usb_cdcd_acm_iproduct_str #ifndef CONF_USB_CDCD_ACM_IPRODUCT_STR -#define CONF_USB_CDCD_ACM_IPRODUCT_STR "CDC ACM Serial Bridge Demo" +#define CONF_USB_CDCD_ACM_IPRODUCT_STR "sysmoOCTSIM" #endif #ifndef CONF_USB_CDCD_ACM_IPRODUCT_STR_DESC -#define CONF_USB_CDCD_ACM_IPRODUCT_STR_DESC +#define CONF_USB_CDCD_ACM_IPRODUCT_STR_DESC \ + 24, 0x03, 's', 0x00, 'y', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, 'O', 0x00, 'C', 0x00, 'T', 0x00, 'S', 0x00, 'I', \ + 0x00, 'M', 0x00, #endif // -- To view, visit https://gerrit.osmocom.org/12794 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I1f9819df5b4737a9a6dfa69c918d05c60ec5f86a Gerrit-Change-Number: 12794 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:47:38 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:47:38 +0000 Subject: Change in osmo-ccid-firmware[master]: ignore output files Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12795 Change subject: ignore output files ...................................................................... ignore output files Change-Id: I425129f10aa2ff879fde96bfafbcb7c4b4119959 --- A sysmoOCTSIM/.gitignore 1 file changed, 8 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/95/12795/1 diff --git a/sysmoOCTSIM/.gitignore b/sysmoOCTSIM/.gitignore new file mode 100644 index 0000000..0f05565 --- /dev/null +++ b/sysmoOCTSIM/.gitignore @@ -0,0 +1,8 @@ +*.d +*.o +*.bin +*.eep +*.elf +*.hex +*.lss +*.map -- To view, visit https://gerrit.osmocom.org/12795 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I425129f10aa2ff879fde96bfafbcb7c4b4119959 Gerrit-Change-Number: 12795 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:47:38 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:47:38 +0000 Subject: Change in osmo-ccid-firmware[master]: use external 32.768 kHz oscillator for RTC Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12796 Change subject: use external 32.768 kHz oscillator for RTC ...................................................................... use external 32.768 kHz oscillator for RTC Change-Id: Ic4630abececdb631e8cc15baab7137fc15e2a66a --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/config/hpl_osc32kctrl_config.h 2 files changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/96/12796/1 diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index f3620ee..385c890 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -787,8 +787,8 @@ enable_xosc32k: true osculp32k_calib: 0 osculp32k_calib_enable: false - rtc_1khz_selection: true - rtc_source_oscillator: 32kHz Ultra Low Power Internal Oscillator (OSCULP32K) + rtc_1khz_selection: false + rtc_source_oscillator: 32kHz External Crystal Oscillator (XOSC32K) xosc32k_arch_cfden: false xosc32k_arch_cfdeo: false xosc32k_arch_cgm: Standard mode diff --git a/sysmoOCTSIM/config/hpl_osc32kctrl_config.h b/sysmoOCTSIM/config/hpl_osc32kctrl_config.h index d0b0d34..943dfea 100644 --- a/sysmoOCTSIM/config/hpl_osc32kctrl_config.h +++ b/sysmoOCTSIM/config/hpl_osc32kctrl_config.h @@ -17,14 +17,14 @@ // This defines the clock source for RTC // rtc_source_oscillator #ifndef CONF_RTCCTRL_SRC -#define CONF_RTCCTRL_SRC GCLK_GENCTRL_SRC_OSCULP32K +#define CONF_RTCCTRL_SRC GCLK_GENCTRL_SRC_XOSC32K #endif // Use 1 kHz output // rtc_1khz_selection #ifndef CONF_RTCCTRL_1KHZ -#define CONF_RTCCTRL_1KHZ 1 +#define CONF_RTCCTRL_1KHZ 0 #endif -- To view, visit https://gerrit.osmocom.org/12796 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic4630abececdb631e8cc15baab7137fc15e2a66a Gerrit-Change-Number: 12796 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:47:38 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:47:38 +0000 Subject: Change in osmo-ccid-firmware[master]: switch CPU clock to 120 MHz Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12797 Change subject: switch CPU clock to 120 MHz ...................................................................... switch CPU clock to 120 MHz use GCLK11 to bring external crystal oscillator XOSC1 from 12 MHz to 2MHz use DPLL0 to multiply 2 MHz to 120 MHz. the division is first needed because the DPLL0 maximum input frequency is 3.2 MHz Change-Id: I642e724ec56a376addf21cc58ecd2ef1b40bd116 --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/config/hpl_gclk_config.h M sysmoOCTSIM/config/hpl_oscctrl_config.h M sysmoOCTSIM/config/peripheral_clk_config.h M sysmoOCTSIM/hpl/core/hpl_init.c 5 files changed, 28 insertions(+), 27 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/97/12797/1 diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index 385c890..5e27536 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -646,7 +646,7 @@ enable_gclk_gen_0: true enable_gclk_gen_1: true enable_gclk_gen_10: false - enable_gclk_gen_11: false + enable_gclk_gen_11: true enable_gclk_gen_2: false enable_gclk_gen_3: true enable_gclk_gen_4: false @@ -665,7 +665,7 @@ gclk_arch_gen_10_oe: false gclk_arch_gen_10_oov: false gclk_arch_gen_10_runstdby: false - gclk_arch_gen_11_enable: false + gclk_arch_gen_11_enable: true gclk_arch_gen_11_idc: false gclk_arch_gen_11_oe: false gclk_arch_gen_11_oov: false @@ -717,13 +717,13 @@ gclk_arch_gen_9_runstdby: false gclk_gen_0_div: 1 gclk_gen_0_div_sel: false - gclk_gen_0_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) + gclk_gen_0_oscillator: Digital Phase Locked Loop (DPLL0) gclk_gen_10_div: 1 gclk_gen_10_div_sel: false gclk_gen_10_oscillator: External Crystal Oscillator 8-48MHz (XOSC0) - gclk_gen_11_div: 1 + gclk_gen_11_div: 6 gclk_gen_11_div_sel: false - gclk_gen_11_oscillator: External Crystal Oscillator 8-48MHz (XOSC0) + gclk_gen_11_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) gclk_gen_1_div: 1 gclk_gen_1_div_sel: false gclk_gen_1_oscillator: Digital Frequency Locked Loop (DFLL48M) @@ -829,24 +829,24 @@ dfll_mul: 48000 dfll_ref_clock: Generic clock generator 3 enable_dfll: true - enable_fdpll0: false + enable_fdpll0: true enable_fdpll1: false enable_xosc0: false enable_xosc1: true fdpll0_arch_dcoen: false - fdpll0_arch_enable: false + fdpll0_arch_enable: true fdpll0_arch_filter: 0 fdpll0_arch_lbypass: false fdpll0_arch_ltime: No time-out, automatic lock fdpll0_arch_ondemand: false - fdpll0_arch_refclk: XOSC32K clock reference + fdpll0_arch_refclk: XOSC1 clock reference fdpll0_arch_runstdby: false fdpll0_arch_wuf: false fdpll0_clock_dcofilter: 0 - fdpll0_clock_div: 0 - fdpll0_ldr: 1463 - fdpll0_ldrfrac: 13 - fdpll0_ref_clock: 32kHz External Crystal Oscillator (XOSC32K) + fdpll0_clock_div: 6 + fdpll0_ldr: 59 + fdpll0_ldrfrac: 0 + fdpll0_ref_clock: Generic clock generator 11 fdpll1_arch_dcoen: false fdpll1_arch_enable: false fdpll1_arch_filter: 0 diff --git a/sysmoOCTSIM/config/hpl_gclk_config.h b/sysmoOCTSIM/config/hpl_gclk_config.h index 306d90e..8d10f38 100644 --- a/sysmoOCTSIM/config/hpl_gclk_config.h +++ b/sysmoOCTSIM/config/hpl_gclk_config.h @@ -25,7 +25,7 @@ // This defines the clock source for generic clock generator 0 // gclk_gen_0_oscillator #ifndef CONF_GCLK_GEN_0_SOURCE -#define CONF_GCLK_GEN_0_SOURCE GCLK_GENCTRL_SRC_XOSC1 +#define CONF_GCLK_GEN_0_SOURCE GCLK_GENCTRL_SRC_DPLL0 #endif // Run in Standby @@ -843,7 +843,7 @@ // Indicates whether generic clock 11 configuration is enabled or not // enable_gclk_gen_11 #ifndef CONF_GCLK_GENERATOR_11_CONFIG -#define CONF_GCLK_GENERATOR_11_CONFIG 0 +#define CONF_GCLK_GENERATOR_11_CONFIG 1 #endif // Generic Clock Generator Control @@ -860,7 +860,7 @@ // This defines the clock source for generic clock generator 11 // gclk_gen_11_oscillator #ifndef CONF_GCLK_GEN_11_SOURCE -#define CONF_GCLK_GEN_11_SOURCE GCLK_GENCTRL_SRC_XOSC0 +#define CONF_GCLK_GEN_11_SOURCE GCLK_GENCTRL_SRC_XOSC1 #endif // Run in Standby @@ -902,7 +902,7 @@ // Indicates whether Generic Clock Generator Enable is enabled or not // gclk_arch_gen_11_enable #ifndef CONF_GCLK_GEN_11_GENEN -#define CONF_GCLK_GEN_11_GENEN 0 +#define CONF_GCLK_GEN_11_GENEN 1 #endif // @@ -910,7 +910,7 @@ // Generic clock generator 11 division <0x0000-0xFFFF> // gclk_gen_11_div #ifndef CONF_GCLK_GEN_11_DIV -#define CONF_GCLK_GEN_11_DIV 1 +#define CONF_GCLK_GEN_11_DIV 6 #endif // // diff --git a/sysmoOCTSIM/config/hpl_oscctrl_config.h b/sysmoOCTSIM/config/hpl_oscctrl_config.h index 11e4a24..d59ac43 100644 --- a/sysmoOCTSIM/config/hpl_oscctrl_config.h +++ b/sysmoOCTSIM/config/hpl_oscctrl_config.h @@ -382,7 +382,7 @@ // Indicates whether configuration for FDPLL0 is enabled or not // enable_fdpll0 #ifndef CONF_FDPLL0_CONFIG -#define CONF_FDPLL0_CONFIG 0 +#define CONF_FDPLL0_CONFIG 1 #endif // Reference Clock Source @@ -404,7 +404,7 @@ // Select the clock source. // fdpll0_ref_clock #ifndef CONF_FDPLL0_GCLK -#define CONF_FDPLL0_GCLK GCLK_GENCTRL_SRC_XOSC32K +#define CONF_FDPLL0_GCLK GCLK_PCHCTRL_GEN_GCLK11_Val #endif // Digital Phase Locked Loop Control @@ -412,7 +412,7 @@ // Indicates whether Digital Phase Locked Loop is enabled or not // fdpll0_arch_enable #ifndef CONF_FDPLL0_ENABLE -#define CONF_FDPLL0_ENABLE 0 +#define CONF_FDPLL0_ENABLE 1 #endif // On Demand Control @@ -432,19 +432,19 @@ // Loop Divider Ratio Fractional Part <0x0-0x1F> // fdpll0_ldrfrac #ifndef CONF_FDPLL0_LDRFRAC -#define CONF_FDPLL0_LDRFRAC 0xd +#define CONF_FDPLL0_LDRFRAC 0x0 #endif // Loop Divider Ratio Integer Part <0x0-0x1FFF> // fdpll0_ldr #ifndef CONF_FDPLL0_LDR -#define CONF_FDPLL0_LDR 0x5b7 +#define CONF_FDPLL0_LDR 0x3b #endif // Clock Divider <0x0-0x7FF> // fdpll0_clock_div #ifndef CONF_FDPLL0_DIV -#define CONF_FDPLL0_DIV 0x0 +#define CONF_FDPLL0_DIV 0x6 #endif // DCO Filter Enable @@ -485,7 +485,7 @@ // <0x3=>XOSC1 clock reference // fdpll0_arch_refclk #ifndef CONF_FDPLL0_REFCLK -#define CONF_FDPLL0_REFCLK 0x1 +#define CONF_FDPLL0_REFCLK 0x3 #endif // Wake Up Fast diff --git a/sysmoOCTSIM/config/peripheral_clk_config.h b/sysmoOCTSIM/config/peripheral_clk_config.h index 9a9c30f..8078e4b 100644 --- a/sysmoOCTSIM/config/peripheral_clk_config.h +++ b/sysmoOCTSIM/config/peripheral_clk_config.h @@ -9,7 +9,7 @@ * \brief CPU's Clock frequency */ #ifndef CONF_CPU_FREQUENCY -#define CONF_CPU_FREQUENCY 12000000 +#define CONF_CPU_FREQUENCY 120000000 #endif // USB Clock Source diff --git a/sysmoOCTSIM/hpl/core/hpl_init.c b/sysmoOCTSIM/hpl/core/hpl_init.c index be0db93..6f3dc20 100644 --- a/sysmoOCTSIM/hpl/core/hpl_init.c +++ b/sysmoOCTSIM/hpl/core/hpl_init.c @@ -42,10 +42,11 @@ #include /* Referenced GCLKs (out of 0~11), should be initialized firstly + * - GCLK 11 for FDPLL0 */ -#define _GCLK_INIT_1ST 0x00000000 +#define _GCLK_INIT_1ST 0x00000800 /* Not referenced GCLKs, initialized last */ -#define _GCLK_INIT_LAST 0x00000FFF +#define _GCLK_INIT_LAST 0x000007FF /** * \brief Initialize the hardware abstraction layer -- To view, visit https://gerrit.osmocom.org/12797 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I642e724ec56a376addf21cc58ecd2ef1b40bd116 Gerrit-Change-Number: 12797 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:47:39 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:47:39 +0000 Subject: Change in osmo-ccid-firmware[master]: remove usage of GCLK11 Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12798 Change subject: remove usage of GCLK11 ...................................................................... remove usage of GCLK11 DPLL0 can take directly XOSC1 as input and divide it to 2 MHz. thus the intermediate GCLK11 is not needed. this configuration is not supported by Atmel START since it does not know about the division and thinks the input frequency exceeds the maximum Change-Id: I121ad850cf118b641fe522b513ffd7e00b30b710 --- M sysmoOCTSIM/config/hpl_gclk_config.h M sysmoOCTSIM/config/hpl_oscctrl_config.h 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/98/12798/1 diff --git a/sysmoOCTSIM/config/hpl_gclk_config.h b/sysmoOCTSIM/config/hpl_gclk_config.h index 8d10f38..fbaa9b7 100644 --- a/sysmoOCTSIM/config/hpl_gclk_config.h +++ b/sysmoOCTSIM/config/hpl_gclk_config.h @@ -902,7 +902,7 @@ // Indicates whether Generic Clock Generator Enable is enabled or not // gclk_arch_gen_11_enable #ifndef CONF_GCLK_GEN_11_GENEN -#define CONF_GCLK_GEN_11_GENEN 1 +#define CONF_GCLK_GEN_11_GENEN 0 #endif // diff --git a/sysmoOCTSIM/config/hpl_oscctrl_config.h b/sysmoOCTSIM/config/hpl_oscctrl_config.h index d59ac43..6b3cc19 100644 --- a/sysmoOCTSIM/config/hpl_oscctrl_config.h +++ b/sysmoOCTSIM/config/hpl_oscctrl_config.h @@ -404,7 +404,7 @@ // Select the clock source. // fdpll0_ref_clock #ifndef CONF_FDPLL0_GCLK -#define CONF_FDPLL0_GCLK GCLK_PCHCTRL_GEN_GCLK11_Val +#define CONF_FDPLL0_GCLK GCLK_GENCTRL_SRC_XOSC1 #endif // Digital Phase Locked Loop Control -- To view, visit https://gerrit.osmocom.org/12798 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I121ad850cf118b641fe522b513ffd7e00b30b710 Gerrit-Change-Number: 12798 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:47:39 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:47:39 +0000 Subject: Change in osmo-ccid-firmware[master]: set DPLL1 to 100 MHz Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12799 Change subject: set DPLL1 to 100 MHz ...................................................................... set DPLL1 to 100 MHz use GCLK11 to bring external crystal oscillator XOSC1 from 12 MHz to 2MHz use DPLL1 to multiply 2 MHz to 100 MHz. the division is first needed because the DPLL0 maximum input frequency is 3.2 MHz 100 MHz is the maximum input frequency for the SERCOM peripherals Change-Id: I0482c39cc0db999904c585d21738dbce57ca3b55 --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/config/hpl_gclk_config.h M sysmoOCTSIM/config/hpl_oscctrl_config.h M sysmoOCTSIM/hpl/core/hpl_init.c 4 files changed, 22 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/99/12799/1 diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index 5e27536..3899d79 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -647,7 +647,7 @@ enable_gclk_gen_1: true enable_gclk_gen_10: false enable_gclk_gen_11: true - enable_gclk_gen_2: false + enable_gclk_gen_2: true enable_gclk_gen_3: true enable_gclk_gen_4: false enable_gclk_gen_5: false @@ -675,7 +675,7 @@ gclk_arch_gen_1_oe: false gclk_arch_gen_1_oov: false gclk_arch_gen_1_runstdby: false - gclk_arch_gen_2_enable: false + gclk_arch_gen_2_enable: true gclk_arch_gen_2_idc: false gclk_arch_gen_2_oe: false gclk_arch_gen_2_oov: false @@ -728,8 +728,8 @@ gclk_gen_1_div_sel: false gclk_gen_1_oscillator: Digital Frequency Locked Loop (DFLL48M) gclk_gen_2_div: 1 - gclk_gen_2_div_sel: true - gclk_gen_2_oscillator: External Crystal Oscillator 8-48MHz (XOSC0) + gclk_gen_2_div_sel: false + gclk_gen_2_oscillator: Digital Phase Locked Loop (DPLL1) gclk_gen_3_div: 1 gclk_gen_3_div_sel: false gclk_gen_3_oscillator: 32kHz External Crystal Oscillator (XOSC32K) @@ -830,7 +830,7 @@ dfll_ref_clock: Generic clock generator 3 enable_dfll: true enable_fdpll0: true - enable_fdpll1: false + enable_fdpll1: true enable_xosc0: false enable_xosc1: true fdpll0_arch_dcoen: false @@ -848,19 +848,19 @@ fdpll0_ldrfrac: 0 fdpll0_ref_clock: Generic clock generator 11 fdpll1_arch_dcoen: false - fdpll1_arch_enable: false + fdpll1_arch_enable: true fdpll1_arch_filter: 0 fdpll1_arch_lbypass: false fdpll1_arch_ltime: No time-out, automatic lock fdpll1_arch_ondemand: false - fdpll1_arch_refclk: XOSC32K clock reference + fdpll1_arch_refclk: XOSC1 clock reference fdpll1_arch_runstdby: false fdpll1_arch_wuf: false fdpll1_clock_dcofilter: 0 - fdpll1_clock_div: 0 - fdpll1_ldr: 1463 - fdpll1_ldrfrac: 13 - fdpll1_ref_clock: 32kHz External Crystal Oscillator (XOSC32K) + fdpll1_clock_div: 6 + fdpll1_ldr: 49 + fdpll1_ldrfrac: 0 + fdpll1_ref_clock: Generic clock generator 11 xosc0_arch_cfden: false xosc0_arch_enable: false xosc0_arch_enalc: false diff --git a/sysmoOCTSIM/config/hpl_gclk_config.h b/sysmoOCTSIM/config/hpl_gclk_config.h index fbaa9b7..398a617 100644 --- a/sysmoOCTSIM/config/hpl_gclk_config.h +++ b/sysmoOCTSIM/config/hpl_gclk_config.h @@ -159,7 +159,7 @@ // Indicates whether generic clock 2 configuration is enabled or not // enable_gclk_gen_2 #ifndef CONF_GCLK_GENERATOR_2_CONFIG -#define CONF_GCLK_GENERATOR_2_CONFIG 0 +#define CONF_GCLK_GENERATOR_2_CONFIG 1 #endif // Generic Clock Generator Control @@ -176,7 +176,7 @@ // This defines the clock source for generic clock generator 2 // gclk_gen_2_oscillator #ifndef CONF_GCLK_GEN_2_SOURCE -#define CONF_GCLK_GEN_2_SOURCE GCLK_GENCTRL_SRC_XOSC0 +#define CONF_GCLK_GEN_2_SOURCE GCLK_GENCTRL_SRC_DPLL1 #endif // Run in Standby @@ -190,7 +190,7 @@ // Indicates whether Divide Selection is enabled or not // gclk_gen_2_div_sel #ifndef CONF_GCLK_GEN_2_DIVSEL -#define CONF_GCLK_GEN_2_DIVSEL 1 +#define CONF_GCLK_GEN_2_DIVSEL 0 #endif // Output Enable @@ -218,7 +218,7 @@ // Indicates whether Generic Clock Generator Enable is enabled or not // gclk_arch_gen_2_enable #ifndef CONF_GCLK_GEN_2_GENEN -#define CONF_GCLK_GEN_2_GENEN 0 +#define CONF_GCLK_GEN_2_GENEN 1 #endif // diff --git a/sysmoOCTSIM/config/hpl_oscctrl_config.h b/sysmoOCTSIM/config/hpl_oscctrl_config.h index 6b3cc19..06ee571 100644 --- a/sysmoOCTSIM/config/hpl_oscctrl_config.h +++ b/sysmoOCTSIM/config/hpl_oscctrl_config.h @@ -529,7 +529,7 @@ // Select the clock source. // fdpll1_ref_clock #ifndef CONF_FDPLL1_GCLK -#define CONF_FDPLL1_GCLK GCLK_GENCTRL_SRC_XOSC32K +#define CONF_FDPLL1_GCLK GCLK_PCHCTRL_GEN_GCLK11_Val #endif // Digital Phase Locked Loop Control @@ -537,7 +537,7 @@ // Indicates whether Digital Phase Locked Loop is enabled or not // fdpll1_arch_enable #ifndef CONF_FDPLL1_ENABLE -#define CONF_FDPLL1_ENABLE 0 +#define CONF_FDPLL1_ENABLE 1 #endif // On Demand Control @@ -557,19 +557,19 @@ // Loop Divider Ratio Fractional Part <0x0-0x1F> // fdpll1_ldrfrac #ifndef CONF_FDPLL1_LDRFRAC -#define CONF_FDPLL1_LDRFRAC 0xd +#define CONF_FDPLL1_LDRFRAC 0x0 #endif // Loop Divider Ratio Integer Part <0x0-0x1FFF> // fdpll1_ldr #ifndef CONF_FDPLL1_LDR -#define CONF_FDPLL1_LDR 0x5b7 +#define CONF_FDPLL1_LDR 0x31 #endif // Clock Divider <0x0-0x7FF> // fdpll1_clock_div #ifndef CONF_FDPLL1_DIV -#define CONF_FDPLL1_DIV 0x0 +#define CONF_FDPLL1_DIV 0x6 #endif // DCO Filter Enable @@ -610,7 +610,7 @@ // <0x3=>XOSC1 clock reference // fdpll1_arch_refclk #ifndef CONF_FDPLL1_REFCLK -#define CONF_FDPLL1_REFCLK 0x1 +#define CONF_FDPLL1_REFCLK 0x3 #endif // Wake Up Fast diff --git a/sysmoOCTSIM/hpl/core/hpl_init.c b/sysmoOCTSIM/hpl/core/hpl_init.c index 6f3dc20..bb8425c 100644 --- a/sysmoOCTSIM/hpl/core/hpl_init.c +++ b/sysmoOCTSIM/hpl/core/hpl_init.c @@ -42,6 +42,7 @@ #include /* Referenced GCLKs (out of 0~11), should be initialized firstly + * - GCLK 11 for FDPLL1 * - GCLK 11 for FDPLL0 */ #define _GCLK_INIT_1ST 0x00000800 -- To view, visit https://gerrit.osmocom.org/12799 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0482c39cc0db999904c585d21738dbce57ca3b55 Gerrit-Change-Number: 12799 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:47:39 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:47:39 +0000 Subject: Change in osmo-ccid-firmware[master]: use XOSC1 directly for DPLL1 Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12800 Change subject: use XOSC1 directly for DPLL1 ...................................................................... use XOSC1 directly for DPLL1 DPLL1 can take directly XOSC1 as input and divide it to 2 MHz. thus the intermediate GCLK11 is not needed. we now also completely de-configure GCLK11 this configuration is not supported by Atmel START since it does not know about the division and thinks the input frequency exceeds the maximum GCLK2 is also disabled for now because it is not used Change-Id: Icee7f5a13019c47cebc23376cabb18cb31178ece --- M sysmoOCTSIM/config/hpl_gclk_config.h M sysmoOCTSIM/config/hpl_oscctrl_config.h 2 files changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/00/12800/1 diff --git a/sysmoOCTSIM/config/hpl_gclk_config.h b/sysmoOCTSIM/config/hpl_gclk_config.h index 398a617..0ad8ead 100644 --- a/sysmoOCTSIM/config/hpl_gclk_config.h +++ b/sysmoOCTSIM/config/hpl_gclk_config.h @@ -218,7 +218,7 @@ // Indicates whether Generic Clock Generator Enable is enabled or not // gclk_arch_gen_2_enable #ifndef CONF_GCLK_GEN_2_GENEN -#define CONF_GCLK_GEN_2_GENEN 1 +#define CONF_GCLK_GEN_2_GENEN 0 #endif // @@ -843,7 +843,7 @@ // Indicates whether generic clock 11 configuration is enabled or not // enable_gclk_gen_11 #ifndef CONF_GCLK_GENERATOR_11_CONFIG -#define CONF_GCLK_GENERATOR_11_CONFIG 1 +#define CONF_GCLK_GENERATOR_11_CONFIG 0 #endif // Generic Clock Generator Control diff --git a/sysmoOCTSIM/config/hpl_oscctrl_config.h b/sysmoOCTSIM/config/hpl_oscctrl_config.h index 06ee571..0676cb5 100644 --- a/sysmoOCTSIM/config/hpl_oscctrl_config.h +++ b/sysmoOCTSIM/config/hpl_oscctrl_config.h @@ -507,7 +507,7 @@ // Indicates whether configuration for FDPLL1 is enabled or not // enable_fdpll1 #ifndef CONF_FDPLL1_CONFIG -#define CONF_FDPLL1_CONFIG 0 +#define CONF_FDPLL1_CONFIG 1 #endif // Reference Clock Source @@ -529,7 +529,7 @@ // Select the clock source. // fdpll1_ref_clock #ifndef CONF_FDPLL1_GCLK -#define CONF_FDPLL1_GCLK GCLK_PCHCTRL_GEN_GCLK11_Val +#define CONF_FDPLL1_GCLK GCLK_GENCTRL_SRC_XOSC1 #endif // Digital Phase Locked Loop Control -- To view, visit https://gerrit.osmocom.org/12800 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Icee7f5a13019c47cebc23376cabb18cb31178ece Gerrit-Change-Number: 12800 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:47:40 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:47:40 +0000 Subject: Change in osmo-ccid-firmware[master]: rename application to main Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12802 Change subject: rename application to main ...................................................................... rename application to main also remove unused armcc. only the GCC cross-compiler is used. the ARMCC Makefile would not be maintained. Change-Id: Ib6ec525885943afba9b24df88a5bee8009df95b5 --- D sysmoOCTSIM/armcc/Makefile D sysmoOCTSIM/armcc/arm_addon/armcc/arm/startup_same54.s D sysmoOCTSIM/armcc/arm_addon/armcc/system_same54.c M sysmoOCTSIM/gcc/Makefile R sysmoOCTSIM/main.c 5 files changed, 4 insertions(+), 895 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/02/12802/1 diff --git a/sysmoOCTSIM/armcc/Makefile b/sysmoOCTSIM/armcc/Makefile deleted file mode 100644 index 3a130a8..0000000 --- a/sysmoOCTSIM/armcc/Makefile +++ /dev/null @@ -1,233 +0,0 @@ - -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ifdef SystemRoot - SHELL = cmd.exe - MK_DIR = mkdir -else - ifeq ($(shell uname), Linux) - MK_DIR = mkdir -p - endif - - ifeq ($(shell uname | cut -d _ -f 1), CYGWIN) - MK_DIR = mkdir -p - endif - - ifeq ($(shell uname | cut -d _ -f 1), MINGW32) - MK_DIR = mkdir -p - endif - - ifeq ($(shell uname | cut -d _ -f 1), MINGW64) - MK_DIR = mkdir -p - endif -endif - -# List the subdirectories for creating object files -SUB_DIRS += \ - \ -hpl/pm \ -hpl/osc32kctrl \ -hpl/ramecc \ -hpl/dmac \ -usb/class/cdc/device \ -hal/src \ -hpl/mclk \ -usb \ -armcc/arm_addon/armcc/arm \ -hal/utils/src \ -hpl/sercom \ -examples \ -hpl/gclk \ -usb/device \ -hpl/oscctrl \ -armcc/arm_addon/armcc \ -hpl/usb \ -hpl/core \ -hpl/cmcc - -# List the object files -OBJS += \ -hal/src/hal_io.o \ -armcc/arm_addon/armcc/system_same54.o \ -hpl/core/hpl_core_m4.o \ -usb/class/cdc/device/cdcdf_acm.o \ -hpl/dmac/hpl_dmac.o \ -hpl/usb/hpl_usb.o \ -hal/src/hal_delay.o \ -hpl/pm/hpl_pm.o \ -hpl/core/hpl_init.o \ -hpl/gclk/hpl_gclk.o \ -hal/utils/src/utils_list.o \ -hal/utils/src/utils_assert.o \ -usb_start.o \ -hpl/oscctrl/hpl_oscctrl.o \ -hal/src/hal_usart_sync.o \ -hpl/mclk/hpl_mclk.o \ -hpl/ramecc/hpl_ramecc.o \ -usb/usb_protocol.o \ -hal/src/hal_init.o \ -hal/src/hal_usb_device.o \ -hpl/osc32kctrl/hpl_osc32kctrl.o \ -examples/driver_examples.o \ -driver_init.o \ -hpl/sercom/hpl_sercom.o \ -hal/src/hal_gpio.o \ -hal/utils/src/utils_event.o \ -hal/src/hal_sleep.o \ -hal/src/hal_cache.o \ -hpl/cmcc/hpl_cmcc.o \ -atmel_start.o \ -usb_cdc_echo_main.o \ -usb/device/usbdc.o \ -hal/src/hal_atomic.o \ -armcc/arm_addon/armcc/arm/startup_same54.o - -OBJS_AS_ARGS += \ -"hal/src/hal_io.o" \ -"armcc/arm_addon/armcc/system_same54.o" \ -"hpl/core/hpl_core_m4.o" \ -"usb/class/cdc/device/cdcdf_acm.o" \ -"hpl/dmac/hpl_dmac.o" \ -"hpl/usb/hpl_usb.o" \ -"hal/src/hal_delay.o" \ -"hpl/pm/hpl_pm.o" \ -"hpl/core/hpl_init.o" \ -"hpl/gclk/hpl_gclk.o" \ -"hal/utils/src/utils_list.o" \ -"hal/utils/src/utils_assert.o" \ -"usb_start.o" \ -"hpl/oscctrl/hpl_oscctrl.o" \ -"hal/src/hal_usart_sync.o" \ -"hpl/mclk/hpl_mclk.o" \ -"hpl/ramecc/hpl_ramecc.o" \ -"usb/usb_protocol.o" \ -"hal/src/hal_init.o" \ -"hal/src/hal_usb_device.o" \ -"hpl/osc32kctrl/hpl_osc32kctrl.o" \ -"examples/driver_examples.o" \ -"driver_init.o" \ -"hpl/sercom/hpl_sercom.o" \ -"hal/src/hal_gpio.o" \ -"hal/utils/src/utils_event.o" \ -"hal/src/hal_sleep.o" \ -"hal/src/hal_cache.o" \ -"hpl/cmcc/hpl_cmcc.o" \ -"atmel_start.o" \ -"usb_cdc_echo_main.o" \ -"usb/device/usbdc.o" \ -"hal/src/hal_atomic.o" \ -"armcc/arm_addon/armcc/arm/startup_same54.o" - -# List the dependency files -DEPS := $(OBJS:%.o=%.d) - -DEPS_AS_ARGS += \ -"hal/utils/src/utils_event.d" \ -"hal/src/hal_io.d" \ -"armcc/arm_addon/armcc/system_same54.d" \ -"hpl/ramecc/hpl_ramecc.d" \ -"hpl/core/hpl_core_m4.d" \ -"usb/class/cdc/device/cdcdf_acm.d" \ -"hpl/usb/hpl_usb.d" \ -"hal/utils/src/utils_list.d" \ -"hpl/cmcc/hpl_cmcc.d" \ -"usb_start.d" \ -"hal/utils/src/utils_assert.d" \ -"hal/src/hal_delay.d" \ -"hpl/core/hpl_init.d" \ -"hpl/pm/hpl_pm.d" \ -"usb/usb_protocol.d" \ -"hpl/gclk/hpl_gclk.d" \ -"hal/src/hal_usb_device.d" \ -"hpl/dmac/hpl_dmac.d" \ -"hal/src/hal_init.d" \ -"hal/src/hal_usart_sync.d" \ -"usb_cdc_echo_main.d" \ -"hpl/mclk/hpl_mclk.d" \ -"driver_init.d" \ -"hpl/osc32kctrl/hpl_osc32kctrl.d" \ -"examples/driver_examples.d" \ -"hal/src/hal_cache.d" \ -"hal/src/hal_sleep.d" \ -"hpl/sercom/hpl_sercom.d" \ -"hal/src/hal_gpio.d" \ -"hal/src/hal_atomic.d" \ -"usb/device/usbdc.d" \ -"hpl/oscctrl/hpl_oscctrl.d" \ -"armcc/arm_addon/armcc/arm/startup_same54.d" \ -"atmel_start.d" - -OUTPUT_FILE_NAME :=AtmelStart -QUOTE := " -OUTPUT_FILE_PATH +=$(OUTPUT_FILE_NAME).elf -OUTPUT_FILE_PATH_AS_ARGS +=$(OUTPUT_FILE_NAME).elf - -vpath %.c ../ -vpath %.s ../ -vpath %.S ../ - -# All Target -all: $(SUB_DIRS) $(OUTPUT_FILE_PATH) - -# Linker target - -$(OUTPUT_FILE_PATH): $(OBJS) - @echo Building target: $@ - @echo Invoking: ARMCC Linker - $(QUOTE)armlink$(QUOTE) --ro-base 0x00000000 --entry 0x00000000 --rw-base 0x20000000 --entry Reset_Handler --first __Vectors \ ---strict --summary_stderr --info summarysizes --map --xref --callgraph --symbols \ ---info sizes --info totals --info unused --info veneers --list $(OUTPUT_FILE_NAME).map \ --o $(OUTPUT_FILE_NAME).elf --cpu Cortex-M4 \ -$(OBJS_AS_ARGS) - - @echo Finished building target: $@ - -# Compiler target(s) - - - - -%.o: %.c - @echo Building file: $< - @echo ARMCC Compiler - $(QUOTE)armcc$(QUOTE) --c99 -c -DDEBUG -O1 -g --apcs=interwork --split_sections --cpu Cortex-M4 -D__SAME54P20A__ \ --I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include" \ ---depend "$@" -o "$@" "$<" - - @echo Finished building: $< - -%.o: %.s - @echo Building file: $< - @echo ARMCC Assembler - $(QUOTE)armasm$(QUOTE) -g --apcs=interwork --cpu Cortex-M4 --pd "D__SAME54P20A__ SETA 1" \ --I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include" \ ---depend "$(@:%.o=%.d)" -o "$@" "$<" - - @echo Finished building: $< - -%.o: %.S - @echo Building file: $< - @echo ARMCC Preprocessing Assembler - $(QUOTE)armcc$(QUOTE) --c99 -c -DDEBUG -O1 -g --apcs=interwork --split_sections --cpu Cortex-M4 -D__SAME54P20A__ \ --I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include" \ ---depend "$@" -o "$@" "$<" - - @echo Finished building: $< - -# Detect changes in the dependent files and recompile the respective object files. -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(DEPS)),) --include $(DEPS) -endif -endif - -$(SUB_DIRS): - $(MK_DIR) "$@" - -clean: - rm -f $(OBJS_AS_ARGS) - rm -f $(OUTPUT_FILE_PATH) - rm -f $(DEPS_AS_ARGS) - rm -f $(OUTPUT_FILE_NAME).map $(OUTPUT_FILE_NAME).elf diff --git a/sysmoOCTSIM/armcc/arm_addon/armcc/arm/startup_same54.s b/sysmoOCTSIM/armcc/arm_addon/armcc/arm/startup_same54.s deleted file mode 100644 index 3cd00bc..0000000 --- a/sysmoOCTSIM/armcc/arm_addon/armcc/arm/startup_same54.s +++ /dev/null @@ -1,588 +0,0 @@ -;/***************************************************************************** -; * @file startup_SAME54.s -; * @brief CMSIS Cortex-M4 Core Device Startup File for -; * Atmel SAME54 Device Series -; * @version V1.0.0 -; * @date 16. January 2017 -; * -; * @note -; * Copyright (C) 2017 ARM Limited. All rights reserved. -; * -; * @par -; * ARM Limited (ARM) is supplying this software for use with Cortex-M -; * processor based microcontrollers. This file can be freely distributed -; * within development tools that are supporting such ARM based processors. -; * -; * @par -; * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED -; * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF -; * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. -; * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR -; * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. -; * -; ******************************************************************************/ -;/* -;//-------- <<< Use Configuration Wizard in Context Menu >>> ------------------ -;*/ - - -; Stack Configuration -; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> -; - -Stack_Size EQU 0x00000200 - - AREA STACK, NOINIT, READWRITE, ALIGN=3 -Stack_Mem SPACE Stack_Size -__initial_sp - - -; Heap Configuration -; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> -; - -Heap_Size EQU 0x00000000 - - AREA HEAP, NOINIT, READWRITE, ALIGN=3 -__heap_base -Heap_Mem SPACE Heap_Size -__heap_limit - - - PRESERVE8 - THUMB - - -; Vector Table Mapped to Address 0 at Reset - - AREA RESET, DATA, READONLY - EXPORT __Vectors - EXPORT __Vectors_End - EXPORT __Vectors_Size - -__Vectors DCD __initial_sp ; Top of Stack - DCD Reset_Handler ; Reset Handler - DCD NMI_Handler ; NMI Handler - DCD HardFault_Handler ; Hard Fault Handler - DCD MemManage_Handler ; MPU Fault Handler - DCD BusFault_Handler ; Bus Fault Handler - DCD UsageFault_Handler ; Usage Fault Handler - DCD 0 ; Reserved - DCD 0 ; Reserved - DCD 0 ; Reserved - DCD 0 ; Reserved - DCD SVC_Handler ; SVCall Handler - DCD DebugMon_Handler ; Debug Monitor Handler - DCD 0 ; Reserved - DCD PendSV_Handler ; PendSV Handler - DCD SysTick_Handler ; SysTick Handler - - ; External Interrupts - DCD PM_Handler ; 0 Power Manager - DCD MCLK_Handler ; 1 Main Clock - DCD OSCCTRL_0_Handler ; 2 OSCCTRL_XOSCFAIL_0, OSCCTRL_XOSCRDY_0 - DCD OSCCTRL_1_Handler ; 3 OSCCTRL_XOSCFAIL_1, OSCCTRL_XOSCRDY_1 - DCD OSCCTRL_2_Handler ; 4 OSCCTRL_DFLLLOCKC, OSCCTRL_DFLLLOCKF, OSCCTRL_DFLLOOB, OSCCTRL_DFLLRCS, OSCCTRL_DFLLRDY - DCD OSCCTRL_3_Handler ; 5 OSCCTRL_DPLLLCKF_0, OSCCTRL_DPLLLCKR_0, OSCCTRL_DPLLLDRTO_0, OSCCTRL_DPLLLTO_0 - DCD OSCCTRL_4_Handler ; 6 OSCCTRL_DPLLLCKF_1, OSCCTRL_DPLLLCKR_1, OSCCTRL_DPLLLDRTO_1, OSCCTRL_DPLLLTO_1 - DCD OSC32KCTRL_Handler ; 7 32kHz Oscillators Control - DCD SUPC_0_Handler ; 8 SUPC_B12SRDY, SUPC_B33SRDY, SUPC_BOD12RDY, SUPC_BOD33RDY, SUPC_VCORERDY, SUPC_VREGRDY - DCD SUPC_1_Handler ; 9 SUPC_BOD12DET, SUPC_BOD33DET - DCD WDT_Handler ; 10 Watchdog Timer - DCD RTC_Handler ; 11 Real-Time Counter - DCD EIC_0_Handler ; 12 EIC_EXTINT_0 - DCD EIC_1_Handler ; 13 EIC_EXTINT_1 - DCD EIC_2_Handler ; 14 EIC_EXTINT_2 - DCD EIC_3_Handler ; 15 EIC_EXTINT_3 - DCD EIC_4_Handler ; 16 EIC_EXTINT_4 - DCD EIC_5_Handler ; 17 EIC_EXTINT_5 - DCD EIC_6_Handler ; 18 EIC_EXTINT_6 - DCD EIC_7_Handler ; 19 EIC_EXTINT_7 - DCD EIC_8_Handler ; 20 EIC_EXTINT_8 - DCD EIC_9_Handler ; 21 EIC_EXTINT_9 - DCD EIC_10_Handler ; 22 EIC_EXTINT_10 - DCD EIC_11_Handler ; 23 EIC_EXTINT_11 - DCD EIC_12_Handler ; 24 EIC_EXTINT_12 - DCD EIC_13_Handler ; 25 EIC_EXTINT_13 - DCD EIC_14_Handler ; 26 EIC_EXTINT_14 - DCD EIC_15_Handler ; 27 EIC_EXTINT_15 - DCD FREQM_Handler ; 28 Frequency Meter - DCD NVMCTRL_0_Handler ; 29 NVMCTRL_0, NVMCTRL_1, NVMCTRL_2, NVMCTRL_3, NVMCTRL_4, NVMCTRL_5, NVMCTRL_6, NVMCTRL_7 - DCD NVMCTRL_1_Handler ; 30 NVMCTRL_10, NVMCTRL_8, NVMCTRL_9 - DCD DMAC_0_Handler ; 31 DMAC_SUSP_0, DMAC_TCMPL_0, DMAC_TERR_0 - DCD DMAC_1_Handler ; 32 DMAC_SUSP_1, DMAC_TCMPL_1, DMAC_TERR_1 - DCD DMAC_2_Handler ; 33 DMAC_SUSP_2, DMAC_TCMPL_2, DMAC_TERR_2 - DCD DMAC_3_Handler ; 34 DMAC_SUSP_3, DMAC_TCMPL_3, DMAC_TERR_3 - DCD DMAC_4_Handler ; 35 DMAC_SUSP_10, DMAC_SUSP_11, DMAC_SUSP_12, DMAC_SUSP_13, DMAC_SUSP_14, DMAC_SUSP_15, DMAC_SUSP_16, DMAC_SUSP_17, DMAC_SUSP_18, DMAC_SUSP_19, DMAC_SUSP_20, DMAC_SUSP_21, DMAC_SUSP_22, DMAC_SUSP_23, DMAC_SUSP_24, DMAC_SUSP_25, DMAC_SUSP_26, DMAC_SUSP_27, DMAC_SUSP_28, DMAC_SUSP_29, DMAC_SUSP_30, DMAC_SUSP_31, DMAC_SUSP_4, DMAC_SUSP_5, DMAC_SUSP_6, DMAC_SUSP_7, DMAC_SUSP_8, DMAC_SUSP_9, DMAC_TCMPL_10, DMAC_TCMPL_11, DMAC_TCMPL_12, DMAC_TCMPL_13, DMAC_TCMPL_14, DMAC_TCMPL_15, DMAC_TCMPL_16, DMAC_TCMPL_17, DMAC_TCMPL_18, DMAC_TCMPL_19, DMAC_TCMPL_20, DMAC_TCMPL_21, DMAC_TCMPL_22, DMAC_TCMPL_23, DMAC_TCMPL_24, DMAC_TCMPL_25, DMAC_TCMPL_26, DMAC_TCMPL_27, DMAC_TCMPL_28, DMAC_TCMPL_29, DMAC_TCMPL_30, DMAC_TCMPL_31, DMAC_TCMPL_4, DMAC_TCMPL_5, DMAC_TCMPL_6, DMAC_TCMPL_7, DMAC_TCMPL_8, DMAC_TCMPL_9, DMAC_TERR_10, DMAC_TERR_11, DMAC_TERR_12, DMAC_TERR_13, DMAC_TERR_14, DMAC_TERR_15, DMAC_TERR_16, DMAC_TERR_17, DMAC_TERR_18, DMAC_TERR_19, DMAC_TERR_20, DMAC_TERR_21, DMAC_TERR_22, DMAC_TERR_23, DMAC_TERR_24, DMAC_TERR_25, DMAC_TERR_26, DMAC_TERR_27, DMAC_TERR_28, DMAC_TERR_29, DMAC_TERR_30, DMAC_TERR_31, DMAC_TERR_4, DMAC_TERR_5, DMAC_TERR_6, DMAC_TERR_7, DMAC_TERR_8, DMAC_TERR_9 - DCD EVSYS_0_Handler ; 36 EVSYS_EVD_0, EVSYS_OVR_0 - DCD EVSYS_1_Handler ; 37 EVSYS_EVD_1, EVSYS_OVR_1 - DCD EVSYS_2_Handler ; 38 EVSYS_EVD_2, EVSYS_OVR_2 - DCD EVSYS_3_Handler ; 39 EVSYS_EVD_3, EVSYS_OVR_3 - DCD EVSYS_4_Handler ; 40 EVSYS_EVD_10, EVSYS_EVD_11, EVSYS_EVD_4, EVSYS_EVD_5, EVSYS_EVD_6, EVSYS_EVD_7, EVSYS_EVD_8, EVSYS_EVD_9, EVSYS_OVR_10, EVSYS_OVR_11, EVSYS_OVR_4, EVSYS_OVR_5, EVSYS_OVR_6, EVSYS_OVR_7, EVSYS_OVR_8, EVSYS_OVR_9 - DCD PAC_Handler ; 41 Peripheral Access Controller - DCD TAL_0_Handler ; 42 TAL_BRK - DCD TAL_1_Handler ; 43 TAL_IPS_0, TAL_IPS_1 - DCD 0 ; 44 Reserved - DCD RAMECC_Handler ; 45 RAM ECC - DCD SERCOM0_0_Handler ; 46 SERCOM0_0 - DCD SERCOM0_1_Handler ; 47 SERCOM0_1 - DCD SERCOM0_2_Handler ; 48 SERCOM0_2 - DCD SERCOM0_3_Handler ; 49 SERCOM0_3, SERCOM0_4, SERCOM0_5, SERCOM0_6 - DCD SERCOM1_0_Handler ; 50 SERCOM1_0 - DCD SERCOM1_1_Handler ; 51 SERCOM1_1 - DCD SERCOM1_2_Handler ; 52 SERCOM1_2 - DCD SERCOM1_3_Handler ; 53 SERCOM1_3, SERCOM1_4, SERCOM1_5, SERCOM1_6 - DCD SERCOM2_0_Handler ; 54 SERCOM2_0 - DCD SERCOM2_1_Handler ; 55 SERCOM2_1 - DCD SERCOM2_2_Handler ; 56 SERCOM2_2 - DCD SERCOM2_3_Handler ; 57 SERCOM2_3, SERCOM2_4, SERCOM2_5, SERCOM2_6 - DCD SERCOM3_0_Handler ; 58 SERCOM3_0 - DCD SERCOM3_1_Handler ; 59 SERCOM3_1 - DCD SERCOM3_2_Handler ; 60 SERCOM3_2 - DCD SERCOM3_3_Handler ; 61 SERCOM3_3, SERCOM3_4, SERCOM3_5, SERCOM3_6 - DCD SERCOM4_0_Handler ; 62 SERCOM4_0 - DCD SERCOM4_1_Handler ; 63 SERCOM4_1 - DCD SERCOM4_2_Handler ; 64 SERCOM4_2 - DCD SERCOM4_3_Handler ; 65 SERCOM4_3, SERCOM4_4, SERCOM4_5, SERCOM4_6 - DCD SERCOM5_0_Handler ; 66 SERCOM5_0 - DCD SERCOM5_1_Handler ; 67 SERCOM5_1 - DCD SERCOM5_2_Handler ; 68 SERCOM5_2 - DCD SERCOM5_3_Handler ; 69 SERCOM5_3, SERCOM5_4, SERCOM5_5, SERCOM5_6 - DCD SERCOM6_0_Handler ; 70 SERCOM6_0 - DCD SERCOM6_1_Handler ; 71 SERCOM6_1 - DCD SERCOM6_2_Handler ; 72 SERCOM6_2 - DCD SERCOM6_3_Handler ; 73 SERCOM6_3, SERCOM6_4, SERCOM6_5, SERCOM6_6 - DCD SERCOM7_0_Handler ; 74 SERCOM7_0 - DCD SERCOM7_1_Handler ; 75 SERCOM7_1 - DCD SERCOM7_2_Handler ; 76 SERCOM7_2 - DCD SERCOM7_3_Handler ; 77 SERCOM7_3, SERCOM7_4, SERCOM7_5, SERCOM7_6 - DCD CAN0_Handler ; 78 Control Area Network 0 - DCD CAN1_Handler ; 79 Control Area Network 1 - DCD USB_0_Handler ; 80 USB_EORSM_DNRSM, USB_EORST_RST, USB_LPMSUSP_DDISC, USB_LPM_DCONN, USB_MSOF, USB_RAMACER, USB_RXSTP_TXSTP_0, USB_RXSTP_TXSTP_1, USB_RXSTP_TXSTP_2, USB_RXSTP_TXSTP_3, USB_RXSTP_TXSTP_4, USB_RXSTP_TXSTP_5, USB_RXSTP_TXSTP_6, USB_RXSTP_TXSTP_7, USB_STALL0_STALL_0, USB_STALL0_STALL_1, USB_STALL0_STALL_2, USB_STALL0_STALL_3, USB_STALL0_STALL_4, USB_STALL0_STALL_5, USB_STALL0_STALL_6, USB_STALL0_STALL_7, USB_STALL1_0, USB_STALL1_1, USB_STALL1_2, USB_STALL1_3, USB_STALL1_4, USB_STALL1_5, USB_STALL1_6, USB_STALL1_7, USB_SUSPEND, USB_TRFAIL0_TRFAIL_0, USB_TRFAIL0_TRFAIL_1, USB_TRFAIL0_TRFAIL_2, USB_TRFAIL0_TRFAIL_3, USB_TRFAIL0_TRFAIL_4, USB_TRFAIL0_TRFAIL_5, USB_TRFAIL0_TRFAIL_6, USB_TRFAIL0_TRFAIL_7, USB_TRFAIL1_PERR_0, USB_TRFAIL1_PERR_1, USB_TRFAIL1_PERR_2, USB_TRFAIL1_PERR_3, USB_TRFAIL1_PERR_4, USB_TRFAIL1_PERR_5, USB_TRFAIL1_PERR_6, USB_TRFAIL1_PERR_7, USB_UPRSM, USB_WAKEUP - DCD USB_1_Handler ; 81 USB_SOF_HSOF - DCD USB_2_Handler ; 82 USB_TRCPT0_0, USB_TRCPT0_1, USB_TRCPT0_2, USB_TRCPT0_3, USB_TRCPT0_4, USB_TRCPT0_5, USB_TRCPT0_6, USB_TRCPT0_7 - DCD USB_3_Handler ; 83 USB_TRCPT1_0, USB_TRCPT1_1, USB_TRCPT1_2, USB_TRCPT1_3, USB_TRCPT1_4, USB_TRCPT1_5, USB_TRCPT1_6, USB_TRCPT1_7 - DCD GMAC_Handler ; 84 Ethernet MAC - DCD TCC0_0_Handler ; 85 TCC0_CNT_A, TCC0_DFS_A, TCC0_ERR_A, TCC0_FAULT0_A, TCC0_FAULT1_A, TCC0_FAULTA_A, TCC0_FAULTB_A, TCC0_OVF, TCC0_TRG, TCC0_UFS_A - DCD TCC0_1_Handler ; 86 TCC0_MC_0 - DCD TCC0_2_Handler ; 87 TCC0_MC_1 - DCD TCC0_3_Handler ; 88 TCC0_MC_2 - DCD TCC0_4_Handler ; 89 TCC0_MC_3 - DCD TCC0_5_Handler ; 90 TCC0_MC_4 - DCD TCC0_6_Handler ; 91 TCC0_MC_5 - DCD TCC1_0_Handler ; 92 TCC1_CNT_A, TCC1_DFS_A, TCC1_ERR_A, TCC1_FAULT0_A, TCC1_FAULT1_A, TCC1_FAULTA_A, TCC1_FAULTB_A, TCC1_OVF, TCC1_TRG, TCC1_UFS_A - DCD TCC1_1_Handler ; 93 TCC1_MC_0 - DCD TCC1_2_Handler ; 94 TCC1_MC_1 - DCD TCC1_3_Handler ; 95 TCC1_MC_2 - DCD TCC1_4_Handler ; 96 TCC1_MC_3 - DCD TCC2_0_Handler ; 97 TCC2_CNT_A, TCC2_DFS_A, TCC2_ERR_A, TCC2_FAULT0_A, TCC2_FAULT1_A, TCC2_FAULTA_A, TCC2_FAULTB_A, TCC2_OVF, TCC2_TRG, TCC2_UFS_A - DCD TCC2_1_Handler ; 98 TCC2_MC_0 - DCD TCC2_2_Handler ; 99 TCC2_MC_1 - DCD TCC2_3_Handler ; 100 TCC2_MC_2 - DCD TCC3_0_Handler ; 101 TCC3_CNT_A, TCC3_DFS_A, TCC3_ERR_A, TCC3_FAULT0_A, TCC3_FAULT1_A, TCC3_FAULTA_A, TCC3_FAULTB_A, TCC3_OVF, TCC3_TRG, TCC3_UFS_A - DCD TCC3_1_Handler ; 102 TCC3_MC_0 - DCD TCC3_2_Handler ; 103 TCC3_MC_1 - DCD TCC4_0_Handler ; 104 TCC4_CNT_A, TCC4_DFS_A, TCC4_ERR_A, TCC4_FAULT0_A, TCC4_FAULT1_A, TCC4_FAULTA_A, TCC4_FAULTB_A, TCC4_OVF, TCC4_TRG, TCC4_UFS_A - DCD TCC4_1_Handler ; 105 TCC4_MC_0 - DCD TCC4_2_Handler ; 106 TCC4_MC_1 - DCD TC0_Handler ; 107 Basic Timer Counter 0 - DCD TC1_Handler ; 108 Basic Timer Counter 1 - DCD TC2_Handler ; 109 Basic Timer Counter 2 - DCD TC3_Handler ; 110 Basic Timer Counter 3 - DCD TC4_Handler ; 111 Basic Timer Counter 4 - DCD TC5_Handler ; 112 Basic Timer Counter 5 - DCD TC6_Handler ; 113 Basic Timer Counter 6 - DCD TC7_Handler ; 114 Basic Timer Counter 7 - DCD PDEC_0_Handler ; 115 PDEC_DIR_A, PDEC_ERR_A, PDEC_OVF, PDEC_VLC_A - DCD PDEC_1_Handler ; 116 PDEC_MC_0 - DCD PDEC_2_Handler ; 117 PDEC_MC_1 - DCD ADC0_0_Handler ; 118 ADC0_OVERRUN, ADC0_WINMON - DCD ADC0_1_Handler ; 119 ADC0_RESRDY - DCD ADC1_0_Handler ; 120 ADC1_OVERRUN, ADC1_WINMON - DCD ADC1_1_Handler ; 121 ADC1_RESRDY - DCD AC_Handler ; 122 Analog Comparators - DCD DAC_0_Handler ; 123 DAC_OVERRUN_A_0, DAC_OVERRUN_A_1, DAC_UNDERRUN_A_0, DAC_UNDERRUN_A_1 - DCD DAC_1_Handler ; 124 DAC_EMPTY_0 - DCD DAC_2_Handler ; 125 DAC_EMPTY_1 - DCD DAC_3_Handler ; 126 DAC_RESRDY_0 - DCD DAC_4_Handler ; 127 DAC_RESRDY_1 - DCD I2S_Handler ; 128 Inter-IC Sound Interface - DCD PCC_Handler ; 129 Parallel Capture Controller - DCD AES_Handler ; 130 Advanced Encryption Standard - DCD TRNG_Handler ; 131 True Random Generator - DCD ICM_Handler ; 132 Integrity Check Monitor - DCD PUKCC_Handler ; 133 PUblic-Key Cryptography Controller - DCD QSPI_Handler ; 134 Quad SPI interface - DCD SDHC0_Handler ; 135 SD/MMC Host Controller 0 - DCD SDHC1_Handler ; 136 SD/MMC Host Controller 1 -__Vectors_End - -__Vectors_Size EQU __Vectors_End - __Vectors - - AREA |.text|, CODE, READONLY - - -; Reset Handler - -Reset_Handler PROC - EXPORT Reset_Handler [WEAK] - IMPORT SystemInit - IMPORT __main - LDR R0, =SystemInit - BLX R0 - LDR R0, =__main - BX R0 - ENDP - - -; Dummy Exception Handlers (infinite loops which can be modified) - -NMI_Handler PROC - EXPORT NMI_Handler [WEAK] - B . - ENDP -HardFault_Handler\ - PROC - EXPORT HardFault_Handler [WEAK] - B . - ENDP -MemManage_Handler\ - PROC - EXPORT MemManage_Handler [WEAK] - B . - ENDP -BusFault_Handler\ - PROC - EXPORT BusFault_Handler [WEAK] - B . - ENDP -UsageFault_Handler\ - PROC - EXPORT UsageFault_Handler [WEAK] - B . - ENDP -SVC_Handler PROC - EXPORT SVC_Handler [WEAK] - B . - ENDP -DebugMon_Handler\ - PROC - EXPORT DebugMon_Handler [WEAK] - B . - ENDP -PendSV_Handler PROC - EXPORT PendSV_Handler [WEAK] - B . - ENDP -SysTick_Handler PROC - EXPORT SysTick_Handler [WEAK] - B . - ENDP - -Default_Handler PROC - EXPORT PM_Handler [WEAK] - EXPORT MCLK_Handler [WEAK] - EXPORT OSCCTRL_0_Handler [WEAK] - EXPORT OSCCTRL_1_Handler [WEAK] - EXPORT OSCCTRL_2_Handler [WEAK] - EXPORT OSCCTRL_3_Handler [WEAK] - EXPORT OSCCTRL_4_Handler [WEAK] - EXPORT OSC32KCTRL_Handler [WEAK] - EXPORT SUPC_0_Handler [WEAK] - EXPORT SUPC_1_Handler [WEAK] - EXPORT WDT_Handler [WEAK] - EXPORT RTC_Handler [WEAK] - EXPORT EIC_0_Handler [WEAK] - EXPORT EIC_1_Handler [WEAK] - EXPORT EIC_2_Handler [WEAK] - EXPORT EIC_3_Handler [WEAK] - EXPORT EIC_4_Handler [WEAK] - EXPORT EIC_5_Handler [WEAK] - EXPORT EIC_6_Handler [WEAK] - EXPORT EIC_7_Handler [WEAK] - EXPORT EIC_8_Handler [WEAK] - EXPORT EIC_9_Handler [WEAK] - EXPORT EIC_10_Handler [WEAK] - EXPORT EIC_11_Handler [WEAK] - EXPORT EIC_12_Handler [WEAK] - EXPORT EIC_13_Handler [WEAK] - EXPORT EIC_14_Handler [WEAK] - EXPORT EIC_15_Handler [WEAK] - EXPORT FREQM_Handler [WEAK] - EXPORT NVMCTRL_0_Handler [WEAK] - EXPORT NVMCTRL_1_Handler [WEAK] - EXPORT DMAC_0_Handler [WEAK] - EXPORT DMAC_1_Handler [WEAK] - EXPORT DMAC_2_Handler [WEAK] - EXPORT DMAC_3_Handler [WEAK] - EXPORT DMAC_4_Handler [WEAK] - EXPORT EVSYS_0_Handler [WEAK] - EXPORT EVSYS_1_Handler [WEAK] - EXPORT EVSYS_2_Handler [WEAK] - EXPORT EVSYS_3_Handler [WEAK] - EXPORT EVSYS_4_Handler [WEAK] - EXPORT PAC_Handler [WEAK] - EXPORT TAL_0_Handler [WEAK] - EXPORT TAL_1_Handler [WEAK] - EXPORT RAMECC_Handler [WEAK] - EXPORT SERCOM0_0_Handler [WEAK] - EXPORT SERCOM0_1_Handler [WEAK] - EXPORT SERCOM0_2_Handler [WEAK] - EXPORT SERCOM0_3_Handler [WEAK] - EXPORT SERCOM1_0_Handler [WEAK] - EXPORT SERCOM1_1_Handler [WEAK] - EXPORT SERCOM1_2_Handler [WEAK] - EXPORT SERCOM1_3_Handler [WEAK] - EXPORT SERCOM2_0_Handler [WEAK] - EXPORT SERCOM2_1_Handler [WEAK] - EXPORT SERCOM2_2_Handler [WEAK] - EXPORT SERCOM2_3_Handler [WEAK] - EXPORT SERCOM3_0_Handler [WEAK] - EXPORT SERCOM3_1_Handler [WEAK] - EXPORT SERCOM3_2_Handler [WEAK] - EXPORT SERCOM3_3_Handler [WEAK] - EXPORT SERCOM4_0_Handler [WEAK] - EXPORT SERCOM4_1_Handler [WEAK] - EXPORT SERCOM4_2_Handler [WEAK] - EXPORT SERCOM4_3_Handler [WEAK] - EXPORT SERCOM5_0_Handler [WEAK] - EXPORT SERCOM5_1_Handler [WEAK] - EXPORT SERCOM5_2_Handler [WEAK] - EXPORT SERCOM5_3_Handler [WEAK] - EXPORT SERCOM6_0_Handler [WEAK] - EXPORT SERCOM6_1_Handler [WEAK] - EXPORT SERCOM6_2_Handler [WEAK] - EXPORT SERCOM6_3_Handler [WEAK] - EXPORT SERCOM7_0_Handler [WEAK] - EXPORT SERCOM7_1_Handler [WEAK] - EXPORT SERCOM7_2_Handler [WEAK] - EXPORT SERCOM7_3_Handler [WEAK] - EXPORT CAN0_Handler [WEAK] - EXPORT CAN1_Handler [WEAK] - EXPORT USB_0_Handler [WEAK] - EXPORT USB_1_Handler [WEAK] - EXPORT USB_2_Handler [WEAK] - EXPORT USB_3_Handler [WEAK] - EXPORT GMAC_Handler [WEAK] - EXPORT TCC0_0_Handler [WEAK] - EXPORT TCC0_1_Handler [WEAK] - EXPORT TCC0_2_Handler [WEAK] - EXPORT TCC0_3_Handler [WEAK] - EXPORT TCC0_4_Handler [WEAK] - EXPORT TCC0_5_Handler [WEAK] - EXPORT TCC0_6_Handler [WEAK] - EXPORT TCC1_0_Handler [WEAK] - EXPORT TCC1_1_Handler [WEAK] - EXPORT TCC1_2_Handler [WEAK] - EXPORT TCC1_3_Handler [WEAK] - EXPORT TCC1_4_Handler [WEAK] - EXPORT TCC2_0_Handler [WEAK] - EXPORT TCC2_1_Handler [WEAK] - EXPORT TCC2_2_Handler [WEAK] - EXPORT TCC2_3_Handler [WEAK] - EXPORT TCC3_0_Handler [WEAK] - EXPORT TCC3_1_Handler [WEAK] - EXPORT TCC3_2_Handler [WEAK] - EXPORT TCC4_0_Handler [WEAK] - EXPORT TCC4_1_Handler [WEAK] - EXPORT TCC4_2_Handler [WEAK] - EXPORT TC0_Handler [WEAK] - EXPORT TC1_Handler [WEAK] - EXPORT TC2_Handler [WEAK] - EXPORT TC3_Handler [WEAK] - EXPORT TC4_Handler [WEAK] - EXPORT TC5_Handler [WEAK] - EXPORT TC6_Handler [WEAK] - EXPORT TC7_Handler [WEAK] - EXPORT PDEC_0_Handler [WEAK] - EXPORT PDEC_1_Handler [WEAK] - EXPORT PDEC_2_Handler [WEAK] - EXPORT ADC0_0_Handler [WEAK] - EXPORT ADC0_1_Handler [WEAK] - EXPORT ADC1_0_Handler [WEAK] - EXPORT ADC1_1_Handler [WEAK] - EXPORT AC_Handler [WEAK] - EXPORT DAC_0_Handler [WEAK] - EXPORT DAC_1_Handler [WEAK] - EXPORT DAC_2_Handler [WEAK] - EXPORT DAC_3_Handler [WEAK] - EXPORT DAC_4_Handler [WEAK] - EXPORT I2S_Handler [WEAK] - EXPORT PCC_Handler [WEAK] - EXPORT AES_Handler [WEAK] - EXPORT TRNG_Handler [WEAK] - EXPORT ICM_Handler [WEAK] - EXPORT PUKCC_Handler [WEAK] - EXPORT QSPI_Handler [WEAK] - EXPORT SDHC0_Handler [WEAK] - EXPORT SDHC1_Handler [WEAK] - -PM_Handler -MCLK_Handler -OSCCTRL_0_Handler -OSCCTRL_1_Handler -OSCCTRL_2_Handler -OSCCTRL_3_Handler -OSCCTRL_4_Handler -OSC32KCTRL_Handler -SUPC_0_Handler -SUPC_1_Handler -WDT_Handler -RTC_Handler -EIC_0_Handler -EIC_1_Handler -EIC_2_Handler -EIC_3_Handler -EIC_4_Handler -EIC_5_Handler -EIC_6_Handler -EIC_7_Handler -EIC_8_Handler -EIC_9_Handler -EIC_10_Handler -EIC_11_Handler -EIC_12_Handler -EIC_13_Handler -EIC_14_Handler -EIC_15_Handler -FREQM_Handler -NVMCTRL_0_Handler -NVMCTRL_1_Handler -DMAC_0_Handler -DMAC_1_Handler -DMAC_2_Handler -DMAC_3_Handler -DMAC_4_Handler -EVSYS_0_Handler -EVSYS_1_Handler -EVSYS_2_Handler -EVSYS_3_Handler -EVSYS_4_Handler -PAC_Handler -TAL_0_Handler -TAL_1_Handler -RAMECC_Handler -SERCOM0_0_Handler -SERCOM0_1_Handler -SERCOM0_2_Handler -SERCOM0_3_Handler -SERCOM1_0_Handler -SERCOM1_1_Handler -SERCOM1_2_Handler -SERCOM1_3_Handler -SERCOM2_0_Handler -SERCOM2_1_Handler -SERCOM2_2_Handler -SERCOM2_3_Handler -SERCOM3_0_Handler -SERCOM3_1_Handler -SERCOM3_2_Handler -SERCOM3_3_Handler -SERCOM4_0_Handler -SERCOM4_1_Handler -SERCOM4_2_Handler -SERCOM4_3_Handler -SERCOM5_0_Handler -SERCOM5_1_Handler -SERCOM5_2_Handler -SERCOM5_3_Handler -SERCOM6_0_Handler -SERCOM6_1_Handler -SERCOM6_2_Handler -SERCOM6_3_Handler -SERCOM7_0_Handler -SERCOM7_1_Handler -SERCOM7_2_Handler -SERCOM7_3_Handler -CAN0_Handler -CAN1_Handler -USB_0_Handler -USB_1_Handler -USB_2_Handler -USB_3_Handler -GMAC_Handler -TCC0_0_Handler -TCC0_1_Handler -TCC0_2_Handler -TCC0_3_Handler -TCC0_4_Handler -TCC0_5_Handler -TCC0_6_Handler -TCC1_0_Handler -TCC1_1_Handler -TCC1_2_Handler -TCC1_3_Handler -TCC1_4_Handler -TCC2_0_Handler -TCC2_1_Handler -TCC2_2_Handler -TCC2_3_Handler -TCC3_0_Handler -TCC3_1_Handler -TCC3_2_Handler -TCC4_0_Handler -TCC4_1_Handler -TCC4_2_Handler -TC0_Handler -TC1_Handler -TC2_Handler -TC3_Handler -TC4_Handler -TC5_Handler -TC6_Handler -TC7_Handler -PDEC_0_Handler -PDEC_1_Handler -PDEC_2_Handler -ADC0_0_Handler -ADC0_1_Handler -ADC1_0_Handler -ADC1_1_Handler -AC_Handler -DAC_0_Handler -DAC_1_Handler -DAC_2_Handler -DAC_3_Handler -DAC_4_Handler -I2S_Handler -PCC_Handler -AES_Handler -TRNG_Handler -ICM_Handler -PUKCC_Handler -QSPI_Handler -SDHC0_Handler -SDHC1_Handler - B . - ENDP - - - ALIGN - - -; User Initial Stack & Heap - - IF :DEF:__MICROLIB - - EXPORT __initial_sp - EXPORT __heap_base - EXPORT __heap_limit - - ELSE - - IMPORT __use_two_region_memory - EXPORT __user_initial_stackheap -__user_initial_stackheap - - LDR R0, = Heap_Mem - LDR R1, =(Stack_Mem + Stack_Size) - LDR R2, = (Heap_Mem + Heap_Size) - LDR R3, = Stack_Mem - BX LR - - ALIGN - - ENDIF - - - END diff --git a/sysmoOCTSIM/armcc/arm_addon/armcc/system_same54.c b/sysmoOCTSIM/armcc/arm_addon/armcc/system_same54.c deleted file mode 100644 index 95d3036..0000000 --- a/sysmoOCTSIM/armcc/arm_addon/armcc/system_same54.c +++ /dev/null @@ -1,70 +0,0 @@ -/** - * \file - * - * \brief Low-level initialization functions called upon chip startup. - * - * Copyright (c) 2016 Atmel Corporation, - * a wholly owned subsidiary of Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#include "same54.h" - -/** - * Initial system clock frequency. The System RC Oscillator (RCSYS) provides - * the source for the main clock at chip startup. - */ -#define __SYSTEM_CLOCK (48000000) - -uint32_t SystemCoreClock = __SYSTEM_CLOCK; /*!< System Clock Frequency (Core Clock)*/ - -/** - * Initialize the system - * - * @brief Setup the microcontroller system. - * Initialize the System and update the SystemCoreClock variable. - */ -void SystemInit(void) -{ -#if __FPU_USED - /* Enable FPU */ - SCB->CPACR |= (0xFu << 20); - __DSB(); - __ISB(); -#endif - - // Keep the default device state after reset - SystemCoreClock = __SYSTEM_CLOCK; - return; -} - -/** - * Update SystemCoreClock variable - * - * @brief Updates the SystemCoreClock with current core Clock - * retrieved from cpu registers. - */ -void SystemCoreClockUpdate(void) -{ - // Not implemented - SystemCoreClock = __SYSTEM_CLOCK; - return; -} diff --git a/sysmoOCTSIM/gcc/Makefile b/sysmoOCTSIM/gcc/Makefile index aeae7a5..57ec70c 100644 --- a/sysmoOCTSIM/gcc/Makefile +++ b/sysmoOCTSIM/gcc/Makefile @@ -80,7 +80,7 @@ hal/src/hal_cache.o \ hpl/cmcc/hpl_cmcc.o \ atmel_start.o \ -usb_cdc_echo_main.o \ +main.o \ usb/device/usbdc.o \ hal/src/hal_atomic.o @@ -117,7 +117,7 @@ "hal/src/hal_cache.o" \ "hpl/cmcc/hpl_cmcc.o" \ "atmel_start.o" \ -"usb_cdc_echo_main.o" \ +"main.o" \ "usb/device/usbdc.o" \ "hal/src/hal_atomic.o" @@ -146,7 +146,7 @@ "hpl/dmac/hpl_dmac.d" \ "hal/src/hal_init.d" \ "hal/src/hal_usart_sync.d" \ -"usb_cdc_echo_main.d" \ +"main.d" \ "hpl/mclk/hpl_mclk.d" \ "driver_init.d" \ "hpl/osc32kctrl/hpl_osc32kctrl.d" \ @@ -244,4 +244,4 @@ rm -f $(DEPS_AS_ARGS) rm -f $(OUTPUT_FILE_NAME).a $(OUTPUT_FILE_NAME).hex $(OUTPUT_FILE_NAME).bin \ $(OUTPUT_FILE_NAME).lss $(OUTPUT_FILE_NAME).eep $(OUTPUT_FILE_NAME).map \ - $(OUTPUT_FILE_NAME).srec \ No newline at end of file + $(OUTPUT_FILE_NAME).srec diff --git a/sysmoOCTSIM/usb_cdc_echo_main.c b/sysmoOCTSIM/main.c similarity index 100% rename from sysmoOCTSIM/usb_cdc_echo_main.c rename to sysmoOCTSIM/main.c -- To view, visit https://gerrit.osmocom.org/12802 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib6ec525885943afba9b24df88a5bee8009df95b5 Gerrit-Change-Number: 12802 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:47:41 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:47:41 +0000 Subject: Change in osmo-ccid-firmware[master]: add SERCOM HAL Async library Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12803 Change subject: add SERCOM HAL Async library ...................................................................... add SERCOM HAL Async library Change-Id: I530a5bc5ee7e89149eb251bda0adf7963733d2ee --- M sysmoOCTSIM/AtmelStart.gpdsc M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/driver_init.c M sysmoOCTSIM/driver_init.h M sysmoOCTSIM/examples/driver_examples.c M sysmoOCTSIM/gcc/Makefile A sysmoOCTSIM/hal/documentation/usart_async.rst A sysmoOCTSIM/hal/include/hal_usart_async.h A sysmoOCTSIM/hal/src/hal_usart_async.c A sysmoOCTSIM/hal/utils/include/utils_ringbuffer.h A sysmoOCTSIM/hal/utils/src/utils_ringbuffer.c M sysmoOCTSIM/hpl/sercom/hpl_sercom.c 12 files changed, 1,207 insertions(+), 30 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/03/12803/1 diff --git a/sysmoOCTSIM/AtmelStart.gpdsc b/sysmoOCTSIM/AtmelStart.gpdsc index 44b5c62..ebb4d1e 100644 --- a/sysmoOCTSIM/AtmelStart.gpdsc +++ b/sysmoOCTSIM/AtmelStart.gpdsc @@ -42,7 +42,7 @@ Atmel Start Framework #define ATMEL_START - + @@ -94,9 +94,11 @@ + + @@ -165,12 +167,12 @@ - + - + diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index cb7826a..af87e97 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -959,9 +959,9 @@ domain_group: null UART_debug: user_label: UART_debug - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::SERCOM2::driver_config_definition::UART::HAL:Driver:USART.Sync + definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::SERCOM2::driver_config_definition::UART::HAL:Driver:USART.Async functionality: USART - api: HAL:Driver:USART_Sync + api: HAL:Driver:USART_Async configuration: usart_advanced: false usart_arch_clock_mode: USART with internal clock diff --git a/sysmoOCTSIM/driver_init.c b/sysmoOCTSIM/driver_init.c index 72f2c88..efd24bc 100644 --- a/sysmoOCTSIM/driver_init.c +++ b/sysmoOCTSIM/driver_init.c @@ -11,9 +11,33 @@ #include #include -struct usart_sync_descriptor UART_debug; +/*! The buffer size for USART */ +#define UART_DEBUG_BUFFER_SIZE 16 -void UART_debug_PORT_init(void) +struct usart_async_descriptor UART_debug; + +static uint8_t UART_debug_buffer[UART_DEBUG_BUFFER_SIZE]; + +/** + * \brief USART Clock initialization function + * + * Enables register interface and peripheral clock + */ +void UART_debug_CLOCK_init() +{ + + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM2_GCLK_ID_CORE, CONF_GCLK_SERCOM2_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM2_GCLK_ID_SLOW, CONF_GCLK_SERCOM2_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + + hri_mclk_set_APBBMASK_SERCOM2_bit(MCLK); +} + +/** + * \brief USART pinmux initialization function + * + * Set each required pin to USART functionality + */ +void UART_debug_PORT_init() { gpio_set_pin_function(PB25, PINMUX_PB25D_SERCOM2_PAD0); @@ -21,18 +45,15 @@ gpio_set_pin_function(PB24, PINMUX_PB24D_SERCOM2_PAD1); } -void UART_debug_CLOCK_init(void) -{ - hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM2_GCLK_ID_CORE, CONF_GCLK_SERCOM2_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); - hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM2_GCLK_ID_SLOW, CONF_GCLK_SERCOM2_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); - - hri_mclk_set_APBBMASK_SERCOM2_bit(MCLK); -} - +/** + * \brief USART initialization function + * + * Enables USART peripheral, clocks and initializes USART driver + */ void UART_debug_init(void) { UART_debug_CLOCK_init(); - usart_sync_init(&UART_debug, SERCOM2, (void *)NULL); + usart_async_init(&UART_debug, SERCOM2, UART_debug_buffer, UART_DEBUG_BUFFER_SIZE, (void *)NULL); UART_debug_PORT_init(); } diff --git a/sysmoOCTSIM/driver_init.h b/sysmoOCTSIM/driver_init.h index 7067684..25e6370 100644 --- a/sysmoOCTSIM/driver_init.h +++ b/sysmoOCTSIM/driver_init.h @@ -21,11 +21,11 @@ #include #include -#include +#include #include "hal_usb_device.h" -extern struct usart_sync_descriptor UART_debug; +extern struct usart_async_descriptor UART_debug; void UART_debug_PORT_init(void); void UART_debug_CLOCK_init(void); diff --git a/sysmoOCTSIM/examples/driver_examples.c b/sysmoOCTSIM/examples/driver_examples.c index 56247ff..8384c87 100644 --- a/sysmoOCTSIM/examples/driver_examples.c +++ b/sysmoOCTSIM/examples/driver_examples.c @@ -12,12 +12,29 @@ /** * Example of using UART_debug to write "Hello World" using the IO abstraction. + * + * Since the driver is asynchronous we need to use statically allocated memory for string + * because driver initiates transfer and then returns before the transmission is completed. + * + * Once transfer has been completed the tx_cb function will be called. */ + +static uint8_t example_UART_debug[12] = "Hello World!"; + +static void tx_cb_UART_debug(const struct usart_async_descriptor *const io_descr) +{ + /* Transfer completed */ +} + void UART_debug_example(void) { struct io_descriptor *io; - usart_sync_get_io_descriptor(&UART_debug, &io); - usart_sync_enable(&UART_debug); - io_write(io, (uint8_t *)"Hello World!", 12); + usart_async_register_callback(&UART_debug, USART_ASYNC_TXC_CB, tx_cb_UART_debug); + /*usart_async_register_callback(&UART_debug, USART_ASYNC_RXC_CB, rx_cb); + usart_async_register_callback(&UART_debug, USART_ASYNC_ERROR_CB, err_cb);*/ + usart_async_get_io_descriptor(&UART_debug, &io); + usart_async_enable(&UART_debug); + + io_write(io, example_UART_debug, 12); } diff --git a/sysmoOCTSIM/gcc/Makefile b/sysmoOCTSIM/gcc/Makefile index 57ec70c..ff11dd9 100644 --- a/sysmoOCTSIM/gcc/Makefile +++ b/sysmoOCTSIM/gcc/Makefile @@ -52,7 +52,7 @@ hpl/core/hpl_core_m4.o \ usb/class/cdc/device/cdcdf_acm.o \ hal/utils/src/utils_syscalls.o \ -hpl/dmac/hpl_dmac.o \ +usb_start.o \ gcc/system_same54.o \ hpl/usb/hpl_usb.o \ hal/src/hal_delay.o \ @@ -61,9 +61,8 @@ hpl/gclk/hpl_gclk.o \ hal/utils/src/utils_list.o \ hal/utils/src/utils_assert.o \ -usb_start.o \ +hpl/dmac/hpl_dmac.o \ hpl/oscctrl/hpl_oscctrl.o \ -hal/src/hal_usart_sync.o \ hpl/mclk/hpl_mclk.o \ hpl/ramecc/hpl_ramecc.o \ usb/usb_protocol.o \ @@ -73,7 +72,9 @@ hpl/osc32kctrl/hpl_osc32kctrl.o \ examples/driver_examples.o \ driver_init.o \ +hal/src/hal_usart_async.o \ hpl/sercom/hpl_sercom.o \ +hal/utils/src/utils_ringbuffer.o \ hal/src/hal_gpio.o \ hal/utils/src/utils_event.o \ hal/src/hal_sleep.o \ @@ -89,7 +90,7 @@ "hpl/core/hpl_core_m4.o" \ "usb/class/cdc/device/cdcdf_acm.o" \ "hal/utils/src/utils_syscalls.o" \ -"hpl/dmac/hpl_dmac.o" \ +"usb_start.o" \ "gcc/system_same54.o" \ "hpl/usb/hpl_usb.o" \ "hal/src/hal_delay.o" \ @@ -98,9 +99,8 @@ "hpl/gclk/hpl_gclk.o" \ "hal/utils/src/utils_list.o" \ "hal/utils/src/utils_assert.o" \ -"usb_start.o" \ +"hpl/dmac/hpl_dmac.o" \ "hpl/oscctrl/hpl_oscctrl.o" \ -"hal/src/hal_usart_sync.o" \ "hpl/mclk/hpl_mclk.o" \ "hpl/ramecc/hpl_ramecc.o" \ "usb/usb_protocol.o" \ @@ -110,7 +110,9 @@ "hpl/osc32kctrl/hpl_osc32kctrl.o" \ "examples/driver_examples.o" \ "driver_init.o" \ +"hal/src/hal_usart_async.o" \ "hpl/sercom/hpl_sercom.o" \ +"hal/utils/src/utils_ringbuffer.o" \ "hal/src/hal_gpio.o" \ "hal/utils/src/utils_event.o" \ "hal/src/hal_sleep.o" \ @@ -135,7 +137,7 @@ "hpl/usb/hpl_usb.d" \ "hal/utils/src/utils_list.d" \ "hpl/cmcc/hpl_cmcc.d" \ -"usb_start.d" \ +"hpl/dmac/hpl_dmac.d" \ "hal/utils/src/utils_assert.d" \ "hal/src/hal_delay.d" \ "hpl/core/hpl_init.d" \ @@ -143,16 +145,17 @@ "usb/usb_protocol.d" \ "hpl/gclk/hpl_gclk.d" \ "hal/src/hal_usb_device.d" \ -"hpl/dmac/hpl_dmac.d" \ +"usb_start.d" \ "hal/src/hal_init.d" \ -"hal/src/hal_usart_sync.d" \ "main.d" \ "hpl/mclk/hpl_mclk.d" \ "driver_init.d" \ +"hal/src/hal_usart_async.d" \ "hpl/osc32kctrl/hpl_osc32kctrl.d" \ "examples/driver_examples.d" \ "hal/src/hal_cache.d" \ "hal/src/hal_sleep.d" \ +"hal/utils/src/utils_ringbuffer.d" \ "hpl/sercom/hpl_sercom.d" \ "hal/src/hal_gpio.d" \ "hal/src/hal_atomic.d" \ diff --git a/sysmoOCTSIM/hal/documentation/usart_async.rst b/sysmoOCTSIM/hal/documentation/usart_async.rst new file mode 100644 index 0000000..6bf4a23 --- /dev/null +++ b/sysmoOCTSIM/hal/documentation/usart_async.rst @@ -0,0 +1,72 @@ +The USART Asynchronous Driver +============================= + +The universal synchronous and asynchronous receiver and transmitter +(USART) is usually used to transfer data from one device to the other. + +The USART driver use a ring buffer to store received data. When the USART +raise the data received interrupt, this data will be stored in the ring buffer +at the next free location. When the ring buffer is full, the next reception +will overwrite the oldest data stored in the ring buffer. There is one +USART_BUFFER_SIZE macro per used hardware instance, e.g. for SERCOM0 the macro +is called SERCOM0_USART_BUFFER_SIZE. + +On the other hand, when sending data over USART, the data is not copied to an +internal buffer, but the data buffer supplied by the user is used. The callback +will only be generated at the end of the buffer and not for each byte. + +User can set action for flow control pins by function usart_set_flow_control, +if the flow control is enabled. All the available states are defined in union +usart_flow_control_state. + +Note that user can set state of flow control pins only if automatic support of +the flow control is not supported by the hardware. + +Features +-------- + +* Initialization/de-initialization +* Enabling/disabling +* Control of the following settings: + + * Baudrate + * UART or USRT communication mode + * Character size + * Data order + * Flow control +* Data transfer: transmission, reception +* Notifications about transfer done or error case via callbacks +* Status information with busy state and transfer count + +Applications +------------ + +They are commonly used in a terminal application or low-speed communication +between devices. + +Dependencies +------------ + +USART capable hardware, with interrupt on each character is sent or +received. + +Concurrency +----------- + +Write buffer should not be changed while data is being sent. + + +Limitations +----------- + +* The driver does not support 9-bit character size. +* The "USART with ISO7816" mode can be only used in ISO7816 capable devices. + And the SCK pin can't be set directly. Application can use a GCLK output PIN + to generate SCK. For example to communicate with a SMARTCARD with ISO7816 + (F = 372 ; D = 1), and baudrate=9600, the SCK pin output frequency should be + config as 372*9600=3571200Hz. More information can be refer to ISO7816 Specification. + +Known issues and workarounds +---------------------------- + +N/A diff --git a/sysmoOCTSIM/hal/include/hal_usart_async.h b/sysmoOCTSIM/hal/include/hal_usart_async.h new file mode 100644 index 0000000..3a6de39 --- /dev/null +++ b/sysmoOCTSIM/hal/include/hal_usart_async.h @@ -0,0 +1,339 @@ +/** + * \file + * + * \brief USART related functionality declaration. + * + * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries. + * + * \asf_license_start + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip + * software and any derivatives exclusively with Microchip products. + * It is your responsibility to comply with third party license terms applicable + * to your use of third party software (including open source software) that + * may accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, + * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, + * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE + * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL + * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE + * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE + * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT + * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY + * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, + * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + * + * \asf_license_stop + * + */ + +#ifndef _HAL_USART_ASYNC_H_INCLUDED +#define _HAL_USART_ASYNC_H_INCLUDED + +#include "hal_io.h" +#include +#include + +/** + * \addtogroup doc_driver_hal_usart_async + * + * @{ + */ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \brief USART descriptor + * + * The USART descriptor forward declaration. + */ +struct usart_async_descriptor; + +/** + * \brief USART callback type + */ +typedef void (*usart_cb_t)(const struct usart_async_descriptor *const descr); + +/** + * \brief USART callback types + */ +enum usart_async_callback_type { USART_ASYNC_RXC_CB, USART_ASYNC_TXC_CB, USART_ASYNC_ERROR_CB }; + +/** + * \brief USART callbacks + */ +struct usart_async_callbacks { + usart_cb_t tx_done; + usart_cb_t rx_done; + usart_cb_t error; +}; + +/** \brief USART status + * Status descriptor holds the current status of transfer. + */ +struct usart_async_status { + /** Status flags */ + uint32_t flags; + /** Number of characters transmitted */ + uint16_t txcnt; + /** Number of characters receviced */ + uint16_t rxcnt; +}; + +/** + * \brief Asynchronous USART descriptor structure + */ +struct usart_async_descriptor { + struct io_descriptor io; + struct _usart_async_device device; + struct usart_async_callbacks usart_cb; + uint32_t stat; + + struct ringbuffer rx; + uint16_t tx_por; + uint8_t * tx_buffer; + uint16_t tx_buffer_length; +}; + +/** USART write busy */ +#define USART_ASYNC_STATUS_BUSY 0x0001 + +/** + * \brief Initialize USART interface + * + * This function initializes the given I/O descriptor to be used as USART + * interface descriptor. + * It checks if the given hardware is not initialized and if the given hardware + * is permitted to be initialized. + * + * \param[out] descr A USART descriptor which is used to communicate via the USART + * \param[in] hw The pointer to the hardware instance + * \param[in] rx_buffer An RX buffer + * \param[in] rx_buffer_length The length of the buffer above + * \param[in] func The pointer to a set of function pointers + * + * \return Initialization status. + * \retval -1 Passed parameters were invalid or the interface is already + * initialized + * \retval 0 The initialization is completed successfully + */ +int32_t usart_async_init(struct usart_async_descriptor *const descr, void *const hw, uint8_t *const rx_buffer, + const uint16_t rx_buffer_length, void *const func); + +/** + * \brief Deinitialize USART interface + * + * This function deinitializes the given I/O descriptor. + * It checks if the given hardware is initialized and if the given hardware + * is permitted to be deinitialized. + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * + * \return De-initialization status. + */ +int32_t usart_async_deinit(struct usart_async_descriptor *const descr); + +/** + * \brief Enable USART interface + * + * Enables the USART interface + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * + * \return Enabling status. + */ +int32_t usart_async_enable(struct usart_async_descriptor *const descr); + +/** + * \brief Disable USART interface + * + * Disables the USART interface + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * + * \return Disabling status. + */ +int32_t usart_async_disable(struct usart_async_descriptor *const descr); + +/** + * \brief Retrieve I/O descriptor + * + * This function retrieves the I/O descriptor of the given USART descriptor. + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * \param[out] io An I/O descriptor to retrieve + * + * \return The status of I/O descriptor retrieving. + */ +int32_t usart_async_get_io_descriptor(struct usart_async_descriptor *const descr, struct io_descriptor **io); + +/** + * \brief Register USART callback + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * \param[in] type Callback type + * \param[in] cb A callback function + * + * \return The status of callback assignment. + * \retval -1 Passed parameters were invalid or the interface is not initialized + * \retval 0 A callback is registered successfully + */ +int32_t usart_async_register_callback(struct usart_async_descriptor *const descr, + const enum usart_async_callback_type type, usart_cb_t cb); + +/** + * \brief Specify action for flow control pins + * + * This function sets action (or state) for flow control pins if + * the flow control is enabled. + * It sets state of flow control pins only if automatic support of + * the flow control is not supported by the hardware. + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * \param[in] state A state to set the flow control pins + * + * \return The status of flow control action setup. + */ +int32_t usart_async_set_flow_control(struct usart_async_descriptor *const descr, + const union usart_flow_control_state state); + +/** + * \brief Set USART baud rate + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * \param[in] baud_rate A baud rate to set + * + * \return The status of baud rate setting. + */ +int32_t usart_async_set_baud_rate(struct usart_async_descriptor *const descr, const uint32_t baud_rate); + +/** + * \brief Set USART data order + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * \param[in] data_order A data order to set + * + * \return The status of data order setting. + */ +int32_t usart_async_set_data_order(struct usart_async_descriptor *const descr, const enum usart_data_order data_order); + +/** + * \brief Set USART mode + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * \param[in] mode A mode to set + * + * \return The status of mode setting. + */ +int32_t usart_async_set_mode(struct usart_async_descriptor *const descr, const enum usart_mode mode); + +/** + * \brief Set USART parity + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * \param[in] parity A parity to set + * + * \return The status of parity setting. + */ +int32_t usart_async_set_parity(struct usart_async_descriptor *const descr, const enum usart_parity parity); + +/** + * \brief Set USART stop bits + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * \param[in] stop_bits Stop bits to set + * + * \return The status of stop bits setting. + */ +int32_t usart_async_set_stopbits(struct usart_async_descriptor *const descr, const enum usart_stop_bits stop_bits); + +/** + * \brief Set USART character size + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * \param[in] size A character size to set + * + * \return The status of character size setting. + */ +int32_t usart_async_set_character_size(struct usart_async_descriptor *const descr, + const enum usart_character_size size); + +/** + * \brief Retrieve the state of flow control pins + * + * This function retrieves the flow control pins + * if the flow control is enabled. + * + * The function can return USART_FLOW_CONTROL_STATE_UNAVAILABLE in case + * if the flow control is done by the hardware + * and the pins state cannot be read out. + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * \param[out] state The state of flow control pins + * + * \return The status of flow control state reading. + */ +int32_t usart_async_flow_control_status(const struct usart_async_descriptor *const descr, + union usart_flow_control_state *const state); + +/** + * \brief Check if the USART transmitter is empty + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * + * \return The status of USART TX empty checking. + * \retval 0 The USART transmitter is not empty + * \retval 1 The USART transmitter is empty + */ +int32_t usart_async_is_tx_empty(const struct usart_async_descriptor *const descr); + +/** + * \brief Check if the USART receiver is not empty + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * + * \return The status of the USART RX empty checking. + * \retval 1 The USART receiver is not empty + * \retval 0 The USART receiver is empty + */ +int32_t usart_async_is_rx_not_empty(const struct usart_async_descriptor *const descr); + +/** + * \brief Retrieve the current interface status + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * \param[out] status The state of USART + * + * \return The status of USART status retrieving. + */ +int32_t usart_async_get_status(struct usart_async_descriptor *const descr, struct usart_async_status *const status); + +/** + * \brief flush USART ringbuf + * + * This function flush USART RX ringbuf. + * + * \param[in] descr The pointer to USART descriptor + * + * \return ERR_NONE + */ +int32_t usart_async_flush_rx_buffer(struct usart_async_descriptor *const descr); + +/** + * \brief Retrieve the current driver version + * + * \return Current driver version. + */ +uint32_t usart_async_get_version(void); + +#ifdef __cplusplus +} +#endif +/**@}*/ +#endif /* _HAL_USART_ASYNC_H_INCLUDED */ diff --git a/sysmoOCTSIM/hal/src/hal_usart_async.c b/sysmoOCTSIM/hal/src/hal_usart_async.c new file mode 100644 index 0000000..f07b266 --- /dev/null +++ b/sysmoOCTSIM/hal/src/hal_usart_async.c @@ -0,0 +1,420 @@ +/** + * \file + * + * \brief I/O USART related functionality implementation. + * + * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries. + * + * \asf_license_start + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip + * software and any derivatives exclusively with Microchip products. + * It is your responsibility to comply with third party license terms applicable + * to your use of third party software (including open source software) that + * may accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, + * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, + * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE + * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL + * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE + * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE + * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT + * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY + * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, + * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + * + * \asf_license_stop + * + */ + +#include "hal_usart_async.h" +#include +#include +#include + +/** + * \brief Driver version + */ +#define DRIVER_VERSION 0x00000001u + +static int32_t usart_async_write(struct io_descriptor *const io_descr, const uint8_t *const buf, const uint16_t length); +static int32_t usart_async_read(struct io_descriptor *const io_descr, uint8_t *const buf, const uint16_t length); +static void usart_process_byte_sent(struct _usart_async_device *device); +static void usart_transmission_complete(struct _usart_async_device *device); +static void usart_error(struct _usart_async_device *device); +static void usart_fill_rx_buffer(struct _usart_async_device *device, uint8_t data); + +/** + * \brief Initialize usart interface + */ +int32_t usart_async_init(struct usart_async_descriptor *const descr, void *const hw, uint8_t *rx_buffer, + uint16_t rx_buffer_length, void *const func) +{ + int32_t init_status; + ASSERT(descr && hw && rx_buffer && rx_buffer_length); + + if (ERR_NONE != ringbuffer_init(&descr->rx, rx_buffer, rx_buffer_length)) { + return ERR_INVALID_ARG; + } + init_status = _usart_async_init(&descr->device, hw); + if (init_status) { + return init_status; + } + + descr->io.read = usart_async_read; + descr->io.write = usart_async_write; + + descr->device.usart_cb.tx_byte_sent = usart_process_byte_sent; + descr->device.usart_cb.rx_done_cb = usart_fill_rx_buffer; + descr->device.usart_cb.tx_done_cb = usart_transmission_complete; + descr->device.usart_cb.error_cb = usart_error; + + return ERR_NONE; +} + +/** + * \brief Deinitialize usart interface + */ +int32_t usart_async_deinit(struct usart_async_descriptor *const descr) +{ + ASSERT(descr); + _usart_async_deinit(&descr->device); + descr->io.read = NULL; + descr->io.write = NULL; + + return ERR_NONE; +} + +/** + * \brief Enable usart interface + */ +int32_t usart_async_enable(struct usart_async_descriptor *const descr) +{ + ASSERT(descr); + _usart_async_enable(&descr->device); + + return ERR_NONE; +} + +/** + * \brief Disable usart interface + */ +int32_t usart_async_disable(struct usart_async_descriptor *const descr) +{ + ASSERT(descr); + _usart_async_disable(&descr->device); + + return ERR_NONE; +} + +/** + * \brief Retrieve I/O descriptor + */ +int32_t usart_async_get_io_descriptor(struct usart_async_descriptor *const descr, struct io_descriptor **io) +{ + ASSERT(descr && io); + + *io = &descr->io; + return ERR_NONE; +} + +/** + * \brief Register usart callback + */ +int32_t usart_async_register_callback(struct usart_async_descriptor *const descr, + const enum usart_async_callback_type type, usart_cb_t cb) +{ + ASSERT(descr); + + switch (type) { + case USART_ASYNC_RXC_CB: + descr->usart_cb.rx_done = cb; + _usart_async_set_irq_state(&descr->device, USART_ASYNC_RX_DONE, NULL != cb); + break; + case USART_ASYNC_TXC_CB: + descr->usart_cb.tx_done = cb; + _usart_async_set_irq_state(&descr->device, USART_ASYNC_TX_DONE, NULL != cb); + break; + case USART_ASYNC_ERROR_CB: + descr->usart_cb.error = cb; + _usart_async_set_irq_state(&descr->device, USART_ASYNC_ERROR, NULL != cb); + break; + default: + return ERR_INVALID_ARG; + } + + return ERR_NONE; +} + +/** + * \brief Specify action for flow control pins + */ +int32_t usart_async_set_flow_control(struct usart_async_descriptor *const descr, + const union usart_flow_control_state state) +{ + ASSERT(descr); + _usart_async_set_flow_control_state(&descr->device, state); + + return ERR_NONE; +} + +/** + * \brief Set usart baud rate + */ +int32_t usart_async_set_baud_rate(struct usart_async_descriptor *const descr, const uint32_t baud_rate) +{ + ASSERT(descr); + _usart_async_set_baud_rate(&descr->device, baud_rate); + + return ERR_NONE; +} + +/** + * \brief Set usart data order + */ +int32_t usart_async_set_data_order(struct usart_async_descriptor *const descr, const enum usart_data_order data_order) +{ + ASSERT(descr); + _usart_async_set_data_order(&descr->device, data_order); + + return ERR_NONE; +} + +/** + * \brief Set usart mode + */ +int32_t usart_async_set_mode(struct usart_async_descriptor *const descr, const enum usart_mode mode) +{ + ASSERT(descr); + _usart_async_set_mode(&descr->device, mode); + + return ERR_NONE; +} + +/** + * \brief Set usart parity + */ +int32_t usart_async_set_parity(struct usart_async_descriptor *const descr, const enum usart_parity parity) +{ + ASSERT(descr); + _usart_async_set_parity(&descr->device, parity); + + return ERR_NONE; +} + +/** + * \brief Set usart stop bits + */ +int32_t usart_async_set_stopbits(struct usart_async_descriptor *const descr, const enum usart_stop_bits stop_bits) +{ + ASSERT(descr); + _usart_async_set_stop_bits(&descr->device, stop_bits); + + return ERR_NONE; +} + +/** + * \brief Set usart character size + */ +int32_t usart_async_set_character_size(struct usart_async_descriptor *const descr, const enum usart_character_size size) +{ + ASSERT(descr); + _usart_async_set_character_size(&descr->device, size); + + return ERR_NONE; +} + +/** + * \brief Retrieve the state of flow control pins + */ +int32_t usart_async_flow_control_status(const struct usart_async_descriptor *const descr, + union usart_flow_control_state *const state) +{ + ASSERT(descr && state); + *state = _usart_async_get_flow_control_state(&descr->device); + + return ERR_NONE; +} + +/** + * \brief Check if the usart transmitter is empty + */ +int32_t usart_async_is_tx_empty(const struct usart_async_descriptor *const descr) +{ + ASSERT(descr); + return _usart_async_is_byte_sent(&descr->device); +} + +/** + * \brief Check if the usart receiver is not empty + */ +int32_t usart_async_is_rx_not_empty(const struct usart_async_descriptor *const descr) +{ + ASSERT(descr); + + return ringbuffer_num(&descr->rx) > 0; +} + +/** + * \brief Retrieve the current interface status + */ +int32_t usart_async_get_status(struct usart_async_descriptor *const descr, struct usart_async_status *const status) +{ + ASSERT(descr); + + volatile uint32_t *tmp_stat = &(descr->stat); + volatile uint16_t *tmp_txcnt = &(descr->tx_por); + + if (status) { + status->flags = *tmp_stat; + status->txcnt = *tmp_txcnt; + status->rxcnt = ringbuffer_num(&descr->rx); + } + if (*tmp_stat & USART_ASYNC_STATUS_BUSY) { + return ERR_BUSY; + } + + return ERR_NONE; +} + +/** + * \brief flush usart rx ringbuf + */ +int32_t usart_async_flush_rx_buffer(struct usart_async_descriptor *const descr) +{ + ASSERT(descr); + + return ringbuffer_flush(&descr->rx); +} + +/** + * \brief Retrieve the current driver version + */ +uint32_t usart_async_get_version(void) +{ + return DRIVER_VERSION; +} + +/* + * \internal Write the given data to usart interface + * + * \param[in] descr The pointer to an io descriptor + * \param[in] buf Data to write to usart + * \param[in] length The number of bytes to write + * + * \return The number of bytes written. + */ +static int32_t usart_async_write(struct io_descriptor *const io_descr, const uint8_t *const buf, const uint16_t length) +{ + struct usart_async_descriptor *descr = CONTAINER_OF(io_descr, struct usart_async_descriptor, io); + + ASSERT(descr && buf && length); + + if (descr->tx_por != descr->tx_buffer_length) { + return ERR_NO_RESOURCE; + } + descr->tx_buffer = (uint8_t *)buf; + descr->tx_buffer_length = length; + descr->tx_por = 0; + descr->stat = USART_ASYNC_STATUS_BUSY; + _usart_async_enable_byte_sent_irq(&descr->device); + + return (int32_t)length; +} + +/* + * \internal Read data from usart interface + * + * \param[in] descr The pointer to an io descriptor + * \param[in] buf A buffer to read data to + * \param[in] length The size of a buffer + * + * \return The number of bytes read. + */ +static int32_t usart_async_read(struct io_descriptor *const io_descr, uint8_t *const buf, const uint16_t length) +{ + uint16_t was_read = 0; + uint32_t num; + struct usart_async_descriptor *descr = CONTAINER_OF(io_descr, struct usart_async_descriptor, io); + + ASSERT(descr && buf && length); + + CRITICAL_SECTION_ENTER() + num = ringbuffer_num(&descr->rx); + CRITICAL_SECTION_LEAVE() + + while ((was_read < num) && (was_read < length)) { + ringbuffer_get(&descr->rx, &buf[was_read++]); + } + + return (int32_t)was_read; +} + +/** + * \brief Process "byte is sent" interrupt + * + * \param[in] device The pointer to device structure + */ +static void usart_process_byte_sent(struct _usart_async_device *device) +{ + struct usart_async_descriptor *descr = CONTAINER_OF(device, struct usart_async_descriptor, device); + if (descr->tx_por != descr->tx_buffer_length) { + _usart_async_write_byte(&descr->device, descr->tx_buffer[descr->tx_por++]); + _usart_async_enable_byte_sent_irq(&descr->device); + } else { + _usart_async_enable_tx_done_irq(&descr->device); + } +} + +/** + * \brief Process completion of data sending + * + * \param[in] device The pointer to device structure + */ +static void usart_transmission_complete(struct _usart_async_device *device) +{ + struct usart_async_descriptor *descr = CONTAINER_OF(device, struct usart_async_descriptor, device); + + descr->stat = 0; + if (descr->usart_cb.tx_done) { + descr->usart_cb.tx_done(descr); + } +} + +/** + * \brief Process byte reception + * + * \param[in] device The pointer to device structure + * \param[in] data Data read + */ +static void usart_fill_rx_buffer(struct _usart_async_device *device, uint8_t data) +{ + struct usart_async_descriptor *descr = CONTAINER_OF(device, struct usart_async_descriptor, device); + + ringbuffer_put(&descr->rx, data); + + if (descr->usart_cb.rx_done) { + descr->usart_cb.rx_done(descr); + } +} + +/** + * \brief Process error interrupt + * + * \param[in] device The pointer to device structure + */ +static void usart_error(struct _usart_async_device *device) +{ + struct usart_async_descriptor *descr = CONTAINER_OF(device, struct usart_async_descriptor, device); + + descr->stat = 0; + if (descr->usart_cb.error) { + descr->usart_cb.error(descr); + } +} + +//@} diff --git a/sysmoOCTSIM/hal/utils/include/utils_ringbuffer.h b/sysmoOCTSIM/hal/utils/include/utils_ringbuffer.h new file mode 100644 index 0000000..401d557 --- /dev/null +++ b/sysmoOCTSIM/hal/utils/include/utils_ringbuffer.h @@ -0,0 +1,116 @@ +/** + * \file + * + * \brief Ringbuffer declaration. + * + * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries. + * + * \asf_license_start + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip + * software and any derivatives exclusively with Microchip products. + * It is your responsibility to comply with third party license terms applicable + * to your use of third party software (including open source software) that + * may accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, + * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, + * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE + * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL + * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE + * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE + * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT + * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY + * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, + * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + * + * \asf_license_stop + * + */ +#ifndef _UTILS_RINGBUFFER_H_INCLUDED +#define _UTILS_RINGBUFFER_H_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \addtogroup doc_driver_hal_utils_ringbuffer + * + * @{ + */ + +#include "compiler.h" +#include "utils_assert.h" + +/** + * \brief Ring buffer element type + */ +struct ringbuffer { + uint8_t *buf; /** Buffer base address */ + uint32_t size; /** Buffer size */ + uint32_t read_index; /** Buffer read index */ + uint32_t write_index; /** Buffer write index */ +}; + +/** + * \brief Ring buffer init + * + * \param[in] rb The pointer to a ring buffer structure instance + * \param[in] buf Space to store the data + * \param[in] size The buffer length, must be aligned with power of 2 + * + * \return ERR_NONE on success, or an error code on failure. + */ +int32_t ringbuffer_init(struct ringbuffer *const rb, void *buf, uint32_t size); + +/** + * \brief Get one byte from ring buffer, the user needs to handle the concurrent + * access on buffer via put/get/flush + * + * \param[in] rb The pointer to a ring buffer structure instance + * \param[in] data One byte space to store the read data + * + * \return ERR_NONE on success, or an error code on failure. + */ +int32_t ringbuffer_get(struct ringbuffer *const rb, uint8_t *data); + +/** + * \brief Put one byte to ring buffer, the user needs to handle the concurrent access + * on buffer via put/get/flush + * + * \param[in] rb The pointer to a ring buffer structure instance + * \param[in] data One byte data to be put into ring buffer + * + * \return ERR_NONE on success, or an error code on failure. + */ +int32_t ringbuffer_put(struct ringbuffer *const rb, uint8_t data); + +/** + * \brief Return the element number of ring buffer + * + * \param[in] rb The pointer to a ring buffer structure instance + * + * \return The number of elements in ring buffer [0, rb->size] + */ +uint32_t ringbuffer_num(const struct ringbuffer *const rb); + +/** + * \brief Flush ring buffer, the user needs to handle the concurrent access on buffer + * via put/get/flush + * + * \param[in] rb The pointer to a ring buffer structure instance + * + * \return ERR_NONE on success, or an error code on failure. + */ +uint32_t ringbuffer_flush(struct ringbuffer *const rb); + +/**@}*/ + +#ifdef __cplusplus +} +#endif +#endif /* _UTILS_RINGBUFFER_H_INCLUDED */ diff --git a/sysmoOCTSIM/hal/utils/src/utils_ringbuffer.c b/sysmoOCTSIM/hal/utils/src/utils_ringbuffer.c new file mode 100644 index 0000000..45cac83 --- /dev/null +++ b/sysmoOCTSIM/hal/utils/src/utils_ringbuffer.c @@ -0,0 +1,118 @@ +/** + * \file + * + * \brief Ringbuffer functionality implementation. + * + * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries. + * + * \asf_license_start + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip + * software and any derivatives exclusively with Microchip products. + * It is your responsibility to comply with third party license terms applicable + * to your use of third party software (including open source software) that + * may accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, + * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, + * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE + * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL + * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE + * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE + * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT + * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY + * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, + * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + * + * \asf_license_stop + * + */ +#include "utils_ringbuffer.h" + +/** + * \brief Ringbuffer init + */ +int32_t ringbuffer_init(struct ringbuffer *const rb, void *buf, uint32_t size) +{ + ASSERT(rb && buf && size); + + /* + * buf size must be aligned to power of 2 + */ + if ((size & (size - 1)) != 0) { + return ERR_INVALID_ARG; + } + + /* size - 1 is faster in calculation */ + rb->size = size - 1; + rb->read_index = 0; + rb->write_index = rb->read_index; + rb->buf = (uint8_t *)buf; + + return ERR_NONE; +} + +/** + * \brief Get one byte from ringbuffer + * + */ +int32_t ringbuffer_get(struct ringbuffer *const rb, uint8_t *data) +{ + ASSERT(rb && data); + + if (rb->write_index != rb->read_index) { + *data = rb->buf[rb->read_index & rb->size]; + rb->read_index++; + return ERR_NONE; + } + + return ERR_NOT_FOUND; +} + +/** + * \brief Put one byte to ringbuffer + * + */ +int32_t ringbuffer_put(struct ringbuffer *const rb, uint8_t data) +{ + ASSERT(rb); + + rb->buf[rb->write_index & rb->size] = data; + + /* + * buffer full strategy: new data will overwrite the oldest data in + * the buffer + */ + if ((rb->write_index - rb->read_index) > rb->size) { + rb->read_index = rb->write_index - rb->size; + } + + rb->write_index++; + + return ERR_NONE; +} + +/** + * \brief Return the element number of ringbuffer + */ +uint32_t ringbuffer_num(const struct ringbuffer *const rb) +{ + ASSERT(rb); + + return rb->write_index - rb->read_index; +} + +/** + * \brief Flush ringbuffer + */ +uint32_t ringbuffer_flush(struct ringbuffer *const rb) +{ + ASSERT(rb); + + rb->read_index = rb->write_index; + + return ERR_NONE; +} diff --git a/sysmoOCTSIM/hpl/sercom/hpl_sercom.c b/sysmoOCTSIM/hpl/sercom/hpl_sercom.c index 130f63a..11192d0 100644 --- a/sysmoOCTSIM/hpl/sercom/hpl_sercom.c +++ b/sysmoOCTSIM/hpl/sercom/hpl_sercom.c @@ -163,6 +163,8 @@ }; #endif +static struct _usart_async_device *_sercom2_dev = NULL; + static uint8_t _get_sercom_index(const void *const hw); static uint8_t _sercom_get_irq_num(const void *const hw); static void _sercom_init_irq_param(const void *const hw, void *dev); @@ -563,6 +565,40 @@ } /** + * \internal Sercom interrupt handler + * + * \param[in] p The pointer to interrupt parameter + */ +static void _sercom_usart_interrupt_handler(struct _usart_async_device *device) +{ + void *hw = device->hw; + + if (hri_sercomusart_get_interrupt_DRE_bit(hw) && hri_sercomusart_get_INTEN_DRE_bit(hw)) { + hri_sercomusart_clear_INTEN_DRE_bit(hw); + device->usart_cb.tx_byte_sent(device); + } else if (hri_sercomusart_get_interrupt_TXC_bit(hw) && hri_sercomusart_get_INTEN_TXC_bit(hw)) { + hri_sercomusart_clear_INTEN_TXC_bit(hw); + device->usart_cb.tx_done_cb(device); + } else if (hri_sercomusart_get_interrupt_RXC_bit(hw)) { + if (hri_sercomusart_read_STATUS_reg(hw) + & (SERCOM_USART_STATUS_PERR | SERCOM_USART_STATUS_FERR | SERCOM_USART_STATUS_BUFOVF + | SERCOM_USART_STATUS_ISF | SERCOM_USART_STATUS_COLL)) { + hri_sercomusart_clear_STATUS_reg(hw, SERCOM_USART_STATUS_MASK); + return; + } + + device->usart_cb.rx_done_cb(device, hri_sercomusart_read_DATA_reg(hw)); + } else if (hri_sercomusart_get_interrupt_ERROR_bit(hw)) { + uint32_t status; + + hri_sercomusart_clear_interrupt_ERROR_bit(hw); + device->usart_cb.error_cb(device); + status = hri_sercomusart_read_STATUS_reg(hw); + hri_sercomusart_clear_STATUS_reg(hw, status); + } +} + +/** * \internal Retrieve ordinal number of the given sercom hardware instance * * \param[in] hw The pointer to hardware instance @@ -589,6 +625,10 @@ */ static void _sercom_init_irq_param(const void *const hw, void *dev) { + + if (hw == SERCOM2) { + _sercom2_dev = (struct _usart_async_device *)dev; + } } /** @@ -2349,6 +2389,35 @@ return NULL; } +/** + * \internal Sercom interrupt handler + */ +void SERCOM2_0_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom2_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM2_1_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom2_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM2_2_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom2_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM2_3_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom2_dev); +} + int32_t _spi_m_sync_init(struct _spi_m_sync_dev *dev, void *const hw) { const struct sercomspi_regs_cfg *regs = _spi_get_regs((uint32_t)hw); -- To view, visit https://gerrit.osmocom.org/12803 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I530a5bc5ee7e89149eb251bda0adf7963733d2ee Gerrit-Change-Number: 12803 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:47:41 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:47:41 +0000 Subject: Change in osmo-ccid-firmware[master]: add system LED definition Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12804 Change subject: add system LED definition ...................................................................... add system LED definition Change-Id: I97dc71ac00b64fdd05e0ff4c7e16e1b68b57b695 --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/atmel_start_pins.h M sysmoOCTSIM/driver_init.c 3 files changed, 22 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/04/12804/1 diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index af87e97..7492bf6 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -1044,6 +1044,13 @@ configuration: usb_gclk_selection: Generic clock generator 1 pads: + LED_system: + name: PC18 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::pad::PC18 + mode: Digital output + user_label: LED_system + configuration: + pad_initial_level: High PA24: name: PA24 definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::pad::PA24 diff --git a/sysmoOCTSIM/atmel_start_pins.h b/sysmoOCTSIM/atmel_start_pins.h index 3631847..7c774ed 100644 --- a/sysmoOCTSIM/atmel_start_pins.h +++ b/sysmoOCTSIM/atmel_start_pins.h @@ -31,5 +31,6 @@ #define PA25 GPIO(GPIO_PORTA, 25) #define PB24 GPIO(GPIO_PORTB, 24) #define PB25 GPIO(GPIO_PORTB, 25) +#define LED_system GPIO(GPIO_PORTC, 18) #endif // ATMEL_START_PINS_H_INCLUDED diff --git a/sysmoOCTSIM/driver_init.c b/sysmoOCTSIM/driver_init.c index efd24bc..9fbc7ed 100644 --- a/sysmoOCTSIM/driver_init.c +++ b/sysmoOCTSIM/driver_init.c @@ -176,6 +176,20 @@ { init_mcu(); + // GPIO on PC18 + + gpio_set_pin_level(LED_system, + // Initial level + // pad_initial_level + // Low + // High + true); + + // Set pin direction to output + gpio_set_pin_direction(LED_system, GPIO_DIRECTION_OUT); + + gpio_set_pin_function(LED_system, GPIO_PIN_FUNCTION_OFF); + UART_debug_init(); USB_DEVICE_INSTANCE_init(); -- To view, visit https://gerrit.osmocom.org/12804 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I97dc71ac00b64fdd05e0ff4c7e16e1b68b57b695 Gerrit-Change-Number: 12804 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:47:41 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:47:41 +0000 Subject: Change in osmo-ccid-firmware[master]: blink LED on UART activity Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12805 Change subject: blink LED on UART activity ...................................................................... blink LED on UART activity Change-Id: Ib230be6003f28931ab4c60228796ec0af6c783d9 --- M sysmoOCTSIM/main.c 1 file changed, 36 insertions(+), 34 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/05/12805/1 diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c index fe02810..de954f4 100644 --- a/sysmoOCTSIM/main.c +++ b/sysmoOCTSIM/main.c @@ -1,44 +1,46 @@ -/** - * \file - * - * \brief Application implement - * - * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries. - * - * \asf_license_start - * - * \page License - * - * Subject to your compliance with these terms, you may use Microchip - * software and any derivatives exclusively with Microchip products. - * It is your responsibility to comply with third party license terms applicable - * to your use of third party software (including open source software) that - * may accompany Microchip software. - * - * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, - * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, - * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, - * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE - * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL - * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE - * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE - * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT - * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY - * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, - * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. - * - * \asf_license_stop - * - */ /* - * Support and FAQ: visit Microchip Support - */ + * Copyright (C) 2019 sysmocom -s.f.m.c. GmbH, Author: Kevin Redon + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ #include "atmel_start.h" #include "atmel_start_pins.h" +volatile static uint32_t data_arrived = 0; + +static void tx_cb_UART_debug(const struct usart_async_descriptor *const io_descr) +{ + /* Transfer completed */ + gpio_toggle_pin_level(LED_system); +} + +static void rx_cb_UART_debug(const struct usart_async_descriptor *const io_descr) +{ + /* Receive completed */ + gpio_toggle_pin_level(LED_system); + data_arrived = 1; +} + int main(void) { atmel_start_init(); + + usart_async_register_callback(&UART_debug, USART_ASYNC_TXC_CB, tx_cb_UART_debug); + usart_async_register_callback(&UART_debug, USART_ASYNC_RXC_CB, rx_cb_UART_debug); + usart_async_enable(&UART_debug); + cdcd_acm_example(); } -- To view, visit https://gerrit.osmocom.org/12805 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib230be6003f28931ab4c60228796ec0af6c783d9 Gerrit-Change-Number: 12805 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:47:42 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:47:42 +0000 Subject: Change in osmo-ccid-firmware[master]: fix DPLL input clock division Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12806 Change subject: fix DPLL input clock division ...................................................................... fix DPLL input clock division Change-Id: I3df1356d36b54d0cc34fd827265b1e4b9d55509f --- M sysmoOCTSIM/config/hpl_oscctrl_config.h 1 file changed, 12 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/06/12806/1 diff --git a/sysmoOCTSIM/config/hpl_oscctrl_config.h b/sysmoOCTSIM/config/hpl_oscctrl_config.h index 0676cb5..17bcfc2 100644 --- a/sysmoOCTSIM/config/hpl_oscctrl_config.h +++ b/sysmoOCTSIM/config/hpl_oscctrl_config.h @@ -404,6 +404,7 @@ // Select the clock source. // fdpll0_ref_clock #ifndef CONF_FDPLL0_GCLK +// directly use XOSC1 as clock input (no need to use an additional GCLK) #define CONF_FDPLL0_GCLK GCLK_GENCTRL_SRC_XOSC1 #endif @@ -438,13 +439,15 @@ // Loop Divider Ratio Integer Part <0x0-0x1FFF> // fdpll0_ldr #ifndef CONF_FDPLL0_LDR -#define CONF_FDPLL0_LDR 0x3b +// 2 MHz input clock * ( <59> + 1 = 60 ) = 120 MHz output clock +#define CONF_FDPLL0_LDR 59 #endif // Clock Divider <0x0-0x7FF> // fdpll0_clock_div #ifndef CONF_FDPLL0_DIV -#define CONF_FDPLL0_DIV 0x6 +// XOSC1 = 12 MHz, divide by 2 * ( <2> + 1 ) = 6 to have a 2 MHz clock input (maximum is 3.4 MHz) +#define CONF_FDPLL0_DIV 2 #endif // DCO Filter Enable @@ -485,6 +488,7 @@ // <0x3=>XOSC1 clock reference // fdpll0_arch_refclk #ifndef CONF_FDPLL0_REFCLK +// XOSC1 is used as input signal, thus also use it as reference #define CONF_FDPLL0_REFCLK 0x3 #endif @@ -529,6 +533,7 @@ // Select the clock source. // fdpll1_ref_clock #ifndef CONF_FDPLL1_GCLK +// directly use XOSC1 as clock input (no need to use an additional GCLK) #define CONF_FDPLL1_GCLK GCLK_GENCTRL_SRC_XOSC1 #endif @@ -563,13 +568,15 @@ // Loop Divider Ratio Integer Part <0x0-0x1FFF> // fdpll1_ldr #ifndef CONF_FDPLL1_LDR -#define CONF_FDPLL1_LDR 0x31 +// 2 MHz input clock * ( <49> + 1 = 50 ) = 100 MHz output clock +#define CONF_FDPLL1_LDR 49 #endif // Clock Divider <0x0-0x7FF> // fdpll1_clock_div #ifndef CONF_FDPLL1_DIV -#define CONF_FDPLL1_DIV 0x6 +// XOSC1 = 12 MHz, divide by 2 * ( <2> + 1 ) = 6 to have a 2 MHz clock input (maximum is 3.4 MHz) +#define CONF_FDPLL1_DIV 2 #endif // DCO Filter Enable @@ -610,6 +617,7 @@ // <0x3=>XOSC1 clock reference // fdpll1_arch_refclk #ifndef CONF_FDPLL1_REFCLK +// XOSC1 is used as input signal, thus also use it as reference #define CONF_FDPLL1_REFCLK 0x3 #endif -- To view, visit https://gerrit.osmocom.org/12806 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I3df1356d36b54d0cc34fd827265b1e4b9d55509f Gerrit-Change-Number: 12806 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:47:42 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:47:42 +0000 Subject: Change in osmo-ccid-firmware[master]: echo back UART input Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12807 Change subject: echo back UART input ...................................................................... echo back UART input let main run the main loop instead of the CDC ACM example. also rename the CDC ACM example functions. Change-Id: I44b15079672b4058de1fa08365541317d54958dc --- M sysmoOCTSIM/main.c M sysmoOCTSIM/usb_start.c M sysmoOCTSIM/usb_start.h 3 files changed, 17 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/07/12807/1 diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c index de954f4..dfe3b03 100644 --- a/sysmoOCTSIM/main.c +++ b/sysmoOCTSIM/main.c @@ -19,19 +19,19 @@ #include "atmel_start.h" #include "atmel_start_pins.h" -volatile static uint32_t data_arrived = 0; +volatile static bool data_arrived = false; static void tx_cb_UART_debug(const struct usart_async_descriptor *const io_descr) { /* Transfer completed */ - gpio_toggle_pin_level(LED_system); + //gpio_toggle_pin_level(LED_system); } static void rx_cb_UART_debug(const struct usart_async_descriptor *const io_descr) { /* Receive completed */ gpio_toggle_pin_level(LED_system); - data_arrived = 1; + data_arrived = true; } int main(void) @@ -42,5 +42,15 @@ usart_async_register_callback(&UART_debug, USART_ASYNC_RXC_CB, rx_cb_UART_debug); usart_async_enable(&UART_debug); - cdcd_acm_example(); + usb_start(); + + while (true) { // main loop + if (data_arrived) { // input on UART debug + data_arrived = false; // clear flag + uint8_t recv_char; // to store the input + while (io_read(&UART_debug.io, &recv_char, 1) == 1) { // read input + while (io_write(&UART_debug.io, &recv_char, 1) != 1); // echo back to output + } + } + } } diff --git a/sysmoOCTSIM/usb_start.c b/sysmoOCTSIM/usb_start.c index de86172..d02edc0 100644 --- a/sysmoOCTSIM/usb_start.c +++ b/sysmoOCTSIM/usb_start.c @@ -93,25 +93,15 @@ } /** - * Example of using CDC ACM Function. - * \note - * In this example, we will use a PC as a USB host: - * - Connect the DEBUG USB on XPLAINED board to PC for program download. - * - Connect the TARGET USB on XPLAINED board to PC for running program. - * The application will behave as a virtual COM. - * - Open a HyperTerminal or other COM tools in PC side. - * - Send out a character or string and it will echo the content received. + * \brief Start USB stack */ -void cdcd_acm_example(void) +void usb_start(void) { while (!cdcdf_acm_is_enabled()) { // wait cdc acm to be installed }; cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c); - - while (1) { - } } void usb_init(void) diff --git a/sysmoOCTSIM/usb_start.h b/sysmoOCTSIM/usb_start.h index 48b2735..daf30cc 100644 --- a/sysmoOCTSIM/usb_start.h +++ b/sysmoOCTSIM/usb_start.h @@ -15,7 +15,7 @@ #include "cdcdf_acm.h" #include "cdcdf_acm_desc.h" -void cdcd_acm_example(void); +void usb_start(void); void cdc_device_acm_init(void); /** -- To view, visit https://gerrit.osmocom.org/12807 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I44b15079672b4058de1fa08365541317d54958dc Gerrit-Change-Number: 12807 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:47:42 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:47:42 +0000 Subject: Change in osmo-ccid-firmware[master]: switch from dev board to prototype Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12808 Change subject: switch from dev board to prototype ...................................................................... switch from dev board to prototype the SAM E54 Xplained Pro development board uses a SAM E54P20N micro-controller. the sysmocom sysmoOCTSIM prototype uses a SAM E54N19A micro-controller. the system LED and UART debug GPIO are different, else the code is the same. the Atmel START definitions have been updated accordingly. Change-Id: Ifd15f6759c51b42a8d11b09f9f495d7e7a5b6afc --- M sysmoOCTSIM/AtmelStart.env_conf M sysmoOCTSIM/AtmelStart.gpdsc M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/atmel_start_pins.h M sysmoOCTSIM/config/hpl_gclk_config.h M sysmoOCTSIM/config/hpl_port_config.h M sysmoOCTSIM/config/hpl_sercom_config.h M sysmoOCTSIM/config/hpl_usb_config.h M sysmoOCTSIM/config/peripheral_clk_config.h M sysmoOCTSIM/driver_init.c M sysmoOCTSIM/gcc/Makefile A sysmoOCTSIM/gcc/gcc/same54n19a_flash.ld A sysmoOCTSIM/gcc/gcc/same54n19a_sram.ld M sysmoOCTSIM/hpl/port/hpl_gpio_base.h M sysmoOCTSIM/hpl/sercom/hpl_sercom.c M sysmoOCTSIM/hpl/usb/hpl_usb.c 16 files changed, 544 insertions(+), 355 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/08/12808/1 diff --git a/sysmoOCTSIM/AtmelStart.env_conf b/sysmoOCTSIM/AtmelStart.env_conf index dfb4608..cad5b65 100644 --- a/sysmoOCTSIM/AtmelStart.env_conf +++ b/sysmoOCTSIM/AtmelStart.env_conf @@ -1,6 +1,6 @@ - + diff --git a/sysmoOCTSIM/AtmelStart.gpdsc b/sysmoOCTSIM/AtmelStart.gpdsc index ebb4d1e..51851db 100644 --- a/sysmoOCTSIM/AtmelStart.gpdsc +++ b/sysmoOCTSIM/AtmelStart.gpdsc @@ -12,7 +12,7 @@ Atmel Start - http://start.atmel.com/ @@ -27,13 +27,13 @@ - + - + @@ -160,8 +160,7 @@ - - + diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index 7492bf6..09c0b2d 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -9,12 +9,10 @@ format: '2' frontend: 1.4.1810 board: - identifier: SAME54XplainedPro - device: SAME54P20A-AU + identifier: CustomBoard + device: SAME54N19A-AF details: null -application: - definition: 'Atmel:Application_Examples:0.0.1::Application:USB_CDC_Echo:' - configuration: {} +application: null middlewares: USB_CHAPTER_9: user_label: USB_CHAPTER_9 @@ -31,8 +29,8 @@ api: USB:Protocol:CDC dependencies: USB Chapter 9: USB_CHAPTER_9 - USB_DEVICE_CORE: - user_label: USB_DEVICE_CORE + USB_DEVICE_STACK_CORE_INSTANCE: + user_label: USB_DEVICE_STACK_CORE_INSTANCE configuration: usbd_hs_sp: false definition: Atmel:USB:0.0.1::USB_Device_Core @@ -82,12 +80,12 @@ functionality: USB_Device_CDC_ACM api: USB:Device:CDC_ACM dependencies: - USB Device Stack Core Instance: USB_DEVICE_CORE + USB Device Stack Core Instance: USB_DEVICE_STACK_CORE_INSTANCE USB Class CDC: USB_CLASS_CDC drivers: CMCC: user_label: CMCC - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::CMCC::driver_config_definition::CMCC::HAL:HPL:CMCC + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::CMCC::driver_config_definition::CMCC::HAL:HPL:CMCC functionality: System api: HAL:HPL:CMCC configuration: @@ -103,7 +101,7 @@ domain_group: null DMAC: user_label: DMAC - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::DMAC::driver_config_definition::DMAC::HAL:HPL:DMAC + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::DMAC::driver_config_definition::DMAC::HAL:HPL:DMAC functionality: System api: HAL:HPL:DMAC configuration: @@ -639,7 +637,7 @@ domain_group: null GCLK: user_label: GCLK - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::GCLK::driver_config_definition::GCLK::HAL:HPL:GCLK + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::GCLK::driver_config_definition::GCLK::HAL:HPL:GCLK functionality: System api: HAL:HPL:GCLK configuration: @@ -720,7 +718,7 @@ gclk_gen_0_oscillator: Digital Phase Locked Loop (DPLL0) gclk_gen_10_div: 1 gclk_gen_10_div_sel: false - gclk_gen_10_oscillator: External Crystal Oscillator 8-48MHz (XOSC0) + gclk_gen_10_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) gclk_gen_11_div: 6 gclk_gen_11_div_sel: false gclk_gen_11_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) @@ -735,29 +733,29 @@ gclk_gen_3_oscillator: 32kHz External Crystal Oscillator (XOSC32K) gclk_gen_4_div: 1 gclk_gen_4_div_sel: false - gclk_gen_4_oscillator: External Crystal Oscillator 8-48MHz (XOSC0) + gclk_gen_4_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) gclk_gen_5_div: 1 gclk_gen_5_div_sel: false - gclk_gen_5_oscillator: External Crystal Oscillator 8-48MHz (XOSC0) + gclk_gen_5_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) gclk_gen_6_div: 1 gclk_gen_6_div_sel: false - gclk_gen_6_oscillator: External Crystal Oscillator 8-48MHz (XOSC0) + gclk_gen_6_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) gclk_gen_7_div: 1 gclk_gen_7_div_sel: false - gclk_gen_7_oscillator: External Crystal Oscillator 8-48MHz (XOSC0) + gclk_gen_7_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) gclk_gen_8_div: 1 gclk_gen_8_div_sel: false - gclk_gen_8_oscillator: External Crystal Oscillator 8-48MHz (XOSC0) + gclk_gen_8_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) gclk_gen_9_div: 1 gclk_gen_9_div_sel: false - gclk_gen_9_oscillator: External Crystal Oscillator 8-48MHz (XOSC0) + gclk_gen_9_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) optional_signals: [] variant: null clocks: domain_group: null MCLK: user_label: MCLK - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::MCLK::driver_config_definition::MCLK::HAL:HPL:MCLK + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::MCLK::driver_config_definition::MCLK::HAL:HPL:MCLK functionality: System api: HAL:HPL:MCLK configuration: @@ -778,7 +776,7 @@ configuration: {} OSC32KCTRL: user_label: OSC32KCTRL - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::OSC32KCTRL::driver_config_definition::OSC32KCTRL::HAL:HPL:OSC32KCTRL + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::OSC32KCTRL::driver_config_definition::OSC32KCTRL::HAL:HPL:OSC32KCTRL functionality: System api: HAL:HPL:OSC32KCTRL configuration: @@ -806,7 +804,7 @@ domain_group: null OSCCTRL: user_label: OSCCTRL - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::OSCCTRL::driver_config_definition::OSCCTRL::HAL:HPL:OSCCTRL + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::OSCCTRL::driver_config_definition::OSCCTRL::HAL:HPL:OSCCTRL functionality: System api: HAL:HPL:OSCCTRL configuration: @@ -843,7 +841,7 @@ fdpll0_arch_runstdby: false fdpll0_arch_wuf: false fdpll0_clock_dcofilter: 0 - fdpll0_clock_div: 6 + fdpll0_clock_div: 2 fdpll0_ldr: 59 fdpll0_ldrfrac: 0 fdpll0_ref_clock: Generic clock generator 11 @@ -857,7 +855,7 @@ fdpll1_arch_runstdby: false fdpll1_arch_wuf: false fdpll1_clock_dcofilter: 0 - fdpll1_clock_div: 6 + fdpll1_clock_div: 2 fdpll1_ldr: 49 fdpll1_ldrfrac: 0 fdpll1_ref_clock: Generic clock generator 11 @@ -887,7 +885,7 @@ domain_group: null PORT: user_label: PORT - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::PORT::driver_config_definition::PORT::HAL:HPL:PORT + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::PORT::driver_config_definition::PORT::HAL:HPL:PORT functionality: System api: HAL:HPL:PORT configuration: @@ -931,25 +929,13 @@ portc_input_event_enable_1: false portc_input_event_enable_2: false portc_input_event_enable_3: false - portd_event_action_0: Output register of pin will be set to level of event - portd_event_action_1: Output register of pin will be set to level of event - portd_event_action_2: Output register of pin will be set to level of event - portd_event_action_3: Output register of pin will be set to level of event - portd_event_pin_identifier_0: 0 - portd_event_pin_identifier_1: 0 - portd_event_pin_identifier_2: 0 - portd_event_pin_identifier_3: 0 - portd_input_event_enable_0: false - portd_input_event_enable_1: false - portd_input_event_enable_2: false - portd_input_event_enable_3: false optional_signals: [] variant: null clocks: domain_group: null RAMECC: user_label: RAMECC - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::RAMECC::driver_config_definition::RAMECC::HAL:HPL:RAMECC + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::RAMECC::driver_config_definition::RAMECC::HAL:HPL:RAMECC functionality: System api: HAL:HPL:RAMECC configuration: {} @@ -959,7 +945,7 @@ domain_group: null UART_debug: user_label: UART_debug - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::SERCOM2::driver_config_definition::UART::HAL:Driver:USART.Async + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM7::driver_config_definition::UART::HAL:Driver:USART.Async functionality: USART api: HAL:Driver:USART_Async configuration: @@ -986,11 +972,11 @@ variant: specification: TXPO=0, RXPO=1, CMODE=0 required_signals: - - name: SERCOM2/PAD/0 - pad: PB25 + - name: SERCOM7/PAD/0 + pad: PB30 label: TX - - name: SERCOM2/PAD/1 - pad: PB24 + - name: SERCOM7/PAD/1 + pad: PB31 label: RX clocks: domain_group: @@ -1004,7 +990,7 @@ slow_gclk_selection: Generic clock generator 3 USB_DEVICE_INSTANCE: user_label: USB_DEVICE_INSTANCE - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::USB::driver_config_definition::USB.Device::HAL:Driver:USB.Device + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::USB::driver_config_definition::USB.Device::HAL:Driver:USB.Device functionality: USB api: HAL:Driver:USB_Device configuration: @@ -1025,7 +1011,7 @@ usb_ep7_I_CACHE: No cache usbd_arch_max_ep_n: 2 (EP 0x82 or 0x02) usbd_arch_speed: Full speed - usbd_num_ep_sp: Max possible (by "Max Endpoint Number" config) + usbd_num_ep_sp: 4 (EP0 + 3 endpoints) optional_signals: [] variant: specification: default @@ -1044,35 +1030,34 @@ configuration: usb_gclk_selection: Generic clock generator 1 pads: + USBUP_D_N: + name: PA24 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA24 + mode: Advanced + user_label: USBUP_D_N + configuration: null + USBUP_D_P: + name: PA25 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA25 + mode: Advanced + user_label: USBUP_D_P + configuration: null LED_system: - name: PC18 - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::pad::PC18 + name: PC26 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC26 mode: Digital output user_label: LED_system - configuration: - pad_initial_level: High - PA24: - name: PA24 - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::pad::PA24 - mode: Advanced - user_label: PA24 - configuration: {} - PA25: - name: PA25 - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::pad::PA25 - mode: Advanced - user_label: PA25 - configuration: {} - PB24: - name: PB24 - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::pad::PB24 - mode: Peripheral IO - user_label: PB24 configuration: null - PB25: - name: PB25 - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::pad::PB25 + UART_TX: + name: PB30 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB30 mode: Peripheral IO - user_label: PB25 + user_label: UART_TX + configuration: null + UART_RX: + name: PB31 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB31 + mode: Peripheral IO + user_label: UART_RX configuration: null toolchain_options: [] diff --git a/sysmoOCTSIM/atmel_start_pins.h b/sysmoOCTSIM/atmel_start_pins.h index 7c774ed..884a562 100644 --- a/sysmoOCTSIM/atmel_start_pins.h +++ b/sysmoOCTSIM/atmel_start_pins.h @@ -27,10 +27,10 @@ #define GPIO_PIN_FUNCTION_M 12 #define GPIO_PIN_FUNCTION_N 13 -#define PA24 GPIO(GPIO_PORTA, 24) -#define PA25 GPIO(GPIO_PORTA, 25) -#define PB24 GPIO(GPIO_PORTB, 24) -#define PB25 GPIO(GPIO_PORTB, 25) -#define LED_system GPIO(GPIO_PORTC, 18) +#define USBUP_D_N GPIO(GPIO_PORTA, 24) +#define USBUP_D_P GPIO(GPIO_PORTA, 25) +#define UART_TX GPIO(GPIO_PORTB, 30) +#define UART_RX GPIO(GPIO_PORTB, 31) +#define LED_system GPIO(GPIO_PORTC, 26) #endif // ATMEL_START_PINS_H_INCLUDED diff --git a/sysmoOCTSIM/config/hpl_gclk_config.h b/sysmoOCTSIM/config/hpl_gclk_config.h index 12c1539..d16af6f 100644 --- a/sysmoOCTSIM/config/hpl_gclk_config.h +++ b/sysmoOCTSIM/config/hpl_gclk_config.h @@ -328,7 +328,7 @@ // This defines the clock source for generic clock generator 4 // gclk_gen_4_oscillator #ifndef CONF_GCLK_GEN_4_SOURCE -#define CONF_GCLK_GEN_4_SOURCE GCLK_GENCTRL_SRC_XOSC0 +#define CONF_GCLK_GEN_4_SOURCE GCLK_GENCTRL_SRC_XOSC1 #endif // Run in Standby @@ -404,7 +404,7 @@ // This defines the clock source for generic clock generator 5 // gclk_gen_5_oscillator #ifndef CONF_GCLK_GEN_5_SOURCE -#define CONF_GCLK_GEN_5_SOURCE GCLK_GENCTRL_SRC_XOSC0 +#define CONF_GCLK_GEN_5_SOURCE GCLK_GENCTRL_SRC_XOSC1 #endif // Run in Standby @@ -480,7 +480,7 @@ // This defines the clock source for generic clock generator 6 // gclk_gen_6_oscillator #ifndef CONF_GCLK_GEN_6_SOURCE -#define CONF_GCLK_GEN_6_SOURCE GCLK_GENCTRL_SRC_XOSC0 +#define CONF_GCLK_GEN_6_SOURCE GCLK_GENCTRL_SRC_XOSC1 #endif // Run in Standby @@ -556,7 +556,7 @@ // This defines the clock source for generic clock generator 7 // gclk_gen_7_oscillator #ifndef CONF_GCLK_GEN_7_SOURCE -#define CONF_GCLK_GEN_7_SOURCE GCLK_GENCTRL_SRC_XOSC0 +#define CONF_GCLK_GEN_7_SOURCE GCLK_GENCTRL_SRC_XOSC1 #endif // Run in Standby @@ -632,7 +632,7 @@ // This defines the clock source for generic clock generator 8 // gclk_gen_8_oscillator #ifndef CONF_GCLK_GEN_8_SOURCE -#define CONF_GCLK_GEN_8_SOURCE GCLK_GENCTRL_SRC_XOSC0 +#define CONF_GCLK_GEN_8_SOURCE GCLK_GENCTRL_SRC_XOSC1 #endif // Run in Standby @@ -708,7 +708,7 @@ // This defines the clock source for generic clock generator 9 // gclk_gen_9_oscillator #ifndef CONF_GCLK_GEN_9_SOURCE -#define CONF_GCLK_GEN_9_SOURCE GCLK_GENCTRL_SRC_XOSC0 +#define CONF_GCLK_GEN_9_SOURCE GCLK_GENCTRL_SRC_XOSC1 #endif // Run in Standby @@ -784,7 +784,7 @@ // This defines the clock source for generic clock generator 10 // gclk_gen_10_oscillator #ifndef CONF_GCLK_GEN_10_SOURCE -#define CONF_GCLK_GEN_10_SOURCE GCLK_GENCTRL_SRC_XOSC0 +#define CONF_GCLK_GEN_10_SOURCE GCLK_GENCTRL_SRC_XOSC1 #endif // Run in Standby diff --git a/sysmoOCTSIM/config/hpl_port_config.h b/sysmoOCTSIM/config/hpl_port_config.h index b5315f0..a7bd379 100644 --- a/sysmoOCTSIM/config/hpl_port_config.h +++ b/sysmoOCTSIM/config/hpl_port_config.h @@ -94,34 +94,6 @@ #endif // -// PORT Input Event 0 configuration on PORT D - -// PORTD Input Event 0 Enable -// The event action will be triggered on any incoming event if PORT D Input Event 0 configuration is enabled -// portd_input_event_enable_0 -#ifndef CONF_PORTD_EVCTRL_PORTEI_0 -#define CONF_PORTD_EVCTRL_PORTEI_0 0x0 -#endif - -// PORTD Event 0 Pin Identifier <0x00-0x1F> -// These bits define the I/O pin from port D on which the event action will be performed -// portd_event_pin_identifier_0 -#ifndef CONF_PORTD_EVCTRL_PID_0 -#define CONF_PORTD_EVCTRL_PID_0 0x0 -#endif - -// PORTD Event 0 Action -// <0=> Output register of pin will be set to level of event -// <1=> Set output register of pin on event -// <2=> Clear output register of pin on event -// <3=> Toggle output register of pin on event -// These bits define the event action the PORT D will perform on event input 0 -// portd_event_action_0 -#ifndef CONF_PORTD_EVCTRL_EVACT_0 -#define CONF_PORTD_EVCTRL_EVACT_0 0 -#endif - -// // @@ -215,34 +187,6 @@ #endif // -// PORT Input Event 1 configuration on PORT D - -// PORTD Input Event 1 Enable -// The event action will be triggered on any incoming event if PORT D Input Event 1 configuration is enabled -// portd_input_event_enable_1 -#ifndef CONF_PORTD_EVCTRL_PORTEI_1 -#define CONF_PORTD_EVCTRL_PORTEI_1 0x0 -#endif - -// PORTD Event 1 Pin Identifier <0x00-0x1F> -// These bits define the I/O pin from port D on which the event action will be performed -// portd_event_pin_identifier_1 -#ifndef CONF_PORTD_EVCTRL_PID_1 -#define CONF_PORTD_EVCTRL_PID_1 0x0 -#endif - -// PORTD Event 1 Action -// <0=> Output register of pin will be set to level of event -// <1=> Set output register of pin on event -// <2=> Clear output register of pin on event -// <3=> Toggle output register of pin on event -// These bits define the event action the PORT D will perform on event input 1 -// portd_event_action_1 -#ifndef CONF_PORTD_EVCTRL_EVACT_1 -#define CONF_PORTD_EVCTRL_EVACT_1 0 -#endif - -// // @@ -336,34 +280,6 @@ #endif // -// PORT Input Event 2 configuration on PORT D - -// PORTD Input Event 2 Enable -// The event action will be triggered on any incoming event if PORT D Input Event 2 configuration is enabled -// portd_input_event_enable_2 -#ifndef CONF_PORTD_EVCTRL_PORTEI_2 -#define CONF_PORTD_EVCTRL_PORTEI_2 0x0 -#endif - -// PORTD Event 2 Pin Identifier <0x00-0x1F> -// These bits define the I/O pin from port D on which the event action will be performed -// portd_event_pin_identifier_2 -#ifndef CONF_PORTD_EVCTRL_PID_2 -#define CONF_PORTD_EVCTRL_PID_2 0x0 -#endif - -// PORTD Event 2 Action -// <0=> Output register of pin will be set to level of event -// <1=> Set output register of pin on event -// <2=> Clear output register of pin on event -// <3=> Toggle output register of pin on event -// These bits define the event action the PORT D will perform on event input 2 -// portd_event_action_2 -#ifndef CONF_PORTD_EVCTRL_EVACT_2 -#define CONF_PORTD_EVCTRL_EVACT_2 0 -#endif - -// // @@ -457,34 +373,6 @@ #endif // -// PORT Input Event 3 configuration on PORT D - -// PORTD Input Event 3 Enable -// The event action will be triggered on any incoming event if PORT D Input Event 3 configuration is enabled -// portd_input_event_enable_3 -#ifndef CONF_PORTD_EVCTRL_PORTEI_3 -#define CONF_PORTD_EVCTRL_PORTEI_3 0x0 -#endif - -// PORTD Event 3 Pin Identifier <0x00-0x1F> -// These bits define the I/O pin from port D on which the event action will be performed -// portd_event_pin_identifier_3 -#ifndef CONF_PORTD_EVCTRL_PID_3 -#define CONF_PORTD_EVCTRL_PID_3 0x0 -#endif - -// PORTD Event 3 Action -// <0=> Output register of pin will be set to level of event -// <1=> Set output register of pin on event -// <2=> Clear output register of pin on event -// <3=> Toggle output register of pin on event -// These bits define the event action the PORT D will perform on event input 3 -// portd_event_action_3 -#ifndef CONF_PORTD_EVCTRL_EVACT_3 -#define CONF_PORTD_EVCTRL_EVACT_3 0 -#endif - -// // @@ -509,13 +397,6 @@ | PORT_EVCTRL_EVACT2(CONF_PORTC_EVCTRL_EVACT_2) | CONF_PORTC_EVCTRL_PORTEI_2 << PORT_EVCTRL_PORTEI2_Pos \ | PORT_EVCTRL_PID2(CONF_PORTC_EVCTRL_PID_2) | PORT_EVCTRL_EVACT3(CONF_PORTC_EVCTRL_EVACT_3) \ | CONF_PORTC_EVCTRL_PORTEI_3 << PORT_EVCTRL_PORTEI3_Pos | PORT_EVCTRL_PID3(CONF_PORTC_EVCTRL_PID_3)) -#define CONF_PORTD_EVCTRL \ - (0 | PORT_EVCTRL_EVACT0(CONF_PORTD_EVCTRL_EVACT_0) | CONF_PORTD_EVCTRL_PORTEI_0 << PORT_EVCTRL_PORTEI0_Pos \ - | PORT_EVCTRL_PID0(CONF_PORTD_EVCTRL_PID_0) | PORT_EVCTRL_EVACT1(CONF_PORTD_EVCTRL_EVACT_1) \ - | CONF_PORTD_EVCTRL_PORTEI_1 << PORT_EVCTRL_PORTEI1_Pos | PORT_EVCTRL_PID1(CONF_PORTD_EVCTRL_PID_1) \ - | PORT_EVCTRL_EVACT2(CONF_PORTD_EVCTRL_EVACT_2) | CONF_PORTD_EVCTRL_PORTEI_2 << PORT_EVCTRL_PORTEI2_Pos \ - | PORT_EVCTRL_PID2(CONF_PORTD_EVCTRL_PID_2) | PORT_EVCTRL_EVACT3(CONF_PORTD_EVCTRL_EVACT_3) \ - | CONF_PORTD_EVCTRL_PORTEI_3 << PORT_EVCTRL_PORTEI3_Pos | PORT_EVCTRL_PID3(CONF_PORTD_EVCTRL_PID_3)) // <<< end of configuration section >>> diff --git a/sysmoOCTSIM/config/hpl_sercom_config.h b/sysmoOCTSIM/config/hpl_sercom_config.h index e154ce2..2a8c023 100644 --- a/sysmoOCTSIM/config/hpl_sercom_config.h +++ b/sysmoOCTSIM/config/hpl_sercom_config.h @@ -6,8 +6,8 @@ #include -#ifndef CONF_SERCOM_2_USART_ENABLE -#define CONF_SERCOM_2_USART_ENABLE 1 +#ifndef CONF_SERCOM_7_USART_ENABLE +#define CONF_SERCOM_7_USART_ENABLE 1 #endif // Basic Configuration @@ -15,15 +15,15 @@ // Receive buffer enable // Enable input buffer in SERCOM module // usart_rx_enable -#ifndef CONF_SERCOM_2_USART_RXEN -#define CONF_SERCOM_2_USART_RXEN 1 +#ifndef CONF_SERCOM_7_USART_RXEN +#define CONF_SERCOM_7_USART_RXEN 1 #endif // Transmitt buffer enable // Enable output buffer in SERCOM module // usart_tx_enable -#ifndef CONF_SERCOM_2_USART_TXEN -#define CONF_SERCOM_2_USART_TXEN 1 +#ifndef CONF_SERCOM_7_USART_TXEN +#define CONF_SERCOM_7_USART_TXEN 1 #endif // Frame parity @@ -32,8 +32,8 @@ // <0x2=>Odd parity // Parity bit mode for USART frame // usart_parity -#ifndef CONF_SERCOM_2_USART_PARITY -#define CONF_SERCOM_2_USART_PARITY 0x0 +#ifndef CONF_SERCOM_7_USART_PARITY +#define CONF_SERCOM_7_USART_PARITY 0x0 #endif // Character Size @@ -44,8 +44,8 @@ // <0x7=>7 bits // Data character size in USART frame // usart_character_size -#ifndef CONF_SERCOM_2_USART_CHSIZE -#define CONF_SERCOM_2_USART_CHSIZE 0x0 +#ifndef CONF_SERCOM_7_USART_CHSIZE +#define CONF_SERCOM_7_USART_CHSIZE 0x0 #endif // Stop Bit @@ -53,51 +53,51 @@ // <1=>Two stop bits // Number of stop bits in USART frame // usart_stop_bit -#ifndef CONF_SERCOM_2_USART_SBMODE -#define CONF_SERCOM_2_USART_SBMODE 0 +#ifndef CONF_SERCOM_7_USART_SBMODE +#define CONF_SERCOM_7_USART_SBMODE 0 #endif // Baud rate <1-6250000> // USART baud rate setting // usart_baud_rate -#ifndef CONF_SERCOM_2_USART_BAUD -#define CONF_SERCOM_2_USART_BAUD 921600 +#ifndef CONF_SERCOM_7_USART_BAUD +#define CONF_SERCOM_7_USART_BAUD 921600 #endif // // Advanced configuration // usart_advanced -#ifndef CONF_SERCOM_2_USART_ADVANCED_CONFIG -#define CONF_SERCOM_2_USART_ADVANCED_CONFIG 0 +#ifndef CONF_SERCOM_7_USART_ADVANCED_CONFIG +#define CONF_SERCOM_7_USART_ADVANCED_CONFIG 0 #endif // Run in stand-by // Keep the module running in standby sleep mode // usart_arch_runstdby -#ifndef CONF_SERCOM_2_USART_RUNSTDBY -#define CONF_SERCOM_2_USART_RUNSTDBY 0 +#ifndef CONF_SERCOM_7_USART_RUNSTDBY +#define CONF_SERCOM_7_USART_RUNSTDBY 0 #endif // Immediate Buffer Overflow Notification // Controls when the BUFOVF status bit is asserted // usart_arch_ibon -#ifndef CONF_SERCOM_2_USART_IBON -#define CONF_SERCOM_2_USART_IBON 0 +#ifndef CONF_SERCOM_7_USART_IBON +#define CONF_SERCOM_7_USART_IBON 0 #endif // Start of Frame Detection Enable // Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled) // usart_arch_sfde -#ifndef CONF_SERCOM_2_USART_SFDE -#define CONF_SERCOM_2_USART_SFDE 0 +#ifndef CONF_SERCOM_7_USART_SFDE +#define CONF_SERCOM_7_USART_SFDE 0 #endif // Collision Detection Enable // Collision detection enable // usart_arch_cloden -#ifndef CONF_SERCOM_2_USART_CLODEN -#define CONF_SERCOM_2_USART_CLODEN 0 +#ifndef CONF_SERCOM_7_USART_CLODEN +#define CONF_SERCOM_7_USART_CLODEN 0 #endif // Operating Mode @@ -105,8 +105,8 @@ // <0x1=>USART with internal clock // Drive the shift register by an internal clock generated by the baud rate generator or an external clock supplied on the XCK pin. // usart_arch_clock_mode -#ifndef CONF_SERCOM_2_USART_MODE -#define CONF_SERCOM_2_USART_MODE 0x1 +#ifndef CONF_SERCOM_7_USART_MODE +#define CONF_SERCOM_7_USART_MODE 0x1 #endif // Sample Rate @@ -117,8 +117,8 @@ // <0x4=>3x arithmetic // How many over-sampling bits used when sampling data state // usart_arch_sampr -#ifndef CONF_SERCOM_2_USART_SAMPR -#define CONF_SERCOM_2_USART_SAMPR 0x0 +#ifndef CONF_SERCOM_7_USART_SAMPR +#define CONF_SERCOM_7_USART_SAMPR 0x0 #endif // Sample Adjustment @@ -128,15 +128,15 @@ // <0x3=>13-14-15 (6-7-8 8-bit over-sampling) // Adjust which samples to use for data sampling in asynchronous mode // usart_arch_sampa -#ifndef CONF_SERCOM_2_USART_SAMPA -#define CONF_SERCOM_2_USART_SAMPA 0x0 +#ifndef CONF_SERCOM_7_USART_SAMPA +#define CONF_SERCOM_7_USART_SAMPA 0x0 #endif // Fractional Part <0-7> // Fractional part of the baud rate if baud rate generator is in fractional mode // usart_arch_fractional -#ifndef CONF_SERCOM_2_USART_FRACTIONAL -#define CONF_SERCOM_2_USART_FRACTIONAL 0x0 +#ifndef CONF_SERCOM_7_USART_FRACTIONAL +#define CONF_SERCOM_7_USART_FRACTIONAL 0x0 #endif // Data Order @@ -144,19 +144,19 @@ // <1=>LSB is transmitted first // Data order of the data bits in the frame // usart_arch_dord -#ifndef CONF_SERCOM_2_USART_DORD -#define CONF_SERCOM_2_USART_DORD 1 +#ifndef CONF_SERCOM_7_USART_DORD +#define CONF_SERCOM_7_USART_DORD 1 #endif // Does not do anything in UART mode -#define CONF_SERCOM_2_USART_CPOL 0 +#define CONF_SERCOM_7_USART_CPOL 0 // Encoding Format // <0=>No encoding // <1=>IrDA encoded // usart_arch_enc -#ifndef CONF_SERCOM_2_USART_ENC -#define CONF_SERCOM_2_USART_ENC 0 +#ifndef CONF_SERCOM_7_USART_ENC +#define CONF_SERCOM_7_USART_ENC 0 #endif // LIN Slave Enable @@ -165,8 +165,8 @@ // <0=>Disable // <1=>Enable // usart_arch_lin_slave_enable -#ifndef CONF_SERCOM_2_USART_LIN_SLAVE_ENABLE -#define CONF_SERCOM_2_USART_LIN_SLAVE_ENABLE 0 +#ifndef CONF_SERCOM_7_USART_LIN_SLAVE_ENABLE +#define CONF_SERCOM_7_USART_LIN_SLAVE_ENABLE 0 #endif // Debug Stop Mode @@ -174,102 +174,102 @@ // <0=>Keep running // <1=>Halt // usart_arch_dbgstop -#ifndef CONF_SERCOM_2_USART_DEBUG_STOP_MODE -#define CONF_SERCOM_2_USART_DEBUG_STOP_MODE 0 +#ifndef CONF_SERCOM_7_USART_DEBUG_STOP_MODE +#define CONF_SERCOM_7_USART_DEBUG_STOP_MODE 0 #endif // -#ifndef CONF_SERCOM_2_USART_INACK -#define CONF_SERCOM_2_USART_INACK 0x0 +#ifndef CONF_SERCOM_7_USART_INACK +#define CONF_SERCOM_7_USART_INACK 0x0 #endif -#ifndef CONF_SERCOM_2_USART_DSNACK -#define CONF_SERCOM_2_USART_DSNACK 0x0 +#ifndef CONF_SERCOM_7_USART_DSNACK +#define CONF_SERCOM_7_USART_DSNACK 0x0 #endif -#ifndef CONF_SERCOM_2_USART_MAXITER -#define CONF_SERCOM_2_USART_MAXITER 0x7 +#ifndef CONF_SERCOM_7_USART_MAXITER +#define CONF_SERCOM_7_USART_MAXITER 0x7 #endif -#ifndef CONF_SERCOM_2_USART_GTIME -#define CONF_SERCOM_2_USART_GTIME 0x2 +#ifndef CONF_SERCOM_7_USART_GTIME +#define CONF_SERCOM_7_USART_GTIME 0x2 #endif -#define CONF_SERCOM_2_USART_RXINV 0x0 -#define CONF_SERCOM_2_USART_TXINV 0x0 +#define CONF_SERCOM_7_USART_RXINV 0x0 +#define CONF_SERCOM_7_USART_TXINV 0x0 -#ifndef CONF_SERCOM_2_USART_CMODE -#define CONF_SERCOM_2_USART_CMODE 0 +#ifndef CONF_SERCOM_7_USART_CMODE +#define CONF_SERCOM_7_USART_CMODE 0 #endif -#ifndef CONF_SERCOM_2_USART_RXPO -#define CONF_SERCOM_2_USART_RXPO 1 /* RX is on PIN_PB24 */ +#ifndef CONF_SERCOM_7_USART_RXPO +#define CONF_SERCOM_7_USART_RXPO 1 /* RX is on PIN_PB31 */ #endif -#ifndef CONF_SERCOM_2_USART_TXPO -#define CONF_SERCOM_2_USART_TXPO 0 /* TX is on PIN_PB25 */ +#ifndef CONF_SERCOM_7_USART_TXPO +#define CONF_SERCOM_7_USART_TXPO 0 /* TX is on PIN_PB30 */ #endif /* Set correct parity settings in register interface based on PARITY setting */ -#if CONF_SERCOM_2_USART_LIN_SLAVE_ENABLE == 1 -#if CONF_SERCOM_2_USART_PARITY == 0 -#define CONF_SERCOM_2_USART_PMODE 0 -#define CONF_SERCOM_2_USART_FORM 4 +#if CONF_SERCOM_7_USART_LIN_SLAVE_ENABLE == 1 +#if CONF_SERCOM_7_USART_PARITY == 0 +#define CONF_SERCOM_7_USART_PMODE 0 +#define CONF_SERCOM_7_USART_FORM 4 #else -#define CONF_SERCOM_2_USART_PMODE CONF_SERCOM_2_USART_PARITY - 1 -#define CONF_SERCOM_2_USART_FORM 5 +#define CONF_SERCOM_7_USART_PMODE CONF_SERCOM_7_USART_PARITY - 1 +#define CONF_SERCOM_7_USART_FORM 5 #endif -#else /* #if CONF_SERCOM_2_USART_LIN_SLAVE_ENABLE == 0 */ -#if CONF_SERCOM_2_USART_PARITY == 0 -#define CONF_SERCOM_2_USART_PMODE 0 -#define CONF_SERCOM_2_USART_FORM 0 +#else /* #if CONF_SERCOM_7_USART_LIN_SLAVE_ENABLE == 0 */ +#if CONF_SERCOM_7_USART_PARITY == 0 +#define CONF_SERCOM_7_USART_PMODE 0 +#define CONF_SERCOM_7_USART_FORM 0 #else -#define CONF_SERCOM_2_USART_PMODE CONF_SERCOM_2_USART_PARITY - 1 -#define CONF_SERCOM_2_USART_FORM 1 +#define CONF_SERCOM_7_USART_PMODE CONF_SERCOM_7_USART_PARITY - 1 +#define CONF_SERCOM_7_USART_FORM 1 #endif #endif // Calculate BAUD register value in UART mode -#if CONF_SERCOM_2_USART_SAMPR == 0 -#ifndef CONF_SERCOM_2_USART_BAUD_RATE -#define CONF_SERCOM_2_USART_BAUD_RATE \ - 65536 - ((65536 * 16.0f * CONF_SERCOM_2_USART_BAUD) / CONF_GCLK_SERCOM2_CORE_FREQUENCY) +#if CONF_SERCOM_7_USART_SAMPR == 0 +#ifndef CONF_SERCOM_7_USART_BAUD_RATE +#define CONF_SERCOM_7_USART_BAUD_RATE \ + 65536 - ((65536 * 16.0f * CONF_SERCOM_7_USART_BAUD) / CONF_GCLK_SERCOM7_CORE_FREQUENCY) #endif -#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH -#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0 +#ifndef CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH 0 #endif -#elif CONF_SERCOM_2_USART_SAMPR == 1 -#ifndef CONF_SERCOM_2_USART_BAUD_RATE -#define CONF_SERCOM_2_USART_BAUD_RATE \ - ((CONF_GCLK_SERCOM2_CORE_FREQUENCY) / (CONF_SERCOM_2_USART_BAUD * 16)) - (CONF_SERCOM_2_USART_FRACTIONAL / 8) +#elif CONF_SERCOM_7_USART_SAMPR == 1 +#ifndef CONF_SERCOM_7_USART_BAUD_RATE +#define CONF_SERCOM_7_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM7_CORE_FREQUENCY) / (CONF_SERCOM_7_USART_BAUD * 16)) - (CONF_SERCOM_7_USART_FRACTIONAL / 8) #endif -#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH -#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0 +#ifndef CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH 0 #endif -#elif CONF_SERCOM_2_USART_SAMPR == 2 -#ifndef CONF_SERCOM_2_USART_BAUD_RATE -#define CONF_SERCOM_2_USART_BAUD_RATE \ - 65536 - ((65536 * 8.0f * CONF_SERCOM_2_USART_BAUD) / CONF_GCLK_SERCOM2_CORE_FREQUENCY) +#elif CONF_SERCOM_7_USART_SAMPR == 2 +#ifndef CONF_SERCOM_7_USART_BAUD_RATE +#define CONF_SERCOM_7_USART_BAUD_RATE \ + 65536 - ((65536 * 8.0f * CONF_SERCOM_7_USART_BAUD) / CONF_GCLK_SERCOM7_CORE_FREQUENCY) #endif -#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH -#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0 +#ifndef CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH 0 #endif -#elif CONF_SERCOM_2_USART_SAMPR == 3 -#ifndef CONF_SERCOM_2_USART_BAUD_RATE -#define CONF_SERCOM_2_USART_BAUD_RATE \ - ((CONF_GCLK_SERCOM2_CORE_FREQUENCY) / (CONF_SERCOM_2_USART_BAUD * 8)) - (CONF_SERCOM_2_USART_FRACTIONAL / 8) +#elif CONF_SERCOM_7_USART_SAMPR == 3 +#ifndef CONF_SERCOM_7_USART_BAUD_RATE +#define CONF_SERCOM_7_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM7_CORE_FREQUENCY) / (CONF_SERCOM_7_USART_BAUD * 8)) - (CONF_SERCOM_7_USART_FRACTIONAL / 8) #endif -#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH -#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0 +#ifndef CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH 0 #endif -#elif CONF_SERCOM_2_USART_SAMPR == 4 -#ifndef CONF_SERCOM_2_USART_BAUD_RATE -#define CONF_SERCOM_2_USART_BAUD_RATE \ - 65536 - ((65536 * 3.0f * CONF_SERCOM_2_USART_BAUD) / CONF_GCLK_SERCOM2_CORE_FREQUENCY) +#elif CONF_SERCOM_7_USART_SAMPR == 4 +#ifndef CONF_SERCOM_7_USART_BAUD_RATE +#define CONF_SERCOM_7_USART_BAUD_RATE \ + 65536 - ((65536 * 3.0f * CONF_SERCOM_7_USART_BAUD) / CONF_GCLK_SERCOM7_CORE_FREQUENCY) #endif -#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH -#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0 +#ifndef CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH 0 #endif #endif diff --git a/sysmoOCTSIM/config/hpl_usb_config.h b/sysmoOCTSIM/config/hpl_usb_config.h index 02439a3..73a9fea 100644 --- a/sysmoOCTSIM/config/hpl_usb_config.h +++ b/sysmoOCTSIM/config/hpl_usb_config.h @@ -39,7 +39,7 @@ // Max possible (by "Max Endpoint Number" config) // usbd_num_ep_sp #ifndef CONF_USB_D_NUM_EP_SP -#define CONF_USB_D_NUM_EP_SP CONF_USB_D_N_EP_MAX +#define CONF_USB_D_NUM_EP_SP CONF_USB_N_4 #endif // diff --git a/sysmoOCTSIM/config/peripheral_clk_config.h b/sysmoOCTSIM/config/peripheral_clk_config.h index c9852b6..ce68abd 100644 --- a/sysmoOCTSIM/config/peripheral_clk_config.h +++ b/sysmoOCTSIM/config/peripheral_clk_config.h @@ -40,8 +40,8 @@ // Generic clock generator 11 // Select the clock source for CORE. -#ifndef CONF_GCLK_SERCOM2_CORE_SRC -#define CONF_GCLK_SERCOM2_CORE_SRC GCLK_PCHCTRL_GEN_GCLK2_Val +#ifndef CONF_GCLK_SERCOM7_CORE_SRC +#define CONF_GCLK_SERCOM7_CORE_SRC GCLK_PCHCTRL_GEN_GCLK2_Val #endif // Slow Clock Source @@ -72,24 +72,24 @@ // Generic clock generator 11 // Select the slow clock source. -#ifndef CONF_GCLK_SERCOM2_SLOW_SRC -#define CONF_GCLK_SERCOM2_SLOW_SRC GCLK_PCHCTRL_GEN_GCLK3_Val +#ifndef CONF_GCLK_SERCOM7_SLOW_SRC +#define CONF_GCLK_SERCOM7_SLOW_SRC GCLK_PCHCTRL_GEN_GCLK3_Val #endif /** - * \def CONF_GCLK_SERCOM2_CORE_FREQUENCY - * \brief SERCOM2's Core Clock frequency + * \def CONF_GCLK_SERCOM7_CORE_FREQUENCY + * \brief SERCOM7's Core Clock frequency */ -#ifndef CONF_GCLK_SERCOM2_CORE_FREQUENCY -#define CONF_GCLK_SERCOM2_CORE_FREQUENCY 100000000 +#ifndef CONF_GCLK_SERCOM7_CORE_FREQUENCY +#define CONF_GCLK_SERCOM7_CORE_FREQUENCY 100000000 #endif /** - * \def CONF_GCLK_SERCOM2_SLOW_FREQUENCY - * \brief SERCOM2's Slow Clock frequency + * \def CONF_GCLK_SERCOM7_SLOW_FREQUENCY + * \brief SERCOM7's Slow Clock frequency */ -#ifndef CONF_GCLK_SERCOM2_SLOW_FREQUENCY -#define CONF_GCLK_SERCOM2_SLOW_FREQUENCY 32768 +#ifndef CONF_GCLK_SERCOM7_SLOW_FREQUENCY +#define CONF_GCLK_SERCOM7_SLOW_FREQUENCY 32768 #endif // USB Clock Source diff --git a/sysmoOCTSIM/driver_init.c b/sysmoOCTSIM/driver_init.c index 9fbc7ed..dea4ebc 100644 --- a/sysmoOCTSIM/driver_init.c +++ b/sysmoOCTSIM/driver_init.c @@ -26,10 +26,10 @@ void UART_debug_CLOCK_init() { - hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM2_GCLK_ID_CORE, CONF_GCLK_SERCOM2_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); - hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM2_GCLK_ID_SLOW, CONF_GCLK_SERCOM2_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM7_GCLK_ID_CORE, CONF_GCLK_SERCOM7_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM7_GCLK_ID_SLOW, CONF_GCLK_SERCOM7_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); - hri_mclk_set_APBBMASK_SERCOM2_bit(MCLK); + hri_mclk_set_APBDMASK_SERCOM7_bit(MCLK); } /** @@ -40,9 +40,9 @@ void UART_debug_PORT_init() { - gpio_set_pin_function(PB25, PINMUX_PB25D_SERCOM2_PAD0); + gpio_set_pin_function(UART_TX, PINMUX_PB30C_SERCOM7_PAD0); - gpio_set_pin_function(PB24, PINMUX_PB24D_SERCOM2_PAD1); + gpio_set_pin_function(UART_RX, PINMUX_PB31C_SERCOM7_PAD1); } /** @@ -53,14 +53,14 @@ void UART_debug_init(void) { UART_debug_CLOCK_init(); - usart_async_init(&UART_debug, SERCOM2, UART_debug_buffer, UART_DEBUG_BUFFER_SIZE, (void *)NULL); + usart_async_init(&UART_debug, SERCOM7, UART_debug_buffer, UART_DEBUG_BUFFER_SIZE, (void *)NULL); UART_debug_PORT_init(); } void USB_DEVICE_INSTANCE_PORT_init(void) { - gpio_set_pin_direction(PA24, + gpio_set_pin_direction(USBUP_D_N, // Pin direction // pad_direction // Off @@ -68,14 +68,14 @@ // Out GPIO_DIRECTION_OUT); - gpio_set_pin_level(PA24, + gpio_set_pin_level(USBUP_D_N, // Initial level // pad_initial_level // Low // High false); - gpio_set_pin_pull_mode(PA24, + gpio_set_pin_pull_mode(USBUP_D_N, // Pull configuration // pad_pull_config // Off @@ -83,7 +83,7 @@ // Pull-down GPIO_PULL_OFF); - gpio_set_pin_function(PA24, + gpio_set_pin_function(USBUP_D_N, // Pin function // pad_function // Auto : use driver pinmux if signal is imported by driver, else turn off function @@ -105,7 +105,7 @@ // N PINMUX_PA24H_USB_DM); - gpio_set_pin_direction(PA25, + gpio_set_pin_direction(USBUP_D_P, // Pin direction // pad_direction // Off @@ -113,14 +113,14 @@ // Out GPIO_DIRECTION_OUT); - gpio_set_pin_level(PA25, + gpio_set_pin_level(USBUP_D_P, // Initial level // pad_initial_level // Low // High false); - gpio_set_pin_pull_mode(PA25, + gpio_set_pin_pull_mode(USBUP_D_P, // Pull configuration // pad_pull_config // Off @@ -128,7 +128,7 @@ // Pull-down GPIO_PULL_OFF); - gpio_set_pin_function(PA25, + gpio_set_pin_function(USBUP_D_P, // Pin function // pad_function // Auto : use driver pinmux if signal is imported by driver, else turn off function @@ -176,14 +176,14 @@ { init_mcu(); - // GPIO on PC18 + // GPIO on PC26 gpio_set_pin_level(LED_system, // Initial level // pad_initial_level // Low // High - true); + false); // Set pin direction to output gpio_set_pin_direction(LED_system, GPIO_DIRECTION_OUT); diff --git a/sysmoOCTSIM/gcc/Makefile b/sysmoOCTSIM/gcc/Makefile index ff11dd9..7bc5fd3 100644 --- a/sysmoOCTSIM/gcc/Makefile +++ b/sysmoOCTSIM/gcc/Makefile @@ -69,6 +69,7 @@ hal/src/hal_init.o \ gcc/gcc/startup_same54.o \ hal/src/hal_usb_device.o \ +main.o \ hpl/osc32kctrl/hpl_osc32kctrl.o \ examples/driver_examples.o \ driver_init.o \ @@ -81,7 +82,6 @@ hal/src/hal_cache.o \ hpl/cmcc/hpl_cmcc.o \ atmel_start.o \ -main.o \ usb/device/usbdc.o \ hal/src/hal_atomic.o @@ -107,6 +107,7 @@ "hal/src/hal_init.o" \ "gcc/gcc/startup_same54.o" \ "hal/src/hal_usb_device.o" \ +"main.o" \ "hpl/osc32kctrl/hpl_osc32kctrl.o" \ "examples/driver_examples.o" \ "driver_init.o" \ @@ -119,7 +120,6 @@ "hal/src/hal_cache.o" \ "hpl/cmcc/hpl_cmcc.o" \ "atmel_start.o" \ -"main.o" \ "usb/device/usbdc.o" \ "hal/src/hal_atomic.o" @@ -147,11 +147,11 @@ "hal/src/hal_usb_device.d" \ "usb_start.d" \ "hal/src/hal_init.d" \ -"main.d" \ "hpl/mclk/hpl_mclk.d" \ "driver_init.d" \ "hal/src/hal_usart_async.d" \ "hpl/osc32kctrl/hpl_osc32kctrl.d" \ +"main.d" \ "examples/driver_examples.d" \ "hal/src/hal_cache.d" \ "hal/src/hal_sleep.d" \ @@ -184,7 +184,7 @@ $(QUOTE)arm-none-eabi-gcc$(QUOTE) -o $(OUTPUT_FILE_NAME).elf $(OBJS_AS_ARGS) -Wl,--start-group -lm -Wl,--end-group -mthumb \ -Wl,-Map="$(OUTPUT_FILE_NAME).map" --specs=nano.specs -Wl,--gc-sections -mcpu=cortex-m4 \ \ --T"../gcc/gcc/same54p20a_flash.ld" \ +-T"../gcc/gcc/same54n19a_flash.ld" \ -L"../gcc/gcc" @echo Finished building target: $@ @@ -208,7 +208,7 @@ @echo Building file: $< @echo ARM/GNU C Compiler $(QUOTE)arm-none-eabi-gcc$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ --D__SAME54P20A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ +-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ -I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include" \ -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" @echo Finished building: $< @@ -217,7 +217,7 @@ @echo Building file: $< @echo ARM/GNU Assembler $(QUOTE)arm-none-eabi-as$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ --D__SAME54P20A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ +-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ -I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include" \ -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" @echo Finished building: $< @@ -226,7 +226,7 @@ @echo Building file: $< @echo ARM/GNU Preprocessing Assembler $(QUOTE)arm-none-eabi-gcc$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ --D__SAME54P20A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ +-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ -I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include" \ -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" @echo Finished building: $< @@ -247,4 +247,4 @@ rm -f $(DEPS_AS_ARGS) rm -f $(OUTPUT_FILE_NAME).a $(OUTPUT_FILE_NAME).hex $(OUTPUT_FILE_NAME).bin \ $(OUTPUT_FILE_NAME).lss $(OUTPUT_FILE_NAME).eep $(OUTPUT_FILE_NAME).map \ - $(OUTPUT_FILE_NAME).srec + $(OUTPUT_FILE_NAME).srec \ No newline at end of file diff --git a/sysmoOCTSIM/gcc/gcc/same54n19a_flash.ld b/sysmoOCTSIM/gcc/gcc/same54n19a_flash.ld new file mode 100644 index 0000000..eaa6ed6 --- /dev/null +++ b/sysmoOCTSIM/gcc/gcc/same54n19a_flash.ld @@ -0,0 +1,163 @@ +/** + * \file + * + * \brief Linker script for running in internal FLASH on the SAME54N19A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + + +OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") +OUTPUT_ARCH(arm) +SEARCH_DIR(.) + +/* Memory Spaces Definitions */ +MEMORY +{ + rom (rx) : ORIGIN = 0x00000000, LENGTH = 0x00080000 + ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00030000 + bkupram (rwx) : ORIGIN = 0x47000000, LENGTH = 0x00002000 + qspi (rwx) : ORIGIN = 0x04000000, LENGTH = 0x01000000 +} + +/* The stack size used by the application. NOTE: you need to adjust according to your application. */ +STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0xC000; + +/* Section Definitions */ +SECTIONS +{ + .text : + { + . = ALIGN(4); + _sfixed = .; + KEEP(*(.vectors .vectors.*)) + *(.text .text.* .gnu.linkonce.t.*) + *(.glue_7t) *(.glue_7) + *(.rodata .rodata* .gnu.linkonce.r.*) + *(.ARM.extab* .gnu.linkonce.armextab.*) + + /* Support C constructors, and C destructors in both user code + and the C library. This also provides support for C++ code. */ + . = ALIGN(4); + KEEP(*(.init)) + . = ALIGN(4); + __preinit_array_start = .; + KEEP (*(.preinit_array)) + __preinit_array_end = .; + + . = ALIGN(4); + __init_array_start = .; + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array)) + __init_array_end = .; + + . = ALIGN(4); + KEEP (*crtbegin.o(.ctors)) + KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*crtend.o(.ctors)) + + . = ALIGN(4); + KEEP(*(.fini)) + + . = ALIGN(4); + __fini_array_start = .; + KEEP (*(.fini_array)) + KEEP (*(SORT(.fini_array.*))) + __fini_array_end = .; + + KEEP (*crtbegin.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*crtend.o(.dtors)) + + . = ALIGN(4); + _efixed = .; /* End of text section */ + } > rom + + /* .ARM.exidx is sorted, so has to go in its own output section. */ + PROVIDE_HIDDEN (__exidx_start = .); + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } > rom + PROVIDE_HIDDEN (__exidx_end = .); + + . = ALIGN(4); + _etext = .; + + .relocate : AT (_etext) + { + . = ALIGN(4); + _srelocate = .; + *(.ramfunc .ramfunc.*); + *(.data .data.*); + . = ALIGN(4); + _erelocate = .; + } > ram + + .bkupram (NOLOAD): + { + . = ALIGN(8); + _sbkupram = .; + *(.bkupram .bkupram.*); + . = ALIGN(8); + _ebkupram = .; + } > bkupram + + .qspi (NOLOAD): + { + . = ALIGN(8); + _sqspi = .; + *(.qspi .qspi.*); + . = ALIGN(8); + _eqspi = .; + } > qspi + + /* .bss section which is used for uninitialized data */ + .bss (NOLOAD) : + { + . = ALIGN(4); + _sbss = . ; + _szero = .; + *(.bss .bss.*) + *(COMMON) + . = ALIGN(4); + _ebss = . ; + _ezero = .; + } > ram + + /* stack section */ + .stack (NOLOAD): + { + . = ALIGN(8); + _sstack = .; + . = . + STACK_SIZE; + . = ALIGN(8); + _estack = .; + } > ram + + . = ALIGN(4); + _end = . ; +} diff --git a/sysmoOCTSIM/gcc/gcc/same54n19a_sram.ld b/sysmoOCTSIM/gcc/gcc/same54n19a_sram.ld new file mode 100644 index 0000000..fa2c47c --- /dev/null +++ b/sysmoOCTSIM/gcc/gcc/same54n19a_sram.ld @@ -0,0 +1,162 @@ +/** + * \file + * + * \brief Linker script for running in internal SRAM on the SAME54N19A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + + +OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") +OUTPUT_ARCH(arm) +SEARCH_DIR(.) + +/* Memory Spaces Definitions */ +MEMORY +{ + ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00030000 + bkupram (rwx) : ORIGIN = 0x47000000, LENGTH = 0x00002000 + qspi (rwx) : ORIGIN = 0x04000000, LENGTH = 0x01000000 +} + +/* The stack size used by the application. NOTE: you need to adjust according to your application. */ +STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0xC000; + +/* Section Definitions */ +SECTIONS +{ + .text : + { + . = ALIGN(4); + _sfixed = .; + KEEP(*(.vectors .vectors.*)) + *(.text .text.* .gnu.linkonce.t.*) + *(.glue_7t) *(.glue_7) + *(.rodata .rodata* .gnu.linkonce.r.*) + *(.ARM.extab* .gnu.linkonce.armextab.*) + + /* Support C constructors, and C destructors in both user code + and the C library. This also provides support for C++ code. */ + . = ALIGN(4); + KEEP(*(.init)) + . = ALIGN(4); + __preinit_array_start = .; + KEEP (*(.preinit_array)) + __preinit_array_end = .; + + . = ALIGN(4); + __init_array_start = .; + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array)) + __init_array_end = .; + + . = ALIGN(4); + KEEP (*crtbegin.o(.ctors)) + KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*crtend.o(.ctors)) + + . = ALIGN(4); + KEEP(*(.fini)) + + . = ALIGN(4); + __fini_array_start = .; + KEEP (*(.fini_array)) + KEEP (*(SORT(.fini_array.*))) + __fini_array_end = .; + + KEEP (*crtbegin.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*crtend.o(.dtors)) + + . = ALIGN(4); + _efixed = .; /* End of text section */ + } > ram + + /* .ARM.exidx is sorted, so has to go in its own output section. */ + PROVIDE_HIDDEN (__exidx_start = .); + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } > ram + PROVIDE_HIDDEN (__exidx_end = .); + + . = ALIGN(4); + _etext = .; + + .relocate : AT (_etext) + { + . = ALIGN(4); + _srelocate = .; + *(.ramfunc .ramfunc.*); + *(.data .data.*); + . = ALIGN(4); + _erelocate = .; + } > ram + + .bkupram (NOLOAD): + { + . = ALIGN(8); + _sbkupram = .; + *(.bkupram .bkupram.*); + . = ALIGN(8); + _ebkupram = .; + } > bkupram + + .qspi (NOLOAD): + { + . = ALIGN(8); + _sqspi = .; + *(.qspi .qspi.*); + . = ALIGN(8); + _eqspi = .; + } > qspi + + /* .bss section which is used for uninitialized data */ + .bss (NOLOAD) : + { + . = ALIGN(4); + _sbss = . ; + _szero = .; + *(.bss .bss.*) + *(COMMON) + . = ALIGN(4); + _ebss = . ; + _ezero = .; + } > ram + + /* stack section */ + .stack (NOLOAD): + { + . = ALIGN(8); + _sstack = .; + . = . + STACK_SIZE; + . = ALIGN(8); + _estack = .; + } > ram + + . = ALIGN(4); + _end = . ; +} diff --git a/sysmoOCTSIM/hpl/port/hpl_gpio_base.h b/sysmoOCTSIM/hpl/port/hpl_gpio_base.h index f32c40f..12ff6f7 100644 --- a/sysmoOCTSIM/hpl/port/hpl_gpio_base.h +++ b/sysmoOCTSIM/hpl/port/hpl_gpio_base.h @@ -168,5 +168,4 @@ hri_port_set_EVCTRL_reg(PORT, 0, CONF_PORTA_EVCTRL); hri_port_set_EVCTRL_reg(PORT, 1, CONF_PORTB_EVCTRL); hri_port_set_EVCTRL_reg(PORT, 2, CONF_PORTC_EVCTRL); - hri_port_set_EVCTRL_reg(PORT, 3, CONF_PORTD_EVCTRL); } diff --git a/sysmoOCTSIM/hpl/sercom/hpl_sercom.c b/sysmoOCTSIM/hpl/sercom/hpl_sercom.c index 11192d0..535ebc6 100644 --- a/sysmoOCTSIM/hpl/sercom/hpl_sercom.c +++ b/sysmoOCTSIM/hpl/sercom/hpl_sercom.c @@ -163,7 +163,7 @@ }; #endif -static struct _usart_async_device *_sercom2_dev = NULL; +static struct _usart_async_device *_sercom7_dev = NULL; static uint8_t _get_sercom_index(const void *const hw); static uint8_t _sercom_get_irq_num(const void *const hw); @@ -626,8 +626,8 @@ static void _sercom_init_irq_param(const void *const hw, void *dev) { - if (hw == SERCOM2) { - _sercom2_dev = (struct _usart_async_device *)dev; + if (hw == SERCOM7) { + _sercom7_dev = (struct _usart_async_device *)dev; } } @@ -2392,30 +2392,30 @@ /** * \internal Sercom interrupt handler */ -void SERCOM2_0_Handler(void) +void SERCOM7_0_Handler(void) { - _sercom_usart_interrupt_handler(_sercom2_dev); + _sercom_usart_interrupt_handler(_sercom7_dev); } /** * \internal Sercom interrupt handler */ -void SERCOM2_1_Handler(void) +void SERCOM7_1_Handler(void) { - _sercom_usart_interrupt_handler(_sercom2_dev); + _sercom_usart_interrupt_handler(_sercom7_dev); } /** * \internal Sercom interrupt handler */ -void SERCOM2_2_Handler(void) +void SERCOM7_2_Handler(void) { - _sercom_usart_interrupt_handler(_sercom2_dev); + _sercom_usart_interrupt_handler(_sercom7_dev); } /** * \internal Sercom interrupt handler */ -void SERCOM2_3_Handler(void) +void SERCOM7_3_Handler(void) { - _sercom_usart_interrupt_handler(_sercom2_dev); + _sercom_usart_interrupt_handler(_sercom7_dev); } int32_t _spi_m_sync_init(struct _spi_m_sync_dev *dev, void *const hw) diff --git a/sysmoOCTSIM/hpl/usb/hpl_usb.c b/sysmoOCTSIM/hpl/usb/hpl_usb.c index 6bf09ab..b5efe6c 100644 --- a/sysmoOCTSIM/hpl/usb/hpl_usb.c +++ b/sysmoOCTSIM/hpl/usb/hpl_usb.c @@ -154,7 +154,7 @@ * \param[in] s Buffer size, in number of bytes. * \return \c true If the buffer is in RAM. */ -#define _IN_RAM(a, s) ((0x20000000 <= (uint32_t)(a)) && (((uint32_t)(a) + (s)) < (0x20000000 + 0x00042000))) +#define _IN_RAM(a, s) ((0x20000000 <= (uint32_t)(a)) && (((uint32_t)(a) + (s)) < (0x20000000 + 0x00032000))) /** Check if the address should be placed in RAM. */ #define _usb_is_addr4dma(addr, size) _IN_RAM((addr), (size)) -- To view, visit https://gerrit.osmocom.org/12808 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ifd15f6759c51b42a8d11b09f9f495d7e7a5b6afc Gerrit-Change-Number: 12808 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:47:42 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:47:42 +0000 Subject: Change in osmo-ccid-firmware[master]: add 20 MHz clock output Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12809 Change subject: add 20 MHz clock output ...................................................................... add 20 MHz clock output use GCLK5 to output 20 MHz clock on PA11/GCLK_IO[5] for SIM cards clock. this can be further divided by the NCN8025 before reaching the SIM. Change-Id: I2c0d6a31ec63a87e04ef4e3afbedce3a221324cc --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/config/hpl_gclk_config.h 2 files changed, 10 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/09/12809/1 diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index 09c0b2d..5c7cc2c 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -648,7 +648,7 @@ enable_gclk_gen_2: true enable_gclk_gen_3: true enable_gclk_gen_4: false - enable_gclk_gen_5: false + enable_gclk_gen_5: true enable_gclk_gen_6: false enable_gclk_gen_7: false enable_gclk_gen_8: false @@ -688,9 +688,9 @@ gclk_arch_gen_4_oe: false gclk_arch_gen_4_oov: false gclk_arch_gen_4_runstdby: false - gclk_arch_gen_5_enable: false + gclk_arch_gen_5_enable: true gclk_arch_gen_5_idc: false - gclk_arch_gen_5_oe: false + gclk_arch_gen_5_oe: true gclk_arch_gen_5_oov: false gclk_arch_gen_5_runstdby: false gclk_arch_gen_6_enable: false @@ -734,9 +734,9 @@ gclk_gen_4_div: 1 gclk_gen_4_div_sel: false gclk_gen_4_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) - gclk_gen_5_div: 1 + gclk_gen_5_div: 5 gclk_gen_5_div_sel: false - gclk_gen_5_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) + gclk_gen_5_oscillator: Digital Phase Locked Loop (DPLL1) gclk_gen_6_div: 1 gclk_gen_6_div_sel: false gclk_gen_6_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) diff --git a/sysmoOCTSIM/config/hpl_gclk_config.h b/sysmoOCTSIM/config/hpl_gclk_config.h index d16af6f..6b7586c 100644 --- a/sysmoOCTSIM/config/hpl_gclk_config.h +++ b/sysmoOCTSIM/config/hpl_gclk_config.h @@ -387,7 +387,7 @@ // Indicates whether generic clock 5 configuration is enabled or not // enable_gclk_gen_5 #ifndef CONF_GCLK_GENERATOR_5_CONFIG -#define CONF_GCLK_GENERATOR_5_CONFIG 0 +#define CONF_GCLK_GENERATOR_5_CONFIG 1 #endif // Generic Clock Generator Control @@ -404,7 +404,7 @@ // This defines the clock source for generic clock generator 5 // gclk_gen_5_oscillator #ifndef CONF_GCLK_GEN_5_SOURCE -#define CONF_GCLK_GEN_5_SOURCE GCLK_GENCTRL_SRC_XOSC1 +#define CONF_GCLK_GEN_5_SOURCE GCLK_GENCTRL_SRC_DPLL1 #endif // Run in Standby @@ -425,7 +425,7 @@ // Indicates whether Output Enable is enabled or not // gclk_arch_gen_5_oe #ifndef CONF_GCLK_GEN_5_OE -#define CONF_GCLK_GEN_5_OE 0 +#define CONF_GCLK_GEN_5_OE 1 #endif // Output Off Value @@ -446,7 +446,7 @@ // Indicates whether Generic Clock Generator Enable is enabled or not // gclk_arch_gen_5_enable #ifndef CONF_GCLK_GEN_5_GENEN -#define CONF_GCLK_GEN_5_GENEN 0 +#define CONF_GCLK_GEN_5_GENEN 1 #endif // @@ -454,7 +454,7 @@ // Generic clock generator 5 division <0x0000-0xFFFF> // gclk_gen_5_div #ifndef CONF_GCLK_GEN_5_DIV -#define CONF_GCLK_GEN_5_DIV 1 +#define CONF_GCLK_GEN_5_DIV 5 #endif // // -- To view, visit https://gerrit.osmocom.org/12809 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I2c0d6a31ec63a87e04ef4e3afbedce3a221324cc Gerrit-Change-Number: 12809 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:47:43 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:47:43 +0000 Subject: Change in osmo-ccid-firmware[master]: name pin according to schematic Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12810 Change subject: name pin according to schematic ...................................................................... name pin according to schematic Change-Id: I94a7f2216c288150b044a6190804f9b7247eb10c --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/atmel_start_pins.h M sysmoOCTSIM/driver_init.c M sysmoOCTSIM/main.c 4 files changed, 175 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/10/12810/1 diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index 5c7cc2c..b6303f9 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -1030,6 +1030,46 @@ configuration: usb_gclk_selection: Generic clock generator 1 pads: + SIMCLK_20MHZ: + name: PA11 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA11 + mode: Advanced + user_label: SIMCLK_20MHZ + configuration: + pad_direction: Out + pad_function: M + pad_initial_level: Low + pad_pull_config: 'Off' + SWITCH: + name: PC14 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC14 + mode: Digital input + user_label: SWITCH + configuration: null + VB0: + name: PA20 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA20 + mode: Digital input + user_label: VB0 + configuration: null + VB1: + name: PA21 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA21 + mode: Digital input + user_label: VB1 + configuration: null + VB2: + name: PA22 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA22 + mode: Digital input + user_label: VB2 + configuration: null + VB3: + name: PA23 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA23 + mode: Digital input + user_label: VB3 + configuration: null USBUP_D_N: name: PA24 definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA24 @@ -1042,11 +1082,11 @@ mode: Advanced user_label: USBUP_D_P configuration: null - LED_system: + USER_LED: name: PC26 definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC26 mode: Digital output - user_label: LED_system + user_label: USER_LED configuration: null UART_TX: name: PB30 diff --git a/sysmoOCTSIM/atmel_start_pins.h b/sysmoOCTSIM/atmel_start_pins.h index 884a562..fea4388 100644 --- a/sysmoOCTSIM/atmel_start_pins.h +++ b/sysmoOCTSIM/atmel_start_pins.h @@ -27,10 +27,16 @@ #define GPIO_PIN_FUNCTION_M 12 #define GPIO_PIN_FUNCTION_N 13 +#define SIMCLK_20MHZ GPIO(GPIO_PORTA, 11) +#define VB0 GPIO(GPIO_PORTA, 20) +#define VB1 GPIO(GPIO_PORTA, 21) +#define VB2 GPIO(GPIO_PORTA, 22) +#define VB3 GPIO(GPIO_PORTA, 23) #define USBUP_D_N GPIO(GPIO_PORTA, 24) #define USBUP_D_P GPIO(GPIO_PORTA, 25) #define UART_TX GPIO(GPIO_PORTB, 30) #define UART_RX GPIO(GPIO_PORTB, 31) -#define LED_system GPIO(GPIO_PORTC, 26) +#define SWITCH GPIO(GPIO_PORTC, 14) +#define USER_LED GPIO(GPIO_PORTC, 26) #endif // ATMEL_START_PINS_H_INCLUDED diff --git a/sysmoOCTSIM/driver_init.c b/sysmoOCTSIM/driver_init.c index dea4ebc..4ab622f 100644 --- a/sysmoOCTSIM/driver_init.c +++ b/sysmoOCTSIM/driver_init.c @@ -176,9 +176,131 @@ { init_mcu(); + // GPIO on PA11 + + gpio_set_pin_direction(SIMCLK_20MHZ, + // Pin direction + // pad_direction + // Off + // In + // Out + GPIO_DIRECTION_OUT); + + gpio_set_pin_level(SIMCLK_20MHZ, + // Initial level + // pad_initial_level + // Low + // High + false); + + gpio_set_pin_pull_mode(SIMCLK_20MHZ, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(SIMCLK_20MHZ, + // Pin function + // pad_function + // Auto : use driver pinmux if signal is imported by driver, else turn off function + // Auto + // Off + // A + // B + // C + // D + // E + // F + // G + // H + // I + // J + // K + // L + // M + // N + GPIO_PIN_FUNCTION_M); + + // GPIO on PA20 + + // Set pin direction to input + gpio_set_pin_direction(VB0, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(VB0, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(VB0, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PA21 + + // Set pin direction to input + gpio_set_pin_direction(VB1, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(VB1, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(VB1, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PA22 + + // Set pin direction to input + gpio_set_pin_direction(VB2, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(VB2, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(VB2, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PA23 + + // Set pin direction to input + gpio_set_pin_direction(VB3, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(VB3, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(VB3, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PC14 + + // Set pin direction to input + gpio_set_pin_direction(SWITCH, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(SWITCH, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(SWITCH, GPIO_PIN_FUNCTION_OFF); + // GPIO on PC26 - gpio_set_pin_level(LED_system, + gpio_set_pin_level(USER_LED, // Initial level // pad_initial_level // Low @@ -186,9 +308,9 @@ false); // Set pin direction to output - gpio_set_pin_direction(LED_system, GPIO_DIRECTION_OUT); + gpio_set_pin_direction(USER_LED, GPIO_DIRECTION_OUT); - gpio_set_pin_function(LED_system, GPIO_PIN_FUNCTION_OFF); + gpio_set_pin_function(USER_LED, GPIO_PIN_FUNCTION_OFF); UART_debug_init(); diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c index dfe3b03..f2584d2 100644 --- a/sysmoOCTSIM/main.c +++ b/sysmoOCTSIM/main.c @@ -30,7 +30,7 @@ static void rx_cb_UART_debug(const struct usart_async_descriptor *const io_descr) { /* Receive completed */ - gpio_toggle_pin_level(LED_system); + gpio_toggle_pin_level(USER_LED); data_arrived = true; } -- To view, visit https://gerrit.osmocom.org/12810 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I94a7f2216c288150b044a6190804f9b7247eb10c Gerrit-Change-Number: 12810 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:47:43 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:47:43 +0000 Subject: Change in osmo-ccid-firmware[master]: add ISO7816 peripherals Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12811 Change subject: add ISO7816 peripherals ...................................................................... add ISO7816 peripherals configure SERCOM 0 to 6 peripherals to communicate using the ISO7816 T=0 protocol. SERCOM7 should be for the 8th SIM card, but for now it is used as UART debug output. Auto-detection between SERCOM for the 8th SIM and debug UART will be done later. Change-Id: I3f1411ec5bc2ed7dfa714550d041f52be665132a --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/atmel_start_pins.h M sysmoOCTSIM/config/hpl_sercom_config.h M sysmoOCTSIM/config/peripheral_clk_config.h M sysmoOCTSIM/driver_init.c M sysmoOCTSIM/driver_init.h M sysmoOCTSIM/examples/driver_examples.c M sysmoOCTSIM/examples/driver_examples.h M sysmoOCTSIM/hpl/sercom/hpl_sercom.c 9 files changed, 3,619 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/11/12811/1 diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index b6303f9..975423d 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -943,6 +943,307 @@ variant: null clocks: domain_group: null + SIM0: + user_label: SIM0 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM0::driver_config_definition::USART.with.ISO7816::HAL:Driver:USART.Async + functionality: USART + api: HAL:Driver:USART_Async + configuration: + usart_advanced: false + usart_arch_clock_mode: USART with internal clock + usart_arch_cloden: false + usart_arch_dbgstop: Keep running + usart_arch_dord: LSB is transmitted first + usart_arch_ibon: false + usart_arch_runstdby: false + usart_arch_sfde: false + usart_baud_rate: 9600 + usart_character_size: 8 bits + usart_dsnack: The successive receive NACK is disable. + usart_gtime: 2-bit times + usart_inack: NACK is transmitted when a parity error is received. + usart_inverse_enabled: false + usart_iso7816_type: T=0 + usart_maxiter: 7 + usart_parity: Even parity + usart_rx_enable: true + usart_stop_bit: One stop bit + usart_tx_enable: true + optional_signals: [] + variant: + specification: TXPO=2, RXPO=0 + required_signals: + - name: SERCOM0/PAD/0 + pad: PA04 + label: RX/TX + clocks: + domain_group: + nodes: + - name: Core + input: Generic clock generator 2 + - name: Slow + input: Generic clock generator 3 + configuration: + core_gclk_selection: Generic clock generator 2 + slow_gclk_selection: Generic clock generator 3 + SIM1: + user_label: SIM1 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM1::driver_config_definition::USART.with.ISO7816::HAL:Driver:USART.Async + functionality: USART + api: HAL:Driver:USART_Async + configuration: + usart_advanced: false + usart_arch_clock_mode: USART with internal clock + usart_arch_cloden: false + usart_arch_dbgstop: Keep running + usart_arch_dord: LSB is transmitted first + usart_arch_ibon: false + usart_arch_runstdby: false + usart_arch_sfde: false + usart_baud_rate: 9600 + usart_character_size: 8 bits + usart_dsnack: The successive receive NACK is disable. + usart_gtime: 2-bit times + usart_inack: NACK is transmitted when a parity error is received. + usart_inverse_enabled: false + usart_iso7816_type: T=0 + usart_maxiter: 7 + usart_parity: Even parity + usart_rx_enable: true + usart_stop_bit: One stop bit + usart_tx_enable: true + optional_signals: [] + variant: + specification: TXPO=2, RXPO=0 + required_signals: + - name: SERCOM1/PAD/0 + pad: PA16 + label: RX/TX + clocks: + domain_group: + nodes: + - name: Core + input: Generic clock generator 2 + - name: Slow + input: Generic clock generator 3 + configuration: + core_gclk_selection: Generic clock generator 2 + slow_gclk_selection: Generic clock generator 3 + SIM2: + user_label: SIM2 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM2::driver_config_definition::USART.with.ISO7816::HAL:Driver:USART.Async + functionality: USART + api: HAL:Driver:USART_Async + configuration: + usart_advanced: false + usart_arch_clock_mode: USART with internal clock + usart_arch_cloden: false + usart_arch_dbgstop: Keep running + usart_arch_dord: LSB is transmitted first + usart_arch_ibon: false + usart_arch_runstdby: false + usart_arch_sfde: false + usart_baud_rate: 9600 + usart_character_size: 8 bits + usart_dsnack: The successive receive NACK is disable. + usart_gtime: 2-bit times + usart_inack: NACK is transmitted when a parity error is received. + usart_inverse_enabled: false + usart_iso7816_type: T=0 + usart_maxiter: 7 + usart_parity: Even parity + usart_rx_enable: true + usart_stop_bit: One stop bit + usart_tx_enable: true + optional_signals: [] + variant: + specification: TXPO=2, RXPO=0 + required_signals: + - name: SERCOM2/PAD/0 + pad: PA09 + label: RX/TX + clocks: + domain_group: + nodes: + - name: Core + input: Generic clock generator 2 + - name: Slow + input: Generic clock generator 3 + configuration: + core_gclk_selection: Generic clock generator 2 + slow_gclk_selection: Generic clock generator 3 + SIM3: + user_label: SIM3 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM3::driver_config_definition::USART.with.ISO7816::HAL:Driver:USART.Async + functionality: USART + api: HAL:Driver:USART_Async + configuration: + usart_advanced: false + usart_arch_clock_mode: USART with internal clock + usart_arch_cloden: false + usart_arch_dbgstop: Keep running + usart_arch_dord: LSB is transmitted first + usart_arch_ibon: false + usart_arch_runstdby: false + usart_arch_sfde: false + usart_baud_rate: 9600 + usart_character_size: 8 bits + usart_dsnack: The successive receive NACK is disable. + usart_gtime: 2-bit times + usart_inack: NACK is transmitted when a parity error is received. + usart_inverse_enabled: false + usart_iso7816_type: T=0 + usart_maxiter: 7 + usart_parity: Even parity + usart_rx_enable: true + usart_stop_bit: One stop bit + usart_tx_enable: true + optional_signals: [] + variant: + specification: TXPO=2, RXPO=0 + required_signals: + - name: SERCOM3/PAD/0 + pad: PB20 + label: RX/TX + clocks: + domain_group: + nodes: + - name: Core + input: Generic clock generator 2 + - name: Slow + input: Generic clock generator 3 + configuration: + core_gclk_selection: Generic clock generator 2 + slow_gclk_selection: Generic clock generator 3 + SIM4: + user_label: SIM4 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM4::driver_config_definition::USART.with.ISO7816::HAL:Driver:USART.Async + functionality: USART + api: HAL:Driver:USART_Async + configuration: + usart_advanced: false + usart_arch_clock_mode: USART with internal clock + usart_arch_cloden: false + usart_arch_dbgstop: Keep running + usart_arch_dord: LSB is transmitted first + usart_arch_ibon: false + usart_arch_runstdby: false + usart_arch_sfde: false + usart_baud_rate: 9600 + usart_character_size: 8 bits + usart_dsnack: The successive receive NACK is disable. + usart_gtime: 2-bit times + usart_inack: NACK is transmitted when a parity error is received. + usart_inverse_enabled: false + usart_iso7816_type: T=0 + usart_maxiter: 7 + usart_parity: Even parity + usart_rx_enable: true + usart_stop_bit: One stop bit + usart_tx_enable: true + optional_signals: [] + variant: + specification: TXPO=2, RXPO=0 + required_signals: + - name: SERCOM4/PAD/0 + pad: PB08 + label: RX/TX + clocks: + domain_group: + nodes: + - name: Core + input: Generic clock generator 2 + - name: Slow + input: Generic clock generator 3 + configuration: + core_gclk_selection: Generic clock generator 2 + slow_gclk_selection: Generic clock generator 3 + SIM5: + user_label: SIM5 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM5::driver_config_definition::USART.with.ISO7816::HAL:Driver:USART.Async + functionality: USART + api: HAL:Driver:USART_Async + configuration: + usart_advanced: false + usart_arch_clock_mode: USART with internal clock + usart_arch_cloden: false + usart_arch_dbgstop: Keep running + usart_arch_dord: LSB is transmitted first + usart_arch_ibon: false + usart_arch_runstdby: false + usart_arch_sfde: false + usart_baud_rate: 9600 + usart_character_size: 8 bits + usart_dsnack: The successive receive NACK is disable. + usart_gtime: 2-bit times + usart_inack: NACK is transmitted when a parity error is received. + usart_inverse_enabled: false + usart_iso7816_type: T=0 + usart_maxiter: 7 + usart_parity: Even parity + usart_rx_enable: true + usart_stop_bit: One stop bit + usart_tx_enable: true + optional_signals: [] + variant: + specification: TXPO=2, RXPO=0 + required_signals: + - name: SERCOM5/PAD/0 + pad: PB16 + label: RX/TX + clocks: + domain_group: + nodes: + - name: Core + input: Generic clock generator 2 + - name: Slow + input: Generic clock generator 3 + configuration: + core_gclk_selection: Generic clock generator 2 + slow_gclk_selection: Generic clock generator 3 + SIM6: + user_label: SIM6 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM6::driver_config_definition::USART.with.ISO7816::HAL:Driver:USART.Async + functionality: USART + api: HAL:Driver:USART_Async + configuration: + usart_advanced: false + usart_arch_clock_mode: USART with internal clock + usart_arch_cloden: false + usart_arch_dbgstop: Keep running + usart_arch_dord: LSB is transmitted first + usart_arch_ibon: false + usart_arch_runstdby: false + usart_arch_sfde: false + usart_baud_rate: 9600 + usart_character_size: 8 bits + usart_dsnack: The successive receive NACK is disable. + usart_gtime: 2-bit times + usart_inack: NACK is transmitted when a parity error is received. + usart_inverse_enabled: false + usart_iso7816_type: T=0 + usart_maxiter: 7 + usart_parity: Even parity + usart_rx_enable: true + usart_stop_bit: One stop bit + usart_tx_enable: true + optional_signals: [] + variant: + specification: TXPO=2, RXPO=0 + required_signals: + - name: SERCOM6/PAD/0 + pad: PC16 + label: RX/TX + clocks: + domain_group: + nodes: + - name: Core + input: Generic clock generator 2 + - name: Slow + input: Generic clock generator 3 + configuration: + core_gclk_selection: Generic clock generator 2 + slow_gclk_selection: Generic clock generator 3 UART_debug: user_label: UART_debug definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM7::driver_config_definition::UART::HAL:Driver:USART.Async @@ -1030,6 +1331,24 @@ configuration: usb_gclk_selection: Generic clock generator 1 pads: + SIM4_IO: + name: PB08 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB08 + mode: Peripheral IO + user_label: SIM4_IO + configuration: null + SIM0_IO: + name: PA04 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA04 + mode: Peripheral IO + user_label: SIM0_IO + configuration: null + SIM2_IO: + name: PA09 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA09 + mode: Peripheral IO + user_label: SIM2_IO + configuration: null SIMCLK_20MHZ: name: PA11 definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA11 @@ -1046,6 +1365,30 @@ mode: Digital input user_label: SWITCH configuration: null + SIM1_IO: + name: PA16 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA16 + mode: Peripheral IO + user_label: SIM1_IO + configuration: null + SIM6_IO: + name: PC16 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC16 + mode: Peripheral IO + user_label: SIM6_IO + configuration: null + SIM5_IO: + name: PB16 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB16 + mode: Peripheral IO + user_label: SIM5_IO + configuration: null + SIM3_IO: + name: PB20 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB20 + mode: Peripheral IO + user_label: SIM3_IO + configuration: null VB0: name: PA20 definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA20 diff --git a/sysmoOCTSIM/atmel_start_pins.h b/sysmoOCTSIM/atmel_start_pins.h index fea4388..ad5f27b 100644 --- a/sysmoOCTSIM/atmel_start_pins.h +++ b/sysmoOCTSIM/atmel_start_pins.h @@ -27,16 +27,23 @@ #define GPIO_PIN_FUNCTION_M 12 #define GPIO_PIN_FUNCTION_N 13 +#define SIM0_IO GPIO(GPIO_PORTA, 4) +#define SIM2_IO GPIO(GPIO_PORTA, 9) #define SIMCLK_20MHZ GPIO(GPIO_PORTA, 11) +#define SIM1_IO GPIO(GPIO_PORTA, 16) #define VB0 GPIO(GPIO_PORTA, 20) #define VB1 GPIO(GPIO_PORTA, 21) #define VB2 GPIO(GPIO_PORTA, 22) #define VB3 GPIO(GPIO_PORTA, 23) #define USBUP_D_N GPIO(GPIO_PORTA, 24) #define USBUP_D_P GPIO(GPIO_PORTA, 25) +#define SIM4_IO GPIO(GPIO_PORTB, 8) +#define SIM5_IO GPIO(GPIO_PORTB, 16) +#define SIM3_IO GPIO(GPIO_PORTB, 20) #define UART_TX GPIO(GPIO_PORTB, 30) #define UART_RX GPIO(GPIO_PORTB, 31) #define SWITCH GPIO(GPIO_PORTC, 14) +#define SIM6_IO GPIO(GPIO_PORTC, 16) #define USER_LED GPIO(GPIO_PORTC, 26) #endif // ATMEL_START_PINS_H_INCLUDED diff --git a/sysmoOCTSIM/config/hpl_sercom_config.h b/sysmoOCTSIM/config/hpl_sercom_config.h index 2a8c023..735fdc2 100644 --- a/sysmoOCTSIM/config/hpl_sercom_config.h +++ b/sysmoOCTSIM/config/hpl_sercom_config.h @@ -6,6 +6,1910 @@ #include +#ifndef CONF_SERCOM_0_USART_ENABLE +#define CONF_SERCOM_0_USART_ENABLE 1 +#endif + +// Basic Configuration + +// Receive buffer enable +// Enable input buffer in SERCOM module +// usart_rx_enable +#ifndef CONF_SERCOM_0_USART_RXEN +#define CONF_SERCOM_0_USART_RXEN 1 +#endif + +// Transmitt buffer enable +// Enable output buffer in SERCOM module +// usart_tx_enable +#ifndef CONF_SERCOM_0_USART_TXEN +#define CONF_SERCOM_0_USART_TXEN 1 +#endif + +// Frame parity +// <0x1=>Even parity +// Parity bit mode for USART frame +// usart_parity +#ifndef CONF_SERCOM_0_USART_PARITY +#define CONF_SERCOM_0_USART_PARITY 1 +#endif + +// Character Size +// <0x0=>8 bits +// <0x1=>9 bits +// <0x5=>5 bits +// <0x6=>6 bits +// <0x7=>7 bits +// Data character size in USART frame +// usart_character_size +#ifndef CONF_SERCOM_0_USART_CHSIZE +#define CONF_SERCOM_0_USART_CHSIZE 0x0 +#endif + +// Stop Bit +// <0=>One stop bit +// <1=>Two stop bits +// Number of stop bits in USART frame +// usart_stop_bit +#ifndef CONF_SERCOM_0_USART_SBMODE +#define CONF_SERCOM_0_USART_SBMODE 0 +#endif + +// Baud rate <1-3000000> +// USART baud rate setting +// usart_baud_rate +#ifndef CONF_SERCOM_0_USART_BAUD +#define CONF_SERCOM_0_USART_BAUD 9600 +#endif +// + +// ISO7816 configuration +// ISO7816 Protocol Type +// <0x1=> T=0 +// <0x0=> T=1 +// Define ISO7816 protocol type as 0. +// usart_iso7816_type +#ifndef CONF_SERCOM_0_USART_ISO7816_PROTOCOL_T +#define CONF_SERCOM_0_USART_ISO7816_PROTOCOL_T 0x1 +#endif + +// ISO7816 Inhibit Not Acknowledge +// <0x0=> NACK is transmitted when a parity error is received. +// <0x1=> NACK is not transmitted when a parity error is received. +// Define whether a NACK is transmitted when a parity error is received. +// usart_inack +#ifndef CONF_SERCOM_0_USART_INACK +#define CONF_SERCOM_0_USART_INACK 0x0 +#endif + +// ISO7816 Disable Successive Not Acknowledge +// <0x0=> The successive receive NACK is disable. +// <0x1=> The successive receive NACK is enable. +// Define whether NACK will be sent on parity error reception. +// usart_dsnack +#ifndef CONF_SERCOM_0_USART_DSNACK +#define CONF_SERCOM_0_USART_DSNACK 0x0 +#endif + +// ISO7816 Maximum Iterations<0-7> +// Define the maximum number of retransmit iterations. +// usart_maxiter +#ifndef CONF_SERCOM_0_USART_MAXITER +#define CONF_SERCOM_0_USART_MAXITER 0x7 +#endif + +// ISO7816 Guard Time +// <0x2=> 2-bit times +// <0x3=> 3-bit times +// <0x4=> 4-bit times +// <0x5=> 5-bit times +// <0x6=> 6-bit times +// <0x7=> 7-bit times +// Define the guard time. +// usart_gtime +#ifndef CONF_SERCOM_0_USART_GTIME +#define CONF_SERCOM_0_USART_GTIME 0x2 +#endif + +// Inverse transmission and reception enabled +// Define inverse transmission and reception enabled. +// usart_inverse_enabled +#ifndef CONF_SERCOM_0_USART_INVERSE_ENABLED +#define CONF_SERCOM_0_USART_INVERSE_ENABLED 0x0 +#endif + +#if (CONF_SERCOM_0_USART_INVERSE_ENABLED == 1) +#define CONF_SERCOM_0_USART_RXINV 0x1 +#define CONF_SERCOM_0_USART_TXINV 0x1 +#else +#define CONF_SERCOM_0_USART_RXINV 0x0 +#define CONF_SERCOM_0_USART_TXINV 0x0 +#endif + +// + +// Advanced configuration +// usart_advanced +#ifndef CONF_SERCOM_0_USART_ADVANCED_CONFIG +#define CONF_SERCOM_0_USART_ADVANCED_CONFIG 0 +#endif + +// Run in stand-by +// Keep the module running in standby sleep mode +// usart_arch_runstdby +#ifndef CONF_SERCOM_0_USART_RUNSTDBY +#define CONF_SERCOM_0_USART_RUNSTDBY 0 +#endif + +// Immediate Buffer Overflow Notification +// Controls when the BUFOVF status bit is asserted +// usart_arch_ibon +#ifndef CONF_SERCOM_0_USART_IBON +#define CONF_SERCOM_0_USART_IBON 0 +#endif + +// Start of Frame Detection Enable +// Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled) +// usart_arch_sfde +#ifndef CONF_SERCOM_0_USART_SFDE +#define CONF_SERCOM_0_USART_SFDE 0 +#endif + +// Collision Detection Enable +// Collision detection enable +// usart_arch_cloden +#ifndef CONF_SERCOM_0_USART_CLODEN +#define CONF_SERCOM_0_USART_CLODEN 0 +#endif + +// Operating Mode +// <0x1=>USART with internal clock +// Drive the shift register by an internal clock generated by the baud rate generator. +// usart_arch_clock_mode +#ifndef CONF_SERCOM_0_USART_MODE +#define CONF_SERCOM_0_USART_MODE 0x1 +#endif + +// Data Order +// <0=>MSB is transmitted first +// <1=>LSB is transmitted first +// Data order of the data bits in the frame +// usart_arch_dord +#ifndef CONF_SERCOM_0_USART_DORD +#define CONF_SERCOM_0_USART_DORD 1 +#endif + +// Debug Stop Mode +// Behavior of the baud-rate generator when CPU is halted by external debugger. +// <0=>Keep running +// <1=>Halt +// usart_arch_dbgstop +#ifndef CONF_SERCOM_0_USART_DEBUG_STOP_MODE +#define CONF_SERCOM_0_USART_DEBUG_STOP_MODE 0 +#endif + +// Does not do anything in USRT mode +#define CONF_SERCOM_0_USART_SAMPR 0x0 +#define CONF_SERCOM_0_USART_SAMPA 0x0 +#define CONF_SERCOM_0_USART_FRACTIONAL 0x0 + +// Does not do anything in UART mode +#define CONF_SERCOM_0_USART_CPOL 0 + +// Does not do anything in USRT mode +#define CONF_SERCOM_0_USART_ENC 0 + +// + +#ifndef CONF_SERCOM_0_USART_CMODE +#define CONF_SERCOM_0_USART_CMODE CONF_SERCOM_0_USART_ISO7816_PROTOCOL_T +#endif + +/* RX is on PIN_PA04 */ +#ifndef CONF_SERCOM_0_USART_RXPO +#define CONF_SERCOM_0_USART_RXPO 0 +#endif + +/* TX uses the same pin with RX */ +#ifndef CONF_SERCOM_0_USART_TXPO +#define CONF_SERCOM_0_USART_TXPO 2 +#endif + +/* Set iso7816 mode */ +#define CONF_SERCOM_0_USART_PMODE (CONF_SERCOM_0_USART_PARITY - 1) +#define CONF_SERCOM_0_USART_FORM 7 + +#if CONF_SERCOM_0_USART_CMODE == 0 +// Calculate BAUD register value in UART mode +#if CONF_SERCOM_0_USART_SAMPR == 0 +#ifndef CONF_SERCOM_0_USART_BAUD_RATE +#define CONF_SERCOM_0_USART_BAUD_RATE \ + 65536 - ((65536 * 16.0f * CONF_SERCOM_0_USART_BAUD) / CONF_GCLK_SERCOM0_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_0_USART_SAMPR == 1 +#ifndef CONF_SERCOM_0_USART_BAUD_RATE +#define CONF_SERCOM_0_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM0_CORE_FREQUENCY) / (CONF_SERCOM_0_USART_BAUD * 16)) - (CONF_SERCOM_0_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_0_USART_SAMPR == 2 +#ifndef CONF_SERCOM_0_USART_BAUD_RATE +#define CONF_SERCOM_0_USART_BAUD_RATE \ + 65536 - ((65536 * 8.0f * CONF_SERCOM_0_USART_BAUD) / CONF_GCLK_SERCOM0_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_0_USART_SAMPR == 3 +#ifndef CONF_SERCOM_0_USART_BAUD_RATE +#define CONF_SERCOM_0_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM0_CORE_FREQUENCY) / (CONF_SERCOM_0_USART_BAUD * 8)) - (CONF_SERCOM_0_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_0_USART_SAMPR == 4 +#ifndef CONF_SERCOM_0_USART_BAUD_RATE +#define CONF_SERCOM_0_USART_BAUD_RATE \ + 65536 - ((65536 * 3.0f * CONF_SERCOM_0_USART_BAUD) / CONF_GCLK_SERCOM0_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#endif + +#elif CONF_SERCOM_0_USART_CMODE == 1 +#ifndef CONF_SERCOM_0_USART_BAUD_RATE +// Calculate BAUD register value in USRT mode +#define CONF_SERCOM_0_USART_BAUD_RATE (CONF_GCLK_SERCOM0_CORE_FREQUENCY) / (2 * CONF_SERCOM_0_USART_BAUD) - 1 +#endif + +#ifndef CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#else +#error CMODE value for SERCOM 0 in USART mode not known +#endif + +#include + +#ifndef CONF_SERCOM_1_USART_ENABLE +#define CONF_SERCOM_1_USART_ENABLE 1 +#endif + +// Basic Configuration + +// Receive buffer enable +// Enable input buffer in SERCOM module +// usart_rx_enable +#ifndef CONF_SERCOM_1_USART_RXEN +#define CONF_SERCOM_1_USART_RXEN 1 +#endif + +// Transmitt buffer enable +// Enable output buffer in SERCOM module +// usart_tx_enable +#ifndef CONF_SERCOM_1_USART_TXEN +#define CONF_SERCOM_1_USART_TXEN 1 +#endif + +// Frame parity +// <0x1=>Even parity +// Parity bit mode for USART frame +// usart_parity +#ifndef CONF_SERCOM_1_USART_PARITY +#define CONF_SERCOM_1_USART_PARITY 1 +#endif + +// Character Size +// <0x0=>8 bits +// <0x1=>9 bits +// <0x5=>5 bits +// <0x6=>6 bits +// <0x7=>7 bits +// Data character size in USART frame +// usart_character_size +#ifndef CONF_SERCOM_1_USART_CHSIZE +#define CONF_SERCOM_1_USART_CHSIZE 0x0 +#endif + +// Stop Bit +// <0=>One stop bit +// <1=>Two stop bits +// Number of stop bits in USART frame +// usart_stop_bit +#ifndef CONF_SERCOM_1_USART_SBMODE +#define CONF_SERCOM_1_USART_SBMODE 0 +#endif + +// Baud rate <1-3000000> +// USART baud rate setting +// usart_baud_rate +#ifndef CONF_SERCOM_1_USART_BAUD +#define CONF_SERCOM_1_USART_BAUD 9600 +#endif +// + +// ISO7816 configuration +// ISO7816 Protocol Type +// <0x1=> T=0 +// <0x0=> T=1 +// Define ISO7816 protocol type as 0. +// usart_iso7816_type +#ifndef CONF_SERCOM_1_USART_ISO7816_PROTOCOL_T +#define CONF_SERCOM_1_USART_ISO7816_PROTOCOL_T 0x1 +#endif + +// ISO7816 Inhibit Not Acknowledge +// <0x0=> NACK is transmitted when a parity error is received. +// <0x1=> NACK is not transmitted when a parity error is received. +// Define whether a NACK is transmitted when a parity error is received. +// usart_inack +#ifndef CONF_SERCOM_1_USART_INACK +#define CONF_SERCOM_1_USART_INACK 0x0 +#endif + +// ISO7816 Disable Successive Not Acknowledge +// <0x0=> The successive receive NACK is disable. +// <0x1=> The successive receive NACK is enable. +// Define whether NACK will be sent on parity error reception. +// usart_dsnack +#ifndef CONF_SERCOM_1_USART_DSNACK +#define CONF_SERCOM_1_USART_DSNACK 0x0 +#endif + +// ISO7816 Maximum Iterations<0-7> +// Define the maximum number of retransmit iterations. +// usart_maxiter +#ifndef CONF_SERCOM_1_USART_MAXITER +#define CONF_SERCOM_1_USART_MAXITER 0x7 +#endif + +// ISO7816 Guard Time +// <0x2=> 2-bit times +// <0x3=> 3-bit times +// <0x4=> 4-bit times +// <0x5=> 5-bit times +// <0x6=> 6-bit times +// <0x7=> 7-bit times +// Define the guard time. +// usart_gtime +#ifndef CONF_SERCOM_1_USART_GTIME +#define CONF_SERCOM_1_USART_GTIME 0x2 +#endif + +// Inverse transmission and reception enabled +// Define inverse transmission and reception enabled. +// usart_inverse_enabled +#ifndef CONF_SERCOM_1_USART_INVERSE_ENABLED +#define CONF_SERCOM_1_USART_INVERSE_ENABLED 0x0 +#endif + +#if (CONF_SERCOM_1_USART_INVERSE_ENABLED == 1) +#define CONF_SERCOM_1_USART_RXINV 0x1 +#define CONF_SERCOM_1_USART_TXINV 0x1 +#else +#define CONF_SERCOM_1_USART_RXINV 0x0 +#define CONF_SERCOM_1_USART_TXINV 0x0 +#endif + +// + +// Advanced configuration +// usart_advanced +#ifndef CONF_SERCOM_1_USART_ADVANCED_CONFIG +#define CONF_SERCOM_1_USART_ADVANCED_CONFIG 0 +#endif + +// Run in stand-by +// Keep the module running in standby sleep mode +// usart_arch_runstdby +#ifndef CONF_SERCOM_1_USART_RUNSTDBY +#define CONF_SERCOM_1_USART_RUNSTDBY 0 +#endif + +// Immediate Buffer Overflow Notification +// Controls when the BUFOVF status bit is asserted +// usart_arch_ibon +#ifndef CONF_SERCOM_1_USART_IBON +#define CONF_SERCOM_1_USART_IBON 0 +#endif + +// Start of Frame Detection Enable +// Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled) +// usart_arch_sfde +#ifndef CONF_SERCOM_1_USART_SFDE +#define CONF_SERCOM_1_USART_SFDE 0 +#endif + +// Collision Detection Enable +// Collision detection enable +// usart_arch_cloden +#ifndef CONF_SERCOM_1_USART_CLODEN +#define CONF_SERCOM_1_USART_CLODEN 0 +#endif + +// Operating Mode +// <0x1=>USART with internal clock +// Drive the shift register by an internal clock generated by the baud rate generator. +// usart_arch_clock_mode +#ifndef CONF_SERCOM_1_USART_MODE +#define CONF_SERCOM_1_USART_MODE 0x1 +#endif + +// Data Order +// <0=>MSB is transmitted first +// <1=>LSB is transmitted first +// Data order of the data bits in the frame +// usart_arch_dord +#ifndef CONF_SERCOM_1_USART_DORD +#define CONF_SERCOM_1_USART_DORD 1 +#endif + +// Debug Stop Mode +// Behavior of the baud-rate generator when CPU is halted by external debugger. +// <0=>Keep running +// <1=>Halt +// usart_arch_dbgstop +#ifndef CONF_SERCOM_1_USART_DEBUG_STOP_MODE +#define CONF_SERCOM_1_USART_DEBUG_STOP_MODE 0 +#endif + +// Does not do anything in USRT mode +#define CONF_SERCOM_1_USART_SAMPR 0x0 +#define CONF_SERCOM_1_USART_SAMPA 0x0 +#define CONF_SERCOM_1_USART_FRACTIONAL 0x0 + +// Does not do anything in UART mode +#define CONF_SERCOM_1_USART_CPOL 0 + +// Does not do anything in USRT mode +#define CONF_SERCOM_1_USART_ENC 0 + +// + +#ifndef CONF_SERCOM_1_USART_CMODE +#define CONF_SERCOM_1_USART_CMODE CONF_SERCOM_1_USART_ISO7816_PROTOCOL_T +#endif + +/* RX is on PIN_PA16 */ +#ifndef CONF_SERCOM_1_USART_RXPO +#define CONF_SERCOM_1_USART_RXPO 0 +#endif + +/* TX uses the same pin with RX */ +#ifndef CONF_SERCOM_1_USART_TXPO +#define CONF_SERCOM_1_USART_TXPO 2 +#endif + +/* Set iso7816 mode */ +#define CONF_SERCOM_1_USART_PMODE (CONF_SERCOM_1_USART_PARITY - 1) +#define CONF_SERCOM_1_USART_FORM 7 + +#if CONF_SERCOM_1_USART_CMODE == 0 +// Calculate BAUD register value in UART mode +#if CONF_SERCOM_1_USART_SAMPR == 0 +#ifndef CONF_SERCOM_1_USART_BAUD_RATE +#define CONF_SERCOM_1_USART_BAUD_RATE \ + 65536 - ((65536 * 16.0f * CONF_SERCOM_1_USART_BAUD) / CONF_GCLK_SERCOM1_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_1_USART_SAMPR == 1 +#ifndef CONF_SERCOM_1_USART_BAUD_RATE +#define CONF_SERCOM_1_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM1_CORE_FREQUENCY) / (CONF_SERCOM_1_USART_BAUD * 16)) - (CONF_SERCOM_1_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_1_USART_SAMPR == 2 +#ifndef CONF_SERCOM_1_USART_BAUD_RATE +#define CONF_SERCOM_1_USART_BAUD_RATE \ + 65536 - ((65536 * 8.0f * CONF_SERCOM_1_USART_BAUD) / CONF_GCLK_SERCOM1_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_1_USART_SAMPR == 3 +#ifndef CONF_SERCOM_1_USART_BAUD_RATE +#define CONF_SERCOM_1_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM1_CORE_FREQUENCY) / (CONF_SERCOM_1_USART_BAUD * 8)) - (CONF_SERCOM_1_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_1_USART_SAMPR == 4 +#ifndef CONF_SERCOM_1_USART_BAUD_RATE +#define CONF_SERCOM_1_USART_BAUD_RATE \ + 65536 - ((65536 * 3.0f * CONF_SERCOM_1_USART_BAUD) / CONF_GCLK_SERCOM1_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#endif + +#elif CONF_SERCOM_1_USART_CMODE == 1 +#ifndef CONF_SERCOM_1_USART_BAUD_RATE +// Calculate BAUD register value in USRT mode +#define CONF_SERCOM_1_USART_BAUD_RATE (CONF_GCLK_SERCOM1_CORE_FREQUENCY) / (2 * CONF_SERCOM_1_USART_BAUD) - 1 +#endif + +#ifndef CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#else +#error CMODE value for SERCOM 1 in USART mode not known +#endif + +#include + +#ifndef CONF_SERCOM_2_USART_ENABLE +#define CONF_SERCOM_2_USART_ENABLE 1 +#endif + +// Basic Configuration + +// Receive buffer enable +// Enable input buffer in SERCOM module +// usart_rx_enable +#ifndef CONF_SERCOM_2_USART_RXEN +#define CONF_SERCOM_2_USART_RXEN 1 +#endif + +// Transmitt buffer enable +// Enable output buffer in SERCOM module +// usart_tx_enable +#ifndef CONF_SERCOM_2_USART_TXEN +#define CONF_SERCOM_2_USART_TXEN 1 +#endif + +// Frame parity +// <0x1=>Even parity +// Parity bit mode for USART frame +// usart_parity +#ifndef CONF_SERCOM_2_USART_PARITY +#define CONF_SERCOM_2_USART_PARITY 1 +#endif + +// Character Size +// <0x0=>8 bits +// <0x1=>9 bits +// <0x5=>5 bits +// <0x6=>6 bits +// <0x7=>7 bits +// Data character size in USART frame +// usart_character_size +#ifndef CONF_SERCOM_2_USART_CHSIZE +#define CONF_SERCOM_2_USART_CHSIZE 0x0 +#endif + +// Stop Bit +// <0=>One stop bit +// <1=>Two stop bits +// Number of stop bits in USART frame +// usart_stop_bit +#ifndef CONF_SERCOM_2_USART_SBMODE +#define CONF_SERCOM_2_USART_SBMODE 0 +#endif + +// Baud rate <1-3000000> +// USART baud rate setting +// usart_baud_rate +#ifndef CONF_SERCOM_2_USART_BAUD +#define CONF_SERCOM_2_USART_BAUD 9600 +#endif +// + +// ISO7816 configuration +// ISO7816 Protocol Type +// <0x1=> T=0 +// <0x0=> T=1 +// Define ISO7816 protocol type as 0. +// usart_iso7816_type +#ifndef CONF_SERCOM_2_USART_ISO7816_PROTOCOL_T +#define CONF_SERCOM_2_USART_ISO7816_PROTOCOL_T 0x1 +#endif + +// ISO7816 Inhibit Not Acknowledge +// <0x0=> NACK is transmitted when a parity error is received. +// <0x1=> NACK is not transmitted when a parity error is received. +// Define whether a NACK is transmitted when a parity error is received. +// usart_inack +#ifndef CONF_SERCOM_2_USART_INACK +#define CONF_SERCOM_2_USART_INACK 0x0 +#endif + +// ISO7816 Disable Successive Not Acknowledge +// <0x0=> The successive receive NACK is disable. +// <0x1=> The successive receive NACK is enable. +// Define whether NACK will be sent on parity error reception. +// usart_dsnack +#ifndef CONF_SERCOM_2_USART_DSNACK +#define CONF_SERCOM_2_USART_DSNACK 0x0 +#endif + +// ISO7816 Maximum Iterations<0-7> +// Define the maximum number of retransmit iterations. +// usart_maxiter +#ifndef CONF_SERCOM_2_USART_MAXITER +#define CONF_SERCOM_2_USART_MAXITER 0x7 +#endif + +// ISO7816 Guard Time +// <0x2=> 2-bit times +// <0x3=> 3-bit times +// <0x4=> 4-bit times +// <0x5=> 5-bit times +// <0x6=> 6-bit times +// <0x7=> 7-bit times +// Define the guard time. +// usart_gtime +#ifndef CONF_SERCOM_2_USART_GTIME +#define CONF_SERCOM_2_USART_GTIME 0x2 +#endif + +// Inverse transmission and reception enabled +// Define inverse transmission and reception enabled. +// usart_inverse_enabled +#ifndef CONF_SERCOM_2_USART_INVERSE_ENABLED +#define CONF_SERCOM_2_USART_INVERSE_ENABLED 0x0 +#endif + +#if (CONF_SERCOM_2_USART_INVERSE_ENABLED == 1) +#define CONF_SERCOM_2_USART_RXINV 0x1 +#define CONF_SERCOM_2_USART_TXINV 0x1 +#else +#define CONF_SERCOM_2_USART_RXINV 0x0 +#define CONF_SERCOM_2_USART_TXINV 0x0 +#endif + +// + +// Advanced configuration +// usart_advanced +#ifndef CONF_SERCOM_2_USART_ADVANCED_CONFIG +#define CONF_SERCOM_2_USART_ADVANCED_CONFIG 0 +#endif + +// Run in stand-by +// Keep the module running in standby sleep mode +// usart_arch_runstdby +#ifndef CONF_SERCOM_2_USART_RUNSTDBY +#define CONF_SERCOM_2_USART_RUNSTDBY 0 +#endif + +// Immediate Buffer Overflow Notification +// Controls when the BUFOVF status bit is asserted +// usart_arch_ibon +#ifndef CONF_SERCOM_2_USART_IBON +#define CONF_SERCOM_2_USART_IBON 0 +#endif + +// Start of Frame Detection Enable +// Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled) +// usart_arch_sfde +#ifndef CONF_SERCOM_2_USART_SFDE +#define CONF_SERCOM_2_USART_SFDE 0 +#endif + +// Collision Detection Enable +// Collision detection enable +// usart_arch_cloden +#ifndef CONF_SERCOM_2_USART_CLODEN +#define CONF_SERCOM_2_USART_CLODEN 0 +#endif + +// Operating Mode +// <0x1=>USART with internal clock +// Drive the shift register by an internal clock generated by the baud rate generator. +// usart_arch_clock_mode +#ifndef CONF_SERCOM_2_USART_MODE +#define CONF_SERCOM_2_USART_MODE 0x1 +#endif + +// Data Order +// <0=>MSB is transmitted first +// <1=>LSB is transmitted first +// Data order of the data bits in the frame +// usart_arch_dord +#ifndef CONF_SERCOM_2_USART_DORD +#define CONF_SERCOM_2_USART_DORD 1 +#endif + +// Debug Stop Mode +// Behavior of the baud-rate generator when CPU is halted by external debugger. +// <0=>Keep running +// <1=>Halt +// usart_arch_dbgstop +#ifndef CONF_SERCOM_2_USART_DEBUG_STOP_MODE +#define CONF_SERCOM_2_USART_DEBUG_STOP_MODE 0 +#endif + +// Does not do anything in USRT mode +#define CONF_SERCOM_2_USART_SAMPR 0x0 +#define CONF_SERCOM_2_USART_SAMPA 0x0 +#define CONF_SERCOM_2_USART_FRACTIONAL 0x0 + +// Does not do anything in UART mode +#define CONF_SERCOM_2_USART_CPOL 0 + +// Does not do anything in USRT mode +#define CONF_SERCOM_2_USART_ENC 0 + +// + +#ifndef CONF_SERCOM_2_USART_CMODE +#define CONF_SERCOM_2_USART_CMODE CONF_SERCOM_2_USART_ISO7816_PROTOCOL_T +#endif + +/* RX is on PIN_PA09 */ +#ifndef CONF_SERCOM_2_USART_RXPO +#define CONF_SERCOM_2_USART_RXPO 0 +#endif + +/* TX uses the same pin with RX */ +#ifndef CONF_SERCOM_2_USART_TXPO +#define CONF_SERCOM_2_USART_TXPO 2 +#endif + +/* Set iso7816 mode */ +#define CONF_SERCOM_2_USART_PMODE (CONF_SERCOM_2_USART_PARITY - 1) +#define CONF_SERCOM_2_USART_FORM 7 + +#if CONF_SERCOM_2_USART_CMODE == 0 +// Calculate BAUD register value in UART mode +#if CONF_SERCOM_2_USART_SAMPR == 0 +#ifndef CONF_SERCOM_2_USART_BAUD_RATE +#define CONF_SERCOM_2_USART_BAUD_RATE \ + 65536 - ((65536 * 16.0f * CONF_SERCOM_2_USART_BAUD) / CONF_GCLK_SERCOM2_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_2_USART_SAMPR == 1 +#ifndef CONF_SERCOM_2_USART_BAUD_RATE +#define CONF_SERCOM_2_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM2_CORE_FREQUENCY) / (CONF_SERCOM_2_USART_BAUD * 16)) - (CONF_SERCOM_2_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_2_USART_SAMPR == 2 +#ifndef CONF_SERCOM_2_USART_BAUD_RATE +#define CONF_SERCOM_2_USART_BAUD_RATE \ + 65536 - ((65536 * 8.0f * CONF_SERCOM_2_USART_BAUD) / CONF_GCLK_SERCOM2_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_2_USART_SAMPR == 3 +#ifndef CONF_SERCOM_2_USART_BAUD_RATE +#define CONF_SERCOM_2_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM2_CORE_FREQUENCY) / (CONF_SERCOM_2_USART_BAUD * 8)) - (CONF_SERCOM_2_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_2_USART_SAMPR == 4 +#ifndef CONF_SERCOM_2_USART_BAUD_RATE +#define CONF_SERCOM_2_USART_BAUD_RATE \ + 65536 - ((65536 * 3.0f * CONF_SERCOM_2_USART_BAUD) / CONF_GCLK_SERCOM2_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#endif + +#elif CONF_SERCOM_2_USART_CMODE == 1 +#ifndef CONF_SERCOM_2_USART_BAUD_RATE +// Calculate BAUD register value in USRT mode +#define CONF_SERCOM_2_USART_BAUD_RATE (CONF_GCLK_SERCOM2_CORE_FREQUENCY) / (2 * CONF_SERCOM_2_USART_BAUD) - 1 +#endif + +#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#else +#error CMODE value for SERCOM 2 in USART mode not known +#endif + +#include + +#ifndef CONF_SERCOM_3_USART_ENABLE +#define CONF_SERCOM_3_USART_ENABLE 1 +#endif + +// Basic Configuration + +// Receive buffer enable +// Enable input buffer in SERCOM module +// usart_rx_enable +#ifndef CONF_SERCOM_3_USART_RXEN +#define CONF_SERCOM_3_USART_RXEN 1 +#endif + +// Transmitt buffer enable +// Enable output buffer in SERCOM module +// usart_tx_enable +#ifndef CONF_SERCOM_3_USART_TXEN +#define CONF_SERCOM_3_USART_TXEN 1 +#endif + +// Frame parity +// <0x1=>Even parity +// Parity bit mode for USART frame +// usart_parity +#ifndef CONF_SERCOM_3_USART_PARITY +#define CONF_SERCOM_3_USART_PARITY 1 +#endif + +// Character Size +// <0x0=>8 bits +// <0x1=>9 bits +// <0x5=>5 bits +// <0x6=>6 bits +// <0x7=>7 bits +// Data character size in USART frame +// usart_character_size +#ifndef CONF_SERCOM_3_USART_CHSIZE +#define CONF_SERCOM_3_USART_CHSIZE 0x0 +#endif + +// Stop Bit +// <0=>One stop bit +// <1=>Two stop bits +// Number of stop bits in USART frame +// usart_stop_bit +#ifndef CONF_SERCOM_3_USART_SBMODE +#define CONF_SERCOM_3_USART_SBMODE 0 +#endif + +// Baud rate <1-3000000> +// USART baud rate setting +// usart_baud_rate +#ifndef CONF_SERCOM_3_USART_BAUD +#define CONF_SERCOM_3_USART_BAUD 9600 +#endif +// + +// ISO7816 configuration +// ISO7816 Protocol Type +// <0x1=> T=0 +// <0x0=> T=1 +// Define ISO7816 protocol type as 0. +// usart_iso7816_type +#ifndef CONF_SERCOM_3_USART_ISO7816_PROTOCOL_T +#define CONF_SERCOM_3_USART_ISO7816_PROTOCOL_T 0x1 +#endif + +// ISO7816 Inhibit Not Acknowledge +// <0x0=> NACK is transmitted when a parity error is received. +// <0x1=> NACK is not transmitted when a parity error is received. +// Define whether a NACK is transmitted when a parity error is received. +// usart_inack +#ifndef CONF_SERCOM_3_USART_INACK +#define CONF_SERCOM_3_USART_INACK 0x0 +#endif + +// ISO7816 Disable Successive Not Acknowledge +// <0x0=> The successive receive NACK is disable. +// <0x1=> The successive receive NACK is enable. +// Define whether NACK will be sent on parity error reception. +// usart_dsnack +#ifndef CONF_SERCOM_3_USART_DSNACK +#define CONF_SERCOM_3_USART_DSNACK 0x0 +#endif + +// ISO7816 Maximum Iterations<0-7> +// Define the maximum number of retransmit iterations. +// usart_maxiter +#ifndef CONF_SERCOM_3_USART_MAXITER +#define CONF_SERCOM_3_USART_MAXITER 0x7 +#endif + +// ISO7816 Guard Time +// <0x2=> 2-bit times +// <0x3=> 3-bit times +// <0x4=> 4-bit times +// <0x5=> 5-bit times +// <0x6=> 6-bit times +// <0x7=> 7-bit times +// Define the guard time. +// usart_gtime +#ifndef CONF_SERCOM_3_USART_GTIME +#define CONF_SERCOM_3_USART_GTIME 0x2 +#endif + +// Inverse transmission and reception enabled +// Define inverse transmission and reception enabled. +// usart_inverse_enabled +#ifndef CONF_SERCOM_3_USART_INVERSE_ENABLED +#define CONF_SERCOM_3_USART_INVERSE_ENABLED 0x0 +#endif + +#if (CONF_SERCOM_3_USART_INVERSE_ENABLED == 1) +#define CONF_SERCOM_3_USART_RXINV 0x1 +#define CONF_SERCOM_3_USART_TXINV 0x1 +#else +#define CONF_SERCOM_3_USART_RXINV 0x0 +#define CONF_SERCOM_3_USART_TXINV 0x0 +#endif + +// + +// Advanced configuration +// usart_advanced +#ifndef CONF_SERCOM_3_USART_ADVANCED_CONFIG +#define CONF_SERCOM_3_USART_ADVANCED_CONFIG 0 +#endif + +// Run in stand-by +// Keep the module running in standby sleep mode +// usart_arch_runstdby +#ifndef CONF_SERCOM_3_USART_RUNSTDBY +#define CONF_SERCOM_3_USART_RUNSTDBY 0 +#endif + +// Immediate Buffer Overflow Notification +// Controls when the BUFOVF status bit is asserted +// usart_arch_ibon +#ifndef CONF_SERCOM_3_USART_IBON +#define CONF_SERCOM_3_USART_IBON 0 +#endif + +// Start of Frame Detection Enable +// Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled) +// usart_arch_sfde +#ifndef CONF_SERCOM_3_USART_SFDE +#define CONF_SERCOM_3_USART_SFDE 0 +#endif + +// Collision Detection Enable +// Collision detection enable +// usart_arch_cloden +#ifndef CONF_SERCOM_3_USART_CLODEN +#define CONF_SERCOM_3_USART_CLODEN 0 +#endif + +// Operating Mode +// <0x1=>USART with internal clock +// Drive the shift register by an internal clock generated by the baud rate generator. +// usart_arch_clock_mode +#ifndef CONF_SERCOM_3_USART_MODE +#define CONF_SERCOM_3_USART_MODE 0x1 +#endif + +// Data Order +// <0=>MSB is transmitted first +// <1=>LSB is transmitted first +// Data order of the data bits in the frame +// usart_arch_dord +#ifndef CONF_SERCOM_3_USART_DORD +#define CONF_SERCOM_3_USART_DORD 1 +#endif + +// Debug Stop Mode +// Behavior of the baud-rate generator when CPU is halted by external debugger. +// <0=>Keep running +// <1=>Halt +// usart_arch_dbgstop +#ifndef CONF_SERCOM_3_USART_DEBUG_STOP_MODE +#define CONF_SERCOM_3_USART_DEBUG_STOP_MODE 0 +#endif + +// Does not do anything in USRT mode +#define CONF_SERCOM_3_USART_SAMPR 0x0 +#define CONF_SERCOM_3_USART_SAMPA 0x0 +#define CONF_SERCOM_3_USART_FRACTIONAL 0x0 + +// Does not do anything in UART mode +#define CONF_SERCOM_3_USART_CPOL 0 + +// Does not do anything in USRT mode +#define CONF_SERCOM_3_USART_ENC 0 + +// + +#ifndef CONF_SERCOM_3_USART_CMODE +#define CONF_SERCOM_3_USART_CMODE CONF_SERCOM_3_USART_ISO7816_PROTOCOL_T +#endif + +/* RX is on PIN_PB20 */ +#ifndef CONF_SERCOM_3_USART_RXPO +#define CONF_SERCOM_3_USART_RXPO 0 +#endif + +/* TX uses the same pin with RX */ +#ifndef CONF_SERCOM_3_USART_TXPO +#define CONF_SERCOM_3_USART_TXPO 2 +#endif + +/* Set iso7816 mode */ +#define CONF_SERCOM_3_USART_PMODE (CONF_SERCOM_3_USART_PARITY - 1) +#define CONF_SERCOM_3_USART_FORM 7 + +#if CONF_SERCOM_3_USART_CMODE == 0 +// Calculate BAUD register value in UART mode +#if CONF_SERCOM_3_USART_SAMPR == 0 +#ifndef CONF_SERCOM_3_USART_BAUD_RATE +#define CONF_SERCOM_3_USART_BAUD_RATE \ + 65536 - ((65536 * 16.0f * CONF_SERCOM_3_USART_BAUD) / CONF_GCLK_SERCOM3_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_3_USART_SAMPR == 1 +#ifndef CONF_SERCOM_3_USART_BAUD_RATE +#define CONF_SERCOM_3_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM3_CORE_FREQUENCY) / (CONF_SERCOM_3_USART_BAUD * 16)) - (CONF_SERCOM_3_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_3_USART_SAMPR == 2 +#ifndef CONF_SERCOM_3_USART_BAUD_RATE +#define CONF_SERCOM_3_USART_BAUD_RATE \ + 65536 - ((65536 * 8.0f * CONF_SERCOM_3_USART_BAUD) / CONF_GCLK_SERCOM3_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_3_USART_SAMPR == 3 +#ifndef CONF_SERCOM_3_USART_BAUD_RATE +#define CONF_SERCOM_3_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM3_CORE_FREQUENCY) / (CONF_SERCOM_3_USART_BAUD * 8)) - (CONF_SERCOM_3_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_3_USART_SAMPR == 4 +#ifndef CONF_SERCOM_3_USART_BAUD_RATE +#define CONF_SERCOM_3_USART_BAUD_RATE \ + 65536 - ((65536 * 3.0f * CONF_SERCOM_3_USART_BAUD) / CONF_GCLK_SERCOM3_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#endif + +#elif CONF_SERCOM_3_USART_CMODE == 1 +#ifndef CONF_SERCOM_3_USART_BAUD_RATE +// Calculate BAUD register value in USRT mode +#define CONF_SERCOM_3_USART_BAUD_RATE (CONF_GCLK_SERCOM3_CORE_FREQUENCY) / (2 * CONF_SERCOM_3_USART_BAUD) - 1 +#endif + +#ifndef CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#else +#error CMODE value for SERCOM 3 in USART mode not known +#endif + +#include + +#ifndef CONF_SERCOM_4_USART_ENABLE +#define CONF_SERCOM_4_USART_ENABLE 1 +#endif + +// Basic Configuration + +// Receive buffer enable +// Enable input buffer in SERCOM module +// usart_rx_enable +#ifndef CONF_SERCOM_4_USART_RXEN +#define CONF_SERCOM_4_USART_RXEN 1 +#endif + +// Transmitt buffer enable +// Enable output buffer in SERCOM module +// usart_tx_enable +#ifndef CONF_SERCOM_4_USART_TXEN +#define CONF_SERCOM_4_USART_TXEN 1 +#endif + +// Frame parity +// <0x1=>Even parity +// Parity bit mode for USART frame +// usart_parity +#ifndef CONF_SERCOM_4_USART_PARITY +#define CONF_SERCOM_4_USART_PARITY 1 +#endif + +// Character Size +// <0x0=>8 bits +// <0x1=>9 bits +// <0x5=>5 bits +// <0x6=>6 bits +// <0x7=>7 bits +// Data character size in USART frame +// usart_character_size +#ifndef CONF_SERCOM_4_USART_CHSIZE +#define CONF_SERCOM_4_USART_CHSIZE 0x0 +#endif + +// Stop Bit +// <0=>One stop bit +// <1=>Two stop bits +// Number of stop bits in USART frame +// usart_stop_bit +#ifndef CONF_SERCOM_4_USART_SBMODE +#define CONF_SERCOM_4_USART_SBMODE 0 +#endif + +// Baud rate <1-3000000> +// USART baud rate setting +// usart_baud_rate +#ifndef CONF_SERCOM_4_USART_BAUD +#define CONF_SERCOM_4_USART_BAUD 9600 +#endif +// + +// ISO7816 configuration +// ISO7816 Protocol Type +// <0x1=> T=0 +// <0x0=> T=1 +// Define ISO7816 protocol type as 0. +// usart_iso7816_type +#ifndef CONF_SERCOM_4_USART_ISO7816_PROTOCOL_T +#define CONF_SERCOM_4_USART_ISO7816_PROTOCOL_T 0x1 +#endif + +// ISO7816 Inhibit Not Acknowledge +// <0x0=> NACK is transmitted when a parity error is received. +// <0x1=> NACK is not transmitted when a parity error is received. +// Define whether a NACK is transmitted when a parity error is received. +// usart_inack +#ifndef CONF_SERCOM_4_USART_INACK +#define CONF_SERCOM_4_USART_INACK 0x0 +#endif + +// ISO7816 Disable Successive Not Acknowledge +// <0x0=> The successive receive NACK is disable. +// <0x1=> The successive receive NACK is enable. +// Define whether NACK will be sent on parity error reception. +// usart_dsnack +#ifndef CONF_SERCOM_4_USART_DSNACK +#define CONF_SERCOM_4_USART_DSNACK 0x0 +#endif + +// ISO7816 Maximum Iterations<0-7> +// Define the maximum number of retransmit iterations. +// usart_maxiter +#ifndef CONF_SERCOM_4_USART_MAXITER +#define CONF_SERCOM_4_USART_MAXITER 0x7 +#endif + +// ISO7816 Guard Time +// <0x2=> 2-bit times +// <0x3=> 3-bit times +// <0x4=> 4-bit times +// <0x5=> 5-bit times +// <0x6=> 6-bit times +// <0x7=> 7-bit times +// Define the guard time. +// usart_gtime +#ifndef CONF_SERCOM_4_USART_GTIME +#define CONF_SERCOM_4_USART_GTIME 0x2 +#endif + +// Inverse transmission and reception enabled +// Define inverse transmission and reception enabled. +// usart_inverse_enabled +#ifndef CONF_SERCOM_4_USART_INVERSE_ENABLED +#define CONF_SERCOM_4_USART_INVERSE_ENABLED 0x0 +#endif + +#if (CONF_SERCOM_4_USART_INVERSE_ENABLED == 1) +#define CONF_SERCOM_4_USART_RXINV 0x1 +#define CONF_SERCOM_4_USART_TXINV 0x1 +#else +#define CONF_SERCOM_4_USART_RXINV 0x0 +#define CONF_SERCOM_4_USART_TXINV 0x0 +#endif + +// + +// Advanced configuration +// usart_advanced +#ifndef CONF_SERCOM_4_USART_ADVANCED_CONFIG +#define CONF_SERCOM_4_USART_ADVANCED_CONFIG 0 +#endif + +// Run in stand-by +// Keep the module running in standby sleep mode +// usart_arch_runstdby +#ifndef CONF_SERCOM_4_USART_RUNSTDBY +#define CONF_SERCOM_4_USART_RUNSTDBY 0 +#endif + +// Immediate Buffer Overflow Notification +// Controls when the BUFOVF status bit is asserted +// usart_arch_ibon +#ifndef CONF_SERCOM_4_USART_IBON +#define CONF_SERCOM_4_USART_IBON 0 +#endif + +// Start of Frame Detection Enable +// Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled) +// usart_arch_sfde +#ifndef CONF_SERCOM_4_USART_SFDE +#define CONF_SERCOM_4_USART_SFDE 0 +#endif + +// Collision Detection Enable +// Collision detection enable +// usart_arch_cloden +#ifndef CONF_SERCOM_4_USART_CLODEN +#define CONF_SERCOM_4_USART_CLODEN 0 +#endif + +// Operating Mode +// <0x1=>USART with internal clock +// Drive the shift register by an internal clock generated by the baud rate generator. +// usart_arch_clock_mode +#ifndef CONF_SERCOM_4_USART_MODE +#define CONF_SERCOM_4_USART_MODE 0x1 +#endif + +// Data Order +// <0=>MSB is transmitted first +// <1=>LSB is transmitted first +// Data order of the data bits in the frame +// usart_arch_dord +#ifndef CONF_SERCOM_4_USART_DORD +#define CONF_SERCOM_4_USART_DORD 1 +#endif + +// Debug Stop Mode +// Behavior of the baud-rate generator when CPU is halted by external debugger. +// <0=>Keep running +// <1=>Halt +// usart_arch_dbgstop +#ifndef CONF_SERCOM_4_USART_DEBUG_STOP_MODE +#define CONF_SERCOM_4_USART_DEBUG_STOP_MODE 0 +#endif + +// Does not do anything in USRT mode +#define CONF_SERCOM_4_USART_SAMPR 0x0 +#define CONF_SERCOM_4_USART_SAMPA 0x0 +#define CONF_SERCOM_4_USART_FRACTIONAL 0x0 + +// Does not do anything in UART mode +#define CONF_SERCOM_4_USART_CPOL 0 + +// Does not do anything in USRT mode +#define CONF_SERCOM_4_USART_ENC 0 + +// + +#ifndef CONF_SERCOM_4_USART_CMODE +#define CONF_SERCOM_4_USART_CMODE CONF_SERCOM_4_USART_ISO7816_PROTOCOL_T +#endif + +/* RX is on PIN_PB08 */ +#ifndef CONF_SERCOM_4_USART_RXPO +#define CONF_SERCOM_4_USART_RXPO 0 +#endif + +/* TX uses the same pin with RX */ +#ifndef CONF_SERCOM_4_USART_TXPO +#define CONF_SERCOM_4_USART_TXPO 2 +#endif + +/* Set iso7816 mode */ +#define CONF_SERCOM_4_USART_PMODE (CONF_SERCOM_4_USART_PARITY - 1) +#define CONF_SERCOM_4_USART_FORM 7 + +#if CONF_SERCOM_4_USART_CMODE == 0 +// Calculate BAUD register value in UART mode +#if CONF_SERCOM_4_USART_SAMPR == 0 +#ifndef CONF_SERCOM_4_USART_BAUD_RATE +#define CONF_SERCOM_4_USART_BAUD_RATE \ + 65536 - ((65536 * 16.0f * CONF_SERCOM_4_USART_BAUD) / CONF_GCLK_SERCOM4_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_4_USART_SAMPR == 1 +#ifndef CONF_SERCOM_4_USART_BAUD_RATE +#define CONF_SERCOM_4_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM4_CORE_FREQUENCY) / (CONF_SERCOM_4_USART_BAUD * 16)) - (CONF_SERCOM_4_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_4_USART_SAMPR == 2 +#ifndef CONF_SERCOM_4_USART_BAUD_RATE +#define CONF_SERCOM_4_USART_BAUD_RATE \ + 65536 - ((65536 * 8.0f * CONF_SERCOM_4_USART_BAUD) / CONF_GCLK_SERCOM4_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_4_USART_SAMPR == 3 +#ifndef CONF_SERCOM_4_USART_BAUD_RATE +#define CONF_SERCOM_4_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM4_CORE_FREQUENCY) / (CONF_SERCOM_4_USART_BAUD * 8)) - (CONF_SERCOM_4_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_4_USART_SAMPR == 4 +#ifndef CONF_SERCOM_4_USART_BAUD_RATE +#define CONF_SERCOM_4_USART_BAUD_RATE \ + 65536 - ((65536 * 3.0f * CONF_SERCOM_4_USART_BAUD) / CONF_GCLK_SERCOM4_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#endif + +#elif CONF_SERCOM_4_USART_CMODE == 1 +#ifndef CONF_SERCOM_4_USART_BAUD_RATE +// Calculate BAUD register value in USRT mode +#define CONF_SERCOM_4_USART_BAUD_RATE (CONF_GCLK_SERCOM4_CORE_FREQUENCY) / (2 * CONF_SERCOM_4_USART_BAUD) - 1 +#endif + +#ifndef CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#else +#error CMODE value for SERCOM 4 in USART mode not known +#endif + +#include + +#ifndef CONF_SERCOM_5_USART_ENABLE +#define CONF_SERCOM_5_USART_ENABLE 1 +#endif + +// Basic Configuration + +// Receive buffer enable +// Enable input buffer in SERCOM module +// usart_rx_enable +#ifndef CONF_SERCOM_5_USART_RXEN +#define CONF_SERCOM_5_USART_RXEN 1 +#endif + +// Transmitt buffer enable +// Enable output buffer in SERCOM module +// usart_tx_enable +#ifndef CONF_SERCOM_5_USART_TXEN +#define CONF_SERCOM_5_USART_TXEN 1 +#endif + +// Frame parity +// <0x1=>Even parity +// Parity bit mode for USART frame +// usart_parity +#ifndef CONF_SERCOM_5_USART_PARITY +#define CONF_SERCOM_5_USART_PARITY 1 +#endif + +// Character Size +// <0x0=>8 bits +// <0x1=>9 bits +// <0x5=>5 bits +// <0x6=>6 bits +// <0x7=>7 bits +// Data character size in USART frame +// usart_character_size +#ifndef CONF_SERCOM_5_USART_CHSIZE +#define CONF_SERCOM_5_USART_CHSIZE 0x0 +#endif + +// Stop Bit +// <0=>One stop bit +// <1=>Two stop bits +// Number of stop bits in USART frame +// usart_stop_bit +#ifndef CONF_SERCOM_5_USART_SBMODE +#define CONF_SERCOM_5_USART_SBMODE 0 +#endif + +// Baud rate <1-3000000> +// USART baud rate setting +// usart_baud_rate +#ifndef CONF_SERCOM_5_USART_BAUD +#define CONF_SERCOM_5_USART_BAUD 9600 +#endif +// + +// ISO7816 configuration +// ISO7816 Protocol Type +// <0x1=> T=0 +// <0x0=> T=1 +// Define ISO7816 protocol type as 0. +// usart_iso7816_type +#ifndef CONF_SERCOM_5_USART_ISO7816_PROTOCOL_T +#define CONF_SERCOM_5_USART_ISO7816_PROTOCOL_T 0x1 +#endif + +// ISO7816 Inhibit Not Acknowledge +// <0x0=> NACK is transmitted when a parity error is received. +// <0x1=> NACK is not transmitted when a parity error is received. +// Define whether a NACK is transmitted when a parity error is received. +// usart_inack +#ifndef CONF_SERCOM_5_USART_INACK +#define CONF_SERCOM_5_USART_INACK 0x0 +#endif + +// ISO7816 Disable Successive Not Acknowledge +// <0x0=> The successive receive NACK is disable. +// <0x1=> The successive receive NACK is enable. +// Define whether NACK will be sent on parity error reception. +// usart_dsnack +#ifndef CONF_SERCOM_5_USART_DSNACK +#define CONF_SERCOM_5_USART_DSNACK 0x0 +#endif + +// ISO7816 Maximum Iterations<0-7> +// Define the maximum number of retransmit iterations. +// usart_maxiter +#ifndef CONF_SERCOM_5_USART_MAXITER +#define CONF_SERCOM_5_USART_MAXITER 0x7 +#endif + +// ISO7816 Guard Time +// <0x2=> 2-bit times +// <0x3=> 3-bit times +// <0x4=> 4-bit times +// <0x5=> 5-bit times +// <0x6=> 6-bit times +// <0x7=> 7-bit times +// Define the guard time. +// usart_gtime +#ifndef CONF_SERCOM_5_USART_GTIME +#define CONF_SERCOM_5_USART_GTIME 0x2 +#endif + +// Inverse transmission and reception enabled +// Define inverse transmission and reception enabled. +// usart_inverse_enabled +#ifndef CONF_SERCOM_5_USART_INVERSE_ENABLED +#define CONF_SERCOM_5_USART_INVERSE_ENABLED 0x0 +#endif + +#if (CONF_SERCOM_5_USART_INVERSE_ENABLED == 1) +#define CONF_SERCOM_5_USART_RXINV 0x1 +#define CONF_SERCOM_5_USART_TXINV 0x1 +#else +#define CONF_SERCOM_5_USART_RXINV 0x0 +#define CONF_SERCOM_5_USART_TXINV 0x0 +#endif + +// + +// Advanced configuration +// usart_advanced +#ifndef CONF_SERCOM_5_USART_ADVANCED_CONFIG +#define CONF_SERCOM_5_USART_ADVANCED_CONFIG 0 +#endif + +// Run in stand-by +// Keep the module running in standby sleep mode +// usart_arch_runstdby +#ifndef CONF_SERCOM_5_USART_RUNSTDBY +#define CONF_SERCOM_5_USART_RUNSTDBY 0 +#endif + +// Immediate Buffer Overflow Notification +// Controls when the BUFOVF status bit is asserted +// usart_arch_ibon +#ifndef CONF_SERCOM_5_USART_IBON +#define CONF_SERCOM_5_USART_IBON 0 +#endif + +// Start of Frame Detection Enable +// Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled) +// usart_arch_sfde +#ifndef CONF_SERCOM_5_USART_SFDE +#define CONF_SERCOM_5_USART_SFDE 0 +#endif + +// Collision Detection Enable +// Collision detection enable +// usart_arch_cloden +#ifndef CONF_SERCOM_5_USART_CLODEN +#define CONF_SERCOM_5_USART_CLODEN 0 +#endif + +// Operating Mode +// <0x1=>USART with internal clock +// Drive the shift register by an internal clock generated by the baud rate generator. +// usart_arch_clock_mode +#ifndef CONF_SERCOM_5_USART_MODE +#define CONF_SERCOM_5_USART_MODE 0x1 +#endif + +// Data Order +// <0=>MSB is transmitted first +// <1=>LSB is transmitted first +// Data order of the data bits in the frame +// usart_arch_dord +#ifndef CONF_SERCOM_5_USART_DORD +#define CONF_SERCOM_5_USART_DORD 1 +#endif + +// Debug Stop Mode +// Behavior of the baud-rate generator when CPU is halted by external debugger. +// <0=>Keep running +// <1=>Halt +// usart_arch_dbgstop +#ifndef CONF_SERCOM_5_USART_DEBUG_STOP_MODE +#define CONF_SERCOM_5_USART_DEBUG_STOP_MODE 0 +#endif + +// Does not do anything in USRT mode +#define CONF_SERCOM_5_USART_SAMPR 0x0 +#define CONF_SERCOM_5_USART_SAMPA 0x0 +#define CONF_SERCOM_5_USART_FRACTIONAL 0x0 + +// Does not do anything in UART mode +#define CONF_SERCOM_5_USART_CPOL 0 + +// Does not do anything in USRT mode +#define CONF_SERCOM_5_USART_ENC 0 + +// + +#ifndef CONF_SERCOM_5_USART_CMODE +#define CONF_SERCOM_5_USART_CMODE CONF_SERCOM_5_USART_ISO7816_PROTOCOL_T +#endif + +/* RX is on PIN_PB16 */ +#ifndef CONF_SERCOM_5_USART_RXPO +#define CONF_SERCOM_5_USART_RXPO 0 +#endif + +/* TX uses the same pin with RX */ +#ifndef CONF_SERCOM_5_USART_TXPO +#define CONF_SERCOM_5_USART_TXPO 2 +#endif + +/* Set iso7816 mode */ +#define CONF_SERCOM_5_USART_PMODE (CONF_SERCOM_5_USART_PARITY - 1) +#define CONF_SERCOM_5_USART_FORM 7 + +#if CONF_SERCOM_5_USART_CMODE == 0 +// Calculate BAUD register value in UART mode +#if CONF_SERCOM_5_USART_SAMPR == 0 +#ifndef CONF_SERCOM_5_USART_BAUD_RATE +#define CONF_SERCOM_5_USART_BAUD_RATE \ + 65536 - ((65536 * 16.0f * CONF_SERCOM_5_USART_BAUD) / CONF_GCLK_SERCOM5_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_5_USART_SAMPR == 1 +#ifndef CONF_SERCOM_5_USART_BAUD_RATE +#define CONF_SERCOM_5_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM5_CORE_FREQUENCY) / (CONF_SERCOM_5_USART_BAUD * 16)) - (CONF_SERCOM_5_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_5_USART_SAMPR == 2 +#ifndef CONF_SERCOM_5_USART_BAUD_RATE +#define CONF_SERCOM_5_USART_BAUD_RATE \ + 65536 - ((65536 * 8.0f * CONF_SERCOM_5_USART_BAUD) / CONF_GCLK_SERCOM5_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_5_USART_SAMPR == 3 +#ifndef CONF_SERCOM_5_USART_BAUD_RATE +#define CONF_SERCOM_5_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM5_CORE_FREQUENCY) / (CONF_SERCOM_5_USART_BAUD * 8)) - (CONF_SERCOM_5_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_5_USART_SAMPR == 4 +#ifndef CONF_SERCOM_5_USART_BAUD_RATE +#define CONF_SERCOM_5_USART_BAUD_RATE \ + 65536 - ((65536 * 3.0f * CONF_SERCOM_5_USART_BAUD) / CONF_GCLK_SERCOM5_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#endif + +#elif CONF_SERCOM_5_USART_CMODE == 1 +#ifndef CONF_SERCOM_5_USART_BAUD_RATE +// Calculate BAUD register value in USRT mode +#define CONF_SERCOM_5_USART_BAUD_RATE (CONF_GCLK_SERCOM5_CORE_FREQUENCY) / (2 * CONF_SERCOM_5_USART_BAUD) - 1 +#endif + +#ifndef CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#else +#error CMODE value for SERCOM 5 in USART mode not known +#endif + +#include + +#ifndef CONF_SERCOM_6_USART_ENABLE +#define CONF_SERCOM_6_USART_ENABLE 1 +#endif + +// Basic Configuration + +// Receive buffer enable +// Enable input buffer in SERCOM module +// usart_rx_enable +#ifndef CONF_SERCOM_6_USART_RXEN +#define CONF_SERCOM_6_USART_RXEN 1 +#endif + +// Transmitt buffer enable +// Enable output buffer in SERCOM module +// usart_tx_enable +#ifndef CONF_SERCOM_6_USART_TXEN +#define CONF_SERCOM_6_USART_TXEN 1 +#endif + +// Frame parity +// <0x1=>Even parity +// Parity bit mode for USART frame +// usart_parity +#ifndef CONF_SERCOM_6_USART_PARITY +#define CONF_SERCOM_6_USART_PARITY 1 +#endif + +// Character Size +// <0x0=>8 bits +// <0x1=>9 bits +// <0x5=>5 bits +// <0x6=>6 bits +// <0x7=>7 bits +// Data character size in USART frame +// usart_character_size +#ifndef CONF_SERCOM_6_USART_CHSIZE +#define CONF_SERCOM_6_USART_CHSIZE 0x0 +#endif + +// Stop Bit +// <0=>One stop bit +// <1=>Two stop bits +// Number of stop bits in USART frame +// usart_stop_bit +#ifndef CONF_SERCOM_6_USART_SBMODE +#define CONF_SERCOM_6_USART_SBMODE 0 +#endif + +// Baud rate <1-3000000> +// USART baud rate setting +// usart_baud_rate +#ifndef CONF_SERCOM_6_USART_BAUD +#define CONF_SERCOM_6_USART_BAUD 9600 +#endif +// + +// ISO7816 configuration +// ISO7816 Protocol Type +// <0x1=> T=0 +// <0x0=> T=1 +// Define ISO7816 protocol type as 0. +// usart_iso7816_type +#ifndef CONF_SERCOM_6_USART_ISO7816_PROTOCOL_T +#define CONF_SERCOM_6_USART_ISO7816_PROTOCOL_T 0x1 +#endif + +// ISO7816 Inhibit Not Acknowledge +// <0x0=> NACK is transmitted when a parity error is received. +// <0x1=> NACK is not transmitted when a parity error is received. +// Define whether a NACK is transmitted when a parity error is received. +// usart_inack +#ifndef CONF_SERCOM_6_USART_INACK +#define CONF_SERCOM_6_USART_INACK 0x0 +#endif + +// ISO7816 Disable Successive Not Acknowledge +// <0x0=> The successive receive NACK is disable. +// <0x1=> The successive receive NACK is enable. +// Define whether NACK will be sent on parity error reception. +// usart_dsnack +#ifndef CONF_SERCOM_6_USART_DSNACK +#define CONF_SERCOM_6_USART_DSNACK 0x0 +#endif + +// ISO7816 Maximum Iterations<0-7> +// Define the maximum number of retransmit iterations. +// usart_maxiter +#ifndef CONF_SERCOM_6_USART_MAXITER +#define CONF_SERCOM_6_USART_MAXITER 0x7 +#endif + +// ISO7816 Guard Time +// <0x2=> 2-bit times +// <0x3=> 3-bit times +// <0x4=> 4-bit times +// <0x5=> 5-bit times +// <0x6=> 6-bit times +// <0x7=> 7-bit times +// Define the guard time. +// usart_gtime +#ifndef CONF_SERCOM_6_USART_GTIME +#define CONF_SERCOM_6_USART_GTIME 0x2 +#endif + +// Inverse transmission and reception enabled +// Define inverse transmission and reception enabled. +// usart_inverse_enabled +#ifndef CONF_SERCOM_6_USART_INVERSE_ENABLED +#define CONF_SERCOM_6_USART_INVERSE_ENABLED 0x0 +#endif + +#if (CONF_SERCOM_6_USART_INVERSE_ENABLED == 1) +#define CONF_SERCOM_6_USART_RXINV 0x1 +#define CONF_SERCOM_6_USART_TXINV 0x1 +#else +#define CONF_SERCOM_6_USART_RXINV 0x0 +#define CONF_SERCOM_6_USART_TXINV 0x0 +#endif + +// + +// Advanced configuration +// usart_advanced +#ifndef CONF_SERCOM_6_USART_ADVANCED_CONFIG +#define CONF_SERCOM_6_USART_ADVANCED_CONFIG 0 +#endif + +// Run in stand-by +// Keep the module running in standby sleep mode +// usart_arch_runstdby +#ifndef CONF_SERCOM_6_USART_RUNSTDBY +#define CONF_SERCOM_6_USART_RUNSTDBY 0 +#endif + +// Immediate Buffer Overflow Notification +// Controls when the BUFOVF status bit is asserted +// usart_arch_ibon +#ifndef CONF_SERCOM_6_USART_IBON +#define CONF_SERCOM_6_USART_IBON 0 +#endif + +// Start of Frame Detection Enable +// Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled) +// usart_arch_sfde +#ifndef CONF_SERCOM_6_USART_SFDE +#define CONF_SERCOM_6_USART_SFDE 0 +#endif + +// Collision Detection Enable +// Collision detection enable +// usart_arch_cloden +#ifndef CONF_SERCOM_6_USART_CLODEN +#define CONF_SERCOM_6_USART_CLODEN 0 +#endif + +// Operating Mode +// <0x1=>USART with internal clock +// Drive the shift register by an internal clock generated by the baud rate generator. +// usart_arch_clock_mode +#ifndef CONF_SERCOM_6_USART_MODE +#define CONF_SERCOM_6_USART_MODE 0x1 +#endif + +// Data Order +// <0=>MSB is transmitted first +// <1=>LSB is transmitted first +// Data order of the data bits in the frame +// usart_arch_dord +#ifndef CONF_SERCOM_6_USART_DORD +#define CONF_SERCOM_6_USART_DORD 1 +#endif + +// Debug Stop Mode +// Behavior of the baud-rate generator when CPU is halted by external debugger. +// <0=>Keep running +// <1=>Halt +// usart_arch_dbgstop +#ifndef CONF_SERCOM_6_USART_DEBUG_STOP_MODE +#define CONF_SERCOM_6_USART_DEBUG_STOP_MODE 0 +#endif + +// Does not do anything in USRT mode +#define CONF_SERCOM_6_USART_SAMPR 0x0 +#define CONF_SERCOM_6_USART_SAMPA 0x0 +#define CONF_SERCOM_6_USART_FRACTIONAL 0x0 + +// Does not do anything in UART mode +#define CONF_SERCOM_6_USART_CPOL 0 + +// Does not do anything in USRT mode +#define CONF_SERCOM_6_USART_ENC 0 + +// + +#ifndef CONF_SERCOM_6_USART_CMODE +#define CONF_SERCOM_6_USART_CMODE CONF_SERCOM_6_USART_ISO7816_PROTOCOL_T +#endif + +/* RX is on PIN_PC16 */ +#ifndef CONF_SERCOM_6_USART_RXPO +#define CONF_SERCOM_6_USART_RXPO 0 +#endif + +/* TX uses the same pin with RX */ +#ifndef CONF_SERCOM_6_USART_TXPO +#define CONF_SERCOM_6_USART_TXPO 2 +#endif + +/* Set iso7816 mode */ +#define CONF_SERCOM_6_USART_PMODE (CONF_SERCOM_6_USART_PARITY - 1) +#define CONF_SERCOM_6_USART_FORM 7 + +#if CONF_SERCOM_6_USART_CMODE == 0 +// Calculate BAUD register value in UART mode +#if CONF_SERCOM_6_USART_SAMPR == 0 +#ifndef CONF_SERCOM_6_USART_BAUD_RATE +#define CONF_SERCOM_6_USART_BAUD_RATE \ + 65536 - ((65536 * 16.0f * CONF_SERCOM_6_USART_BAUD) / CONF_GCLK_SERCOM6_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_6_USART_SAMPR == 1 +#ifndef CONF_SERCOM_6_USART_BAUD_RATE +#define CONF_SERCOM_6_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM6_CORE_FREQUENCY) / (CONF_SERCOM_6_USART_BAUD * 16)) - (CONF_SERCOM_6_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_6_USART_SAMPR == 2 +#ifndef CONF_SERCOM_6_USART_BAUD_RATE +#define CONF_SERCOM_6_USART_BAUD_RATE \ + 65536 - ((65536 * 8.0f * CONF_SERCOM_6_USART_BAUD) / CONF_GCLK_SERCOM6_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_6_USART_SAMPR == 3 +#ifndef CONF_SERCOM_6_USART_BAUD_RATE +#define CONF_SERCOM_6_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM6_CORE_FREQUENCY) / (CONF_SERCOM_6_USART_BAUD * 8)) - (CONF_SERCOM_6_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_6_USART_SAMPR == 4 +#ifndef CONF_SERCOM_6_USART_BAUD_RATE +#define CONF_SERCOM_6_USART_BAUD_RATE \ + 65536 - ((65536 * 3.0f * CONF_SERCOM_6_USART_BAUD) / CONF_GCLK_SERCOM6_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#endif + +#elif CONF_SERCOM_6_USART_CMODE == 1 +#ifndef CONF_SERCOM_6_USART_BAUD_RATE +// Calculate BAUD register value in USRT mode +#define CONF_SERCOM_6_USART_BAUD_RATE (CONF_GCLK_SERCOM6_CORE_FREQUENCY) / (2 * CONF_SERCOM_6_USART_BAUD) - 1 +#endif + +#ifndef CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#else +#error CMODE value for SERCOM 6 in USART mode not known +#endif + +#include + #ifndef CONF_SERCOM_7_USART_ENABLE #define CONF_SERCOM_7_USART_ENABLE 1 #endif diff --git a/sysmoOCTSIM/config/peripheral_clk_config.h b/sysmoOCTSIM/config/peripheral_clk_config.h index ce68abd..91c5c86 100644 --- a/sysmoOCTSIM/config/peripheral_clk_config.h +++ b/sysmoOCTSIM/config/peripheral_clk_config.h @@ -40,6 +40,566 @@ // Generic clock generator 11 // Select the clock source for CORE. +#ifndef CONF_GCLK_SERCOM0_CORE_SRC +#define CONF_GCLK_SERCOM0_CORE_SRC GCLK_PCHCTRL_GEN_GCLK2_Val +#endif + +// Slow Clock Source +// slow_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the slow clock source. +#ifndef CONF_GCLK_SERCOM0_SLOW_SRC +#define CONF_GCLK_SERCOM0_SLOW_SRC GCLK_PCHCTRL_GEN_GCLK3_Val +#endif + +/** + * \def CONF_GCLK_SERCOM0_CORE_FREQUENCY + * \brief SERCOM0's Core Clock frequency + */ +#ifndef CONF_GCLK_SERCOM0_CORE_FREQUENCY +#define CONF_GCLK_SERCOM0_CORE_FREQUENCY 100000000 +#endif + +/** + * \def CONF_GCLK_SERCOM0_SLOW_FREQUENCY + * \brief SERCOM0's Slow Clock frequency + */ +#ifndef CONF_GCLK_SERCOM0_SLOW_FREQUENCY +#define CONF_GCLK_SERCOM0_SLOW_FREQUENCY 32768 +#endif + +// Core Clock Source +// core_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the clock source for CORE. +#ifndef CONF_GCLK_SERCOM1_CORE_SRC +#define CONF_GCLK_SERCOM1_CORE_SRC GCLK_PCHCTRL_GEN_GCLK2_Val +#endif + +// Slow Clock Source +// slow_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the slow clock source. +#ifndef CONF_GCLK_SERCOM1_SLOW_SRC +#define CONF_GCLK_SERCOM1_SLOW_SRC GCLK_PCHCTRL_GEN_GCLK3_Val +#endif + +/** + * \def CONF_GCLK_SERCOM1_CORE_FREQUENCY + * \brief SERCOM1's Core Clock frequency + */ +#ifndef CONF_GCLK_SERCOM1_CORE_FREQUENCY +#define CONF_GCLK_SERCOM1_CORE_FREQUENCY 100000000 +#endif + +/** + * \def CONF_GCLK_SERCOM1_SLOW_FREQUENCY + * \brief SERCOM1's Slow Clock frequency + */ +#ifndef CONF_GCLK_SERCOM1_SLOW_FREQUENCY +#define CONF_GCLK_SERCOM1_SLOW_FREQUENCY 32768 +#endif + +// Core Clock Source +// core_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the clock source for CORE. +#ifndef CONF_GCLK_SERCOM2_CORE_SRC +#define CONF_GCLK_SERCOM2_CORE_SRC GCLK_PCHCTRL_GEN_GCLK2_Val +#endif + +// Slow Clock Source +// slow_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the slow clock source. +#ifndef CONF_GCLK_SERCOM2_SLOW_SRC +#define CONF_GCLK_SERCOM2_SLOW_SRC GCLK_PCHCTRL_GEN_GCLK3_Val +#endif + +/** + * \def CONF_GCLK_SERCOM2_CORE_FREQUENCY + * \brief SERCOM2's Core Clock frequency + */ +#ifndef CONF_GCLK_SERCOM2_CORE_FREQUENCY +#define CONF_GCLK_SERCOM2_CORE_FREQUENCY 100000000 +#endif + +/** + * \def CONF_GCLK_SERCOM2_SLOW_FREQUENCY + * \brief SERCOM2's Slow Clock frequency + */ +#ifndef CONF_GCLK_SERCOM2_SLOW_FREQUENCY +#define CONF_GCLK_SERCOM2_SLOW_FREQUENCY 32768 +#endif + +// Core Clock Source +// core_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the clock source for CORE. +#ifndef CONF_GCLK_SERCOM3_CORE_SRC +#define CONF_GCLK_SERCOM3_CORE_SRC GCLK_PCHCTRL_GEN_GCLK2_Val +#endif + +// Slow Clock Source +// slow_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the slow clock source. +#ifndef CONF_GCLK_SERCOM3_SLOW_SRC +#define CONF_GCLK_SERCOM3_SLOW_SRC GCLK_PCHCTRL_GEN_GCLK3_Val +#endif + +/** + * \def CONF_GCLK_SERCOM3_CORE_FREQUENCY + * \brief SERCOM3's Core Clock frequency + */ +#ifndef CONF_GCLK_SERCOM3_CORE_FREQUENCY +#define CONF_GCLK_SERCOM3_CORE_FREQUENCY 100000000 +#endif + +/** + * \def CONF_GCLK_SERCOM3_SLOW_FREQUENCY + * \brief SERCOM3's Slow Clock frequency + */ +#ifndef CONF_GCLK_SERCOM3_SLOW_FREQUENCY +#define CONF_GCLK_SERCOM3_SLOW_FREQUENCY 32768 +#endif + +// Core Clock Source +// core_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the clock source for CORE. +#ifndef CONF_GCLK_SERCOM4_CORE_SRC +#define CONF_GCLK_SERCOM4_CORE_SRC GCLK_PCHCTRL_GEN_GCLK2_Val +#endif + +// Slow Clock Source +// slow_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the slow clock source. +#ifndef CONF_GCLK_SERCOM4_SLOW_SRC +#define CONF_GCLK_SERCOM4_SLOW_SRC GCLK_PCHCTRL_GEN_GCLK3_Val +#endif + +/** + * \def CONF_GCLK_SERCOM4_CORE_FREQUENCY + * \brief SERCOM4's Core Clock frequency + */ +#ifndef CONF_GCLK_SERCOM4_CORE_FREQUENCY +#define CONF_GCLK_SERCOM4_CORE_FREQUENCY 100000000 +#endif + +/** + * \def CONF_GCLK_SERCOM4_SLOW_FREQUENCY + * \brief SERCOM4's Slow Clock frequency + */ +#ifndef CONF_GCLK_SERCOM4_SLOW_FREQUENCY +#define CONF_GCLK_SERCOM4_SLOW_FREQUENCY 32768 +#endif + +// Core Clock Source +// core_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the clock source for CORE. +#ifndef CONF_GCLK_SERCOM5_CORE_SRC +#define CONF_GCLK_SERCOM5_CORE_SRC GCLK_PCHCTRL_GEN_GCLK2_Val +#endif + +// Slow Clock Source +// slow_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the slow clock source. +#ifndef CONF_GCLK_SERCOM5_SLOW_SRC +#define CONF_GCLK_SERCOM5_SLOW_SRC GCLK_PCHCTRL_GEN_GCLK3_Val +#endif + +/** + * \def CONF_GCLK_SERCOM5_CORE_FREQUENCY + * \brief SERCOM5's Core Clock frequency + */ +#ifndef CONF_GCLK_SERCOM5_CORE_FREQUENCY +#define CONF_GCLK_SERCOM5_CORE_FREQUENCY 100000000 +#endif + +/** + * \def CONF_GCLK_SERCOM5_SLOW_FREQUENCY + * \brief SERCOM5's Slow Clock frequency + */ +#ifndef CONF_GCLK_SERCOM5_SLOW_FREQUENCY +#define CONF_GCLK_SERCOM5_SLOW_FREQUENCY 32768 +#endif + +// Core Clock Source +// core_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the clock source for CORE. +#ifndef CONF_GCLK_SERCOM6_CORE_SRC +#define CONF_GCLK_SERCOM6_CORE_SRC GCLK_PCHCTRL_GEN_GCLK2_Val +#endif + +// Slow Clock Source +// slow_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the slow clock source. +#ifndef CONF_GCLK_SERCOM6_SLOW_SRC +#define CONF_GCLK_SERCOM6_SLOW_SRC GCLK_PCHCTRL_GEN_GCLK3_Val +#endif + +/** + * \def CONF_GCLK_SERCOM6_CORE_FREQUENCY + * \brief SERCOM6's Core Clock frequency + */ +#ifndef CONF_GCLK_SERCOM6_CORE_FREQUENCY +#define CONF_GCLK_SERCOM6_CORE_FREQUENCY 100000000 +#endif + +/** + * \def CONF_GCLK_SERCOM6_SLOW_FREQUENCY + * \brief SERCOM6's Slow Clock frequency + */ +#ifndef CONF_GCLK_SERCOM6_SLOW_FREQUENCY +#define CONF_GCLK_SERCOM6_SLOW_FREQUENCY 32768 +#endif + +// Core Clock Source +// core_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the clock source for CORE. #ifndef CONF_GCLK_SERCOM7_CORE_SRC #define CONF_GCLK_SERCOM7_CORE_SRC GCLK_PCHCTRL_GEN_GCLK2_Val #endif diff --git a/sysmoOCTSIM/driver_init.c b/sysmoOCTSIM/driver_init.c index 4ab622f..a196791 100644 --- a/sysmoOCTSIM/driver_init.c +++ b/sysmoOCTSIM/driver_init.c @@ -12,10 +12,45 @@ #include /*! The buffer size for USART */ +#define SIM0_BUFFER_SIZE 16 + +/*! The buffer size for USART */ +#define SIM1_BUFFER_SIZE 16 + +/*! The buffer size for USART */ +#define SIM2_BUFFER_SIZE 16 + +/*! The buffer size for USART */ +#define SIM3_BUFFER_SIZE 16 + +/*! The buffer size for USART */ +#define SIM4_BUFFER_SIZE 16 + +/*! The buffer size for USART */ +#define SIM5_BUFFER_SIZE 16 + +/*! The buffer size for USART */ +#define SIM6_BUFFER_SIZE 16 + +/*! The buffer size for USART */ #define UART_DEBUG_BUFFER_SIZE 16 +struct usart_async_descriptor SIM0; +struct usart_async_descriptor SIM1; +struct usart_async_descriptor SIM2; +struct usart_async_descriptor SIM3; +struct usart_async_descriptor SIM4; +struct usart_async_descriptor SIM5; +struct usart_async_descriptor SIM6; struct usart_async_descriptor UART_debug; +static uint8_t SIM0_buffer[SIM0_BUFFER_SIZE]; +static uint8_t SIM1_buffer[SIM1_BUFFER_SIZE]; +static uint8_t SIM2_buffer[SIM2_BUFFER_SIZE]; +static uint8_t SIM3_buffer[SIM3_BUFFER_SIZE]; +static uint8_t SIM4_buffer[SIM4_BUFFER_SIZE]; +static uint8_t SIM5_buffer[SIM5_BUFFER_SIZE]; +static uint8_t SIM6_buffer[SIM6_BUFFER_SIZE]; static uint8_t UART_debug_buffer[UART_DEBUG_BUFFER_SIZE]; /** @@ -23,6 +58,265 @@ * * Enables register interface and peripheral clock */ +void SIM0_CLOCK_init() +{ + + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM0_GCLK_ID_CORE, CONF_GCLK_SERCOM0_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM0_GCLK_ID_SLOW, CONF_GCLK_SERCOM0_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + + hri_mclk_set_APBAMASK_SERCOM0_bit(MCLK); +} + +/** + * \brief USART pinmux initialization function + * + * Set each required pin to USART functionality + */ +void SIM0_PORT_init() +{ + + gpio_set_pin_function(SIM0_IO, PINMUX_PA04D_SERCOM0_PAD0); +} + +/** + * \brief USART initialization function + * + * Enables USART peripheral, clocks and initializes USART driver + */ +void SIM0_init(void) +{ + SIM0_CLOCK_init(); + usart_async_init(&SIM0, SERCOM0, SIM0_buffer, SIM0_BUFFER_SIZE, (void *)NULL); + SIM0_PORT_init(); +} + +/** + * \brief USART Clock initialization function + * + * Enables register interface and peripheral clock + */ +void SIM1_CLOCK_init() +{ + + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM1_GCLK_ID_CORE, CONF_GCLK_SERCOM1_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM1_GCLK_ID_SLOW, CONF_GCLK_SERCOM1_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + + hri_mclk_set_APBAMASK_SERCOM1_bit(MCLK); +} + +/** + * \brief USART pinmux initialization function + * + * Set each required pin to USART functionality + */ +void SIM1_PORT_init() +{ + + gpio_set_pin_function(SIM1_IO, PINMUX_PA16C_SERCOM1_PAD0); +} + +/** + * \brief USART initialization function + * + * Enables USART peripheral, clocks and initializes USART driver + */ +void SIM1_init(void) +{ + SIM1_CLOCK_init(); + usart_async_init(&SIM1, SERCOM1, SIM1_buffer, SIM1_BUFFER_SIZE, (void *)NULL); + SIM1_PORT_init(); +} + +/** + * \brief USART Clock initialization function + * + * Enables register interface and peripheral clock + */ +void SIM2_CLOCK_init() +{ + + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM2_GCLK_ID_CORE, CONF_GCLK_SERCOM2_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM2_GCLK_ID_SLOW, CONF_GCLK_SERCOM2_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + + hri_mclk_set_APBBMASK_SERCOM2_bit(MCLK); +} + +/** + * \brief USART pinmux initialization function + * + * Set each required pin to USART functionality + */ +void SIM2_PORT_init() +{ + + gpio_set_pin_function(SIM2_IO, PINMUX_PA09D_SERCOM2_PAD0); +} + +/** + * \brief USART initialization function + * + * Enables USART peripheral, clocks and initializes USART driver + */ +void SIM2_init(void) +{ + SIM2_CLOCK_init(); + usart_async_init(&SIM2, SERCOM2, SIM2_buffer, SIM2_BUFFER_SIZE, (void *)NULL); + SIM2_PORT_init(); +} + +/** + * \brief USART Clock initialization function + * + * Enables register interface and peripheral clock + */ +void SIM3_CLOCK_init() +{ + + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM3_GCLK_ID_CORE, CONF_GCLK_SERCOM3_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM3_GCLK_ID_SLOW, CONF_GCLK_SERCOM3_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + + hri_mclk_set_APBBMASK_SERCOM3_bit(MCLK); +} + +/** + * \brief USART pinmux initialization function + * + * Set each required pin to USART functionality + */ +void SIM3_PORT_init() +{ + + gpio_set_pin_function(SIM3_IO, PINMUX_PB20C_SERCOM3_PAD0); +} + +/** + * \brief USART initialization function + * + * Enables USART peripheral, clocks and initializes USART driver + */ +void SIM3_init(void) +{ + SIM3_CLOCK_init(); + usart_async_init(&SIM3, SERCOM3, SIM3_buffer, SIM3_BUFFER_SIZE, (void *)NULL); + SIM3_PORT_init(); +} + +/** + * \brief USART Clock initialization function + * + * Enables register interface and peripheral clock + */ +void SIM4_CLOCK_init() +{ + + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM4_GCLK_ID_CORE, CONF_GCLK_SERCOM4_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM4_GCLK_ID_SLOW, CONF_GCLK_SERCOM4_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + + hri_mclk_set_APBDMASK_SERCOM4_bit(MCLK); +} + +/** + * \brief USART pinmux initialization function + * + * Set each required pin to USART functionality + */ +void SIM4_PORT_init() +{ + + gpio_set_pin_function(SIM4_IO, PINMUX_PB08D_SERCOM4_PAD0); +} + +/** + * \brief USART initialization function + * + * Enables USART peripheral, clocks and initializes USART driver + */ +void SIM4_init(void) +{ + SIM4_CLOCK_init(); + usart_async_init(&SIM4, SERCOM4, SIM4_buffer, SIM4_BUFFER_SIZE, (void *)NULL); + SIM4_PORT_init(); +} + +/** + * \brief USART Clock initialization function + * + * Enables register interface and peripheral clock + */ +void SIM5_CLOCK_init() +{ + + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM5_GCLK_ID_CORE, CONF_GCLK_SERCOM5_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM5_GCLK_ID_SLOW, CONF_GCLK_SERCOM5_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + + hri_mclk_set_APBDMASK_SERCOM5_bit(MCLK); +} + +/** + * \brief USART pinmux initialization function + * + * Set each required pin to USART functionality + */ +void SIM5_PORT_init() +{ + + gpio_set_pin_function(SIM5_IO, PINMUX_PB16C_SERCOM5_PAD0); +} + +/** + * \brief USART initialization function + * + * Enables USART peripheral, clocks and initializes USART driver + */ +void SIM5_init(void) +{ + SIM5_CLOCK_init(); + usart_async_init(&SIM5, SERCOM5, SIM5_buffer, SIM5_BUFFER_SIZE, (void *)NULL); + SIM5_PORT_init(); +} + +/** + * \brief USART Clock initialization function + * + * Enables register interface and peripheral clock + */ +void SIM6_CLOCK_init() +{ + + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM6_GCLK_ID_CORE, CONF_GCLK_SERCOM6_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM6_GCLK_ID_SLOW, CONF_GCLK_SERCOM6_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + + hri_mclk_set_APBDMASK_SERCOM6_bit(MCLK); +} + +/** + * \brief USART pinmux initialization function + * + * Set each required pin to USART functionality + */ +void SIM6_PORT_init() +{ + + gpio_set_pin_function(SIM6_IO, PINMUX_PC16C_SERCOM6_PAD0); +} + +/** + * \brief USART initialization function + * + * Enables USART peripheral, clocks and initializes USART driver + */ +void SIM6_init(void) +{ + SIM6_CLOCK_init(); + usart_async_init(&SIM6, SERCOM6, SIM6_buffer, SIM6_BUFFER_SIZE, (void *)NULL); + SIM6_PORT_init(); +} + +/** + * \brief USART Clock initialization function + * + * Enables register interface and peripheral clock + */ void UART_debug_CLOCK_init() { @@ -312,6 +606,13 @@ gpio_set_pin_function(USER_LED, GPIO_PIN_FUNCTION_OFF); + SIM0_init(); + SIM1_init(); + SIM2_init(); + SIM3_init(); + SIM4_init(); + SIM5_init(); + SIM6_init(); UART_debug_init(); USB_DEVICE_INSTANCE_init(); diff --git a/sysmoOCTSIM/driver_init.h b/sysmoOCTSIM/driver_init.h index 25e6370..a0fbb88 100644 --- a/sysmoOCTSIM/driver_init.h +++ b/sysmoOCTSIM/driver_init.h @@ -22,11 +22,53 @@ #include #include +#include +#include +#include +#include +#include +#include +#include #include "hal_usb_device.h" +extern struct usart_async_descriptor SIM0; +extern struct usart_async_descriptor SIM1; +extern struct usart_async_descriptor SIM2; +extern struct usart_async_descriptor SIM3; +extern struct usart_async_descriptor SIM4; +extern struct usart_async_descriptor SIM5; +extern struct usart_async_descriptor SIM6; extern struct usart_async_descriptor UART_debug; +void SIM0_PORT_init(void); +void SIM0_CLOCK_init(void); +void SIM0_init(void); + +void SIM1_PORT_init(void); +void SIM1_CLOCK_init(void); +void SIM1_init(void); + +void SIM2_PORT_init(void); +void SIM2_CLOCK_init(void); +void SIM2_init(void); + +void SIM3_PORT_init(void); +void SIM3_CLOCK_init(void); +void SIM3_init(void); + +void SIM4_PORT_init(void); +void SIM4_CLOCK_init(void); +void SIM4_init(void); + +void SIM5_PORT_init(void); +void SIM5_CLOCK_init(void); +void SIM5_init(void); + +void SIM6_PORT_init(void); +void SIM6_CLOCK_init(void); +void SIM6_init(void); + void UART_debug_PORT_init(void); void UART_debug_CLOCK_init(void); void UART_debug_init(void); diff --git a/sysmoOCTSIM/examples/driver_examples.c b/sysmoOCTSIM/examples/driver_examples.c index 8384c87..14f1ae5 100644 --- a/sysmoOCTSIM/examples/driver_examples.c +++ b/sysmoOCTSIM/examples/driver_examples.c @@ -11,6 +11,209 @@ #include "utils.h" /** + * Example of using SIM0 to write "Hello World" using the IO abstraction. + * + * Since the driver is asynchronous we need to use statically allocated memory for string + * because driver initiates transfer and then returns before the transmission is completed. + * + * Once transfer has been completed the tx_cb function will be called. + */ + +static uint8_t example_SIM0[12] = "Hello World!"; + +static void tx_cb_SIM0(const struct usart_async_descriptor *const io_descr) +{ + /* Transfer completed */ +} + +void SIM0_example(void) +{ + struct io_descriptor *io; + + usart_async_register_callback(&SIM0, USART_ASYNC_TXC_CB, tx_cb_SIM0); + /*usart_async_register_callback(&SIM0, USART_ASYNC_RXC_CB, rx_cb); + usart_async_register_callback(&SIM0, USART_ASYNC_ERROR_CB, err_cb);*/ + usart_async_get_io_descriptor(&SIM0, &io); + usart_async_enable(&SIM0); + + io_write(io, example_SIM0, 12); +} + +/** + * Example of using SIM1 to write "Hello World" using the IO abstraction. + * + * Since the driver is asynchronous we need to use statically allocated memory for string + * because driver initiates transfer and then returns before the transmission is completed. + * + * Once transfer has been completed the tx_cb function will be called. + */ + +static uint8_t example_SIM1[12] = "Hello World!"; + +static void tx_cb_SIM1(const struct usart_async_descriptor *const io_descr) +{ + /* Transfer completed */ +} + +void SIM1_example(void) +{ + struct io_descriptor *io; + + usart_async_register_callback(&SIM1, USART_ASYNC_TXC_CB, tx_cb_SIM1); + /*usart_async_register_callback(&SIM1, USART_ASYNC_RXC_CB, rx_cb); + usart_async_register_callback(&SIM1, USART_ASYNC_ERROR_CB, err_cb);*/ + usart_async_get_io_descriptor(&SIM1, &io); + usart_async_enable(&SIM1); + + io_write(io, example_SIM1, 12); +} + +/** + * Example of using SIM2 to write "Hello World" using the IO abstraction. + * + * Since the driver is asynchronous we need to use statically allocated memory for string + * because driver initiates transfer and then returns before the transmission is completed. + * + * Once transfer has been completed the tx_cb function will be called. + */ + +static uint8_t example_SIM2[12] = "Hello World!"; + +static void tx_cb_SIM2(const struct usart_async_descriptor *const io_descr) +{ + /* Transfer completed */ +} + +void SIM2_example(void) +{ + struct io_descriptor *io; + + usart_async_register_callback(&SIM2, USART_ASYNC_TXC_CB, tx_cb_SIM2); + /*usart_async_register_callback(&SIM2, USART_ASYNC_RXC_CB, rx_cb); + usart_async_register_callback(&SIM2, USART_ASYNC_ERROR_CB, err_cb);*/ + usart_async_get_io_descriptor(&SIM2, &io); + usart_async_enable(&SIM2); + + io_write(io, example_SIM2, 12); +} + +/** + * Example of using SIM3 to write "Hello World" using the IO abstraction. + * + * Since the driver is asynchronous we need to use statically allocated memory for string + * because driver initiates transfer and then returns before the transmission is completed. + * + * Once transfer has been completed the tx_cb function will be called. + */ + +static uint8_t example_SIM3[12] = "Hello World!"; + +static void tx_cb_SIM3(const struct usart_async_descriptor *const io_descr) +{ + /* Transfer completed */ +} + +void SIM3_example(void) +{ + struct io_descriptor *io; + + usart_async_register_callback(&SIM3, USART_ASYNC_TXC_CB, tx_cb_SIM3); + /*usart_async_register_callback(&SIM3, USART_ASYNC_RXC_CB, rx_cb); + usart_async_register_callback(&SIM3, USART_ASYNC_ERROR_CB, err_cb);*/ + usart_async_get_io_descriptor(&SIM3, &io); + usart_async_enable(&SIM3); + + io_write(io, example_SIM3, 12); +} + +/** + * Example of using SIM4 to write "Hello World" using the IO abstraction. + * + * Since the driver is asynchronous we need to use statically allocated memory for string + * because driver initiates transfer and then returns before the transmission is completed. + * + * Once transfer has been completed the tx_cb function will be called. + */ + +static uint8_t example_SIM4[12] = "Hello World!"; + +static void tx_cb_SIM4(const struct usart_async_descriptor *const io_descr) +{ + /* Transfer completed */ +} + +void SIM4_example(void) +{ + struct io_descriptor *io; + + usart_async_register_callback(&SIM4, USART_ASYNC_TXC_CB, tx_cb_SIM4); + /*usart_async_register_callback(&SIM4, USART_ASYNC_RXC_CB, rx_cb); + usart_async_register_callback(&SIM4, USART_ASYNC_ERROR_CB, err_cb);*/ + usart_async_get_io_descriptor(&SIM4, &io); + usart_async_enable(&SIM4); + + io_write(io, example_SIM4, 12); +} + +/** + * Example of using SIM5 to write "Hello World" using the IO abstraction. + * + * Since the driver is asynchronous we need to use statically allocated memory for string + * because driver initiates transfer and then returns before the transmission is completed. + * + * Once transfer has been completed the tx_cb function will be called. + */ + +static uint8_t example_SIM5[12] = "Hello World!"; + +static void tx_cb_SIM5(const struct usart_async_descriptor *const io_descr) +{ + /* Transfer completed */ +} + +void SIM5_example(void) +{ + struct io_descriptor *io; + + usart_async_register_callback(&SIM5, USART_ASYNC_TXC_CB, tx_cb_SIM5); + /*usart_async_register_callback(&SIM5, USART_ASYNC_RXC_CB, rx_cb); + usart_async_register_callback(&SIM5, USART_ASYNC_ERROR_CB, err_cb);*/ + usart_async_get_io_descriptor(&SIM5, &io); + usart_async_enable(&SIM5); + + io_write(io, example_SIM5, 12); +} + +/** + * Example of using SIM6 to write "Hello World" using the IO abstraction. + * + * Since the driver is asynchronous we need to use statically allocated memory for string + * because driver initiates transfer and then returns before the transmission is completed. + * + * Once transfer has been completed the tx_cb function will be called. + */ + +static uint8_t example_SIM6[12] = "Hello World!"; + +static void tx_cb_SIM6(const struct usart_async_descriptor *const io_descr) +{ + /* Transfer completed */ +} + +void SIM6_example(void) +{ + struct io_descriptor *io; + + usart_async_register_callback(&SIM6, USART_ASYNC_TXC_CB, tx_cb_SIM6); + /*usart_async_register_callback(&SIM6, USART_ASYNC_RXC_CB, rx_cb); + usart_async_register_callback(&SIM6, USART_ASYNC_ERROR_CB, err_cb);*/ + usart_async_get_io_descriptor(&SIM6, &io); + usart_async_enable(&SIM6); + + io_write(io, example_SIM6, 12); +} + +/** * Example of using UART_debug to write "Hello World" using the IO abstraction. * * Since the driver is asynchronous we need to use statically allocated memory for string diff --git a/sysmoOCTSIM/examples/driver_examples.h b/sysmoOCTSIM/examples/driver_examples.h index 7bb60eb..4f2ce98 100644 --- a/sysmoOCTSIM/examples/driver_examples.h +++ b/sysmoOCTSIM/examples/driver_examples.h @@ -12,6 +12,20 @@ extern "C" { #endif +void SIM0_example(void); + +void SIM1_example(void); + +void SIM2_example(void); + +void SIM3_example(void); + +void SIM4_example(void); + +void SIM5_example(void); + +void SIM6_example(void); + void UART_debug_example(void); #ifdef __cplusplus diff --git a/sysmoOCTSIM/hpl/sercom/hpl_sercom.c b/sysmoOCTSIM/hpl/sercom/hpl_sercom.c index 535ebc6..f235115 100644 --- a/sysmoOCTSIM/hpl/sercom/hpl_sercom.c +++ b/sysmoOCTSIM/hpl/sercom/hpl_sercom.c @@ -163,6 +163,20 @@ }; #endif +static struct _usart_async_device *_sercom0_dev = NULL; + +static struct _usart_async_device *_sercom1_dev = NULL; + +static struct _usart_async_device *_sercom2_dev = NULL; + +static struct _usart_async_device *_sercom3_dev = NULL; + +static struct _usart_async_device *_sercom4_dev = NULL; + +static struct _usart_async_device *_sercom5_dev = NULL; + +static struct _usart_async_device *_sercom6_dev = NULL; + static struct _usart_async_device *_sercom7_dev = NULL; static uint8_t _get_sercom_index(const void *const hw); @@ -626,6 +640,34 @@ static void _sercom_init_irq_param(const void *const hw, void *dev) { + if (hw == SERCOM0) { + _sercom0_dev = (struct _usart_async_device *)dev; + } + + if (hw == SERCOM1) { + _sercom1_dev = (struct _usart_async_device *)dev; + } + + if (hw == SERCOM2) { + _sercom2_dev = (struct _usart_async_device *)dev; + } + + if (hw == SERCOM3) { + _sercom3_dev = (struct _usart_async_device *)dev; + } + + if (hw == SERCOM4) { + _sercom4_dev = (struct _usart_async_device *)dev; + } + + if (hw == SERCOM5) { + _sercom5_dev = (struct _usart_async_device *)dev; + } + + if (hw == SERCOM6) { + _sercom6_dev = (struct _usart_async_device *)dev; + } + if (hw == SERCOM7) { _sercom7_dev = (struct _usart_async_device *)dev; } @@ -2392,6 +2434,209 @@ /** * \internal Sercom interrupt handler */ +void SERCOM0_0_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom0_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM0_1_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom0_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM0_2_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom0_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM0_3_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom0_dev); +} + +/** + * \internal Sercom interrupt handler + */ +void SERCOM1_0_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom1_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM1_1_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom1_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM1_2_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom1_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM1_3_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom1_dev); +} + +/** + * \internal Sercom interrupt handler + */ +void SERCOM2_0_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom2_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM2_1_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom2_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM2_2_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom2_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM2_3_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom2_dev); +} + +/** + * \internal Sercom interrupt handler + */ +void SERCOM3_0_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom3_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM3_1_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom3_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM3_2_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom3_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM3_3_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom3_dev); +} + +/** + * \internal Sercom interrupt handler + */ +void SERCOM4_0_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom4_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM4_1_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom4_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM4_2_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom4_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM4_3_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom4_dev); +} + +/** + * \internal Sercom interrupt handler + */ +void SERCOM5_0_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom5_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM5_1_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom5_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM5_2_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom5_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM5_3_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom5_dev); +} + +/** + * \internal Sercom interrupt handler + */ +void SERCOM6_0_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom6_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM6_1_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom6_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM6_2_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom6_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM6_3_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom6_dev); +} + +/** + * \internal Sercom interrupt handler + */ void SERCOM7_0_Handler(void) { _sercom_usart_interrupt_handler(_sercom7_dev); -- To view, visit https://gerrit.osmocom.org/12811 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I3f1411ec5bc2ed7dfa714550d041f52be665132a Gerrit-Change-Number: 12811 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:47:43 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:47:43 +0000 Subject: Change in osmo-ccid-firmware[master]: add debug welcome message output Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12812 Change subject: add debug welcome message output ...................................................................... add debug welcome message output Change-Id: I8dde644caa56152b17da674e187006726991ff9c --- M sysmoOCTSIM/main.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/12/12812/1 diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c index f2584d2..d74153d 100644 --- a/sysmoOCTSIM/main.c +++ b/sysmoOCTSIM/main.c @@ -44,6 +44,8 @@ usb_start(); + const char* welcome = "\r\n\r\nsysmocom sysmoOCTSIM\r\n"; + while (io_write(&UART_debug.io, (const uint8_t*)welcome, strlen(welcome)) != strlen(welcome)); // print welcome message while (true) { // main loop if (data_arrived) { // input on UART debug data_arrived = false; // clear flag -- To view, visit https://gerrit.osmocom.org/12812 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I8dde644caa56152b17da674e187006726991ff9c Gerrit-Change-Number: 12812 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 13:47:43 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Sun, 3 Feb 2019 13:47:43 +0000 Subject: Change in osmo-ccid-firmware[master]: relocate application to after the DFU bootloader Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12813 Change subject: relocate application to after the DFU bootloader ...................................................................... relocate application to after the DFU bootloader without this relocation the DFU bootloader can jump to the application but following executed code would not be the one from the application. Change-Id: Ieeefcf80918fd10e48debab6ff08505f6588811c --- M sysmoOCTSIM/gcc/Makefile R sysmoOCTSIM/gcc/gcc/same54n19a_dfu.ld D sysmoOCTSIM/gcc/gcc/same54p20a_sram.ld 3 files changed, 5 insertions(+), 167 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/13/12813/1 diff --git a/sysmoOCTSIM/gcc/Makefile b/sysmoOCTSIM/gcc/Makefile index 7bc5fd3..572fb21 100644 --- a/sysmoOCTSIM/gcc/Makefile +++ b/sysmoOCTSIM/gcc/Makefile @@ -184,7 +184,7 @@ $(QUOTE)arm-none-eabi-gcc$(QUOTE) -o $(OUTPUT_FILE_NAME).elf $(OBJS_AS_ARGS) -Wl,--start-group -lm -Wl,--end-group -mthumb \ -Wl,-Map="$(OUTPUT_FILE_NAME).map" --specs=nano.specs -Wl,--gc-sections -mcpu=cortex-m4 \ \ --T"../gcc/gcc/same54n19a_flash.ld" \ +-T"../gcc/gcc/same54n19a_dfu.ld" \ -L"../gcc/gcc" @echo Finished building target: $@ diff --git a/sysmoOCTSIM/gcc/gcc/same54p20a_flash.ld b/sysmoOCTSIM/gcc/gcc/same54n19a_dfu.ld similarity index 95% rename from sysmoOCTSIM/gcc/gcc/same54p20a_flash.ld rename to sysmoOCTSIM/gcc/gcc/same54n19a_dfu.ld index 08099d2..7d76cc2 100644 --- a/sysmoOCTSIM/gcc/gcc/same54p20a_flash.ld +++ b/sysmoOCTSIM/gcc/gcc/same54n19a_dfu.ld @@ -1,7 +1,7 @@ /** * \file * - * \brief Linker script for running in internal FLASH on the SAME54P20A + * \brief Linker script for running in internal FLASH on the SAME54N19A * * Copyright (c) 2018 Microchip Technology Inc. * @@ -35,14 +35,14 @@ /* Memory Spaces Definitions */ MEMORY { - rom (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 - ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 + rom (rx) : ORIGIN = 0x00000000 + 16K, LENGTH = 0x00080000 - 16K + ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00030000 bkupram (rwx) : ORIGIN = 0x47000000, LENGTH = 0x00002000 qspi (rwx) : ORIGIN = 0x04000000, LENGTH = 0x01000000 } /* The stack size used by the application. NOTE: you need to adjust according to your application. */ -STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0x10000; +STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0xC000; /* Section Definitions */ SECTIONS diff --git a/sysmoOCTSIM/gcc/gcc/same54p20a_sram.ld b/sysmoOCTSIM/gcc/gcc/same54p20a_sram.ld deleted file mode 100644 index b3be5b3..0000000 --- a/sysmoOCTSIM/gcc/gcc/same54p20a_sram.ld +++ /dev/null @@ -1,162 +0,0 @@ -/** - * \file - * - * \brief Linker script for running in internal SRAM on the SAME54P20A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - - -OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -OUTPUT_ARCH(arm) -SEARCH_DIR(.) - -/* Memory Spaces Definitions */ -MEMORY -{ - ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 - bkupram (rwx) : ORIGIN = 0x47000000, LENGTH = 0x00002000 - qspi (rwx) : ORIGIN = 0x04000000, LENGTH = 0x01000000 -} - -/* The stack size used by the application. NOTE: you need to adjust according to your application. */ -STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0x10000; - -/* Section Definitions */ -SECTIONS -{ - .text : - { - . = ALIGN(4); - _sfixed = .; - KEEP(*(.vectors .vectors.*)) - *(.text .text.* .gnu.linkonce.t.*) - *(.glue_7t) *(.glue_7) - *(.rodata .rodata* .gnu.linkonce.r.*) - *(.ARM.extab* .gnu.linkonce.armextab.*) - - /* Support C constructors, and C destructors in both user code - and the C library. This also provides support for C++ code. */ - . = ALIGN(4); - KEEP(*(.init)) - . = ALIGN(4); - __preinit_array_start = .; - KEEP (*(.preinit_array)) - __preinit_array_end = .; - - . = ALIGN(4); - __init_array_start = .; - KEEP (*(SORT(.init_array.*))) - KEEP (*(.init_array)) - __init_array_end = .; - - . = ALIGN(4); - KEEP (*crtbegin.o(.ctors)) - KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) - KEEP (*(SORT(.ctors.*))) - KEEP (*crtend.o(.ctors)) - - . = ALIGN(4); - KEEP(*(.fini)) - - . = ALIGN(4); - __fini_array_start = .; - KEEP (*(.fini_array)) - KEEP (*(SORT(.fini_array.*))) - __fini_array_end = .; - - KEEP (*crtbegin.o(.dtors)) - KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) - KEEP (*(SORT(.dtors.*))) - KEEP (*crtend.o(.dtors)) - - . = ALIGN(4); - _efixed = .; /* End of text section */ - } > ram - - /* .ARM.exidx is sorted, so has to go in its own output section. */ - PROVIDE_HIDDEN (__exidx_start = .); - .ARM.exidx : - { - *(.ARM.exidx* .gnu.linkonce.armexidx.*) - } > ram - PROVIDE_HIDDEN (__exidx_end = .); - - . = ALIGN(4); - _etext = .; - - .relocate : AT (_etext) - { - . = ALIGN(4); - _srelocate = .; - *(.ramfunc .ramfunc.*); - *(.data .data.*); - . = ALIGN(4); - _erelocate = .; - } > ram - - .bkupram (NOLOAD): - { - . = ALIGN(8); - _sbkupram = .; - *(.bkupram .bkupram.*); - . = ALIGN(8); - _ebkupram = .; - } > bkupram - - .qspi (NOLOAD): - { - . = ALIGN(8); - _sqspi = .; - *(.qspi .qspi.*); - . = ALIGN(8); - _eqspi = .; - } > qspi - - /* .bss section which is used for uninitialized data */ - .bss (NOLOAD) : - { - . = ALIGN(4); - _sbss = . ; - _szero = .; - *(.bss .bss.*) - *(COMMON) - . = ALIGN(4); - _ebss = . ; - _ezero = .; - } > ram - - /* stack section */ - .stack (NOLOAD): - { - . = ALIGN(8); - _sstack = .; - . = . + STACK_SIZE; - . = ALIGN(8); - _estack = .; - } > ram - - . = ALIGN(4); - _end = . ; -} -- To view, visit https://gerrit.osmocom.org/12813 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ieeefcf80918fd10e48debab6ff08505f6588811c Gerrit-Change-Number: 12813 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sun Feb 3 14:18:33 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sun, 3 Feb 2019 14:18:33 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-trx_=C2=BB_--with-ss?= =?UTF-8?Q?e,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#857?= Message-ID: <1107108389.61.1549203513048.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 107.69 KB...] Reading and parsing tag files Parsing files Building group list... Building directory list... Building namespace list... Building file list... Building class list... Associating documentation with classes... Computing nesting relations for classes... Building example list... Searching for enumerations... Searching for documented typedefs... Searching for members imported via using declarations... Searching for included using directives... Searching for documented variables... Building interface member list... Building member list... Searching for friends... Searching for documented defines... Computing class inheritance relations... Computing class usage relations... Flushing cached template relations that have become invalid... Computing class relations... Add enum values to enums... Searching for member function documentation... Creating members for template instances... Building page list... Search for main page... Computing page relations... Determining the scope of groups... Sorting lists... Freeing entry tree Determining which enums are documented Computing member relations... Building full member lists recursively... Adding members to member groups. Computing member references... Inheriting documentation... Generating disk names... Adding source references... Adding xrefitems... Sorting member lists... Computing dependencies between directories... Generating citations page... Counting data structures... Resolving user defined references... Finding anchors and sections in the documentation... Transferring function references... Combining using relations... Adding members to index pages... Generating style sheet... Generating search indices... Generating example documentation... Generating file sources... Generating file documentation... Generating page documentation... Generating group documentation... Generating class documentation... Generating namespace index... Generating graph info page... Generating directory documentation... Generating index page... Generating page index... Generating module index... Generating namespace index... Generating namespace member index... Generating annotated compound index... Generating alphabetical compound index... Generating hierarchical class index... Generating graphical class hierarchy... Generating member index... Generating file index... Generating file member index... Generating example index... finalizing index lists... writing tag file... Running dot... Running dot for graph 1/1 lookup cache used 0/65536 hits=0 misses=0 finished... make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_guide.html /usr/bin/install -c -m 644 ../README ' cp -r html make[5]: Leaving directory ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in firmware make[2]: Entering directory ' Making install in include make[3]: Entering directory ' PYTHONPATH=../../usrp/firmware/include ./generate_regs.py ./fpga_regs_common.h fpga_regs_common.v make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_i2c_addr.h usrp_spi_defs.h fpga_regs_common.h fpga_regs_standard.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' Making install in lib make[3]: Entering directory ' sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c delay.c -o delay.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c fx2utils.c -o fx2utils.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c i2c.c -o i2c.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c isr.c -o isr.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c timer.c -o timer.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c usb_common.c -o usb_common.rel timer.c:45: warning 158: overflow in implicit constant conversion isr.c:73: warning 94: comparison is always false due to limited range of data type usb_common.c:65: warning 196: pointer target lost const qualifier usb_common.c:66: warning 196: pointer target lost const qualifier usb_common.c:67: warning 196: pointer target lost const qualifier usb_common.c:68: warning 196: pointer target lost const qualifier usb_common.c:71: warning 196: pointer target lost const qualifier usb_common.c:72: warning 196: pointer target lost const qualifier usb_common.c:73: warning 196: pointer target lost const qualifier usb_common.c:74: warning 196: pointer target lost const qualifier isr.c:100: warning 94: comparison is always false due to limited range of data type -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'int fixed' to type 'volatile-unsigned-char xdata* xdata' usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:217: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:226: warning 126: unreachable code usb_common.c:184: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG usb_common.c:315: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG rm -f libfx2.lib touch libfx2.lib for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done make[3]: Leaving directory ' Making install in src make[3]: Entering directory ' Making install in common make[4]: Entering directory ' make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory ' make[4]: Leaving directory ' Making install in usrp2 make[4]: Entering directory ' test -f `basename 'eeprom_boot.a51'` || ln -s 'eeprom_boot.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_init.rel `test -f 'eeprom_init.c' || echo './'`eeprom_init.c test -f `basename '_startup.a51'` || ln -s '_startup.a51' . test -f `basename 'vectors.a51'` || ln -s 'vectors.a51' . srcdir=. /usr/bin/python ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_common.rel `test -f 'usrp_common.c' || echo './'`usrp_common.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o board_specific.rel `test -f 'board_specific.c' || echo './'`board_specific.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_load.rel `test -f 'fpga_load.c' || echo './'`fpga_load.c test -f ../common/`basename 'eeprom_boot.a51'` -o \ \! -f `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` \ || ln -s `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` ../common/`basename 'eeprom_boot.a51'` test -f ../common/`basename '_startup.a51'` -o \ \! -f `dirname '_startup.a51'`/../common/`basename '_startup.a51'` \ || ln -s `dirname '_startup.a51'`/../common/`basename '_startup.a51'` ../common/`basename '_startup.a51'` test -f ../common/`basename 'vectors.a51'` -o \ \! -f `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` \ || ln -s `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` ../common/`basename 'vectors.a51'` sdas8051 -plosgff `basename '_startup.a51'` sdas8051 -plosgff `basename 'eeprom_boot.a51'` sdas8051 -plosgff `basename 'vectors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_rev2.rel `test -f 'fpga_rev2.c' || echo './'`fpga_rev2.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o init_gpif.rel `test -f 'init_gpif.c' || echo './'`init_gpif.c ../common/fpga_load.c:139: warning 85: in function clock_out_config_byte unreferenced function argument : 'bits' srcdir=. /usr/bin/python ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h ../common/fpga_load.c:181: warning 126: unreachable code board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'bits' board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'mask' test -f `basename 'usb_descriptors.a51'` || ln -s 'usb_descriptors.a51' . test -f ../common/`basename 'usb_descriptors.a51'` -o \ \! -f `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` \ || ln -s `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` ../common/`basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o spi.rel `test -f 'spi.c' || echo './'`spi.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_io.rel `test -f 'eeprom_io.c' || echo './'`eeprom_io.c sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o eeprom_boot.ihx eeprom_boot.rel eeprom_init.rel _startup.rel sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_main.rel `test -f 'usrp_main.c' || echo './'`usrp_main.c sdas8051 -plosgff `basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_gpif.rel `test -f 'usrp_gpif.c' || echo './'`usrp_gpif.c /usr/bin/python ./../common/build_eeprom.py -p -r2 eeprom_boot.ihx > burn-usrp2-eeprom /usr/bin/python ./../common/build_eeprom.py -p -r4 eeprom_boot.ihx > burn-usrp4-eeprom usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion chmod +x burn-usrp2-eeprom chmod +x burn-usrp4-eeprom usrp_main.c:223: warning 112: function 'setup_flowstate_common' implicit declaration usrp_main.c:260: warning 112: function 'setup_flowstate_write' implicit declaration usrp_main.c:282: warning 112: function 'setup_flowstate_read' implicit declaration usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o std.ihx vectors.rel usrp_main.rel usrp_common.rel board_specific.rel fpga_load.rel fpga_rev2.rel init_gpif.rel usrp_gpif.rel usb_descriptors.rel spi.rel eeprom_io.rel _startup.rel ?ASlink-Warning-Undefined Global '_setup_flowstate_read' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_write' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_common' referenced by module 'usrp_main' Makefile:688: recipe for target 'std.ihx' failed make[4]: *** [std.ihx] Error 1 make[4]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[3]: *** [install-recursive] Error 1 make[3]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[2]: *** [install-recursive] Error 1 make[2]: Leaving directory ' Makefile:628: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:925: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Sun Feb 3 15:10:06 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sun, 3 Feb 2019 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#390?= Message-ID: <1614426301.62.1549206606974.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 2.17 KB...] checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs mkdir .libs mkdir: cannot create directory '.libs': File exists gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Sun Feb 3 22:47:07 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Feb 2019 22:47:07 +0000 Subject: Change in libosmocore[master]: doxygen: add source files as dependencies In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12775 ) Change subject: doxygen: add source files as dependencies ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12775 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I15ea96be6e7abe91264b91f0b06963a0f2d63b0b Gerrit-Change-Number: 12775 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Sun, 03 Feb 2019 22:47:07 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 22:47:28 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Feb 2019 22:47:28 +0000 Subject: Change in libosmocore[master]: doxygen: allow manual 'make apidoc' even if --disable-doxygen In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12776 ) Change subject: doxygen: allow manual 'make apidoc' even if --disable-doxygen ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12776 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If8d8dfb8365c8f28612b8ce2b8ddf88f74df9a90 Gerrit-Change-Number: 12776 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Sun, 03 Feb 2019 22:47:28 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 22:49:15 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Feb 2019 22:49:15 +0000 Subject: Change in osmo-asf4-dfu[sysmoOCTSIM]: change LED and switch to sysmoOCTSIM board In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12789 ) Change subject: change LED and switch to sysmoOCTSIM board ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/12789/1/atmel_start_pins.h File atmel_start_pins.h: https://gerrit.osmocom.org/#/c/12789/1/atmel_start_pins.h at 30 PS1, Line 30: /** LED pin to indicate system state (pull high to switch on) */ those kind of board-specific #defines should be moved to a "board.h" file which could then be in a board-specific sub-directory. You could start with having two of them, one for the evaluation board, and one for symsoOCTSIM. The Makefile could then specify the include path of the board we're currently building for. -- To view, visit https://gerrit.osmocom.org/12789 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: sysmoOCTSIM Gerrit-MessageType: comment Gerrit-Change-Id: I481d96a284240310b634f6dc0806d4a1972cd3b9 Gerrit-Change-Number: 12789 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Sun, 03 Feb 2019 22:49:15 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 22:50:38 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Feb 2019 22:50:38 +0000 Subject: Change in osmo-asf4-dfu[sysmoOCTSIM]: use sysmoOCTSIM USB PID and strings In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12790 ) Change subject: use sysmoOCTSIM USB PID and strings ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12790 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: sysmoOCTSIM Gerrit-MessageType: comment Gerrit-Change-Id: I1294d5f648240ddbaddeffcfffb4b0d61a88a39e Gerrit-Change-Number: 12790 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Sun, 03 Feb 2019 22:50:38 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 22:51:02 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Feb 2019 22:51:02 +0000 Subject: Change in osmo-asf4-dfu[sysmoOCTSIM]: document flashing procedure for sysmoOCTSIM In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12791 ) Change subject: document flashing procedure for sysmoOCTSIM ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12791 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: sysmoOCTSIM Gerrit-MessageType: comment Gerrit-Change-Id: I85aa4db62464d0a1b558968d0423e2adbe491a4f Gerrit-Change-Number: 12791 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Sun, 03 Feb 2019 22:51:02 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 3 22:51:49 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 3 Feb 2019 22:51:49 +0000 Subject: Change in osmo-asf4-dfu[sysmoOCTSIM]: change LED and switch to sysmoOCTSIM board In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12789 ) Change subject: change LED and switch to sysmoOCTSIM board ...................................................................... Patch Set 1: Code-Review+2 ok, now I get it. This is a branch. We can merge your patches to the branch and then have the board-specific #defines and startup functions once we integrate it to master. -- To view, visit https://gerrit.osmocom.org/12789 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: sysmoOCTSIM Gerrit-MessageType: comment Gerrit-Change-Id: I481d96a284240310b634f6dc0806d4a1972cd3b9 Gerrit-Change-Number: 12789 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Sun, 03 Feb 2019 22:51:49 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Feb 4 03:54:24 2019 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Feb 2019 03:54:24 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5c57b78c5d317_62858460c11741e0@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Debian_8.0/i586 Package network:osmocom:nightly/libosmocore failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 22s] Processing triggers for mime-support (3.58) ... [ 22s] [80/215] installing kmod-18-3 [ 22s] [81/215] installing less-458-3 [ 23s] Processing triggers for mime-support (3.58) ... [ 23s] [82/215] installing libacl1-2.2.52-2 [ 23s] [83/215] installing libc6-dev-2.19-18 [ 23s] [84/215] installing libcap2-1:2.24-8 [ 23s] [85/215] installing libgcrypt20-1.6.3-2 [ 23s] [86/215] installing libisl10-0.12.2-2 [ 23s] [87/215] installing libkrb5support0-1.12.1+dfsg-19 [ 24s] [88/215] installing libmagic1-1:5.22+15-2 [ 24s] [89/215] installing libmpfr4-3.1.2-2 [ 24s] [90/215] installing libncurses5-5.9+20140913-1+b1 [ 24s] [91/215] installing libncursesw5-5.9+20140913-1+b1 [ 24s] [92/215] installing libp11-kit0-0.20.7-1 [ 24s] [93/215] installing libpcsclite-dev-1.8.13-1 [ 24s] [94/215] installing libselinux1-2.3-2 [ 24s] [95/215] installing libss2-1.42.12-1.1 [ 24s] [96/215] installing python2.7-minimal-2.7.9-2 [ 25s] [97/215] installing libasprintf0c2-0.19.3-2 [ 25s] [98/215] installing libedit2-3.1-20140620-2 [ 25s] [99/215] installing libhogweed2-2.7.1-5 [28826s] qemu-system-x86_64: terminating on signal 15 from pid 19889 () Job seems to be stuck here, killed. (after 28800 seconds of inactivity) [28826s] ### VM INTERACTION END ### [28826s] No buildstatus set, either the base system is broken (kernel/initrd/udev/glibc/bash/perl) [28826s] or the build host has a kernel or hardware problem... -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Mon Feb 4 04:43:33 2019 From: gerrit-no-reply at lists.osmocom.org (Omar Ramadan) Date: Mon, 4 Feb 2019 04:43:33 +0000 Subject: Change in libosmocore[master]: VTY: add command show asciidoc ctrl Message-ID: Omar Ramadan has uploaded this change for review. ( https://gerrit.osmocom.org/12814 Change subject: VTY: add command show asciidoc ctrl ...................................................................... VTY: add command show asciidoc ctrl Builds on the asciidoc VTY feature to list out all of the registered CTRL commands for a particular project. This will help with documentation generation efforts, and serve as a quick way to know which CTRL parameters are registered CTRL command access mode indicator Adds an explicit access mode enum type, ctrl_cmd_mode to ctrl_cmd_element which provides a programatic way to detect whether a CTRL command is RO/WO/RW Also associates the access mode with the "show asciidoc ctrl" VTY command Change-Id: I16f59bfca72a7dd9c268bc64499b26d82a2115d2 --- M include/osmocom/ctrl/control_cmd.h M src/ctrl/control_cmd.c M src/ctrl/control_vty.c 3 files changed, 122 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/14/12814/1 diff --git a/include/osmocom/ctrl/control_cmd.h b/include/osmocom/ctrl/control_cmd.h index 276a7de..045bc2c 100644 --- a/include/osmocom/ctrl/control_cmd.h +++ b/include/osmocom/ctrl/control_cmd.h @@ -38,6 +38,13 @@ CTRL_TYPE_ERROR }; +/*! Ctrl command modes (RO, WO, RW) */ +enum ctrl_cmd_mode { + CTRL_MODE_RO, + CTRL_MODE_WO, + CTRL_MODE_RW +}; + /*! human-readable string names for \ref ctrl_type */ extern const struct value_string ctrl_type_vals[]; @@ -96,6 +103,8 @@ /*! textual name/id of the CTRL command */ const char *name; struct ctrl_cmd_struct strcmd; + /*! read/write mode of the CTRL command */ + enum ctrl_cmd_mode mode; /*! call-back function implementing the SET operation */ int (*set)(struct ctrl_cmd *cmd, void *data); /*! call-back function implementing the GET operation */ @@ -125,6 +134,8 @@ int ctrl_cmd_install(enum ctrl_node_type node, struct ctrl_cmd_element *cmd); int ctrl_cmd_send(struct osmo_wqueue *queue, struct ctrl_cmd *cmd); int ctrl_cmd_send_to_all(struct ctrl_handle *ctrl, struct ctrl_cmd *cmd); +int ctrl_cmds_for_each(int (*handle_ctrl_cmd)(struct ctrl_cmd_element *, void *), + enum ctrl_node_type node, void *data); struct ctrl_cmd *ctrl_cmd_parse3(void *ctx, struct msgb *msg, bool *parse_failed); struct ctrl_cmd *ctrl_cmd_parse2(void *ctx, struct msgb *msg); struct ctrl_cmd *ctrl_cmd_parse(void *ctx, struct msgb *msg); @@ -136,10 +147,12 @@ /*! Helper to generate static struct ctrl_cmd_element * \param[in] cmdname symbol name of the command related functions/structures * \param[in] cmdstr string name exposed on CTRL + * \param[in] cmdmode access mode of CTRL command * \param[in] verify_name full symbol name of verification function */ -#define CTRL_CMD_DEFINE_STRUCT(cmdname, cmdstr, verify_name) \ +#define CTRL_CMD_DEFINE_STRUCT(cmdname, cmdstr, cmdmode, verify_name) \ static struct ctrl_cmd_element cmd_##cmdname = { \ .name = cmdstr, \ + .mode = cmdmode, \ .get = &get_##cmdname, \ .set = &set_##cmdname, \ .verify = verify_name, \ @@ -200,7 +213,7 @@ CTRL_HELPER_GET_INT(cmdname, dtype, element) \ CTRL_HELPER_SET_INT(cmdname, dtype, element) \ CTRL_HELPER_VERIFY_RANGE(cmdname, min, max) \ -CTRL_CMD_DEFINE_STRUCT(cmdname, cmdstr, verify_##cmdname) +CTRL_CMD_DEFINE_STRUCT(cmdname, cmdstr, CTRL_MODE_RW, verify_##cmdname) /*! Helper to generate static GET function for string * \param[in] cmdname symbol name of the command related function @@ -240,7 +253,7 @@ #define CTRL_CMD_DEFINE_STRING(cmdname, cmdstr, dtype, element) \ CTRL_HELPER_GET_STRING(cmdname, dtype, element) \ CTRL_HELPER_SET_STRING(cmdname, dtype, element) \ -CTRL_CMD_DEFINE_STRUCT(cmdname, cmdstr, NULL) +CTRL_CMD_DEFINE_STRUCT(cmdname, cmdstr, CTRL_MODE_RW, NULL) /*! Declare a read-write attribute. Declares get, set, verify. * \param[in] cmdname symbol name of the command related functions/structures @@ -249,7 +262,7 @@ static int get_##cmdname(struct ctrl_cmd *cmd, void *data); \ static int set_##cmdname(struct ctrl_cmd *cmd, void *data); \ static int verify_##cmdname(struct ctrl_cmd *cmd, const char *value, void *data); \ -CTRL_CMD_DEFINE_STRUCT(cmdname, cmdstr, verify_##cmdname) +CTRL_CMD_DEFINE_STRUCT(cmdname, cmdstr, CTRL_MODE_RW, verify_##cmdname) /*! Define a read-only attribute. Declares get, implements set+verify * \param[in] cmdname symbol name of the command related functions/structures @@ -266,7 +279,7 @@ cmd->reply = "Read Only attribute"; \ return 1; \ } \ -CTRL_CMD_DEFINE_STRUCT(cmdname, cmdstr, verify_##cmdname) +CTRL_CMD_DEFINE_STRUCT(cmdname, cmdstr, CTRL_MODE_RO, verify_##cmdname) /*! Define a write-only attribute. Declares set+verify, implements read call-back * \param[in] cmdname symbol name of the command related functions/structures @@ -279,7 +292,7 @@ return CTRL_CMD_ERROR; \ } \ static int verify_##cmdname(struct ctrl_cmd *cmd, const char *val, void *data); \ -CTRL_CMD_DEFINE_STRUCT(cmdname, cmdstr, verify_##cmdname) +CTRL_CMD_DEFINE_STRUCT(cmdname, cmdstr, CTRL_MODE_WO, verify_##cmdname) /*! Define a write-only attribute without verify. Declares set, implements read+verify * \param[in] cmdname symbol name of the command related functions/structures @@ -295,6 +308,6 @@ { \ return 0; \ } \ -CTRL_CMD_DEFINE_STRUCT(cmdname, cmdstr, verify_##cmdname) +CTRL_CMD_DEFINE_STRUCT(cmdname, cmdstr, CTRL_MODE_WO, verify_##cmdname) struct gsm_network; diff --git a/src/ctrl/control_cmd.c b/src/ctrl/control_cmd.c index 33496bd..31144ee 100644 --- a/src/ctrl/control_cmd.c +++ b/src/ctrl/control_cmd.c @@ -58,6 +58,32 @@ /* Functions from libosmocom */ extern vector cmd_make_descvec(const char *string, const char *descstr); +/*! Iterate over all control commands; call \a handle_ctrl_cmd call-back for each. + * \param[in] handle_ctrl_cmd Call-back to be called for each control command; aborts if rc < 0 + * \param[in] node CTRL node type from which to iterate + * \param[in] data Opaque data passed through to \a handle_ctrl_cmd function + * \returns 0 if all \a handle_ctrl_cmd calls successful; negative on error */ +int ctrl_cmds_for_each(int (*handle_ctrl_cmd)(struct ctrl_cmd_element *, void *), + enum ctrl_node_type node, void *data) +{ + int rc = 0; + int index; + struct ctrl_cmd_element *cmd_el; + vector cmds_vec; + + if ((cmds_vec = vector_lookup_ensure(ctrl_node_vec, node))) { + for (index = 0; index < vector_active(cmds_vec); index++) { + if ((cmd_el = vector_slot(cmds_vec, index))) { + rc = handle_ctrl_cmd(cmd_el, data); + if (rc < 0) + return rc; + } + } + } + + return rc; +} + /* Get the ctrl_cmd_element that matches this command */ static struct ctrl_cmd_element *ctrl_cmd_get_element_match(vector vline, vector node) { @@ -143,6 +169,8 @@ ret = cmd_el->get(command, data); goto out; } + + out: if (ret == CTRL_CMD_REPLY) { if (command->type == CTRL_TYPE_SET) { diff --git a/src/ctrl/control_vty.c b/src/ctrl/control_vty.c index ef98889..c0a1ebb 100644 --- a/src/ctrl/control_vty.c +++ b/src/ctrl/control_vty.c @@ -26,8 +26,12 @@ #include #include #include +#include #include +/* containing version info */ +extern struct host host; + static void *ctrl_vty_ctx = NULL; static const char *ctrl_vty_bind_addr = NULL; @@ -66,6 +70,75 @@ return CMD_SUCCESS; } +static int asciidoc_handle_ctrl_cmd(struct ctrl_cmd_element *cmd_el, void *sctx_) +{ + struct vty *vty = sctx_; + struct ctrl_cmd_struct *cmd_desc = &cmd_el->strcmd; + char *name = osmo_asciidoc_escape(cmd_el->name); + char *word, *mode; + int i; + + /* | name | commands | mode | */ + vty_out(vty, "| %s |", name); + for (i=0; i < cmd_desc->nr_commands; i++){ + word = osmo_asciidoc_escape(cmd_desc->command[i]); + vty_out(vty, " %s", word); + talloc_free(word); + } + + switch(cmd_el->mode){ + case CTRL_MODE_RO: + mode = "RO"; + break; + case CTRL_MODE_WO: + mode = "WO"; + break; + case CTRL_MODE_RW: + mode = "RW"; + break; + default: + mode = ""; + } + vty_out(vty, " | %s |%s", mode, VTY_NEWLINE); + + talloc_free(name); + + return 0; +} + +DEFUN(show_ctrl_asciidoc_table, + show_ctrl_asciidoc_table_cmd, +"show asciidoc ctrl", +SHOW_STR "Asciidoc generation\n" "Generate table of all registered ctrl configurations\n") +{ +vty_out(vty, "// autogenerated by show asciidoc crtl%s", VTY_NEWLINE); +vty_out(vty, "These configurations and their description based on %s %s (%s).%s%s", +host.app_info->name, +host.app_info->version, +host.app_info->name ? host.app_info->name : "", VTY_NEWLINE, VTY_NEWLINE); +/* 2x VTY_NEWLINE are intentional otherwise it would interpret the first table header + * as usual text*/ +vty_out(vty, "=== Root commands%s%s", VTY_NEWLINE, VTY_NEWLINE); +vty_out(vty, "// generating tables for CTRL_NODE_ROOT%s", VTY_NEWLINE); +ctrl_cmds_for_each(asciidoc_handle_ctrl_cmd, CTRL_NODE_ROOT, vty); +vty_out(vty, "=== BTS commands (net.btsN.) %s%s", VTY_NEWLINE, VTY_NEWLINE); +vty_out(vty, "// generating tables for CTRL_NODE_BTS%s", VTY_NEWLINE); +ctrl_cmds_for_each(asciidoc_handle_ctrl_cmd, CTRL_NODE_BTS, vty); +vty_out(vty, "=== TRX commands (net.btsN.trxM.) %s%s", VTY_NEWLINE, VTY_NEWLINE); +vty_out(vty, "// generating tables for CTRL_NODE_TRX%s", VTY_NEWLINE); +ctrl_cmds_for_each(asciidoc_handle_ctrl_cmd, CTRL_NODE_TRX, vty); +vty_out(vty, "=== Timeslot commands (net.btsN.trxM.tsI.) %s%s", VTY_NEWLINE, VTY_NEWLINE); +vty_out(vty, "// generating tables for CTRL_NODE_TS%s", VTY_NEWLINE); +ctrl_cmds_for_each(asciidoc_handle_ctrl_cmd, CTRL_NODE_TS, vty); +vty_out(vty, "=== FSM commands (description) %s%s", VTY_NEWLINE, VTY_NEWLINE); +vty_out(vty, "// generating tables for CTRL_NODE_FSM%s", VTY_NEWLINE); +ctrl_cmds_for_each(asciidoc_handle_ctrl_cmd, CTRL_NODE_FSM, vty); +vty_out(vty, "=== FSM commands (instance) %s%s", VTY_NEWLINE, VTY_NEWLINE); +vty_out(vty, "// generating tables for CTRL_NODE_FSM_INST%s", VTY_NEWLINE); +ctrl_cmds_for_each(asciidoc_handle_ctrl_cmd, CTRL_NODE_FSM_INST, vty); +return CMD_SUCCESS; +} + static int config_write_ctrl(struct vty *vty) { /* So far there's only one element. Omit the entire section if the bind @@ -86,6 +159,7 @@ install_node(&ctrl_node, config_write_ctrl); install_element(L_CTRL_NODE, &cfg_ctrl_bind_addr_cmd); + install_element_ve(&show_ctrl_asciidoc_table_cmd); return 0; } -- To view, visit https://gerrit.osmocom.org/12814 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I16f59bfca72a7dd9c268bc64499b26d82a2115d2 Gerrit-Change-Number: 12814 Gerrit-PatchSet: 1 Gerrit-Owner: Omar Ramadan -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 04:46:17 2019 From: gerrit-no-reply at lists.osmocom.org (Omar Ramadan) Date: Mon, 4 Feb 2019 04:46:17 +0000 Subject: Change in libosmocore[master]: VTY: add command show asciidoc ctrl In-Reply-To: References: Message-ID: Omar Ramadan has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/12814 ) Change subject: VTY: add command show asciidoc ctrl ...................................................................... VTY: add command show asciidoc ctrl Builds on the asciidoc VTY feature to list out all of the registered CTRL commands for a particular project. This will help with documentation generation efforts, and serve as a quick way to know which CTRL parameters are registered CTRL command access mode indicator Adds an explicit access mode enum type, ctrl_cmd_mode to ctrl_cmd_element which provides a programatic way to detect whether a CTRL command is RO/WO/RW Also associates the access mode with the "show asciidoc ctrl" VTY command Change-Id: I16f59bfca72a7dd9c268bc64499b26d82a2115d2 --- M include/osmocom/ctrl/control_cmd.h M src/ctrl/control_cmd.c M src/ctrl/control_vty.c 3 files changed, 120 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/14/12814/2 -- To view, visit https://gerrit.osmocom.org/12814 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I16f59bfca72a7dd9c268bc64499b26d82a2115d2 Gerrit-Change-Number: 12814 Gerrit-PatchSet: 2 Gerrit-Owner: Omar Ramadan Gerrit-CC: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 06:14:58 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Mon, 4 Feb 2019 06:14:58 +0000 Subject: Change in libosmocore[master]: VTY: add command show asciidoc ctrl In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12814 ) Change subject: VTY: add command show asciidoc ctrl ...................................................................... Patch Set 2: Code-Review-2 (12 comments) https://gerrit.osmocom.org/#/c/12814/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/12814/2//COMMIT_MSG at 13 PS2, Line 13: CTRL command access mode indicator It looks like you're submitting two squashed changes in a single one. Why not to submit both separately? https://gerrit.osmocom.org/#/c/12814/2/include/osmocom/ctrl/control_cmd.h File include/osmocom/ctrl/control_cmd.h: https://gerrit.osmocom.org/#/c/12814/2/include/osmocom/ctrl/control_cmd.h at 107 PS2, Line 107: enum ctrl_cmd_mode mode; You're breaking ABI here. https://gerrit.osmocom.org/#/c/12814/2/include/osmocom/ctrl/control_cmd.h at 152 PS2, Line 152: CTRL_CMD_DEFINE_STRUCT Since this is a public header, we cannot modify existing symbols nor definitions. https://gerrit.osmocom.org/#/c/12814/2/include/osmocom/ctrl/control_cmd.h at 216 PS2, Line 216: CTRL_MODE_RW Same comments apply here and below... https://gerrit.osmocom.org/#/c/12814/2/src/ctrl/control_cmd.c File src/ctrl/control_cmd.c: https://gerrit.osmocom.org/#/c/12814/2/src/ctrl/control_cmd.c at 61 PS2, Line 61: \a handle_ctrl_cmd AFAIR, Neels recently figured out that manual referencing (\ref or \a) is not needed. https://gerrit.osmocom.org/#/c/12814/2/src/ctrl/control_cmd.c at 74 PS2, Line 74: cmds_vec = vector_lookup_ensure(ctrl_node_vec, node cosmetic: you could reduce nesting: cmds_vec = vector_lookup_ensure(ctrl_node_vec, node); if (!cmds_vec) return 0; // or -EFOOBAR? https://gerrit.osmocom.org/#/c/12814/2/src/ctrl/control_vty.c File src/ctrl/control_vty.c: https://gerrit.osmocom.org/#/c/12814/2/src/ctrl/control_vty.c at 83 PS2, Line 83: i=0 Missing spaces. https://gerrit.osmocom.org/#/c/12814/2/src/ctrl/control_vty.c at 89 PS2, Line 89: switch(cmd_el->mode){ Missing space, should be 'switch ('. https://gerrit.osmocom.org/#/c/12814/2/src/ctrl/control_vty.c at 90 PS2, Line 90: Usually, we don't shift 'cases' from the 'switch' statement. https://gerrit.osmocom.org/#/c/12814/2/src/ctrl/control_vty.c at 100 PS2, Line 100: "" "(unknown)"? https://gerrit.osmocom.org/#/c/12814/2/src/ctrl/control_vty.c at 104 PS2, Line 104: talloc_free This allocation is only used at the beginning of the function, so it should be freed there. https://gerrit.osmocom.org/#/c/12814/2/src/ctrl/control_vty.c at 109 PS2, Line 109: DEFUN(show_ctrl_asciidoc_table, : show_ctrl_asciidoc_table_cmd, : "show asciidoc ctrl", : SHOW_STR "Asciidoc generation\n" "Generate table of all registered ctrl configurations\n") : { This coding style itself deserves CR-2, sorry. -- To view, visit https://gerrit.osmocom.org/12814 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I16f59bfca72a7dd9c268bc64499b26d82a2115d2 Gerrit-Change-Number: 12814 Gerrit-PatchSet: 2 Gerrit-Owner: Omar Ramadan Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Mon, 04 Feb 2019 06:14:58 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 09:14:24 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 09:14:24 +0000 Subject: Change in libosmo-netif[master]: Stream client: fix disconnection logic In-Reply-To: References: Message-ID: Hello daniel, osmith, Jenkins Builder, Pablo Neira Ayuso, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12760 to look at the new patch set (#2). Change subject: Stream client: fix disconnection logic ...................................................................... Stream client: fix disconnection logic Previously closing the client did not alter its state, so we might end-up with a client without any file descriptors, but being in state STREAM_CLI_STATE_CONNECTED. Fix this inconsistency by setting appropriate state. Related issue is that reconnect function, which is always (at least in the library and examples) called when some problem with the connection is detected, closed the connection only after checking whether reconnection is enabled. This might result in another inconsistency fixed in this patch by moving the check below connection cleanup. Change-Id: If41ed60bd625488c283d1e8a2b078e640f04c78e --- M src/stream.c 1 file changed, 5 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/60/12760/2 -- To view, visit https://gerrit.osmocom.org/12760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: If41ed60bd625488c283d1e8a2b078e640f04c78e Gerrit-Change-Number: 12760 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pablo Neira Ayuso Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 09:18:03 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 4 Feb 2019 09:18:03 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: Hello Max, Neels Hofmeyr, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12625 to look at the new patch set (#7). Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... assignment_fsm: fix channel allocator preferences When the MSC allocates a channel through the ASSIGNMENT REQUEST, it may ask for a TCH/H and a TCH/F at the same time and tell which of the two types it prefers. The process of channel allocation currently selects, based on the BTS, MSC and MS capabilites exactly one apropriate codec/rate (e.g. TCH/H) and then tries to allocate it. If that allocation fails, there is no way to try the second choice and the assignment fails. For example: The MSC asks for TCH/F and TCH/H, prefering TCH/F, then the channel allocator will try TCH/F and if it fails (all TCH/F are currently in use), then TCH/H is never tried. Since the BSC currently only trys the first best codec/rate that is supported it also ignores the preference. Lets fix those problems by including the preference information and both possible codec/rate settings into the channel allocation decision. Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Related: OS#3503 --- M include/osmocom/bsc/codec_pref.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/codec_pref.c M src/osmo-bsc/handover_fsm.c M src/osmo-bsc/osmo_bsc_bssap.c M tests/codec_pref/codec_pref_test.c 8 files changed, 321 insertions(+), 117 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/25/12625/7 -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 09:24:03 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 09:24:03 +0000 Subject: Change in osmo-ccid-firmware[master]: ignore output files In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12795 ) Change subject: ignore output files ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12795 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I425129f10aa2ff879fde96bfafbcb7c4b4119959 Gerrit-Change-Number: 12795 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Max Gerrit-Comment-Date: Mon, 04 Feb 2019 09:24:03 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 09:25:28 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 09:25:28 +0000 Subject: Change in libosmocore[master]: bitvec: Add bitvec_bytes_used() function In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12787 ) Change subject: bitvec: Add bitvec_bytes_used() function ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12787 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id4bd7f7543f5b0f4f6f876e283bd065039c37646 Gerrit-Change-Number: 12787 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Mon, 04 Feb 2019 09:25:28 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 09:25:57 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 09:25:57 +0000 Subject: Change in libosmocore[master]: gsm_08_08.h: Add IEI definitions from Release 15 In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12781 ) Change subject: gsm_08_08.h: Add IEI definitions from Release 15 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12781 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If3649606ba7c25121e30ed02939ca08c94665be5 Gerrit-Change-Number: 12781 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Mon, 04 Feb 2019 09:25:57 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 09:27:06 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 09:27:06 +0000 Subject: Change in libosmocore[master]: Extend gsm_04_08.h with CSFB related definitiosn form 44.018 Rel 15 In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12780 ) Change subject: Extend gsm_04_08.h with CSFB related definitiosn form 44.018 Rel 15 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12780 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0e101af316438b56d63d43fc2cb16d7caf563d07 Gerrit-Change-Number: 12780 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Mon, 04 Feb 2019 09:27:06 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 09:28:58 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 09:28:58 +0000 Subject: Change in osmo-gsm-manuals[master]: GSUP: message category indicated by last two bits In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12778 ) Change subject: GSUP: message category indicated by last two bits ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12778 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iec1b4ce4b7d8eb157406f006e1c4241e8fba2cd6 Gerrit-Change-Number: 12778 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 04 Feb 2019 09:28:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 09:30:18 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 09:30:18 +0000 Subject: Change in libosmocore[master]: GSUP: deprecate osmo_gsup_get_err_msg_type() In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12777 ) Change subject: GSUP: deprecate osmo_gsup_get_err_msg_type() ...................................................................... Patch Set 1: Code-Review-1 (1 comment) https://gerrit.osmocom.org/#/c/12777/1/include/osmocom/gsm/gsup.h File include/osmocom/gsm/gsup.h: https://gerrit.osmocom.org/#/c/12777/1/include/osmocom/gsm/gsup.h at 295 PS1, Line 295: deprecated: use OSMO_GSUP_TO_MSGT_ERROR() instead > Please use OSMO_DEPRECATED() instead of this comment. Ack -- To view, visit https://gerrit.osmocom.org/12777 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I46d9f2327791978710e2f90b4d28a3761d723d8f Gerrit-Change-Number: 12777 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 04 Feb 2019 09:30:18 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Mon Feb 4 09:46:02 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Mon, 4 Feb 2019 09:46:02 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-trx_=C2=BB_--wit?= =?UTF-8?Q?h-sse,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#858?= In-Reply-To: <1107108389.61.1549203513048.JavaMail.jenkins@jenkins.osmocom.org> References: <1107108389.61.1549203513048.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <17208269.75.1549273562883.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Mon Feb 4 09:56:38 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 4 Feb 2019 09:56:38 +0000 Subject: Change in osmo-gsm-manuals[master]: GSUP: message category indicated by last two bits In-Reply-To: References: Message-ID: osmith has submitted this change and it was merged. ( https://gerrit.osmocom.org/12778 ) Change subject: GSUP: message category indicated by last two bits ...................................................................... GSUP: message category indicated by last two bits Make this part of the specification, so we can simplify libosmocore code by knowing that error message is (request message | 0x000001). Related: I46d9f2327791978710e2f90b4d28a3761d723d8f (libosmocore) Change-Id: Iec1b4ce4b7d8eb157406f006e1c4241e8fba2cd6 --- M common/chapters/gsup.adoc 1 file changed, 13 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Max: Looks good to me, approved diff --git a/common/chapters/gsup.adoc b/common/chapters/gsup.adoc index 673ed59..7a16e64 100644 --- a/common/chapters/gsup.adoc +++ b/common/chapters/gsup.adoc @@ -766,6 +766,19 @@ |0x32|CHECK-IMEI Result |=== +The category of the message is indicated by the last two bits of the type. +Request, Error and Result messages only differ in these last two bits, so it is +trivial to transform them. + +[options="header",cols="20%,80%"] +|=== +|Ending Bits|Message Category +|00|Request +|01|Error +|10|Result +|11|Other +|=== + [[gsup-ie-ipaddr]] ==== IP Address -- To view, visit https://gerrit.osmocom.org/12778 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iec1b4ce4b7d8eb157406f006e1c4241e8fba2cd6 Gerrit-Change-Number: 12778 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 09:59:21 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 4 Feb 2019 09:59:21 +0000 Subject: Change in libosmo-netif[master]: Stream client: fix disconnection logic In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12760 ) Change subject: Stream client: fix disconnection logic ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If41ed60bd625488c283d1e8a2b078e640f04c78e Gerrit-Change-Number: 12760 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pablo Neira Ayuso Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 04 Feb 2019 09:59:21 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 10:04:47 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 4 Feb 2019 10:04:47 +0000 Subject: Change in osmo-bts[master]: scheduler_trx: use stored block fn instead of calculating it. In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/12779 ) Change subject: scheduler_trx: use stored block fn instead of calculating it. ...................................................................... Patch Set 1: (1 comment) The first *first_fn pointer points to chan_state->ul_first_fn. I was assuming that this is per channel and that the fn of the first received burst is recoreded and so it sounded logical to to me that this is the FN of the complete block that is then handed upwards to the higher layers, even when the block is spread over non consecutive bursts. We still have the fn where the block has begun. What I find confusing is that at the moment we use different fn for the measurement indications and for the TCH/DATA indications. To me this sounds incorrect. From my understanding, the measurement indication should have the same fn as the TCH/DATA indication. At the moment I am trying to merge TCH/DATA and measurement inidcation so that they are a single object that is handed upwards. It would be important to know that if we we would end up with two different types of FN in that unified indication or not. Assuming everything is calculated correctly, would end up with a single FN? We need to solve this somehow, otherwise it will not be possible to merge TCH/DATA indication with the measurement indication cleanly. https://gerrit.osmocom.org/#/c/12779/1/src/osmo-bts-trx/scheduler_trx.c File src/osmo-bts-trx/scheduler_trx.c: https://gerrit.osmocom.org/#/c/12779/1/src/osmo-bts-trx/scheduler_trx.c at 1306 PS1, Line 1306: printf > Left from debugging? ;) Done -- To view, visit https://gerrit.osmocom.org/12779 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia27254bbf6e36426f7890ece6154dcd395673f63 Gerrit-Change-Number: 12779 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: dexter Gerrit-Comment-Date: Mon, 04 Feb 2019 10:04:47 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 10:11:24 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 4 Feb 2019 10:11:24 +0000 Subject: Change in libosmocore[master]: GSUP: deprecate osmo_gsup_get_err_msg_type() In-Reply-To: References: Message-ID: Hello Vadim Yanitskiy, Max, Neels Hofmeyr, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12777 to look at the new patch set (#2). Change subject: GSUP: deprecate osmo_gsup_get_err_msg_type() ...................................................................... GSUP: deprecate osmo_gsup_get_err_msg_type() Replace osmo_gsup_get_err_msg_type() with a wrapper to OSMO_GSUP_TO_MSGT_ERROR(). This macro assumes, that all error messages are (request message | 0x000001). Add a big comment header for osmo_gsup_message_type, describing this already implicitly followed rule and therefore making it explicit. With this change, we don't need to maintain the request -> error message mapping in osmo_gsup_get_err_msg_type() anymore. Related: Iec1b4ce4b7d8eb157406f006e1c4241e8fba2cd6 (osmo-gsm-manuals) Change-Id: I46d9f2327791978710e2f90b4d28a3761d723d8f --- M include/osmocom/gsm/gsup.h M src/gsm/gsup.c 2 files changed, 17 insertions(+), 30 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/77/12777/2 -- To view, visit https://gerrit.osmocom.org/12777 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I46d9f2327791978710e2f90b4d28a3761d723d8f Gerrit-Change-Number: 12777 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 10:11:56 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 4 Feb 2019 10:11:56 +0000 Subject: Change in libosmocore[master]: GSUP: deprecate osmo_gsup_get_err_msg_type() In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12777 ) Change subject: GSUP: deprecate osmo_gsup_get_err_msg_type() ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12777/1/include/osmocom/gsm/gsup.h File include/osmocom/gsm/gsup.h: https://gerrit.osmocom.org/#/c/12777/1/include/osmocom/gsm/gsup.h at 295 PS1, Line 295: deprecated: use OSMO_GSUP_TO_MSGT_ERROR() instead > Ack Done -- To view, visit https://gerrit.osmocom.org/12777 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I46d9f2327791978710e2f90b4d28a3761d723d8f Gerrit-Change-Number: 12777 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 04 Feb 2019 10:11:56 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 10:12:51 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 10:12:51 +0000 Subject: Change in libosmocore[master]: GSUP: deprecate osmo_gsup_get_err_msg_type() In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12777 ) Change subject: GSUP: deprecate osmo_gsup_get_err_msg_type() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12777 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I46d9f2327791978710e2f90b4d28a3761d723d8f Gerrit-Change-Number: 12777 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 04 Feb 2019 10:12:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 10:28:18 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 4 Feb 2019 10:28:18 +0000 Subject: Change in osmo-hlr[master]: hlr.c: replace deprecated osmo_gsup_get_err_msg_type() Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/12815 Change subject: hlr.c: replace deprecated osmo_gsup_get_err_msg_type() ...................................................................... hlr.c: replace deprecated osmo_gsup_get_err_msg_type() Use OSMO_GSUP_TO_MSGT_ERROR() instead. The other function has been deprecated in [1]. Remove the < 0 return check, because the macro doesn't do any error handling. It relies on all "request" messages having an appropriate "error" message, which is part of the GSUP spec now (see [2]). [1] change-id I46d9f2327791978710e2f90b4d28a3761d723d8f (libosmocore) [2] change-id Iec1b4ce4b7d8eb157406f006e1c4241e8fba2cd6 (osmo-gsm-manuals) Change-Id: I5435ec4c29d6acee814c33499c68d18aaa91d4fb --- M src/hlr.c 1 file changed, 1 insertion(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/15/12815/1 diff --git a/src/hlr.c b/src/hlr.c index 0098a32..7046180 100644 --- a/src/hlr.c +++ b/src/hlr.c @@ -379,16 +379,10 @@ static int gsup_send_err_reply(struct osmo_gsup_conn *conn, const char *imsi, enum osmo_gsup_message_type type_in, uint8_t err_cause) { - int type_err = osmo_gsup_get_err_msg_type(type_in); + int type_err = OSMO_GSUP_TO_MSGT_ERROR(type_in); struct osmo_gsup_message gsup_reply = {0}; struct msgb *msg_out; - if (type_err < 0) { - LOGP(DMAIN, LOGL_ERROR, "unable to determine error response for %s\n", - osmo_gsup_message_type_name(type_in)); - return type_err; - } - OSMO_STRLCPY_ARRAY(gsup_reply.imsi, imsi); gsup_reply.message_type = type_err; gsup_reply.cause = err_cause; -- To view, visit https://gerrit.osmocom.org/12815 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5435ec4c29d6acee814c33499c68d18aaa91d4fb Gerrit-Change-Number: 12815 Gerrit-PatchSet: 1 Gerrit-Owner: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 10:38:03 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Mon, 4 Feb 2019 10:38:03 +0000 Subject: Change in osmo-hlr[master]: hlr.c: replace deprecated osmo_gsup_get_err_msg_type() In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12815 ) Change subject: hlr.c: replace deprecated osmo_gsup_get_err_msg_type() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12815 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5435ec4c29d6acee814c33499c68d18aaa91d4fb Gerrit-Change-Number: 12815 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Mon, 04 Feb 2019 10:38:03 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 10:38:11 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Mon, 4 Feb 2019 10:38:11 +0000 Subject: Change in libosmocore[master]: GSUP: deprecate osmo_gsup_get_err_msg_type() In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12777 ) Change subject: GSUP: deprecate osmo_gsup_get_err_msg_type() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12777 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I46d9f2327791978710e2f90b4d28a3761d723d8f Gerrit-Change-Number: 12777 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 04 Feb 2019 10:38:11 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 10:42:08 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 4 Feb 2019 10:42:08 +0000 Subject: Change in libosmocore[master]: GSUP: deprecate osmo_gsup_get_err_msg_type() In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12777 ) Change subject: GSUP: deprecate osmo_gsup_get_err_msg_type() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12777 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I46d9f2327791978710e2f90b4d28a3761d723d8f Gerrit-Change-Number: 12777 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 04 Feb 2019 10:42:08 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 10:42:12 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 4 Feb 2019 10:42:12 +0000 Subject: Change in libosmocore[master]: GSUP: deprecate osmo_gsup_get_err_msg_type() In-Reply-To: References: Message-ID: osmith has submitted this change and it was merged. ( https://gerrit.osmocom.org/12777 ) Change subject: GSUP: deprecate osmo_gsup_get_err_msg_type() ...................................................................... GSUP: deprecate osmo_gsup_get_err_msg_type() Replace osmo_gsup_get_err_msg_type() with a wrapper to OSMO_GSUP_TO_MSGT_ERROR(). This macro assumes, that all error messages are (request message | 0x000001). Add a big comment header for osmo_gsup_message_type, describing this already implicitly followed rule and therefore making it explicit. With this change, we don't need to maintain the request -> error message mapping in osmo_gsup_get_err_msg_type() anymore. Related: Iec1b4ce4b7d8eb157406f006e1c4241e8fba2cd6 (osmo-gsm-manuals) Change-Id: I46d9f2327791978710e2f90b4d28a3761d723d8f --- M include/osmocom/gsm/gsup.h M src/gsm/gsup.c 2 files changed, 17 insertions(+), 30 deletions(-) Approvals: Max: Looks good to me, but someone else must approve Vadim Yanitskiy: Looks good to me, but someone else must approve osmith: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gsm/gsup.h b/include/osmocom/gsm/gsup.h index 5dc2a82..29ea11a 100644 --- a/include/osmocom/gsm/gsup.h +++ b/include/osmocom/gsm/gsup.h @@ -105,7 +105,18 @@ _OSMO_GSUP_IEI_END_MARKER }; -/*! GSUP message type */ +/*! GSUP message type + * Make sure that new messages follow this scheme: + * .----------------------------. + * | Ending Bits | Category | + * |----------------------------| + * | 00 | Request | + * | 01 | Error | + * | 10 | Result | + * | 11 | Other | + * '----------------------------' + * Request, Error and Result messages must only differ in these last two bits. + */ enum osmo_gsup_message_type { OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST = 0b00000100, OSMO_GSUP_MSGT_UPDATE_LOCATION_ERROR = 0b00000101, @@ -280,6 +291,7 @@ int osmo_gsup_decode(const uint8_t *data, size_t data_len, struct osmo_gsup_message *gsup_msg); int osmo_gsup_encode(struct msgb *msg, const struct osmo_gsup_message *gsup_msg); -int osmo_gsup_get_err_msg_type(enum osmo_gsup_message_type type_in); +int osmo_gsup_get_err_msg_type(enum osmo_gsup_message_type type_in) + OSMO_DEPRECATED("Use OSMO_GSUP_TO_MSGT_ERROR() instead"); /*! @} */ diff --git a/src/gsm/gsup.c b/src/gsm/gsup.c index 3d2a8e2..a089322 100644 --- a/src/gsm/gsup.c +++ b/src/gsm/gsup.c @@ -95,36 +95,11 @@ }; -/*! return the error message type corresponding to \a type_in - * \returns matching error message type; -1 on error */ +/*! return the error message type corresponding to \a type_in. + * Deprecated, use OSMO_GSUP_TO_MSGT_ERROR() instead. */ int osmo_gsup_get_err_msg_type(enum osmo_gsup_message_type type_in) { - switch (type_in) { - case OSMO_GSUP_MSGT_UPDATE_LOCATION_REQUEST: - return OSMO_GSUP_MSGT_UPDATE_LOCATION_ERROR; - case OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: - return OSMO_GSUP_MSGT_SEND_AUTH_INFO_ERROR; - case OSMO_GSUP_MSGT_PURGE_MS_REQUEST: - return OSMO_GSUP_MSGT_PURGE_MS_ERROR; - case OSMO_GSUP_MSGT_INSERT_DATA_REQUEST: - return OSMO_GSUP_MSGT_INSERT_DATA_ERROR; - case OSMO_GSUP_MSGT_DELETE_DATA_REQUEST: - return OSMO_GSUP_MSGT_DELETE_DATA_ERROR; - case OSMO_GSUP_MSGT_LOCATION_CANCEL_REQUEST: - return OSMO_GSUP_MSGT_LOCATION_CANCEL_ERROR; - case OSMO_GSUP_MSGT_PROC_SS_REQUEST: - return OSMO_GSUP_MSGT_PROC_SS_ERROR; - case OSMO_GSUP_MSGT_MO_FORWARD_SM_REQUEST: - return OSMO_GSUP_MSGT_MO_FORWARD_SM_ERROR; - case OSMO_GSUP_MSGT_MT_FORWARD_SM_REQUEST: - return OSMO_GSUP_MSGT_MT_FORWARD_SM_ERROR; - case OSMO_GSUP_MSGT_READY_FOR_SM_REQUEST: - return OSMO_GSUP_MSGT_READY_FOR_SM_ERROR; - case OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST: - return OSMO_GSUP_MSGT_CHECK_IMEI_ERROR; - default: - return -1; - } + return OSMO_GSUP_TO_MSGT_ERROR(type_in); } static int decode_pdp_info(uint8_t *data, size_t data_len, -- To view, visit https://gerrit.osmocom.org/12777 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I46d9f2327791978710e2f90b4d28a3761d723d8f Gerrit-Change-Number: 12777 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 10:49:02 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Mon, 4 Feb 2019 10:49:02 +0000 Subject: Change in osmo-hlr[master]: hlr.c: replace deprecated osmo_gsup_get_err_msg_type() In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12815 ) Change subject: hlr.c: replace deprecated osmo_gsup_get_err_msg_type() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12815 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5435ec4c29d6acee814c33499c68d18aaa91d4fb Gerrit-Change-Number: 12815 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Mon, 04 Feb 2019 10:49:02 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 10:59:09 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 4 Feb 2019 10:59:09 +0000 Subject: Change in osmo-hlr[master]: hlr.c: replace deprecated osmo_gsup_get_err_msg_type() In-Reply-To: References: Message-ID: osmith has submitted this change and it was merged. ( https://gerrit.osmocom.org/12815 ) Change subject: hlr.c: replace deprecated osmo_gsup_get_err_msg_type() ...................................................................... hlr.c: replace deprecated osmo_gsup_get_err_msg_type() Use OSMO_GSUP_TO_MSGT_ERROR() instead. The other function has been deprecated in [1]. Remove the < 0 return check, because the macro doesn't do any error handling. It relies on all "request" messages having an appropriate "error" message, which is part of the GSUP spec now (see [2]). [1] change-id I46d9f2327791978710e2f90b4d28a3761d723d8f (libosmocore) [2] change-id Iec1b4ce4b7d8eb157406f006e1c4241e8fba2cd6 (osmo-gsm-manuals) Change-Id: I5435ec4c29d6acee814c33499c68d18aaa91d4fb --- M src/hlr.c 1 file changed, 1 insertion(+), 7 deletions(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, approved diff --git a/src/hlr.c b/src/hlr.c index 0098a32..7046180 100644 --- a/src/hlr.c +++ b/src/hlr.c @@ -379,16 +379,10 @@ static int gsup_send_err_reply(struct osmo_gsup_conn *conn, const char *imsi, enum osmo_gsup_message_type type_in, uint8_t err_cause) { - int type_err = osmo_gsup_get_err_msg_type(type_in); + int type_err = OSMO_GSUP_TO_MSGT_ERROR(type_in); struct osmo_gsup_message gsup_reply = {0}; struct msgb *msg_out; - if (type_err < 0) { - LOGP(DMAIN, LOGL_ERROR, "unable to determine error response for %s\n", - osmo_gsup_message_type_name(type_in)); - return type_err; - } - OSMO_STRLCPY_ARRAY(gsup_reply.imsi, imsi); gsup_reply.message_type = type_err; gsup_reply.cause = err_cause; -- To view, visit https://gerrit.osmocom.org/12815 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5435ec4c29d6acee814c33499c68d18aaa91d4fb Gerrit-Change-Number: 12815 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 11:00:26 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 11:00:26 +0000 Subject: Change in osmo-bsc[master]: Implement CSFB "Fast Return" Handling at RR RELEASE In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12788 to look at the new patch set (#2). Change subject: Implement CSFB "Fast Return" Handling at RR RELEASE ...................................................................... Implement CSFB "Fast Return" Handling at RR RELEASE When the MSC sends a BSSMAP CLEAR CMD containing a CSFB Indication IE, it lets us know that the to-be-released connection related to a CSFB call. We as the BSC then subsequently should include the "Cell Selection Indocator after release of all TCH and SDCCH" IE in the RR RELEASE message sent to the MS/UE. This IE contains the LTE neighbor cells that we're configured to broadcast in si2quater. That in turn will make sure the MS/UE can return very quickly to the LTE cell. Change-Id: Ibfbb87e2e16b05032ad1cb91c11fad1b2f76d755 Requires: libosmocore Id4bd7f7543f5b0f4f6f876e283bd065039c37646 Requires: libosmocore I0e101af316438b56d63d43fc2cb16d7caf563d07 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/gsm_04_08_rr.c M src/osmo-bsc/osmo_bsc_bssap.c 4 files changed, 87 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/88/12788/2 -- To view, visit https://gerrit.osmocom.org/12788 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ibfbb87e2e16b05032ad1cb91c11fad1b2f76d755 Gerrit-Change-Number: 12788 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 11:12:10 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 11:12:10 +0000 Subject: Change in libosmocore[master]: bitvec: Add bitvec_tailroom_bits() function Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12816 Change subject: bitvec: Add bitvec_tailroom_bits() function ...................................................................... bitvec: Add bitvec_tailroom_bits() function This is similar to msgb_tailroom(): It returns the amount of space left at the end of the bit vector (compared to the current cursor). The function returns the number of bits left in the bitvec. Change-Id: I8980a6b6d1973b67a2d9ad411c878d956fb428d1 --- M include/osmocom/core/bitvec.h 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/16/12816/1 diff --git a/include/osmocom/core/bitvec.h b/include/osmocom/core/bitvec.h index da2d4e4..a404c2f 100644 --- a/include/osmocom/core/bitvec.h +++ b/include/osmocom/core/bitvec.h @@ -93,4 +93,10 @@ return bytes; } +/*! Return the tailroom in number of unused bits remaining in the bit-vector */ +static inline unsigned int bitvec_tailroom_bits(const sturct bitvec *bv) +{ + return bv->data_len*8 - bv->cur_bit; +} + /*! @} */ -- To view, visit https://gerrit.osmocom.org/12816 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I8980a6b6d1973b67a2d9ad411c878d956fb428d1 Gerrit-Change-Number: 12816 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 11:30:03 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 11:30:03 +0000 Subject: Change in libosmocore[master]: bitvec: Add bitvec_tailroom_bits() function In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12816 to look at the new patch set (#2). Change subject: bitvec: Add bitvec_tailroom_bits() function ...................................................................... bitvec: Add bitvec_tailroom_bits() function This is similar to msgb_tailroom(): It returns the amount of space left at the end of the bit vector (compared to the current cursor). The function returns the number of bits left in the bitvec. Change-Id: I8980a6b6d1973b67a2d9ad411c878d956fb428d1 --- M include/osmocom/core/bitvec.h M tests/bitvec/bitvec_test.c 2 files changed, 25 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/16/12816/2 -- To view, visit https://gerrit.osmocom.org/12816 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I8980a6b6d1973b67a2d9ad411c878d956fb428d1 Gerrit-Change-Number: 12816 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 11:34:09 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 11:34:09 +0000 Subject: Change in osmo-bsc[master]: Implement CSFB "Fast Return" Handling at RR RELEASE In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12788 to look at the new patch set (#3). Change subject: Implement CSFB "Fast Return" Handling at RR RELEASE ...................................................................... Implement CSFB "Fast Return" Handling at RR RELEASE When the MSC sends a BSSMAP CLEAR CMD containing a CSFB Indication IE, it lets us know that the to-be-released connection related to a CSFB call. We as the BSC then subsequently should include the "Cell Selection Indocator after release of all TCH and SDCCH" IE in the RR RELEASE message sent to the MS/UE. This IE contains the LTE neighbor cells that we're configured to broadcast in si2quater. That in turn will make sure the MS/UE can return very quickly to the LTE cell. Change-Id: Ibfbb87e2e16b05032ad1cb91c11fad1b2f76d755 Requires: libosmocore Id4bd7f7543f5b0f4f6f876e283bd065039c37646 Requires: libosmocore I0e101af316438b56d63d43fc2cb16d7caf563d07 Requires: libosmocore I8980a6b6d1973b67a2d9ad411c878d956fb428d1 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/gsm_04_08_rr.c M src/osmo-bsc/osmo_bsc_bssap.c 4 files changed, 89 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/88/12788/3 -- To view, visit https://gerrit.osmocom.org/12788 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ibfbb87e2e16b05032ad1cb91c11fad1b2f76d755 Gerrit-Change-Number: 12788 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 11:34:10 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 11:34:10 +0000 Subject: Change in osmo-bsc[master]: gsm_data: Add gsm_bts_name() just like we have gsm_{trx, ts, lchan}_name() Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12817 Change subject: gsm_data: Add gsm_bts_name() just like we have gsm_{trx,ts,lchan}_name() ...................................................................... gsm_data: Add gsm_bts_name() just like we have gsm_{trx,ts,lchan}_name() Change-Id: Icd7fd6273396026c5fe2da600f35631b1bac1614 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/gsm_data.c 2 files changed, 11 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/17/12817/1 diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 9f7ce8d..9f2f816 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1215,6 +1215,7 @@ enum gsm_phys_chan_config gsm_pchan_parse(const char *name); const char *gsm_lchant_name(enum gsm_chan_t c); const char *gsm_chreq_name(enum gsm_chreq_reason_t c); +char *gsm_bts_name(const struct gsm_bts *bts); char *gsm_trx_name(const struct gsm_bts_trx *trx); char *gsm_ts_name(const struct gsm_bts_trx_ts *ts); char *gsm_ts_and_pchan_name(const struct gsm_bts_trx_ts *ts); diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 7eee918..5d667bb 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -996,6 +996,16 @@ static char ts2str[255]; +char *gsm_bts_name(const struct gsm_bts *bts) +{ + if (!bts) + snprintf(ts2str, sizeof(ts2str), "(bts=NULL)"); + else + snprintf(ts2str, sizeof(ts2str), "(bts=%d)", bts->nr); + + return ts2str; +} + char *gsm_trx_name(const struct gsm_bts_trx *trx) { if (!trx) -- To view, visit https://gerrit.osmocom.org/12817 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Icd7fd6273396026c5fe2da600f35631b1bac1614 Gerrit-Change-Number: 12817 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 11:38:45 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 11:38:45 +0000 Subject: Change in osmo-bsc[master]: Implement CSFB "Fast Return" Handling at RR RELEASE In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12788 to look at the new patch set (#4). Change subject: Implement CSFB "Fast Return" Handling at RR RELEASE ...................................................................... Implement CSFB "Fast Return" Handling at RR RELEASE When the MSC sends a BSSMAP CLEAR CMD containing a CSFB Indication IE, it lets us know that the to-be-released connection related to a CSFB call. We as the BSC then subsequently should include the "Cell Selection Indocator after release of all TCH and SDCCH" IE in the RR RELEASE message sent to the MS/UE. This IE contains the LTE neighbor cells that we're configured to broadcast in si2quater. That in turn will make sure the MS/UE can return very quickly to the LTE cell. Closes: OS#3777 Change-Id: Ibfbb87e2e16b05032ad1cb91c11fad1b2f76d755 Requires: libosmocore Id4bd7f7543f5b0f4f6f876e283bd065039c37646 Requires: libosmocore I0e101af316438b56d63d43fc2cb16d7caf563d07 Requires: libosmocore I8980a6b6d1973b67a2d9ad411c878d956fb428d1 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/gsm_04_08_rr.c M src/osmo-bsc/osmo_bsc_bssap.c 4 files changed, 89 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/88/12788/4 -- To view, visit https://gerrit.osmocom.org/12788 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ibfbb87e2e16b05032ad1cb91c11fad1b2f76d755 Gerrit-Change-Number: 12788 Gerrit-PatchSet: 4 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 11:42:15 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 11:42:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: Don't make invalid assumptions about RR RELEASE Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12818 Change subject: BSC_Tests: Don't make invalid assumptions about RR RELEASE ...................................................................... BSC_Tests: Don't make invalid assumptions about RR RELEASE The RR RELEASE message does not always have to be '060D00'O, which constrains it to: * not having any optional IEs * not having a cause value != 00 Let's relax the matching to accept any RR RELEASE message, whatever the cause may be, and whether or not there are any optional IEs at the end. At the same time, also remove some copy+pasting but rather have one template that gets used everywhere. Change-Id: I4b9d078c9b66f040fe673b5d957cf8e2c6d5892c --- M bsc/BSC_Tests.ttcn M bsc/BSC_Tests_LCLS.ttcn 2 files changed, 4 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/18/12818/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 77da306..069cf8f 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -62,6 +62,7 @@ const integer NUM_TCHH_PER_BTS := 2; const integer NUM_TCHF_PER_BTS := 4; const integer NUM_SDCCH_PER_BTS := 4; +template octetstring t_l3_rr_chan_rel := '060D??*'O; /* per-BTS state which we keep */ @@ -860,7 +861,6 @@ ) runs on test_CT { var RslLinkId main_dcch := valueof(ts_RslLinkID_DCCH(0)); - var octetstring l3_rr_chan_rel := '060D00'O; var boolean got_deact_sacch := false; var boolean got_rr_chan_rel := false; var boolean got_rll_rel_req := false; @@ -872,7 +872,7 @@ got_deact_sacch := true; repeat; } - [] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_DATA_REQ(rsl_chan_nr, ?, l3_rr_chan_rel))) { + [] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_DATA_REQ(rsl_chan_nr, ?, t_l3_rr_chan_rel))) { got_rr_chan_rel := true; repeat; } @@ -2529,12 +2529,11 @@ * RR should be released and Clear Request should go to the MSC. */ var MgcpCommand mgcp; - var octetstring l3_rr_chan_rel := '060D00'O; interleave { [] RSL.receive(tr_RSL_DEACT_SACCH(g_chan_nr)) { log("Got Deact SACCH"); } - [] RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, l3_rr_chan_rel)) { + [] RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, t_l3_rr_chan_rel)) { log("Got RR Release"); } [] RSL.receive(tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL)) { diff --git a/bsc/BSC_Tests_LCLS.ttcn b/bsc/BSC_Tests_LCLS.ttcn index c401206..0fada93 100644 --- a/bsc/BSC_Tests_LCLS.ttcn +++ b/bsc/BSC_Tests_LCLS.ttcn @@ -700,10 +700,9 @@ /* Perform hard BSSMAP Clear on "A" side, expect no LS on "B" side */ var myBSSMAP_Cause cause_val := GSM0808_CAUSE_CALL_CONTROL; - var octetstring l3_rr_chan_rel := '060D00'O; CONN_A.send(ts_BSSMAP_ClearCommand(enum2int(cause_val))); interleave { - [] CONN_A.receive(tr_RSL_DATA_REQ(?, tr_RslLinkID_DCCH(0), l3_rr_chan_rel)); + [] CONN_A.receive(tr_RSL_DATA_REQ(?, tr_RslLinkID_DCCH(0), t_l3_rr_chan_rel)); [] CONN_A.receive(tr_RSL_DEACT_SACCH(?)); [] CONN_A.receive(tr_RSL_RF_CHAN_REL(?)) -> value rsl { var RSL_IE_Body ieb; -- To view, visit https://gerrit.osmocom.org/12818 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I4b9d078c9b66f040fe673b5d957cf8e2c6d5892c Gerrit-Change-Number: 12818 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 11:42:15 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 11:42:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: replace octet string with decmatch when matching RR RELEASE Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12819 Change subject: bsc: replace octet string with decmatch when matching RR RELEASE ...................................................................... bsc: replace octet string with decmatch when matching RR RELEASE The 'decmatch' keyword allows us to match the decoded version of some octetstring, which is very useful in the situations where we have the L3 message only as octetstring but want to check if it matches some L3 template. Change-Id: I0a91e067f7e8062bf991fef8b0d4d8da740bfafc --- M bsc/BSC_Tests.ttcn M bsc/BSC_Tests_LCLS.ttcn M library/L3_Templates.ttcn 3 files changed, 34 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/19/12819/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 069cf8f..0a36d63 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -62,7 +62,6 @@ const integer NUM_TCHH_PER_BTS := 2; const integer NUM_TCHF_PER_BTS := 4; const integer NUM_SDCCH_PER_BTS := 4; -template octetstring t_l3_rr_chan_rel := '060D??*'O; /* per-BTS state which we keep */ @@ -872,7 +871,7 @@ got_deact_sacch := true; repeat; } - [] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_DATA_REQ(rsl_chan_nr, ?, t_l3_rr_chan_rel))) { + [] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE))) { got_rr_chan_rel := true; repeat; } @@ -2533,7 +2532,7 @@ [] RSL.receive(tr_RSL_DEACT_SACCH(g_chan_nr)) { log("Got Deact SACCH"); } - [] RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, t_l3_rr_chan_rel)) { + [] RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch tr_RRM_RR_RELEASE)) { log("Got RR Release"); } [] RSL.receive(tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL)) { diff --git a/bsc/BSC_Tests_LCLS.ttcn b/bsc/BSC_Tests_LCLS.ttcn index 0fada93..67ccecf 100644 --- a/bsc/BSC_Tests_LCLS.ttcn +++ b/bsc/BSC_Tests_LCLS.ttcn @@ -702,7 +702,7 @@ var myBSSMAP_Cause cause_val := GSM0808_CAUSE_CALL_CONTROL; CONN_A.send(ts_BSSMAP_ClearCommand(enum2int(cause_val))); interleave { - [] CONN_A.receive(tr_RSL_DATA_REQ(?, tr_RslLinkID_DCCH(0), t_l3_rr_chan_rel)); + [] CONN_A.receive(tr_RSL_DATA_REQ(?, tr_RslLinkID_DCCH(0), decmatch tr_RRM_RR_RELEASE)); [] CONN_A.receive(tr_RSL_DEACT_SACCH(?)); [] CONN_A.receive(tr_RSL_RF_CHAN_REL(?)) -> value rsl { var RSL_IE_Body ieb; diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn index 3978498..0b714d3 100644 --- a/library/L3_Templates.ttcn +++ b/library/L3_Templates.ttcn @@ -660,6 +660,37 @@ } } +template PDU_ML3_NW_MS tr_RRM_RR_RELEASE(template OCT1 cause := ?) := { + discriminator := '0110'B, + tiOrSkip := { + skipIndicator := '0000'B + }, + msgs := { + rrm := { + channelRelease := { + messageType := '00001101'B, + rRCause := { + valuePart := cause + }, + bARange := *, + groupChannelDescription := *, + groupCipherKeyNumber := *, + gPRSResumption := *, + bAListPref := *, + uTRANFrequencyList := *, + cellChannelDescr := *, + cellSelectionIndicator := *, + enhanced_DTM_CS_Release_Indication := *, + vGCS_Ciphering_Parameters := *, + group_Channel_Description_2 := *, + talkerIdentity := *, + talkerPriorityStatus := *, + vGCS_AMR_Configuration := *, + individual_Priorities := * + } + } + } +} template PDU_ML3_MS_NW ts_ML3_MO := { -- To view, visit https://gerrit.osmocom.org/12819 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0a91e067f7e8062bf991fef8b0d4d8da740bfafc Gerrit-Change-Number: 12819 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 11:42:15 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 11:42:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Test CSFB "Fast Return" in new TC_chan_rel_hard_clear_csfb Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12820 Change subject: bsc: Test CSFB "Fast Return" in new TC_chan_rel_hard_clear_csfb ...................................................................... bsc: Test CSFB "Fast Return" in new TC_chan_rel_hard_clear_csfb When a MSC releases a connection using the BSSMAP CLEAR CMD, it can specify that this call was part of CSFB. The BSC is then supposed to add a special IE to the RR RELEASE message which will help the phone to switch back to LTE as soon as possible. This commit adds a new test case testing for exactly that behavior. The test does *not* verify if the EARFCN information contained is actually correct, only that the IE is present in the RR RELEASE. Change-Id: I7501fb25578412c882ff92da5d388f3079bbce7f Requires: osmo-bsc Ibfbb87e2e16b05032ad1cb91c11fad1b2f76d755 Related: OS#3777 --- M bsc/BSC_Tests.ttcn M library/BSSMAP_Templates.ttcn M library/L3_Templates.ttcn 3 files changed, 56 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/20/12820/1 diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 0a36d63..6dd1564 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -856,7 +856,8 @@ boolean expect_deact_sacch := true, boolean expect_rr_chan_rel := true, boolean expect_rll_rel_req := true, - boolean handle_rll_rel := true + boolean handle_rll_rel := true, + boolean is_csfb := false ) runs on test_CT { var RslLinkId main_dcch := valueof(ts_RslLinkID_DCCH(0)); @@ -871,7 +872,11 @@ got_deact_sacch := true; repeat; } - [] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE))) { + [is_csfb] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE_CSFB))) { + got_rr_chan_rel := true; + repeat; + } + [not is_csfb] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE))) { got_rr_chan_rel := true; repeat; } @@ -932,6 +937,29 @@ setverdict(pass); } +/* Test behavior of channel release after Clear Command with CSFB indicator from MSC */ +testcase TC_chan_rel_hard_clear_csfb() runs on test_CT { + var BSSAP_N_DATA_ind rx_di; + var DchanTuple dt; + + f_init(1); + + dt := f_est_dchan('23'O, 23, '00010203040506'O); + + /* Instruct BSC to clear channel */ + var BssmapCause cause := 0; + BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommandCSFB(cause))); + + /* expect Clear Complete from BSC on A */ + BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_ClearComplete)) { + /* release the SCCP connection */ + BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); + } + + f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false, is_csfb := true); + setverdict(pass); +} + /* Test behavior of channel release after hard RLSD from MSC */ testcase TC_chan_rel_hard_rlsd() runs on test_CT { var DchanTuple dt; @@ -3414,6 +3442,7 @@ execute( TC_chan_rel_rll_rel_ind() ); execute( TC_chan_rel_conn_fail() ); execute( TC_chan_rel_hard_clear() ); + execute( TC_chan_rel_hard_clear_csfb() ); execute( TC_chan_rel_hard_rlsd() ); execute( TC_chan_rel_hard_rlsd_ms_dead() ); execute( TC_chan_rel_a_reset() ); diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index ff151f0..a30b8e7 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -612,6 +612,18 @@ } } } +template (value) PDU_BSSAP ts_BSSMAP_ClearCommandCSFB(BssmapCause cause) +modifies ts_BSSMAP_ClearCommand := { + pdu := { + bssmap := { + clearCommand := { + cSFB_Indication := { + elementIdentifier := '8F'O + } + } + } + } +} template PDU_BSSAP tr_BSSMAP_ClearCommand modifies tr_BSSAP_BSSMAP := { pdu := { diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn index 0b714d3..6099303 100644 --- a/library/L3_Templates.ttcn +++ b/library/L3_Templates.ttcn @@ -692,6 +692,19 @@ } } +template PDU_ML3_NW_MS tr_RRM_RR_RELEASE_CSFB(template OCT1 cause := ?) modifies tr_RRM_RR_RELEASE := { + msgs := { + rrm := { + channelRelease := { + cellSelectionIndicator := { + elementIdentifier := '77'O, + lengthIndicator := ?, + cellSelectionIndicatorValue := ? + } + } + } + } +} template PDU_ML3_MS_NW ts_ML3_MO := { discriminator := '0000'B, -- To view, visit https://gerrit.osmocom.org/12820 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I7501fb25578412c882ff92da5d388f3079bbce7f Gerrit-Change-Number: 12820 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 12:05:46 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 12:05:46 +0000 Subject: Change in meta-telephony[laforge/nightly]: Add libosmo-netif to osmo-sysmon dependencies Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12821 Change subject: Add libosmo-netif to osmo-sysmon dependencies ...................................................................... Add libosmo-netif to osmo-sysmon dependencies This is in preparation for upcoming patch related to OpenVPN probe [1]. [1] change-id I4493e19b9a09dcebd289457eacd1719f7f8cc31c (osmo-sysmon) Change-Id: I11dd06baf75f9bbb77642640280f6c624ce6d23d --- M recipes-osmocom/osmo-sysmon/osmo-sysmon.inc 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/meta-telephony refs/changes/21/12821/1 diff --git a/recipes-osmocom/osmo-sysmon/osmo-sysmon.inc b/recipes-osmocom/osmo-sysmon/osmo-sysmon.inc index 1469438..aab52bc 100644 --- a/recipes-osmocom/osmo-sysmon/osmo-sysmon.inc +++ b/recipes-osmocom/osmo-sysmon/osmo-sysmon.inc @@ -3,7 +3,7 @@ LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -DEPENDS = "libtalloc libosmocore libmnl liboping" +DEPENDS = "libtalloc libosmocore libosmo-netif libmnl liboping" INC_PR="r0.${META_TELEPHONY_OSMO_INC}" -- To view, visit https://gerrit.osmocom.org/12821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: laforge/nightly Gerrit-MessageType: newchange Gerrit-Change-Id: I11dd06baf75f9bbb77642640280f6c624ce6d23d Gerrit-Change-Number: 12821 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 12:09:17 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 12:09:17 +0000 Subject: Change in meta-telephony[201705]: Add libosmo-netif to osmo-sysmon dependencies In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12757 ) Change subject: Add libosmo-netif to osmo-sysmon dependencies ...................................................................... Patch Set 1: > Since the feature afaiu is still not implemented It's implemented so I'd rather get this merged to make sure we don't break nightly once osmo-sysmon patch is merged. > Submit this patch as it is against laforge/nightly, but better wait a bit because we are upgrading 201705 and we'll need to rebase that brach soon. Done in https://gerrit.osmocom.org/c/meta-telephony/+/12821 -- To view, visit https://gerrit.osmocom.org/12757 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-MessageType: comment Gerrit-Change-Id: I11dd06baf75f9bbb77642640280f6c624ce6d23d Gerrit-Change-Number: 12757 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 04 Feb 2019 12:09:17 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 12:23:36 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 12:23:36 +0000 Subject: Change in libosmo-netif[master]: Stream client: fix doxygen typo Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12822 Change subject: Stream client: fix doxygen typo ...................................................................... Stream client: fix doxygen typo Change-Id: Ic45d3e0520db4060c5c24e5ef5a766a52f060a34 --- M src/stream.c 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/22/12822/1 diff --git a/src/stream.c b/src/stream.c index 902e688..dbbaa9c 100644 --- a/src/stream.c +++ b/src/stream.c @@ -388,7 +388,7 @@ } /*! \brief Get application private data of the stream client socket - * \param[in] cli Stream Client to modif + * \param[in] cli Stream Client to modify * \returns Application private data, as set by \ref osmo_stream_cli_set_data() */ void *osmo_stream_cli_get_data(struct osmo_stream_cli *cli) { @@ -396,7 +396,7 @@ } /*! \brief Get Osmocom File Descriptor of the stream client socket - * \param[in] cli Stream Client to modif + * \param[in] cli Stream Client to modify * \returns Pointer to \ref osmo_fd */ struct osmo_fd * osmo_stream_cli_get_ofd(struct osmo_stream_cli *cli) @@ -405,7 +405,7 @@ } /*! \brief Set the call-back function called on connect of the stream client socket - * \param[in] cli Stream Client to modif + * \param[in] cli Stream Client to modify * \param[in] connect_cb Call-back function to be called upon connect */ void osmo_stream_cli_set_connect_cb(struct osmo_stream_cli *cli, @@ -415,7 +415,7 @@ } /*! \brief Set the call-back function called to read from the stream client socket - * \param[in] cli Stream Client to modif + * \param[in] cli Stream Client to modify * \param[in] read_cb Call-back function to be called when we want to read */ void osmo_stream_cli_set_read_cb(struct osmo_stream_cli *cli, -- To view, visit https://gerrit.osmocom.org/12822 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic45d3e0520db4060c5c24e5ef5a766a52f060a34 Gerrit-Change-Number: 12822 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 12:36:40 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 4 Feb 2019 12:36:40 +0000 Subject: Change in osmo-msc[master]: Add SGs Interface In-Reply-To: References: Message-ID: Hello Vadim Yanitskiy, Neels Hofmeyr, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/11642 to look at the new patch set (#36). Change subject: Add SGs Interface ...................................................................... Add SGs Interface Add an SGs interface (3GPP TS 29.118) to osmo-msc in order to support SMS tunneling and Circuit Switched Fallback (CSFB) Change-Id: I73359925fc1ca72b33a1466e6ac41307f2f0b11d Related: OS#3615 --- M include/osmocom/msc/Makefile.am M include/osmocom/msc/debug.h M include/osmocom/msc/gsm_04_08.h M include/osmocom/msc/gsm_subscriber.h M include/osmocom/msc/ran_conn.h A include/osmocom/msc/sgs_iface.h A include/osmocom/msc/sgs_server.h A include/osmocom/msc/sgs_vty.h M include/osmocom/msc/vlr.h A include/osmocom/msc/vlr_sgs.h M include/osmocom/msc/vty.h M src/libmsc/Makefile.am M src/libmsc/gsm_04_08.c M src/libmsc/gsm_04_08_cc.c M src/libmsc/gsm_04_11.c M src/libmsc/gsm_09_11.c M src/libmsc/gsm_subscriber.c M src/libmsc/msc_ifaces.c M src/libmsc/msc_vty.c M src/libmsc/ran_conn.c A src/libmsc/sgs_iface.c A src/libmsc/sgs_server.c A src/libmsc/sgs_vty.c M src/libmsc/silent_call.c M src/libvlr/Makefile.am M src/libvlr/vlr.c M src/libvlr/vlr_lu_fsm.c A src/libvlr/vlr_sgs.c A src/libvlr/vlr_sgs_fsm.c A src/libvlr/vlr_sgs_fsm.h M src/osmo-msc/Makefile.am M src/osmo-msc/msc_main.c M tests/msc_vlr/Makefile.am M tests/msc_vlr/msc_vlr_test_authen_reuse.c M tests/msc_vlr/msc_vlr_test_call.c M tests/msc_vlr/msc_vlr_test_gsm_authen.c M tests/msc_vlr/msc_vlr_test_gsm_ciph.c M tests/msc_vlr/msc_vlr_test_hlr_reject.c M tests/msc_vlr/msc_vlr_test_hlr_timeout.c M tests/msc_vlr/msc_vlr_test_ms_timeout.c M tests/msc_vlr/msc_vlr_test_no_authen.c M tests/msc_vlr/msc_vlr_test_reject_concurrency.c M tests/msc_vlr/msc_vlr_test_rest.c M tests/msc_vlr/msc_vlr_test_ss.c M tests/msc_vlr/msc_vlr_test_umts_authen.c A tests/msc_vlr/stubs.h M tests/sms_queue/sms_queue_test.c M tests/test_nodes.vty 48 files changed, 2,939 insertions(+), 22 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/42/11642/36 -- To view, visit https://gerrit.osmocom.org/11642 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I73359925fc1ca72b33a1466e6ac41307f2f0b11d Gerrit-Change-Number: 11642 Gerrit-PatchSet: 36 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: dexter Gerrit-CC: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:09:19 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 13:09:19 +0000 Subject: Change in libosmocore[master]: Add missing include Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12823 Change subject: Add missing include ...................................................................... Add missing include socket.h uses INET6_ADDRSTRLEN without including arpa/inet.h where it's defined which might break eternal users of socket.h Fix this by adding missing include. The error was introduced in 64b51eb68bd272b6b1f2cefa2b33e9dd74024d0c Change-Id: I2883addcb81cec038577e401e356e8f07a947d4c --- M include/osmocom/core/socket.h 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/23/12823/1 diff --git a/include/osmocom/core/socket.h b/include/osmocom/core/socket.h index c183532..496a859 100644 --- a/include/osmocom/core/socket.h +++ b/include/osmocom/core/socket.h @@ -11,6 +11,8 @@ #include #include +#include + struct sockaddr_in; struct sockaddr; struct osmo_fd; -- To view, visit https://gerrit.osmocom.org/12823 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I2883addcb81cec038577e401e356e8f07a947d4c Gerrit-Change-Number: 12823 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:19:02 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 13:19:02 +0000 Subject: Change in libosmocore[master]: socket.h: add missing include In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12823 to look at the new patch set (#2). Change subject: socket.h: add missing include ...................................................................... socket.h: add missing include socket.h uses INET6_ADDRSTRLEN without including arpa/inet.h where it's defined which might break eternal users of socket.h Fix this by adding missing include. The error was introduced in 64b51eb68bd272b6b1f2cefa2b33e9dd74024d0c Change-Id: I2883addcb81cec038577e401e356e8f07a947d4c --- M include/osmocom/core/socket.h 1 file changed, 7 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/23/12823/2 -- To view, visit https://gerrit.osmocom.org/12823 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I2883addcb81cec038577e401e356e8f07a947d4c Gerrit-Change-Number: 12823 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:26:31 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:26:31 +0000 Subject: Change in libosmocore[master]: socket.h: add missing include In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12823 ) Change subject: socket.h: add missing include ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12823 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2883addcb81cec038577e401e356e8f07a947d4c Gerrit-Change-Number: 12823 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 04 Feb 2019 13:26:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:26:56 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:26:56 +0000 Subject: Change in libosmo-netif[master]: Stream client: fix doxygen typo In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12822 ) Change subject: Stream client: fix doxygen typo ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12822 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic45d3e0520db4060c5c24e5ef5a766a52f060a34 Gerrit-Change-Number: 12822 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 04 Feb 2019 13:26:56 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:26:58 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:26:58 +0000 Subject: Change in libosmo-netif[master]: Stream client: fix doxygen typo In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12822 ) Change subject: Stream client: fix doxygen typo ...................................................................... Stream client: fix doxygen typo Change-Id: Ic45d3e0520db4060c5c24e5ef5a766a52f060a34 --- M src/stream.c 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/stream.c b/src/stream.c index 902e688..dbbaa9c 100644 --- a/src/stream.c +++ b/src/stream.c @@ -388,7 +388,7 @@ } /*! \brief Get application private data of the stream client socket - * \param[in] cli Stream Client to modif + * \param[in] cli Stream Client to modify * \returns Application private data, as set by \ref osmo_stream_cli_set_data() */ void *osmo_stream_cli_get_data(struct osmo_stream_cli *cli) { @@ -396,7 +396,7 @@ } /*! \brief Get Osmocom File Descriptor of the stream client socket - * \param[in] cli Stream Client to modif + * \param[in] cli Stream Client to modify * \returns Pointer to \ref osmo_fd */ struct osmo_fd * osmo_stream_cli_get_ofd(struct osmo_stream_cli *cli) @@ -405,7 +405,7 @@ } /*! \brief Set the call-back function called on connect of the stream client socket - * \param[in] cli Stream Client to modif + * \param[in] cli Stream Client to modify * \param[in] connect_cb Call-back function to be called upon connect */ void osmo_stream_cli_set_connect_cb(struct osmo_stream_cli *cli, @@ -415,7 +415,7 @@ } /*! \brief Set the call-back function called to read from the stream client socket - * \param[in] cli Stream Client to modif + * \param[in] cli Stream Client to modify * \param[in] read_cb Call-back function to be called when we want to read */ void osmo_stream_cli_set_read_cb(struct osmo_stream_cli *cli, -- To view, visit https://gerrit.osmocom.org/12822 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic45d3e0520db4060c5c24e5ef5a766a52f060a34 Gerrit-Change-Number: 12822 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:27:53 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:27:53 +0000 Subject: Change in osmo-msc[master]: Add SGs Interface In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/11642 ) Change subject: Add SGs Interface ...................................................................... Patch Set 36: Code-Review+2 I'm still very happy, and I think we should merge it by tomorrow until somebody objects. We can always patch it later anyway... -- To view, visit https://gerrit.osmocom.org/11642 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I73359925fc1ca72b33a1466e6ac41307f2f0b11d Gerrit-Change-Number: 11642 Gerrit-PatchSet: 36 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: dexter Gerrit-CC: Stefan Sperling Gerrit-Comment-Date: Mon, 04 Feb 2019 13:27:53 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:28:35 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:28:35 +0000 Subject: Change in meta-telephony[laforge/nightly]: Add libosmo-netif to osmo-sysmon dependencies In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12821 ) Change subject: Add libosmo-netif to osmo-sysmon dependencies ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: laforge/nightly Gerrit-MessageType: comment Gerrit-Change-Id: I11dd06baf75f9bbb77642640280f6c624ce6d23d Gerrit-Change-Number: 12821 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Comment-Date: Mon, 04 Feb 2019 13:28:35 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:30:41 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:30:41 +0000 Subject: Change in osmo-bts[master]: scheduler_trx: use stored block fn instead of calculating it. In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12779 ) Change subject: scheduler_trx: use stored block fn instead of calculating it. ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12779/1/src/osmo-bts-trx/scheduler_trx.c File src/osmo-bts-trx/scheduler_trx.c: https://gerrit.osmocom.org/#/c/12779/1/src/osmo-bts-trx/scheduler_trx.c at 949 PS1, Line 949: first_fn > I am agree here, as a PDTCH block is interleaved over 4 consequent bursts. Similar to xCCH. sure, it's interleaved over four bursts. So why is using the stored first FN wrong? -- To view, visit https://gerrit.osmocom.org/12779 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia27254bbf6e36426f7890ece6154dcd395673f63 Gerrit-Change-Number: 12779 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: dexter Gerrit-CC: Harald Welte Gerrit-Comment-Date: Mon, 04 Feb 2019 13:30:41 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:32:18 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 4 Feb 2019 13:32:18 +0000 Subject: Change in libosmocore[master]: add generic vty_transcript_test.c, vty_transcript_test.vty In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12768 to look at the new patch set (#2). Change subject: add generic vty_transcript_test.c, vty_transcript_test.vty ...................................................................... add generic vty_transcript_test.c, vty_transcript_test.vty I want to tweak general VTY features and need to cover with a transcript test to show the differences. Start by showing the current situation of optional and multi-choice arguments. Change-Id: I5a79c83fabd02aba6406b6e0d620969c4bd0cc1d --- M tests/Makefile.am A tests/vty/vty_transcript_test.c A tests/vty/vty_transcript_test.vty 3 files changed, 301 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/68/12768/2 -- To view, visit https://gerrit.osmocom.org/12768 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I5a79c83fabd02aba6406b6e0d620969c4bd0cc1d Gerrit-Change-Number: 12768 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:32:18 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 4 Feb 2019 13:32:18 +0000 Subject: Change in libosmocore[master]: doxygen: enable cross referencing everywhere In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12774 to look at the new patch set (#2). Change subject: doxygen: enable cross referencing everywhere ...................................................................... doxygen: enable cross referencing everywhere doxygen \ref cross-references to groups or files from other libraries only work when the .map file was present when the HTML was generated, and when that .map file was listed in TAGFILES in the Doxyfile. - Makefile.am: introduce a two-pass build for doxygen API docs. - First build pass makes sure the .tag files are present. - Second build pass picks up all the references, hence generates hyperlinks properly. - Add all libraries to TAGFILES of all other libraries, so we can from now on freely criss-cross reference from everywhere to everywhere. - Add all libraries' tag files as dependencies for all others. Example: in upcoming tdef.h, I would like to cross reference to tdef_vty.h, and vice versa, even though they are in libosmocore and libosmovty, respectively. This is now possible. We may still need to fix some problems with naming collisions, see for example stats.h, which exists twice with identical doxygen handle (different source dirs seems to not suffice for doxygen). Change-Id: Ib03d0b70d536c8f1386def666c89106a840f7363 --- M Doxyfile.codec.in M Doxyfile.coding.in M Doxyfile.core.in M Doxyfile.ctrl.in M Doxyfile.gb.in M Doxyfile.gsm.in M Doxyfile.vty.in M Makefile.am 8 files changed, 130 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/74/12774/2 -- To view, visit https://gerrit.osmocom.org/12774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ib03d0b70d536c8f1386def666c89106a840f7363 Gerrit-Change-Number: 12774 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:32:18 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 4 Feb 2019 13:32:18 +0000 Subject: Change in libosmocore[master]: doxygen: add source files as dependencies In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12775 to look at the new patch set (#2). Change subject: doxygen: add source files as dependencies ...................................................................... doxygen: add source files as dependencies So far, when modifying a source file, the doxygen docs were not regenerated automatically. It required a manual 'rm -rf docs/core' or similar. Make it rebuild automatically: Add each library's source files to the list of dependencies for the first-pass doxygen build. Attention, since all libraries depend on the .map files of each other library, and each library depends on its own source files, that means that a single touch on one .c file anywhere will result in rebuilding the entire doxygen docs. It is correct to do so, since any file may introduce \ref targets used anywhere else. If you don't want that, --disable-doxygen. Change-Id: I15ea96be6e7abe91264b91f0b06963a0f2d63b0b --- M Makefile.am 1 file changed, 25 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/75/12775/2 -- To view, visit https://gerrit.osmocom.org/12775 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I15ea96be6e7abe91264b91f0b06963a0f2d63b0b Gerrit-Change-Number: 12775 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:32:18 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 4 Feb 2019 13:32:18 +0000 Subject: Change in libosmocore[master]: add osmo_tdef API, originally adopted from osmo-bsc T_def In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12717 to look at the new patch set (#5). Change subject: add osmo_tdef API, originally adopted from osmo-bsc T_def ...................................................................... add osmo_tdef API, originally adopted from osmo-bsc T_def Move T_def from osmo-bsc to libosmocore as osmo_tdef. Adjust naming to be more consistent. Upgrade to first class API: - add timer grouping - add generic vty support - add mising API doc - add C test - add VTY transcript tests, also as examples for using the API >From osmo_fsm_inst_state_chg() API doc, cross reference to osmo_tdef API. The root reason for moving to libosmocore is that I want to use the mgw_endpoint_fsm in osmo-msc for inter-MSC handover, and hence want to move the FSM to libosmo-mgcp-client. This FSM uses the T_def from osmo-bsc. Though the mgw_endpoint_fsm's use of T_def is minimal, I intend to use the osmo_tdef API in osmo-msc (and probably elsewhere) as well. libosmocore is the most sensible place for this. osmo_tdef provides: - a list of Tnnnn (GSM) timers with description, unit and default value. - vty UI to allow users to configure non-default timeouts. - API to tie T timers to osmo_fsm states and set them on state transitions. - a few standard units (minute, second, millisecond) as well as a custom unit (which relies on the timer's human readable description to indicate the meaning of the value). - conversion for standard units: for example, some GSM timers are defined in minutes, while our FSM definitions need timeouts in seconds. Conversion is for convenience only and can be easily avoided via the custom unit. By keeping separate osmo_tdef arrays, several groups of timers can be kept separately. The VTY tests in tests/tdef/ showcase different schemes: - tests/vty/tdef_vty_test_config_root.c: Keep several timer definitions in separately named groups: showcase the osmo_tdef_vty_groups*() API. Each timer group exists exactly once. - tests/vty/tdef_vty_test_config_subnode.c: Keep a single list of timers without separate grouping. Put this list on a specific subnode below the CONFIG_NODE. There could be several separate subnodes with timers like this, i.e. continuing from this example, sets timers could be separated by placing timers in specific config subnodes instead of using the global group name. - tests/vty/tdef_vty_test_dynamic.c: Dynamically allocate timer definitions per each new created object. Thus there can be an arbitrary number of independent timer definitions, one per allocated object. T_def was introduced during the recent osmo-bsc refactoring for inter-BSC handover, and has proven useful: - without osmo_tdef, each invocation of osmo_fsm_inst_state_chg() needs to be programmed with the right timeout value, for all code paths that invoke this state change. It is a likely source of errors to get one of them wrong. By defining a T timer exactly for an FSM state, the caller can merely invoke the state change and trust on the original state definition to apply the correct timeout. - it is helpful to have a standardized config file UI to provide user configurable timeouts, instead of inventing new VTY commands for each separate application of T timer numbers. Change-Id: Ibd6b1ed7f1bd6e1f2e0fde53352055a4468f23e5 --- M include/Makefile.am A include/osmocom/core/tdef.h A include/osmocom/vty/tdef_vty.h M src/Makefile.am M src/fsm.c A src/tdef.c M src/vty/Makefile.am A src/vty/tdef_vty.c M tests/Makefile.am A tests/tdef/tdef_test.c A tests/tdef/tdef_test.ok A tests/tdef/tdef_vty_test_config_root.c A tests/tdef/tdef_vty_test_config_root.vty A tests/tdef/tdef_vty_test_config_subnode.c A tests/tdef/tdef_vty_test_config_subnode.vty A tests/tdef/tdef_vty_test_dynamic.c A tests/tdef/tdef_vty_test_dynamic.vty M tests/testsuite.at 18 files changed, 2,977 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/17/12717/5 -- To view, visit https://gerrit.osmocom.org/12717 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ibd6b1ed7f1bd6e1f2e0fde53352055a4468f23e5 Gerrit-Change-Number: 12717 Gerrit-PatchSet: 5 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:33:43 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 4 Feb 2019 13:33:43 +0000 Subject: Change in libosmocore[master]: doxygen: enable cross referencing everywhere In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/12774 ) Change subject: doxygen: enable cross referencing everywhere ...................................................................... Patch Set 2: Code-Review+2 re-adding previous +2: only fixed 'clean' target to clear out the .map.prp files ('make distcheck' complained) -- To view, visit https://gerrit.osmocom.org/12774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib03d0b70d536c8f1386def666c89106a840f7363 Gerrit-Change-Number: 12774 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Mon, 04 Feb 2019 13:33:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:33:52 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:33:52 +0000 Subject: Change in libosmocore[master]: LCLS: add string dump helpers In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12492 ) Change subject: LCLS: add string dump helpers ...................................................................... Patch Set 12: Code-Review-1 I agree with neels that the general "culture" within osmocom is to use static string buffers as we don't have multi-threaded implementations of this code anyway. So the question is whether or not we should continue that way (whihc I would agree) or we should change the culture to a dynamically allocated culture. -- To view, visit https://gerrit.osmocom.org/12492 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic3609224c8f3282d667e75f68bc20327e36eb9e6 Gerrit-Change-Number: 12492 Gerrit-PatchSet: 12 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Mon, 04 Feb 2019 13:33:52 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:34:37 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 4 Feb 2019 13:34:37 +0000 Subject: Change in libosmocore[master]: doxygen: add source files as dependencies In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/12775 ) Change subject: doxygen: add source files as dependencies ...................................................................... Patch Set 2: Code-Review+2 re-adding previos +2: just tweaked the file dependencies -- To view, visit https://gerrit.osmocom.org/12775 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I15ea96be6e7abe91264b91f0b06963a0f2d63b0b Gerrit-Change-Number: 12775 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Mon, 04 Feb 2019 13:34:37 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:34:53 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:34:53 +0000 Subject: Change in libosmocore[master]: add generic vty_transcript_test.c, vty_transcript_test.vty In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12768 ) Change subject: add generic vty_transcript_test.c, vty_transcript_test.vty ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12768 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5a79c83fabd02aba6406b6e0d620969c4bd0cc1d Gerrit-Change-Number: 12768 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Mon, 04 Feb 2019 13:34:53 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:35:41 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 13:35:41 +0000 Subject: Change in libosmocore[master]: socket.h: add missing include In-Reply-To: References: Message-ID: Hello dexter, Pau Espin Pedrol, Harald Welte, osmith, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12823 to look at the new patch set (#3). Change subject: socket.h: add missing include ...................................................................... socket.h: add missing include socket.h uses INET6_ADDRSTRLEN without including arpa/inet.h where it's defined which might break external users of socket.h Fix this by adding missing include. The error was introduced in 64b51eb68bd272b6b1f2cefa2b33e9dd74024d0c Change-Id: I2883addcb81cec038577e401e356e8f07a947d4c --- M include/osmocom/core/socket.h 1 file changed, 7 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/23/12823/3 -- To view, visit https://gerrit.osmocom.org/12823 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I2883addcb81cec038577e401e356e8f07a947d4c Gerrit-Change-Number: 12823 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:37:16 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:37:16 +0000 Subject: Change in libosmocore[master]: add osmo_tdef API, originally adopted from osmo-bsc T_def In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12717 ) Change subject: add osmo_tdef API, originally adopted from osmo-bsc T_def ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12717 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ibd6b1ed7f1bd6e1f2e0fde53352055a4468f23e5 Gerrit-Change-Number: 12717 Gerrit-PatchSet: 5 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Mon, 04 Feb 2019 13:37:16 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:38:13 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:38:13 +0000 Subject: Change in libosmocore[master]: socket.h: add missing include In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12823 ) Change subject: socket.h: add missing include ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12823 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2883addcb81cec038577e401e356e8f07a947d4c Gerrit-Change-Number: 12823 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 04 Feb 2019 13:38:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:40:45 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:40:45 +0000 Subject: Change in osmo-ccid-firmware[master]: start with USB CDC echo example In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12792 ) Change subject: start with USB CDC echo example ...................................................................... Patch Set 2: I'm fine with committing the complete example in one go. However, in order to get build verification of patches, we also need to add a "contrib/jenkins.sh" script. Please test + add the script and make it part of this commit. I will then modify the jenkins jobs to do the automatic "+V" builds for this repository. -- To view, visit https://gerrit.osmocom.org/12792 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I356de75e7b730d63fb819248e71d36f785932199 Gerrit-Change-Number: 12792 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-CC: Harald Welte Gerrit-Comment-Date: Mon, 04 Feb 2019 13:40:45 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:42:17 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:42:17 +0000 Subject: Change in osmo-ccid-firmware[master]: rename project to sysmoOCTSIM In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12793 ) Change subject: rename project to sysmoOCTSIM ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12793 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1ff2ac6e2ae1b1b4765f2ca27c5b3fa6e93baa95 Gerrit-Change-Number: 12793 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 04 Feb 2019 13:42:17 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:46:08 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:46:08 +0000 Subject: Change in osmo-ci[master]: gerrit-verifications: Add osmo-ccid-firmware Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12824 Change subject: gerrit-verifications: Add osmo-ccid-firmware ...................................................................... gerrit-verifications: Add osmo-ccid-firmware The repository currently doesn't yet have a contrib/jenkins.sh script, so all verifications will fail. This is intentional, as it will force the addition of a related script in the first merged commit. Change-Id: I713d345240dec319ee07d99e9381fc1af6a2d86d --- M jobs/gerrit-verifications.yml 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/24/12824/1 diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index c4737ff..a2f68f5 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -255,6 +255,7 @@ - osmo-remsim - simtrace2 - osmo-asf4-dfu + - osmo-ccid-firmware - gapk - pysim: -- To view, visit https://gerrit.osmocom.org/12824 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I713d345240dec319ee07d99e9381fc1af6a2d86d Gerrit-Change-Number: 12824 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:46:32 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:46:32 +0000 Subject: Change in osmo-ccid-firmware[master]: change USB description to sysmoOCTSIM In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12794 ) Change subject: change USB description to sysmoOCTSIM ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12794 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1f9819df5b4737a9a6dfa69c918d05c60ec5f86a Gerrit-Change-Number: 12794 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 04 Feb 2019 13:46:32 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:47:08 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:47:08 +0000 Subject: Change in osmo-ccid-firmware[master]: ignore output files In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12795 ) Change subject: ignore output files ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12795 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I425129f10aa2ff879fde96bfafbcb7c4b4119959 Gerrit-Change-Number: 12795 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Comment-Date: Mon, 04 Feb 2019 13:47:08 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:47:41 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:47:41 +0000 Subject: Change in osmo-ccid-firmware[master]: use external 32.768 kHz oscillator for RTC In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12796 ) Change subject: use external 32.768 kHz oscillator for RTC ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12796 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic4630abececdb631e8cc15baab7137fc15e2a66a Gerrit-Change-Number: 12796 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 04 Feb 2019 13:47:41 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:48:03 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Mon, 4 Feb 2019 13:48:03 +0000 Subject: Change in osmo-bts[master]: scheduler_trx: use stored block fn instead of calculating it. In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12779 ) Change subject: scheduler_trx: use stored block fn instead of calculating it. ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12779/1/src/osmo-bts-trx/scheduler_trx.c File src/osmo-bts-trx/scheduler_trx.c: https://gerrit.osmocom.org/#/c/12779/1/src/osmo-bts-trx/scheduler_trx.c at 949 PS1, Line 949: first_fn > So why is using the stored first FN wrong? In this case, as well as in case of xCCH, it's fine. In other (TCH/F and TCH/H) it isn't. -- To view, visit https://gerrit.osmocom.org/12779 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia27254bbf6e36426f7890ece6154dcd395673f63 Gerrit-Change-Number: 12779 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: dexter Gerrit-CC: Harald Welte Gerrit-Comment-Date: Mon, 04 Feb 2019 13:48:03 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:48:16 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:48:16 +0000 Subject: Change in osmo-ccid-firmware[master]: switch CPU clock to 120 MHz In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12797 ) Change subject: switch CPU clock to 120 MHz ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12797 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I642e724ec56a376addf21cc58ecd2ef1b40bd116 Gerrit-Change-Number: 12797 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 04 Feb 2019 13:48:16 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:48:22 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 13:48:22 +0000 Subject: Change in libosmocore[master]: socket.h: add missing include In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12823 ) Change subject: socket.h: add missing include ...................................................................... socket.h: add missing include socket.h uses INET6_ADDRSTRLEN without including arpa/inet.h where it's defined which might break external users of socket.h Fix this by adding missing include. The error was introduced in 64b51eb68bd272b6b1f2cefa2b33e9dd74024d0c Change-Id: I2883addcb81cec038577e401e356e8f07a947d4c --- M include/osmocom/core/socket.h 1 file changed, 7 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/core/socket.h b/include/osmocom/core/socket.h index c183532..e06f926 100644 --- a/include/osmocom/core/socket.h +++ b/include/osmocom/core/socket.h @@ -11,6 +11,13 @@ #include #include +#if (!EMBEDDED) +#include + +/*! maximum length of a socket name ("r=1.2.3.4:123<->l=5.6.7.8:987") */ +#define OSMO_SOCK_NAME_MAXLEN (2 + INET6_ADDRSTRLEN + 1 + 5 + 3 + 2 + INET6_ADDRSTRLEN + 1 + 5 + 1) +#endif + struct sockaddr_in; struct sockaddr; struct osmo_fd; @@ -28,8 +35,6 @@ #define OSMO_SOCK_F_NO_MCAST_ALL (1 << 4) /*! use SO_REUSEADDR on UDP ports (required for multicast) */ #define OSMO_SOCK_F_UDP_REUSEADDR (1 << 5) -/*! maximum length of a socket name ("r=1.2.3.4:123<->l=5.6.7.8:987") */ -#define OSMO_SOCK_NAME_MAXLEN (2 + INET6_ADDRSTRLEN + 1 + 5 + 3 + 2 + INET6_ADDRSTRLEN + 1 + 5 + 1) int osmo_sock_init(uint16_t family, uint16_t type, uint8_t proto, const char *host, uint16_t port, unsigned int flags); -- To view, visit https://gerrit.osmocom.org/12823 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I2883addcb81cec038577e401e356e8f07a947d4c Gerrit-Change-Number: 12823 Gerrit-PatchSet: 4 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: dexter Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:51:31 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:51:31 +0000 Subject: Change in osmo-ccid-firmware[master]: remove usage of GCLK11 In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12798 ) Change subject: remove usage of GCLK11 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12798 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I121ad850cf118b641fe522b513ffd7e00b30b710 Gerrit-Change-Number: 12798 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 04 Feb 2019 13:51:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:52:07 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:52:07 +0000 Subject: Change in osmo-ccid-firmware[master]: set DPLL1 to 100 MHz In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12799 ) Change subject: set DPLL1 to 100 MHz ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/#/c/12799/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/12799/1//COMMIT_MSG at 9 PS1, Line 9: use GCLK11 to bring external crystal oscillator XOSC1 from 12 MHz a bit strange line breaks, but not worth spending time on it. -- To view, visit https://gerrit.osmocom.org/12799 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0482c39cc0db999904c585d21738dbce57ca3b55 Gerrit-Change-Number: 12799 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 04 Feb 2019 13:52:07 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:52:41 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:52:41 +0000 Subject: Change in osmo-ccid-firmware[master]: use XOSC1 directly for DPLL1 In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12800 ) Change subject: use XOSC1 directly for DPLL1 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12800 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icee7f5a13019c47cebc23376cabb18cb31178ece Gerrit-Change-Number: 12800 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 04 Feb 2019 13:52:41 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:53:51 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:53:51 +0000 Subject: Change in osmo-ccid-firmware[master]: add SERCOM peripheral for UART debug In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12801 ) Change subject: add SERCOM peripheral for UART debug ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12801 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id7af37ce1dd2d0a356e019c96bf6438ce459411b Gerrit-Change-Number: 12801 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 04 Feb 2019 13:53:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:55:54 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:55:54 +0000 Subject: Change in osmo-ccid-firmware[master]: rename application to main In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12802 ) Change subject: rename application to main ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12802 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib6ec525885943afba9b24df88a5bee8009df95b5 Gerrit-Change-Number: 12802 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 04 Feb 2019 13:55:54 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:56:08 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:56:08 +0000 Subject: Change in osmo-ccid-firmware[master]: add SERCOM HAL Async library In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12803 ) Change subject: add SERCOM HAL Async library ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12803 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I530a5bc5ee7e89149eb251bda0adf7963733d2ee Gerrit-Change-Number: 12803 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 04 Feb 2019 13:56:08 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:56:22 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:56:22 +0000 Subject: Change in osmo-ccid-firmware[master]: add system LED definition In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12804 ) Change subject: add system LED definition ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12804 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I97dc71ac00b64fdd05e0ff4c7e16e1b68b57b695 Gerrit-Change-Number: 12804 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 04 Feb 2019 13:56:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:57:27 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:57:27 +0000 Subject: Change in osmo-ccid-firmware[master]: blink LED on UART activity In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12805 ) Change subject: blink LED on UART activity ...................................................................... Patch Set 1: not sure if the license change should be part of this file. either make it a separate commit, or add the main file directly with the correct license text? -- To view, visit https://gerrit.osmocom.org/12805 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib230be6003f28931ab4c60228796ec0af6c783d9 Gerrit-Change-Number: 12805 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-CC: Harald Welte Gerrit-Comment-Date: Mon, 04 Feb 2019 13:57:27 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:57:59 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:57:59 +0000 Subject: Change in osmo-ccid-firmware[master]: fix DPLL input clock division In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12806 ) Change subject: fix DPLL input clock division ...................................................................... Patch Set 1: Code-Review+2 commit log could describe what was the actual bug, but not worth spending time on -- To view, visit https://gerrit.osmocom.org/12806 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3df1356d36b54d0cc34fd827265b1e4b9d55509f Gerrit-Change-Number: 12806 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 04 Feb 2019 13:57:59 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 13:58:18 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 13:58:18 +0000 Subject: Change in osmo-ccid-firmware[master]: echo back UART input In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12807 ) Change subject: echo back UART input ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12807 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I44b15079672b4058de1fa08365541317d54958dc Gerrit-Change-Number: 12807 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 04 Feb 2019 13:58:18 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 14:00:23 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 14:00:23 +0000 Subject: Change in osmo-ccid-firmware[master]: switch from dev board to prototype In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12808 ) Change subject: switch from dev board to prototype ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12808 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifd15f6759c51b42a8d11b09f9f495d7e7a5b6afc Gerrit-Change-Number: 12808 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 04 Feb 2019 14:00:23 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 14:00:44 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 14:00:44 +0000 Subject: Change in osmo-ccid-firmware[master]: add 20 MHz clock output In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12809 ) Change subject: add 20 MHz clock output ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12809 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2c0d6a31ec63a87e04ef4e3afbedce3a221324cc Gerrit-Change-Number: 12809 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 04 Feb 2019 14:00:44 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 14:05:44 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 14:05:44 +0000 Subject: Change in libosmo-netif[master]: Stream examples: fix typo in error message Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12825 Change subject: Stream examples: fix typo in error message ...................................................................... Stream examples: fix typo in error message Likely a copy-paste error from corresponding client example code. Change-Id: I47cc8c7340eb188d85a49d4f41c295bed0e1bee4 --- M examples/stream-server.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/25/12825/1 diff --git a/examples/stream-server.c b/examples/stream-server.c index 31487a0..e208d88 100644 --- a/examples/stream-server.c +++ b/examples/stream-server.c @@ -150,7 +150,7 @@ osmo_stream_srv_link_set_accept_cb(srv, accept_cb); if (osmo_stream_srv_link_open(srv) < 0) { - fprintf(stderr, "cannot open client\n"); + fprintf(stderr, "cannot open server link\n"); exit(EXIT_FAILURE); } -- To view, visit https://gerrit.osmocom.org/12825 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I47cc8c7340eb188d85a49d4f41c295bed0e1bee4 Gerrit-Change-Number: 12825 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 14:05:44 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 14:05:44 +0000 Subject: Change in libosmo-netif[master]: Stream examples: print accepted client address Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12826 Change subject: Stream examples: print accepted client address ...................................................................... Stream examples: print accepted client address Display socket information for accepted client. Change-Id: I5aa6757be79754cf7ffa4a276dae1cfb80fe904e --- M examples/stream-server.c 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/26/12826/1 diff --git a/examples/stream-server.c b/examples/stream-server.c index e208d88..14b4123 100644 --- a/examples/stream-server.c +++ b/examples/stream-server.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include @@ -77,6 +78,8 @@ static int accept_cb(struct osmo_stream_srv_link *srv, int fd) { + char buf[OSMO_SOCK_NAME_MAXLEN]; + if (conn != NULL) { LOGP(DSTREAMTEST, LOGL_ERROR, "Sorry, this example only " "support one client simultaneously\n"); @@ -91,6 +94,9 @@ return -1; } + osmo_sock_get_name_buf(buf, OSMO_SOCK_NAME_MAXLEN, fd); + LOGP(DSTREAMTEST, LOGL_NOTICE, "accepted client: %s\n", buf); + return 0; } -- To view, visit https://gerrit.osmocom.org/12826 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5aa6757be79754cf7ffa4a276dae1cfb80fe904e Gerrit-Change-Number: 12826 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 14:05:45 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 14:05:45 +0000 Subject: Change in libosmo-netif[master]: Add descriptor functions to stream client/server Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12827 Change subject: Add descriptor functions to stream client/server ...................................................................... Add descriptor functions to stream client/server Add functions to get the description of a server link or client connection which examine data on corresponding socket. Those functions use static buffers and intended for single use in log/printf statements as illustarted by corresponding example changes. Change-Id: If9a8e211da85956781479862a63c4fc6e53ed6be --- M examples/stream-client.c M examples/stream-server.c M include/osmocom/netif/stream.h M src/stream.c 4 files changed, 35 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/27/12827/1 diff --git a/examples/stream-client.c b/examples/stream-client.c index 6178dcd..b283ee4 100644 --- a/examples/stream-client.c +++ b/examples/stream-client.c @@ -39,7 +39,7 @@ static int connect_cb(struct osmo_stream_cli *conn) { - LOGP(DSTREAMTEST, LOGL_NOTICE, "connected\n"); + LOGP(DSTREAMTEST, LOGL_NOTICE, "connected: %s\n", osmo_stream_cli_get_descr(conn)); return 0; } diff --git a/examples/stream-server.c b/examples/stream-server.c index 14b4123..f54b763 100644 --- a/examples/stream-server.c +++ b/examples/stream-server.c @@ -171,7 +171,7 @@ kbd_ofd->cb = kbd_cb; osmo_fd_register(kbd_ofd); - LOGP(DSTREAMTEST, LOGL_NOTICE, "Entering main loop\n"); + LOGP(DSTREAMTEST, LOGL_NOTICE, "Entering main loop on %s\n", osmo_stream_srv_link_get_descr(srv)); while(1) { osmo_select_main(0); diff --git a/include/osmocom/netif/stream.h b/include/osmocom/netif/stream.h index 969d42f..7015ce9 100644 --- a/include/osmocom/netif/stream.h +++ b/include/osmocom/netif/stream.h @@ -27,6 +27,7 @@ void osmo_stream_srv_link_set_accept_cb(struct osmo_stream_srv_link *link, int (*accept_cb)(struct osmo_stream_srv_link *link, int fd)); void osmo_stream_srv_link_set_data(struct osmo_stream_srv_link *link, void *data); void *osmo_stream_srv_link_get_data(struct osmo_stream_srv_link *link); +char *osmo_stream_srv_link_get_descr(const struct osmo_stream_srv_link *link); struct osmo_fd *osmo_stream_srv_link_get_ofd(struct osmo_stream_srv_link *link); int osmo_stream_srv_link_open(struct osmo_stream_srv_link *link); @@ -60,6 +61,7 @@ void osmo_stream_cli_set_data(struct osmo_stream_cli *cli, void *data); void osmo_stream_cli_set_reconnect_timeout(struct osmo_stream_cli *cli, int timeout); void *osmo_stream_cli_get_data(struct osmo_stream_cli *cli); +char *osmo_stream_cli_get_descr(const struct osmo_stream_cli *cli); struct osmo_fd *osmo_stream_cli_get_ofd(struct osmo_stream_cli *cli); void osmo_stream_cli_set_connect_cb(struct osmo_stream_cli *cli, int (*connect_cb)(struct osmo_stream_cli *cli)); void osmo_stream_cli_set_read_cb(struct osmo_stream_cli *cli, int (*read_cb)(struct osmo_stream_cli *cli)); diff --git a/src/stream.c b/src/stream.c index dbbaa9c..b1ea3db 100644 --- a/src/stream.c +++ b/src/stream.c @@ -395,6 +395,18 @@ return cli->data; } +/*! \brief Get the stream client socket description. + * \param[in] cli Stream Client to examine + * \returns Socket description or NULL in case of error */ +char *osmo_stream_cli_get_descr(const struct osmo_stream_cli *cli) +{ + static char buf[OSMO_SOCK_NAME_MAXLEN]; + + osmo_sock_get_name_buf(buf, OSMO_SOCK_NAME_MAXLEN, cli->ofd.fd); + + return buf; +} + /*! \brief Get Osmocom File Descriptor of the stream client socket * \param[in] cli Stream Client to modify * \returns Pointer to \ref osmo_fd */ @@ -702,6 +714,25 @@ return link->data; } +/*! \brief Get description of the stream server link e. g. 127.0.0.1:1234 + * \param[in] link Stream Server Link to examine + * \returns Link description or NULL in case of error */ +char *osmo_stream_srv_link_get_descr(const struct osmo_stream_srv_link *link) +{ + static char buf[INET6_ADDRSTRLEN + 6]; + int rc = osmo_sock_get_local_ip(link->ofd.fd, buf, INET6_ADDRSTRLEN); + if (rc < 0) + return NULL; + + buf[strnlen(buf, INET6_ADDRSTRLEN + 6)] = ':'; + + rc = osmo_sock_get_local_ip_port(link->ofd.fd, buf + strnlen(buf, INET6_ADDRSTRLEN + 6), 6); + if (rc < 0) + return NULL; + + return buf; +} + /*! \brief Get Osmocom File Descriptor of the stream server link * \param[in] link Stream Server Link * \returns Pointer to \ref osmo_fd */ -- To view, visit https://gerrit.osmocom.org/12827 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If9a8e211da85956781479862a63c4fc6e53ed6be Gerrit-Change-Number: 12827 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 14:09:50 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 14:09:50 +0000 Subject: Change in osmo-ci[master]: gerrit-verifications: Add osmo-ccid-firmware In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12824 ) Change subject: gerrit-verifications: Add osmo-ccid-firmware ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12824 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I713d345240dec319ee07d99e9381fc1af6a2d86d Gerrit-Change-Number: 12824 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: K?vin Redon Gerrit-Reviewer: Max Gerrit-Comment-Date: Mon, 04 Feb 2019 14:09:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 14:11:59 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 14:11:59 +0000 Subject: Change in osmo-bsc[master]: gsm_data: Add gsm_bts_name() just like we have gsm_{trx, ts, lchan}_name() In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12817 ) Change subject: gsm_data: Add gsm_bts_name() just like we have gsm_{trx,ts,lchan}_name() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12817 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icd7fd6273396026c5fe2da600f35631b1bac1614 Gerrit-Change-Number: 12817 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Mon, 04 Feb 2019 14:11:59 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 14:15:26 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 14:15:26 +0000 Subject: Change in libosmocore[master]: bitvec: Add bitvec_tailroom_bits() function In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12816 ) Change subject: bitvec: Add bitvec_tailroom_bits() function ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/12816/2/tests/bitvec/bitvec_test.c File tests/bitvec/bitvec_test.c: https://gerrit.osmocom.org/#/c/12816/2/tests/bitvec/bitvec_test.c at 219 PS2, Line 219: for (i = 0; i < 8; i++) { Why only 8? Why not go over entire vector so both corner cases (no bits set vs all bits set) are covered? -- To view, visit https://gerrit.osmocom.org/12816 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I8980a6b6d1973b67a2d9ad411c878d956fb428d1 Gerrit-Change-Number: 12816 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max Gerrit-Comment-Date: Mon, 04 Feb 2019 14:15:26 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 14:21:18 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 14:21:18 +0000 Subject: Change in osmo-ccid-firmware[master]: name pin according to schematic In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12810 ) Change subject: name pin according to schematic ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12810 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I94a7f2216c288150b044a6190804f9b7247eb10c Gerrit-Change-Number: 12810 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 04 Feb 2019 14:21:18 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 14:22:00 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 14:22:00 +0000 Subject: Change in osmo-ccid-firmware[master]: add ISO7816 peripherals In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12811 ) Change subject: add ISO7816 peripherals ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12811 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3f1411ec5bc2ed7dfa714550d041f52be665132a Gerrit-Change-Number: 12811 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 04 Feb 2019 14:22:00 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 14:23:25 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 14:23:25 +0000 Subject: Change in osmo-ccid-firmware[master]: add debug welcome message output In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12812 ) Change subject: add debug welcome message output ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12812 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I8dde644caa56152b17da674e187006726991ff9c Gerrit-Change-Number: 12812 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 04 Feb 2019 14:23:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 14:23:51 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 14:23:51 +0000 Subject: Change in osmo-ccid-firmware[master]: relocate application to after the DFU bootloader In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12813 ) Change subject: relocate application to after the DFU bootloader ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12813 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ieeefcf80918fd10e48debab6ff08505f6588811c Gerrit-Change-Number: 12813 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Mon, 04 Feb 2019 14:23:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 14:48:11 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 4 Feb 2019 14:48:11 +0000 Subject: Change in python/osmo-python-tests[master]: osmo-trap2cgi: Fix script installation and dependencies Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/12828 Change subject: osmo-trap2cgi: Fix script installation and dependencies ...................................................................... osmo-trap2cgi: Fix script installation and dependencies * Install systemd file with debian * Depend on python3-aiohttp in python3-osmopy-utils as it is required for osmo-trap2cgi Related: SYS#4399 Sponsored-by: On-Waves ehf Change-Id: I6add5f37b63dd5fcfdefe0459b539e0050d03897 --- M debian/control A debian/python3-osmopy-utils.osmo-trap2cgi.service 2 files changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/python/osmo-python-tests refs/changes/28/12828/1 diff --git a/debian/control b/debian/control index 8bea167..52b614c 100644 --- a/debian/control +++ b/debian/control @@ -31,7 +31,7 @@ Package: python3-osmopy-utils Architecture: all -Depends: ${python3:Depends}, ${misc:Depends}, python3-osmopy-libs, python3-twisted, python3-treq +Depends: ${python3:Depends}, ${misc:Depends}, python3-osmopy-libs, python3-twisted, python3-treq, python3-aiohttp Description: Python code (not only) for testing of Osmocom programs . This package contains the Python 3 version of osmopy utils. diff --git a/debian/python3-osmopy-utils.osmo-trap2cgi.service b/debian/python3-osmopy-utils.osmo-trap2cgi.service new file mode 120000 index 0000000..f1cd169 --- /dev/null +++ b/debian/python3-osmopy-utils.osmo-trap2cgi.service @@ -0,0 +1 @@ +../contrib/systemd/osmo-trap2cgi.service \ No newline at end of file -- To view, visit https://gerrit.osmocom.org/12828 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: python/osmo-python-tests Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6add5f37b63dd5fcfdefe0459b539e0050d03897 Gerrit-Change-Number: 12828 Gerrit-PatchSet: 1 Gerrit-Owner: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Mon Feb 4 15:10:06 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Mon, 4 Feb 2019 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#391?= In-Reply-To: <1614426301.62.1549206606974.JavaMail.jenkins@jenkins.osmocom.org> References: <1614426301.62.1549206606974.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <735182589.76.1549293006651.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.76 KB...] checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs mkdir .libs mkdir: cannot create directory '.libs': File exists gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Mon Feb 4 15:45:08 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 4 Feb 2019 15:45:08 +0000 Subject: Change in libosmocore[master]: gsm0808: Add CSFB indication IE to BSSMAP CLEAR COMMAND Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/12829 Change subject: gsm0808: Add CSFB indication IE to BSSMAP CLEAR COMMAND ...................................................................... gsm0808: Add CSFB indication IE to BSSMAP CLEAR COMMAND When a call that was established in a CSFB context ends the CLEAR COMMAND that is send from the BSC to the MSC should contain a CSFB indication IE, which consists of just the IE byte itsslef. This additional IE tells the BSC to include other CSFB related IEs into the RR Release message. Change-Id: Id8a75e1da2d5f520064666e4ee413d1c91da6ae3 Related: OS#3778 --- M include/osmocom/gsm/gsm0808.h M src/gsm/gsm0808.c M src/gsm/libosmogsm.map 3 files changed, 18 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/29/12829/1 diff --git a/include/osmocom/gsm/gsm0808.h b/include/osmocom/gsm/gsm0808.h index 6d14e13..35e7a8e 100644 --- a/include/osmocom/gsm/gsm0808.h +++ b/include/osmocom/gsm/gsm0808.h @@ -49,6 +49,7 @@ struct msgb *gsm0808_create_reset(void); struct msgb *gsm0808_create_reset_ack(void); struct msgb *gsm0808_create_clear_command(uint8_t cause); +struct msgb *gsm0808_create_clear_command2(uint8_t cause, bool csfb_ind); struct msgb *gsm0808_create_clear_complete(void); struct msgb *gsm0808_create_cipher(const struct gsm0808_encrypt_info *ei, const uint8_t *cipher_response_mode); diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index fce8e0a..2907255 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -195,6 +195,22 @@ return msg; } +/*! Create BSSMAP Clear Command message. + * \param[in] cause TS 08.08 cause value. + * \param[in] csfb_ind indicate that the call was established in an CSFB context. + * \returns callee-allocated msgb with BSSMAP Clear Command message. */ +struct msgb *gsm0808_create_clear_command2(uint8_t cause, bool csfb_ind) +{ + struct msgb *msg = gsm0808_create_clear_command(cause); + if (!msg) + return NULL; + + if (csfb_ind) + msgb_v_put(msg, GSM0808_IE_CSFB_INDICATION); + + return msg; +} + /*! Create BSSMAP Cipher Mode Command message * \param[in] ei Mandatory Encryption Information * \param[in] cipher_response_mode optional 1-byte Cipher Response Mode diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 3cfe6a7..602c7a6 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -164,6 +164,7 @@ gsm0808_create_classmark_request; gsm0808_create_classmark_update; gsm0808_create_clear_command; +gsm0808_create_clear_command2; gsm0808_create_clear_complete; gsm0808_create_clear_rqst; gsm0808_create_paging; -- To view, visit https://gerrit.osmocom.org/12829 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id8a75e1da2d5f520064666e4ee413d1c91da6ae3 Gerrit-Change-Number: 12829 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 15:50:13 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 4 Feb 2019 15:50:13 +0000 Subject: Change in osmo-msc[master]: a_iface: Include CSFB Indication into BSSMAP CLEAR COMMAND Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/12830 Change subject: a_iface: Include CSFB Indication into BSSMAP CLEAR COMMAND ...................................................................... a_iface: Include CSFB Indication into BSSMAP CLEAR COMMAND When a call ends that has been established in an CSFB context, we should add a CSFB Indication IE to the BSSMAP CLEAR COMMAND to instruct the BSC to add further CSFB related IEs into the RR RELEASE. - Check if an SGs association exists and add CSFB Indication IE Change-Id: I6cfa4b3becdd0138d74e2e1eddd83a0b1568c1de Related: OS#3778 --- M src/libmsc/a_iface.c 1 file changed, 6 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/30/12830/1 diff --git a/src/libmsc/a_iface.c b/src/libmsc/a_iface.c index 0811734..3a7690d 100644 --- a/src/libmsc/a_iface.c +++ b/src/libmsc/a_iface.c @@ -416,10 +416,15 @@ int a_iface_tx_clear_cmd(struct ran_conn *conn) { struct msgb *msg; + struct vlr_subscr *vsub = conn->vsub; + bool csfb_ind = false; LOGPCONN(conn, LOGL_INFO, "Tx BSSMAP CLEAR COMMAND to BSC\n"); - msg = gsm0808_create_clear_command(GSM0808_CAUSE_CALL_CONTROL); + if (vsub && vsub->sgs_fsm->state == SGS_UE_ST_ASSOCIATED) + csfb_ind = true; + + msg = gsm0808_create_clear_command2(GSM0808_CAUSE_CALL_CONTROL, csfb_ind); return osmo_sccp_tx_data_msg(conn->a.scu, conn->a.conn_id, msg); } -- To view, visit https://gerrit.osmocom.org/12830 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6cfa4b3becdd0138d74e2e1eddd83a0b1568c1de Gerrit-Change-Number: 12830 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 16:43:58 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 4 Feb 2019 16:43:58 +0000 Subject: Change in libosmocore[master]: add generic vty_transcript_test.c, vty_transcript_test.vty In-Reply-To: References: Message-ID: Neels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/12768 ) Change subject: add generic vty_transcript_test.c, vty_transcript_test.vty ...................................................................... add generic vty_transcript_test.c, vty_transcript_test.vty I want to tweak general VTY features and need to cover with a transcript test to show the differences. Start by showing the current situation of optional and multi-choice arguments. Change-Id: I5a79c83fabd02aba6406b6e0d620969c4bd0cc1d --- M tests/Makefile.am A tests/vty/vty_transcript_test.c A tests/vty/vty_transcript_test.vty 3 files changed, 301 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/tests/Makefile.am b/tests/Makefile.am index a307886..91f042e 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -26,6 +26,7 @@ codec/codec_ecu_fr_test timer/clk_override_test \ oap/oap_client_test gsm29205/gsm29205_test \ logging/logging_vty_test \ + vty/vty_transcript_test \ $(NULL) if ENABLE_MSGFILE @@ -156,6 +157,9 @@ logging_logging_vty_test_SOURCES = logging/logging_vty_test.c logging_logging_vty_test_LDADD = $(LDADD) $(top_builddir)/src/vty/libosmovty.la +vty_vty_transcript_test_SOURCES = vty/vty_transcript_test.c +vty_vty_transcript_test_LDADD = $(LDADD) $(top_builddir)/src/vty/libosmovty.la + fr_fr_test_SOURCES = fr/fr_test.c fr_fr_test_LDADD = $(LDADD) $(top_builddir)/src/gb/libosmogb.la $(LIBRARY_DLSYM) \ $(top_builddir)/src/vty/libosmovty.la \ @@ -278,7 +282,9 @@ sercomm/sercomm_test.ok prbs/prbs_test.ok \ gsm29205/gsm29205_test.ok gsm23003/gsm23003_test.ok \ timer/clk_override_test.ok \ - oap/oap_client_test.ok oap/oap_client_test.err + oap/oap_client_test.ok oap/oap_client_test.err \ + vty/vty_transcript_test.vty \ + $(NULL) DISTCLEANFILES = atconfig atlocal conv/gsm0503_test_vectors.c BUILT_SOURCES = conv/gsm0503_test_vectors.c @@ -322,11 +328,21 @@ # To update the VTY script from current application behavior, # pass -u to osmo_verify_transcript_vty.py by doing: # make vty-test U=-u -vty-test: +vty-test-logging: osmo_verify_transcript_vty.py -v \ -p 42042 \ -r "$(top_builddir)/tests/logging/logging_vty_test" \ $(U) $(srcdir)/logging/*.vty +vty-test-vty: + osmo_verify_transcript_vty.py -v \ + -p 42042 \ + -r "$(top_builddir)/tests/vty/vty_transcript_test" \ + $(U) $(srcdir)/vty/*.vty + +vty-test: + $(MAKE) vty-test-logging + $(MAKE) vty-test-vty + ctrl-test: echo "No CTRL tests exist currently" diff --git a/tests/vty/vty_transcript_test.c b/tests/vty/vty_transcript_test.c new file mode 100644 index 0000000..50131ea --- /dev/null +++ b/tests/vty/vty_transcript_test.c @@ -0,0 +1,230 @@ +/* Test implementation for VTY transcript testing. */ +/* + * (C) 2019 by sysmocom s.f.m.c. GmbH + * + * All Rights Reserved + * + * SPDX-License-Identifier: GPL-2.0+ + * + * Author: Neels Hofmeyr + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#define _GNU_SOURCE +#include +#include +#include +#include + +#include + +#include +#include +#include + +#include + +#include "config.h" + +void *root_ctx = NULL; + +static void print_help() +{ + printf( "options:\n" + " -h --help this text\n" + " -d --debug MASK Enable debugging (e.g. -d DRSL:DOML:DLAPDM)\n" + " -D --daemonize For the process into a background daemon\n" + " -c --config-file Specify the filename of the config file\n" + " -s --disable-color Don't use colors in stderr log output\n" + " -T --timestamp Prefix every log line with a timestamp\n" + " -V --version Print version information and exit\n" + " -e --log-level Set a global log-level\n" + ); +} + +static struct { + const char *config_file; + int daemonize; +} cmdline_config = {}; + +static void handle_options(int argc, char **argv) +{ + while (1) { + int option_idx = 0, c; + static const struct option long_options[] = { + { "help", 0, 0, 'h' }, + { "debug", 1, 0, 'd' }, + { "daemonize", 0, 0, 'D' }, + { "config-file", 1, 0, 'c' }, + { "disable-color", 0, 0, 's' }, + { "timestamp", 0, 0, 'T' }, + { "version", 0, 0, 'V' }, + { "log-level", 1, 0, 'e' }, + {} + }; + + c = getopt_long(argc, argv, "hc:d:Dc:sTVe:", + long_options, &option_idx); + if (c == -1) + break; + + switch (c) { + case 'h': + print_help(); + exit(0); + case 's': + log_set_use_color(osmo_stderr_target, 0); + break; + case 'd': + log_parse_category_mask(osmo_stderr_target, optarg); + break; + case 'D': + cmdline_config.daemonize = 1; + break; + case 'c': + cmdline_config.config_file = optarg; + break; + case 'T': + log_set_print_timestamp(osmo_stderr_target, 1); + break; + case 'e': + log_set_log_level(osmo_stderr_target, atoi(optarg)); + break; + case 'V': + print_version(1); + exit(0); + break; + default: + /* catch unknown options *as well as* missing arguments. */ + fprintf(stderr, "Error in command line options. Exiting.\n"); + exit(-1); + } + } +} + +static int quit = 0; + +static void signal_handler(int signal) +{ + fprintf(stdout, "signal %u received\n", signal); + + switch (signal) { + case SIGINT: + case SIGTERM: + quit++; + break; + case SIGABRT: + osmo_generate_backtrace(); + /* in case of abort, we want to obtain a talloc report + * and then return to the caller, who will abort the process */ + case SIGUSR1: + talloc_report(tall_vty_ctx, stderr); + talloc_report_full(root_ctx, stderr); + break; + case SIGUSR2: + talloc_report_full(tall_vty_ctx, stderr); + break; + default: + break; + } +} + +static struct vty_app_info vty_info = { + .name = "vty_transcript_test", + .version = PACKAGE_VERSION, +}; + +static const struct log_info_cat default_categories[] = {}; + +const struct log_info log_info = { + .cat = default_categories, + .num_cat = ARRAY_SIZE(default_categories), +}; + +DEFUN(multi0, multi0_cmd, + "multi0 (one|two|three)", + "multi0 test command\n" "1\n2\n3\n") +{ + vty_out(vty, "ok argc=%d%s%s%s", argc, argc ? " " : "", argc ? argv[0] : "", VTY_NEWLINE); + return CMD_SUCCESS; +} + +DEFUN(multi1, multi1_cmd, + "multi1 ([one]|[two]|[three])", + "multi1 test command\n" "1\n2\n3\n") +{ + vty_out(vty, "ok argc=%d%s%s%s", argc, argc ? " " : "", argc ? argv[0] : "", VTY_NEWLINE); + return CMD_SUCCESS; +} + +static void init_vty_cmds() +{ + install_element_ve(&multi0_cmd); + install_element_ve(&multi1_cmd); +} + +int main(int argc, char **argv) +{ + int rc; + + root_ctx = talloc_named_const(NULL, 0, "vty_transcript_test"); + + vty_info.tall_ctx = root_ctx; + vty_init(&vty_info); + osmo_talloc_vty_add_cmds(); + init_vty_cmds(); + + osmo_init_logging2(root_ctx, &log_info); + + handle_options(argc, argv); + + if (cmdline_config.config_file) { + rc = vty_read_config_file(cmdline_config.config_file, NULL); + if (rc < 0) { + fprintf(stderr, "Failed to parse the config file: '%s'\n", cmdline_config.config_file); + return 1; + } + } + + rc = telnet_init_dynif(root_ctx, NULL, vty_get_bind_addr(), 42042); + if (rc < 0) + return 2; + + signal(SIGINT, &signal_handler); + signal(SIGTERM, &signal_handler); + signal(SIGABRT, &signal_handler); + signal(SIGUSR1, &signal_handler); + signal(SIGUSR2, &signal_handler); + osmo_init_ignore_signals(); + + if (cmdline_config.daemonize) { + rc = osmo_daemonize(); + if (rc < 0) { + perror("Error during daemonize"); + return 6; + } + } + + while (!quit) { + log_reset_context(); + osmo_select_main(0); + } + + talloc_free(root_ctx); + talloc_free(tall_vty_ctx); + + return 0; +} diff --git a/tests/vty/vty_transcript_test.vty b/tests/vty/vty_transcript_test.vty new file mode 100644 index 0000000..1ae7c0d --- /dev/null +++ b/tests/vty/vty_transcript_test.vty @@ -0,0 +1,53 @@ +vty_transcript_test> list +... + multi0 (one|two|three) + multi1 ([one]|[two]|[three]) + +vty_transcript_test> multi0 ? + one 1 + two 2 + three 3 + +vty_transcript_test> multi0 one +ok argc=1 one + +vty_transcript_test> multi0 two +ok argc=1 two + +vty_transcript_test> multi0 o +ok argc=1 o + +vty_transcript_test> multi0 t +ok argc=1 t + +vty_transcript_test> multi0 th +ok argc=1 th + +vty_transcript_test> multi0 +% Command incomplete. + +vty_transcript_test> multi1 ? + [one] 1 + [two] 2 + [three] 3 + +vty_transcript_test> multi1 one +ok argc=1 one + +vty_transcript_test> multi1 two +ok argc=1 two + +vty_transcript_test> multi1 o +ok argc=1 o + +vty_transcript_test> multi1 t +ok argc=1 t + +vty_transcript_test> multi1 th +ok argc=1 th + +vty_transcript_test> multi1 +% Command incomplete. + +vty_transcript_test> multi1 [one] +% Unknown command. -- To view, visit https://gerrit.osmocom.org/12768 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5a79c83fabd02aba6406b6e0d620969c4bd0cc1d Gerrit-Change-Number: 12768 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 16:43:58 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 4 Feb 2019 16:43:58 +0000 Subject: Change in libosmocore[master]: vty: enable optional-multi-choice syntax: ([one]|[two]) In-Reply-To: References: Message-ID: Neels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/12769 ) Change subject: vty: enable optional-multi-choice syntax: ([one]|[two]) ...................................................................... vty: enable optional-multi-choice syntax: ([one]|[two]) Add basic optional multi-choice argument support. The VTY detects optional arguments by square braces. > cmd ? [optional-arg] > cmd optional-arg ok > cmd ok However, within multi-choice args, these braces were so far not treated as optional: > list cmd2 ([one]|[two]|[three]) > cmd2 % Command incomplete In preparation for I952b3c00f97e2447f2308b0ec6f5f1714692b5b2 which will enable the more obvious syntax of cmd [(one|two)] for reasons of internal implementation, first support a syntax of cmd ([one]|[two]) The internal vty implementation always needs square braces around each option. There is currently no good way to prevent developers from defining braces inside multi-arguments, so it is easiest to allow and handle them: > list cmd2 ([one]|[two]|[three]) > cmd2 ok The VTY doesn't guard against a mix like cmd (one|[two]) With this patch, a multi-choice command is treated as optional iff the first element is in square brackets. The remaining elements' square brackets have no effect besides confusing the user. This is not explicitly checked against. In general, I would prefer to check all of these details, but the current VTY code with its endless code duplication and obscure string mangling just doesn't provide that luxury. There are numerous worse errors hidden in there. Change-Id: I9a8474bd89ddc2155c58bfca7bd038d586aaa60a --- M src/vty/command.c M tests/vty/vty_transcript_test.vty 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/vty/command.c b/src/vty/command.c index a540cd5..9d02d69 100644 --- a/src/vty/command.c +++ b/src/vty/command.c @@ -467,7 +467,7 @@ for (i = 0; i < vector_active(strvec); i++) if ((descvec = vector_slot(strvec, i)) != NULL) { - if ((vector_active(descvec)) == 1 + if ((vector_active(descvec)) >= 1 && (desc = vector_slot(descvec, 0)) != NULL) { if (desc->cmd == NULL || CMD_OPTION(desc->cmd)) return size; diff --git a/tests/vty/vty_transcript_test.vty b/tests/vty/vty_transcript_test.vty index 1ae7c0d..514a5ed 100644 --- a/tests/vty/vty_transcript_test.vty +++ b/tests/vty/vty_transcript_test.vty @@ -47,7 +47,7 @@ ok argc=1 th vty_transcript_test> multi1 -% Command incomplete. +ok argc=0 vty_transcript_test> multi1 [one] % Unknown command. -- To view, visit https://gerrit.osmocom.org/12769 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I9a8474bd89ddc2155c58bfca7bd038d586aaa60a Gerrit-Change-Number: 12769 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 16:43:59 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 4 Feb 2019 16:43:59 +0000 Subject: Change in libosmocore[master]: vty: enable optional-multi-choice syntax: [(one|two)] In-Reply-To: References: Message-ID: Neels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/12770 ) Change subject: vty: enable optional-multi-choice syntax: [(one|two)] ...................................................................... vty: enable optional-multi-choice syntax: [(one|two)] Since very recently we sensibly handle commands like cmd ([one]|[two]|[three]) as optional multi-choice arguments. In addition, support the more obvious syntax of cmd [(one|two|three)] Internally, the tokens are mangled to [one] [two] and [three], which is how the rest of the code detects optional args, and makes sense in terms of UI: > cmd ? [one] [two] [three] (i.e. optional arguments are always shown in braces in '?' listings) Before this patch, commands defined with a syntax like [(one|two)], would lead to an assertion (shows as "multiple") during program startup. Change-Id: I952b3c00f97e2447f2308b0ec6f5f1714692b5b2 --- M src/vty/command.c M tests/vty/vty_transcript_test.c M tests/vty/vty_transcript_test.vty 3 files changed, 45 insertions(+), 3 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/vty/command.c b/src/vty/command.c index 9d02d69..2242e76 100644 --- a/src/vty/command.c +++ b/src/vty/command.c @@ -380,6 +380,7 @@ static vector cmd_make_descvec(const char *string, const char *descstr) { int multiple = 0; + int optional_brace = 0; const char *sp; char *token; int len; @@ -401,6 +402,12 @@ while (isspace((int)*cp) && *cp != '\0') cp++; + /* Explicitly detect optional multi-choice braces like [(one|two)]. */ + if (cp[0] == '[' && cp[1] == '(') { + optional_brace = 1; + cp++; + } + if (*cp == '(') { multiple = 1; cp++; @@ -408,6 +415,9 @@ if (*cp == ')') { multiple = 0; cp++; + if (*cp == ']') + cp++; + optional_brace = 0; } if (*cp == '|') { OSMO_ASSERT(multiple); @@ -434,9 +444,17 @@ len = cp - sp; - token = _talloc_zero(tall_vty_cmd_ctx, len + 1, "cmd_make_descvec"); - memcpy(token, sp, len); - *(token + len) = '\0'; + token = _talloc_zero(tall_vty_cmd_ctx, len + (optional_brace? 2 : 0) + 1, "cmd_make_descvec"); + if (optional_brace) { + /* Place each individual multi-choice token in its own square braces */ + token[0] = '['; + memcpy(token + 1, sp, len); + token[1 + len] = ']'; + token[2 + len] = '\0'; + } else { + memcpy(token, sp, len); + *(token + len) = '\0'; + } desc = talloc_zero(tall_vty_cmd_ctx, struct desc); desc->cmd = token; diff --git a/tests/vty/vty_transcript_test.c b/tests/vty/vty_transcript_test.c index 50131ea..7ffe713 100644 --- a/tests/vty/vty_transcript_test.c +++ b/tests/vty/vty_transcript_test.c @@ -170,10 +170,19 @@ return CMD_SUCCESS; } +DEFUN(multi2, multi2_cmd, + "multi2 [(one|two|three)]", + "multi2 test command\n" "1\n2\n3\n") +{ + vty_out(vty, "ok argc=%d%s%s%s", argc, argc ? " " : "", argc ? argv[0] : "", VTY_NEWLINE); + return CMD_SUCCESS; +} + static void init_vty_cmds() { install_element_ve(&multi0_cmd); install_element_ve(&multi1_cmd); + install_element_ve(&multi2_cmd); } int main(int argc, char **argv) diff --git a/tests/vty/vty_transcript_test.vty b/tests/vty/vty_transcript_test.vty index 514a5ed..57920a8 100644 --- a/tests/vty/vty_transcript_test.vty +++ b/tests/vty/vty_transcript_test.vty @@ -2,6 +2,7 @@ ... multi0 (one|two|three) multi1 ([one]|[two]|[three]) + multi2 [(one|two|three)] vty_transcript_test> multi0 ? one 1 @@ -51,3 +52,17 @@ vty_transcript_test> multi1 [one] % Unknown command. + +vty_transcript_test> multi2 ? + [one] 1 + [two] 2 + [three] 3 + +vty_transcript_test> multi2 one +ok argc=1 one + +vty_transcript_test> multi2 two +ok argc=1 two + +vty_transcript_test> multi2 +ok argc=0 -- To view, visit https://gerrit.osmocom.org/12770 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I952b3c00f97e2447f2308b0ec6f5f1714692b5b2 Gerrit-Change-Number: 12770 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 16:43:59 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 4 Feb 2019 16:43:59 +0000 Subject: Change in libosmocore[master]: vty: enable tab-completion for optional-multi-choice args In-Reply-To: References: Message-ID: Neels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/12771 ) Change subject: vty: enable tab-completion for optional-multi-choice args ...................................................................... vty: enable tab-completion for optional-multi-choice args In cmd_complete_command_real(), detect and strip square braces from multi-choice arguments, to enable tab-completion for commands like > list cmd [(alpha|beta)] > cmd alpha beta > cmd be > cmd beta Change-Id: I8c304300b3633bb6e9b3457fcfa42121c8272ac0 --- M src/vty/command.c 1 file changed, 10 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/vty/command.c b/src/vty/command.c index 2242e76..de084ab 100644 --- a/src/vty/command.c +++ b/src/vty/command.c @@ -2010,9 +2010,18 @@ descvec = vector_slot(strvec, index); for (j = 0; j < vector_active(descvec); j++) if ((desc = vector_slot(descvec, j))) { - if ((string = cmd_entry_function(vector_slot(vline, index), desc->cmd))) + const char *cmd = desc->cmd; + char *tmp = NULL; + + if (CMD_OPTION(desc->cmd)) { + tmp = cmd_deopt(tall_vty_cmd_ctx, desc->cmd); + cmd = tmp; + } + if ((string = cmd_entry_function(vector_slot(vline, index), cmd))) if (cmd_unique_string (matchvec, string)) vector_set (matchvec, talloc_strdup(tall_vty_cmd_ctx, string)); + if (tmp) + talloc_free(tmp); } } } -- To view, visit https://gerrit.osmocom.org/12771 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I8c304300b3633bb6e9b3457fcfa42121c8272ac0 Gerrit-Change-Number: 12771 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 16:44:00 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 4 Feb 2019 16:44:00 +0000 Subject: Change in libosmocore[master]: vty telnet: consistently never change nodes upon CTRL-C In-Reply-To: References: Message-ID: Neels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/12772 ) Change subject: vty telnet: consistently never change nodes upon CTRL-C ...................................................................... vty telnet: consistently never change nodes upon CTRL-C Remove any special node exiting from the VTY CTRL-C handling. >From a curious VTY transcript test glitch, I noticed weird behavior by the VTY telnet shell: usually, when the user hits CTRL-C, that means to cancel the current command line and present a fresh, clean prompt. However, only on the CONFIG_NODE and CFG_LOG_NODE, a CTRL-C also exits the current node and moves up by one level. This behavior is unexplainable and makes zero sense. No other nodes exit on CTRL-C: - on the ENABLE node, a CTRL-C stays on the ENABLE_NODE and doesn't exit to the VIEW_NODE. - any sub-nodes of the CONFIG_NODE stay unchanged, e.g. 'network' or 'bts' / 'trx', etc. There is no apparent special meaning of CTRL-C on CONFIG_NODE nor CFG_LOG_NODE to justify this odd choice. Particularly, the vty transcript tests using osmo_verify_transcript_vty.py rely on sending CTRL-C to clear the command prompt, so that we can properly test sending '?' to the VTY during transcripts. In a live session, a '?' prints available options and then updates the prompt with identical command arguments. In a transcript test, that doesn't make sense, because each time the transcript writes out a new command to run. Consider e.g. a transcript test like: tdef_vty_test(config)# timer ? tea Tea time test Test timers software Typical software development cycle tdef_vty_test(config)# timer tea ? [TNNNN] T-number, optionally preceded by 't' or 'T'. To be able to issue a fresh command after '?', osmo_verify_transcript_vty.py explicitly sends a CTRL-C to clear the command buffer. Hence there we rely on predictable behavior of CTRL-C. More particularly, the upcoming osmo_tdef_vty transcript tests are apparently the first that want to test '?' behavior on the CONFIG_NODE's root level and fall on their face, because of the implicit exit that happens only there. Change-Id: I4f339ba61f1c273fa7da85caf77ba116ae2697b1 --- M src/vty/vty.c 1 file changed, 0 insertions(+), 18 deletions(-) Approvals: Harald Welte: Looks good to me, approved Vadim Yanitskiy: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/vty/vty.c b/src/vty/vty.c index abce887..8c89197 100644 --- a/src/vty/vty.c +++ b/src/vty/vty.c @@ -1217,24 +1217,6 @@ vty->cp = vty->length = 0; vty_clear_buf(vty); vty_out(vty, "%s", VTY_NEWLINE); - - switch (vty->node) { - case VIEW_NODE: - case ENABLE_NODE: - /* Nothing to do. */ - break; - case CONFIG_NODE: - case VTY_NODE: - vty_config_unlock(vty); - vty->node = ENABLE_NODE; - break; - case CFG_LOG_NODE: - vty->node = CONFIG_NODE; - break; - default: - /* Unknown node, we have to ignore it. */ - break; - } vty_prompt(vty); /* Set history pointer to the latest one. */ -- To view, visit https://gerrit.osmocom.org/12772 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I4f339ba61f1c273fa7da85caf77ba116ae2697b1 Gerrit-Change-Number: 12772 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 16:44:01 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 4 Feb 2019 16:44:01 +0000 Subject: Change in libosmocore[master]: vty api: add vty_out_va() In-Reply-To: References: Message-ID: Neels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/12773 ) Change subject: vty api: add vty_out_va() ...................................................................... vty api: add vty_out_va() Provide a va_list type vty_out() variant, to be able to pass on variable arguments from other function signatures to vty_out(). This will be used by Ibd6b1ed7f1bd6e1f2e0fde53352055a4468f23e5 for osmo_tdef. Change-Id: Ie6e6f11a6b794f3cb686350c1ed678e4d5bbbb75 --- M include/osmocom/vty/vty.h M src/vty/vty.c 2 files changed, 20 insertions(+), 12 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/vty/vty.h b/include/osmocom/vty/vty.h index c4cf707..8d2e1b3 100644 --- a/include/osmocom/vty/vty.h +++ b/include/osmocom/vty/vty.h @@ -193,6 +193,7 @@ struct vty *vty_new (void); struct vty *vty_create (int vty_sock, void *priv); int vty_out (struct vty *, const char *, ...) VTY_PRINTF_ATTRIBUTE(2, 3); +int vty_out_va(struct vty *vty, const char *format, va_list ap); int vty_out_newline(struct vty *); int vty_read(struct vty *vty); //void vty_time_print (struct vty *, int); diff --git a/src/vty/vty.c b/src/vty/vty.c index 8c89197..98b332d 100644 --- a/src/vty/vty.c +++ b/src/vty/vty.c @@ -249,26 +249,19 @@ return vty->type == VTY_SHELL ? 1 : 0; } - -/*! VTY standard output function - * \param[in] vty VTY to which we should print - * \param[in] format variable-length format string - */ -int vty_out(struct vty *vty, const char *format, ...) +int vty_out_va(struct vty *vty, const char *format, va_list ap) { - va_list args; int len = 0; int size = 1024; char buf[1024]; char *p = NULL; if (vty_shell(vty)) { - va_start(args, format); - vprintf(format, args); - va_end(args); + vprintf(format, ap); } else { + va_list args; /* Try to write to initial buffer. */ - va_start(args, format); + va_copy(args, ap); len = vsnprintf(buf, sizeof buf, format, args); va_end(args); @@ -284,7 +277,7 @@ if (!p) return -1; - va_start(args, format); + va_copy(args, ap); len = vsnprintf(p, size, format, args); va_end(args); @@ -310,6 +303,20 @@ return len; } +/*! VTY standard output function + * \param[in] vty VTY to which we should print + * \param[in] format variable-length format string + */ +int vty_out(struct vty *vty, const char *format, ...) +{ + va_list args; + int rc; + va_start(args, format); + rc = vty_out_va(vty, format, args); + va_end(args); + return rc; +} + /*! print a newline on the given VTY */ int vty_out_newline(struct vty *vty) { -- To view, visit https://gerrit.osmocom.org/12773 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie6e6f11a6b794f3cb686350c1ed678e4d5bbbb75 Gerrit-Change-Number: 12773 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 16:44:03 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 4 Feb 2019 16:44:03 +0000 Subject: Change in libosmocore[master]: doxygen: enable cross referencing everywhere In-Reply-To: References: Message-ID: Neels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/12774 ) Change subject: doxygen: enable cross referencing everywhere ...................................................................... doxygen: enable cross referencing everywhere doxygen \ref cross-references to groups or files from other libraries only work when the .map file was present when the HTML was generated, and when that .map file was listed in TAGFILES in the Doxyfile. - Makefile.am: introduce a two-pass build for doxygen API docs. - First build pass makes sure the .tag files are present. - Second build pass picks up all the references, hence generates hyperlinks properly. - Add all libraries to TAGFILES of all other libraries, so we can from now on freely criss-cross reference from everywhere to everywhere. - Add all libraries' tag files as dependencies for all others. Example: in upcoming tdef.h, I would like to cross reference to tdef_vty.h, and vice versa, even though they are in libosmocore and libosmovty, respectively. This is now possible. We may still need to fix some problems with naming collisions, see for example stats.h, which exists twice with identical doxygen handle (different source dirs seems to not suffice for doxygen). Change-Id: Ib03d0b70d536c8f1386def666c89106a840f7363 --- M Doxyfile.codec.in M Doxyfile.coding.in M Doxyfile.core.in M Doxyfile.ctrl.in M Doxyfile.gb.in M Doxyfile.gsm.in M Doxyfile.vty.in M Makefile.am 8 files changed, 130 insertions(+), 28 deletions(-) Approvals: Neels Hofmeyr: Looks good to me, approved Jenkins Builder: Verified diff --git a/Doxyfile.codec.in b/Doxyfile.codec.in index 037ef7a..307e3e1 100644 --- a/Doxyfile.codec.in +++ b/Doxyfile.codec.in @@ -1485,7 +1485,7 @@ # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. -TAGFILES = doc/libosmocore.tag=../../core/html +TAGFILES = doc/libosmocore.tag=../../core/html doc/libosmogsm.tag=../../gsm/html doc/libosmovty.tag=../../vty/html doc/libosmocoding.tag=../../coding/html doc/libosmoctrl.tag=../../ctrl/html doc/libosmogb.tag=../../gb/html # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. diff --git a/Doxyfile.coding.in b/Doxyfile.coding.in index 43c4f82..d0e9942 100644 --- a/Doxyfile.coding.in +++ b/Doxyfile.coding.in @@ -1485,7 +1485,7 @@ # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. -TAGFILES = doc/libosmocore.tag=../../core/html +TAGFILES = doc/libosmocore.tag=../../core/html doc/libosmogsm.tag=../../gsm/html doc/libosmovty.tag=../../vty/html doc/libosmocodec.tag=../../codec/html doc/libosmoctrl.tag=../../ctrl/html doc/libosmogb.tag=../../gb/html # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. diff --git a/Doxyfile.core.in b/Doxyfile.core.in index 7a3cce5..f83205a 100644 --- a/Doxyfile.core.in +++ b/Doxyfile.core.in @@ -1485,7 +1485,7 @@ # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. -TAGFILES = +TAGFILES = doc/libosmogsm.tag=../../gsm/html doc/libosmovty.tag=../../vty/html doc/libosmocodec.tag=../../codec/html doc/libosmocoding.tag=../../coding/html doc/libosmoctrl.tag=../../ctrl/html doc/libosmogb.tag=../../gb/html # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. diff --git a/Doxyfile.ctrl.in b/Doxyfile.ctrl.in index eb363bb..5612a74 100644 --- a/Doxyfile.ctrl.in +++ b/Doxyfile.ctrl.in @@ -1485,7 +1485,7 @@ # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. -TAGFILES = doc/libosmocore.tag=../../core/html +TAGFILES = doc/libosmocore.tag=../../core/html doc/libosmogsm.tag=../../gsm/html doc/libosmovty.tag=../../vty/html doc/libosmocodec.tag=../../codec/html doc/libosmocoding.tag=../../coding/html doc/libosmogb.tag=../../gb/html # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. diff --git a/Doxyfile.gb.in b/Doxyfile.gb.in index e6b7826..b3b2128 100644 --- a/Doxyfile.gb.in +++ b/Doxyfile.gb.in @@ -1485,7 +1485,7 @@ # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. -TAGFILES = doc/libosmocore.tag=../../core/html +TAGFILES = doc/libosmocore.tag=../../core/html doc/libosmogsm.tag=../../gsm/html doc/libosmovty.tag=../../vty/html doc/libosmocodec.tag=../../codec/html doc/libosmocoding.tag=../../coding/html doc/libosmoctrl.tag=../../ctrl/html # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. diff --git a/Doxyfile.gsm.in b/Doxyfile.gsm.in index 27d14cc..aae0e89 100644 --- a/Doxyfile.gsm.in +++ b/Doxyfile.gsm.in @@ -1485,7 +1485,7 @@ # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. -TAGFILES = doc/libosmocore.tag=../../core/html +TAGFILES = doc/libosmocore.tag=../../core/html doc/libosmovty.tag=../../vty/html doc/libosmocodec.tag=../../codec/html doc/libosmocoding.tag=../../coding/html doc/libosmoctrl.tag=../../ctrl/html doc/libosmogb.tag=../../gb/html # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. diff --git a/Doxyfile.vty.in b/Doxyfile.vty.in index 0e138ee..fb1cabf 100644 --- a/Doxyfile.vty.in +++ b/Doxyfile.vty.in @@ -1485,7 +1485,7 @@ # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. -TAGFILES = doc/libosmocore.tag=../../core/html +TAGFILES = doc/libosmocore.tag=../../core/html doc/libosmogsm.tag=../../gsm/html doc/libosmocodec.tag=../../codec/html doc/libosmocoding.tag=../../coding/html doc/libosmoctrl.tag=../../ctrl/html doc/libosmogb.tag=../../gb/html # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. diff --git a/Makefile.am b/Makefile.am index de5eb35..9e0888f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -39,38 +39,140 @@ $(top_builddir)/doc/gb/html/index.html cd $(top_builddir)/doc && tar cf html.tar */html -$(top_builddir)/doc/core/html/index.html: $(SOURCES) Doxyfile.core - @rm -rf doc/core - mkdir -p doc/core +# Support doxygen cross references from each library to each other library: +# First generate the docs to make sure all .tag files are in place. +# In a second run, generate the content with proper referencing. +# For example, libosmocore references tags from libosmovty and vice versa, +# so both need to generate tag files first, and then do another run. +# +# Generate each docs tree, and touch a libosmofoo.tag.prep file when done. +# It means that a libosmofoo.tag file is up-to-date. +# Touch a separate "*.prep" target: libosmofoo.tag as target would create +# circular dependency: we would rebuild all every time 'make' is invoked. +# The .prep file also depends on all the source files for that library. + +$(top_builddir)/doc/libosmocore.tag.prep: $(top_builddir)/Doxyfile.core + rm -rf $(top_builddir)/doc/core; mkdir -p $(top_builddir)/doc/core + rm -rf $(top_builddir)/doc/libosmocore.map + -$(DOXYGEN) $(top_builddir)/Doxyfile.core + touch "$@" + +$(top_builddir)/doc/libosmogsm.tag.prep: $(top_builddir)/Doxyfile.gsm + rm -rf $(top_builddir)/doc/gsm; mkdir -p $(top_builddir)/doc/gsm + rm -rf $(top_builddir)/doc/libosmogsm.map + -$(DOXYGEN) $(top_builddir)/Doxyfile.gsm + touch "$@" + +$(top_builddir)/doc/libosmovty.tag.prep: $(top_builddir)/Doxyfile.vty + rm -rf $(top_builddir)/doc/vty; mkdir -p $(top_builddir)/doc/vty + rm -rf $(top_builddir)/doc/libosmovty.map + -$(DOXYGEN) $(top_builddir)/Doxyfile.vty + touch "$@" + +$(top_builddir)/doc/libosmocodec.tag.prep: $(top_builddir)/Doxyfile.codec + rm -rf $(top_builddir)/doc/codec; mkdir -p $(top_builddir)/doc/codec + rm -rf $(top_builddir)/doc/libosmocodec.map + -$(DOXYGEN) $(top_builddir)/Doxyfile.codec + touch "$@" + +$(top_builddir)/doc/libosmocoding.tag.prep: $(top_builddir)/Doxyfile.coding + rm -rf $(top_builddir)/doc/coding; mkdir -p $(top_builddir)/doc/coding + rm -rf $(top_builddir)/doc/libosmocoding.map + -$(DOXYGEN) $(top_builddir)/Doxyfile.coding + touch "$@" + +$(top_builddir)/doc/libosmoctrl.tag.prep: $(top_builddir)/Doxyfile.ctrl + rm -rf $(top_builddir)/doc/ctrl; mkdir -p $(top_builddir)/doc/ctrl + rm -rf $(top_builddir)/doc/libosmoctrl.map + -$(DOXYGEN) $(top_builddir)/Doxyfile.ctrl + touch "$@" + +$(top_builddir)/doc/libosmogb.tag.prep: $(top_builddir)/Doxyfile.gb + rm -rf $(top_builddir)/doc/gb; mkdir -p $(top_builddir)/doc/gb + rm -rf $(top_builddir)/doc/libosmogb.map + -$(DOXYGEN) $(top_builddir)/Doxyfile.gb + touch "$@" + +# Build for real once all depending .tag files are in place. +# Depend on the own .tag.prep file to avoid concurrent builds of the same doc +# tree, and to also depend on all the source files listed above. +# +# Each library should depend on all the tag.prep files of which it lists .tag +# files in Doxyfile under TAGFILES. +# +# In turn, include all .tag files in TAGFILES of libraries to which "\ref" +# references point. +# +# Easiest is to just depend on all tag.prep files all across everywhere. + +$(top_builddir)/doc/core/html/index.html: $(top_builddir)/doc/libosmocore.tag.prep \ + $(top_builddir)/doc/libosmogsm.tag.prep \ + $(top_builddir)/doc/libosmovty.tag.prep \ + $(top_builddir)/doc/libosmocodec.tag.prep \ + $(top_builddir)/doc/libosmocoding.tag.prep \ + $(top_builddir)/doc/libosmoctrl.tag.prep \ + $(top_builddir)/doc/libosmogb.tag.prep + rm -rf $(top_builddir)/doc/core; mkdir -p $(top_builddir)/doc/core $(DOXYGEN) Doxyfile.core -$(top_builddir)/doc/gsm/html/index.html: $(SOURCES) Doxyfile.gsm - @rm -rf doc/gsm - mkdir -p doc/gsm +$(top_builddir)/doc/gsm/html/index.html: $(top_builddir)/doc/libosmogsm.tag.prep \ + $(top_builddir)/doc/libosmocore.tag.prep \ + $(top_builddir)/doc/libosmovty.tag.prep \ + $(top_builddir)/doc/libosmocodec.tag.prep \ + $(top_builddir)/doc/libosmocoding.tag.prep \ + $(top_builddir)/doc/libosmoctrl.tag.prep \ + $(top_builddir)/doc/libosmogb.tag.prep + rm -rf $(top_builddir)/doc/gsm; mkdir -p $(top_builddir)/doc/gsm $(DOXYGEN) Doxyfile.gsm -$(top_builddir)/doc/vty/html/index.html: $(SOURCES) Doxyfile.vty - @rm -rf doc/vty/{html,latex} +$(top_builddir)/doc/vty/html/index.html: $(top_builddir)/doc/libosmovty.tag.prep \ + $(top_builddir)/doc/libosmocore.tag.prep \ + $(top_builddir)/doc/libosmogsm.tag.prep \ + $(top_builddir)/doc/libosmocodec.tag.prep \ + $(top_builddir)/doc/libosmocoding.tag.prep \ + $(top_builddir)/doc/libosmoctrl.tag.prep \ + $(top_builddir)/doc/libosmogb.tag.prep + rm -rf $(top_builddir)/doc/vty; mkdir -p $(top_builddir)/doc/vty $(DOXYGEN) Doxyfile.vty -$(top_builddir)/doc/codec/html/index.html: $(SOURCES) Doxyfile.codec - @rm -rf doc/codec - mkdir -p doc/codec +$(top_builddir)/doc/codec/html/index.html: $(top_builddir)/doc/libosmocodec.tag.prep \ + $(top_builddir)/doc/libosmocore.tag.prep \ + $(top_builddir)/doc/libosmogsm.tag.prep \ + $(top_builddir)/doc/libosmovty.tag.prep \ + $(top_builddir)/doc/libosmocoding.tag.prep \ + $(top_builddir)/doc/libosmoctrl.tag.prep \ + $(top_builddir)/doc/libosmogb.tag.prep + rm -rf $(top_builddir)/doc/codec; mkdir -p $(top_builddir)/doc/codec $(DOXYGEN) Doxyfile.codec -$(top_builddir)/doc/coding/html/index.html: Doxyfile.coding - @rm -rf doc/coding - mkdir -p doc/coding +$(top_builddir)/doc/coding/html/index.html: $(top_builddir)/doc/libosmocoding.tag.prep \ + $(top_builddir)/doc/libosmocore.tag.prep \ + $(top_builddir)/doc/libosmogsm.tag.prep \ + $(top_builddir)/doc/libosmovty.tag.prep \ + $(top_builddir)/doc/libosmocodec.tag.prep \ + $(top_builddir)/doc/libosmoctrl.tag.prep \ + $(top_builddir)/doc/libosmogb.tag.prep + rm -rf $(top_builddir)/doc/coding; mkdir -p $(top_builddir)/doc/coding $(DOXYGEN) Doxyfile.coding -$(top_builddir)/doc/ctrl/html/index.html: $(SOURCES) Doxyfile.ctrl - @rm -rf doc/ctrl - mkdir -p doc/ctrl +$(top_builddir)/doc/ctrl/html/index.html: $(top_builddir)/doc/libosmoctrl.tag.prep \ + $(top_builddir)/doc/libosmocore.tag.prep \ + $(top_builddir)/doc/libosmogsm.tag.prep \ + $(top_builddir)/doc/libosmovty.tag.prep \ + $(top_builddir)/doc/libosmocodec.tag.prep \ + $(top_builddir)/doc/libosmocoding.tag.prep \ + $(top_builddir)/doc/libosmogb.tag.prep + rm -rf $(top_builddir)/doc/ctrl; mkdir -p $(top_builddir)/doc/ctrl $(DOXYGEN) Doxyfile.ctrl -$(top_builddir)/doc/gb/html/index.html: $(SOURCES) Doxyfile.gb - @rm -rf doc/gb - mkdir -p doc/gb +$(top_builddir)/doc/gb/html/index.html: $(top_builddir)/doc/libosmogb.tag.prep \ + $(top_builddir)/doc/libosmocore.tag.prep \ + $(top_builddir)/doc/libosmogsm.tag.prep \ + $(top_builddir)/doc/libosmovty.tag.prep \ + $(top_builddir)/doc/libosmocodec.tag.prep \ + $(top_builddir)/doc/libosmocoding.tag.prep \ + $(top_builddir)/doc/libosmoctrl.tag.prep + rm -rf $(top_builddir)/doc/gb; mkdir -p $(top_builddir)/doc/gb $(DOXYGEN) Doxyfile.gb install-data-hook: @@ -79,7 +181,7 @@ uninstall-hook: cd $(DESTDIR)$(htmldir) && rm -rf {core,gsm,vty,codec,coding,ctrl,gb} -DX_CLEAN = doc/{core,gsm,vty,codec,coding,ctrl,gb}/html/search/* doc/{core,gsm,vty,codec,coding,ctrl,gb}/{html,latex}/* doc/html.tar doc/{core,gsm,vty,codec,coding,ctrl,gb}/doxygen_sqlite3.db doc/*.tag +DX_CLEAN = doc/{core,gsm,vty,codec,coding,ctrl,gb}/html/search/* doc/{core,gsm,vty,codec,coding,ctrl,gb}/{html,latex}/* doc/html.tar doc/{core,gsm,vty,codec,coding,ctrl,gb}/doxygen_sqlite3.db doc/*.tag doc/*.tag.prep endif MOSTLYCLEANFILES = $(DX_CLEAN) -- To view, visit https://gerrit.osmocom.org/12774 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib03d0b70d536c8f1386def666c89106a840f7363 Gerrit-Change-Number: 12774 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 16:44:04 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 4 Feb 2019 16:44:04 +0000 Subject: Change in libosmocore[master]: doxygen: add source files as dependencies In-Reply-To: References: Message-ID: Neels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/12775 ) Change subject: doxygen: add source files as dependencies ...................................................................... doxygen: add source files as dependencies So far, when modifying a source file, the doxygen docs were not regenerated automatically. It required a manual 'rm -rf docs/core' or similar. Make it rebuild automatically: Add each library's source files to the list of dependencies for the first-pass doxygen build. Attention, since all libraries depend on the .map files of each other library, and each library depends on its own source files, that means that a single touch on one .c file anywhere will result in rebuilding the entire doxygen docs. It is correct to do so, since any file may introduce \ref targets used anywhere else. If you don't want that, --disable-doxygen. Change-Id: I15ea96be6e7abe91264b91f0b06963a0f2d63b0b --- M Makefile.am 1 file changed, 25 insertions(+), 7 deletions(-) Approvals: Neels Hofmeyr: Looks good to me, approved Jenkins Builder: Verified diff --git a/Makefile.am b/Makefile.am index 9e0888f..8fe5f57 100644 --- a/Makefile.am +++ b/Makefile.am @@ -51,43 +51,61 @@ # circular dependency: we would rebuild all every time 'make' is invoked. # The .prep file also depends on all the source files for that library. -$(top_builddir)/doc/libosmocore.tag.prep: $(top_builddir)/Doxyfile.core +$(top_builddir)/doc/libosmocore.tag.prep: $(top_builddir)/Doxyfile.core \ + $(top_srcdir)/include/osmocom/core/*.h \ + $(top_srcdir)/src/*.[hc] \ + $(top_srcdir)/src/pseudotalloc/*.[hc] rm -rf $(top_builddir)/doc/core; mkdir -p $(top_builddir)/doc/core rm -rf $(top_builddir)/doc/libosmocore.map -$(DOXYGEN) $(top_builddir)/Doxyfile.core touch "$@" -$(top_builddir)/doc/libosmogsm.tag.prep: $(top_builddir)/Doxyfile.gsm +$(top_builddir)/doc/libosmogsm.tag.prep: $(top_builddir)/Doxyfile.gsm \ + $(top_srcdir)/include/osmocom/gsm/*.h \ + $(top_srcdir)/include/osmocom/gsm/protocol/*.h \ + $(top_srcdir)/include/osmocom/crypt/*.h \ + $(top_srcdir)/src/gsm/*.c \ + $(top_srcdir)/src/gsm/milenage/*.[hc] rm -rf $(top_builddir)/doc/gsm; mkdir -p $(top_builddir)/doc/gsm rm -rf $(top_builddir)/doc/libosmogsm.map -$(DOXYGEN) $(top_builddir)/Doxyfile.gsm touch "$@" -$(top_builddir)/doc/libosmovty.tag.prep: $(top_builddir)/Doxyfile.vty +$(top_builddir)/doc/libosmovty.tag.prep: $(top_builddir)/Doxyfile.vty \ + $(top_srcdir)/include/osmocom/vty/*.h \ + $(top_srcdir)/src/vty/*.c rm -rf $(top_builddir)/doc/vty; mkdir -p $(top_builddir)/doc/vty rm -rf $(top_builddir)/doc/libosmovty.map -$(DOXYGEN) $(top_builddir)/Doxyfile.vty touch "$@" -$(top_builddir)/doc/libosmocodec.tag.prep: $(top_builddir)/Doxyfile.codec +$(top_builddir)/doc/libosmocodec.tag.prep: $(top_builddir)/Doxyfile.codec \ + $(top_srcdir)/include/osmocom/codec/*.h \ + $(top_srcdir)/src/codec/*.c rm -rf $(top_builddir)/doc/codec; mkdir -p $(top_builddir)/doc/codec rm -rf $(top_builddir)/doc/libosmocodec.map -$(DOXYGEN) $(top_builddir)/Doxyfile.codec touch "$@" -$(top_builddir)/doc/libosmocoding.tag.prep: $(top_builddir)/Doxyfile.coding +$(top_builddir)/doc/libosmocoding.tag.prep: $(top_builddir)/Doxyfile.coding \ + $(top_srcdir)/include/osmocom/coding/*.h \ + $(top_srcdir)/src/coding/*.c rm -rf $(top_builddir)/doc/coding; mkdir -p $(top_builddir)/doc/coding rm -rf $(top_builddir)/doc/libosmocoding.map -$(DOXYGEN) $(top_builddir)/Doxyfile.coding touch "$@" -$(top_builddir)/doc/libosmoctrl.tag.prep: $(top_builddir)/Doxyfile.ctrl +$(top_builddir)/doc/libosmoctrl.tag.prep: $(top_builddir)/Doxyfile.ctrl \ + $(top_srcdir)/include/osmocom/ctrl/*.h \ + $(top_srcdir)/src/ctrl/*.c rm -rf $(top_builddir)/doc/ctrl; mkdir -p $(top_builddir)/doc/ctrl rm -rf $(top_builddir)/doc/libosmoctrl.map -$(DOXYGEN) $(top_builddir)/Doxyfile.ctrl touch "$@" -$(top_builddir)/doc/libosmogb.tag.prep: $(top_builddir)/Doxyfile.gb +$(top_builddir)/doc/libosmogb.tag.prep: $(top_builddir)/Doxyfile.gb \ + $(top_srcdir)/include/osmocom/gprs/*.h \ + $(top_srcdir)/src/gb/*.[hc] rm -rf $(top_builddir)/doc/gb; mkdir -p $(top_builddir)/doc/gb rm -rf $(top_builddir)/doc/libosmogb.map -$(DOXYGEN) $(top_builddir)/Doxyfile.gb -- To view, visit https://gerrit.osmocom.org/12775 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I15ea96be6e7abe91264b91f0b06963a0f2d63b0b Gerrit-Change-Number: 12775 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 16:44:05 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 4 Feb 2019 16:44:05 +0000 Subject: Change in libosmocore[master]: doxygen: allow manual 'make apidoc' even if --disable-doxygen In-Reply-To: References: Message-ID: Neels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/12776 ) Change subject: doxygen: allow manual 'make apidoc' even if --disable-doxygen ...................................................................... doxygen: allow manual 'make apidoc' even if --disable-doxygen Even if ./configure --disable-doxygen was passed and doxygen builds are by default skipped, provide a manual 'make apidoc' target that nevertheless generates the API doc on the premise that a 'doxygen' program is available. Especially since we do a two-pass doxygen build whenever any source file changes, my guess is --disable-doxygen could be a common choice. It is then cumbersome to have to ./configure just to get one doxygen build started. Change-Id: If8d8dfb8365c8f28612b8ce2b8ddf88f74df9a90 --- M Makefile.am 1 file changed, 17 insertions(+), 8 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/Makefile.am b/Makefile.am index 8fe5f57..332ce65 100644 --- a/Makefile.am +++ b/Makefile.am @@ -24,19 +24,27 @@ EXTRA_DIST = git-version-gen .version README.md osmo-release.mk osmo-release.sh -if HAVE_DOXYGEN +HTML = \ + $(top_builddir)/doc/core/html/index.html \ + $(top_builddir)/doc/gsm/html/index.html \ + $(top_builddir)/doc/vty/html/index.html \ + $(top_builddir)/doc/codec/html/index.html \ + $(top_builddir)/doc/coding/html/index.html \ + $(top_builddir)/doc/ctrl/html/index.html \ + $(top_builddir)/doc/gb/html/index.html +if HAVE_DOXYGEN html_DATA = $(top_builddir)/doc/html.tar doc: $(html_DATA) -$(html_DATA): $(top_builddir)/doc/core/html/index.html \ - $(top_builddir)/doc/gsm/html/index.html \ - $(top_builddir)/doc/vty/html/index.html \ - $(top_builddir)/doc/codec/html/index.html \ - $(top_builddir)/doc/coding/html/index.html \ - $(top_builddir)/doc/ctrl/html/index.html \ - $(top_builddir)/doc/gb/html/index.html +$(html_DATA): apidoc +else +DOXYGEN=doxygen +endif + +.PHONY: apidoc +apidoc: $(HTML) cd $(top_builddir)/doc && tar cf html.tar */html # Support doxygen cross references from each library to each other library: @@ -193,6 +201,7 @@ rm -rf $(top_builddir)/doc/gb; mkdir -p $(top_builddir)/doc/gb $(DOXYGEN) Doxyfile.gb +if HAVE_DOXYGEN install-data-hook: cd $(DESTDIR)$(htmldir) && tar xf html.tar && rm -f html.tar -- To view, visit https://gerrit.osmocom.org/12776 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If8d8dfb8365c8f28612b8ce2b8ddf88f74df9a90 Gerrit-Change-Number: 12776 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 17:31:53 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 4 Feb 2019 17:31:53 +0000 Subject: Change in meta-telephony[laforge/nightly]: Add libosmo-netif to osmo-sysmon dependencies In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12821 ) Change subject: Add libosmo-netif to osmo-sysmon dependencies ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: laforge/nightly Gerrit-MessageType: comment Gerrit-Change-Id: I11dd06baf75f9bbb77642640280f6c624ce6d23d Gerrit-Change-Number: 12821 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Comment-Date: Mon, 04 Feb 2019 17:31:53 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 17:34:50 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 4 Feb 2019 17:34:50 +0000 Subject: Change in meta-telephony[201705]: Add libosmo-netif to osmo-sysmon dependencies In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12757 ) Change subject: Add libosmo-netif to osmo-sysmon dependencies ...................................................................... Patch Set 1: Right now 201705 has osmo-sysmon 65d937c45c3362504b8900173b8256a5894adae9, and afaiu the libosmo-netif stuff is not used yet on that osmo-sysmon hash. So we need to merge the laforge/nightly gerrit patch and drop this one. Correct? -- To view, visit https://gerrit.osmocom.org/12757 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-MessageType: comment Gerrit-Change-Id: I11dd06baf75f9bbb77642640280f6c624ce6d23d Gerrit-Change-Number: 12757 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 04 Feb 2019 17:34:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 17:35:27 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 4 Feb 2019 17:35:27 +0000 Subject: Change in libosmo-netif[master]: Stream client: fix doxygen typo In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12822 ) Change subject: Stream client: fix doxygen typo ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12822 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic45d3e0520db4060c5c24e5ef5a766a52f060a34 Gerrit-Change-Number: 12822 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 04 Feb 2019 17:35:27 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 17:41:06 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 4 Feb 2019 17:41:06 +0000 Subject: Change in python/osmo-python-tests[master]: osmo-trap2cgi: Fix script installation and dependencies In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12828 ) Change subject: osmo-trap2cgi: Fix script installation and dependencies ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12828 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: python/osmo-python-tests Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6add5f37b63dd5fcfdefe0459b539e0050d03897 Gerrit-Change-Number: 12828 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 04 Feb 2019 17:41:06 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 17:49:48 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 4 Feb 2019 17:49:48 +0000 Subject: Change in libosmocore[master]: add osmo_tdef API, originally adopted from osmo-bsc T_def In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/12717 ) Change subject: add osmo_tdef API, originally adopted from osmo-bsc T_def ...................................................................... Patch Set 6: Code-Review+2 re-adding previous +2, tweaked API doc -- To view, visit https://gerrit.osmocom.org/12717 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ibd6b1ed7f1bd6e1f2e0fde53352055a4468f23e5 Gerrit-Change-Number: 12717 Gerrit-PatchSet: 6 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Mon, 04 Feb 2019 17:49:48 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 17:52:32 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 4 Feb 2019 17:52:32 +0000 Subject: Change in libosmocore[master]: add osmo_tdef API, originally adopted from osmo-bsc T_def In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12717 to look at the new patch set (#7). Change subject: add osmo_tdef API, originally adopted from osmo-bsc T_def ...................................................................... add osmo_tdef API, originally adopted from osmo-bsc T_def Move T_def from osmo-bsc to libosmocore as osmo_tdef. Adjust naming to be more consistent. Upgrade to first class API: - add timer grouping - add generic vty support - add mising API doc - add C test - add VTY transcript tests, also as examples for using the API >From osmo_fsm_inst_state_chg() API doc, cross reference to osmo_tdef API. The root reason for moving to libosmocore is that I want to use the mgw_endpoint_fsm in osmo-msc for inter-MSC handover, and hence want to move the FSM to libosmo-mgcp-client. This FSM uses the T_def from osmo-bsc. Though the mgw_endpoint_fsm's use of T_def is minimal, I intend to use the osmo_tdef API in osmo-msc (and probably elsewhere) as well. libosmocore is the most sensible place for this. osmo_tdef provides: - a list of Tnnnn (GSM) timers with description, unit and default value. - vty UI to allow users to configure non-default timeouts. - API to tie T timers to osmo_fsm states and set them on state transitions. - a few standard units (minute, second, millisecond) as well as a custom unit (which relies on the timer's human readable description to indicate the meaning of the value). - conversion for standard units: for example, some GSM timers are defined in minutes, while our FSM definitions need timeouts in seconds. Conversion is for convenience only and can be easily avoided via the custom unit. By keeping separate osmo_tdef arrays, several groups of timers can be kept separately. The VTY tests in tests/tdef/ showcase different schemes: - tests/vty/tdef_vty_test_config_root.c: Keep several timer definitions in separately named groups: showcase the osmo_tdef_vty_groups*() API. Each timer group exists exactly once. - tests/vty/tdef_vty_test_config_subnode.c: Keep a single list of timers without separate grouping. Put this list on a specific subnode below the CONFIG_NODE. There could be several separate subnodes with timers like this, i.e. continuing from this example, sets timers could be separated by placing timers in specific config subnodes instead of using the global group name. - tests/vty/tdef_vty_test_dynamic.c: Dynamically allocate timer definitions per each new created object. Thus there can be an arbitrary number of independent timer definitions, one per allocated object. T_def was introduced during the recent osmo-bsc refactoring for inter-BSC handover, and has proven useful: - without osmo_tdef, each invocation of osmo_fsm_inst_state_chg() needs to be programmed with the right timeout value, for all code paths that invoke this state change. It is a likely source of errors to get one of them wrong. By defining a T timer exactly for an FSM state, the caller can merely invoke the state change and trust on the original state definition to apply the correct timeout. - it is helpful to have a standardized config file UI to provide user configurable timeouts, instead of inventing new VTY commands for each separate application of T timer numbers. Change-Id: Ibd6b1ed7f1bd6e1f2e0fde53352055a4468f23e5 --- M include/Makefile.am A include/osmocom/core/tdef.h A include/osmocom/vty/tdef_vty.h M src/Makefile.am M src/fsm.c A src/tdef.c M src/vty/Makefile.am A src/vty/tdef_vty.c M tests/Makefile.am A tests/tdef/tdef_test.c A tests/tdef/tdef_test.ok A tests/tdef/tdef_vty_test_config_root.c A tests/tdef/tdef_vty_test_config_root.vty A tests/tdef/tdef_vty_test_config_subnode.c A tests/tdef/tdef_vty_test_config_subnode.vty A tests/tdef/tdef_vty_test_dynamic.c A tests/tdef/tdef_vty_test_dynamic.vty M tests/testsuite.at 18 files changed, 2,998 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/17/12717/7 -- To view, visit https://gerrit.osmocom.org/12717 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ibd6b1ed7f1bd6e1f2e0fde53352055a4468f23e5 Gerrit-Change-Number: 12717 Gerrit-PatchSet: 7 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 17:56:31 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 4 Feb 2019 17:56:31 +0000 Subject: Change in libosmocore[master]: add osmo_tdef API, originally adopted from osmo-bsc T_def In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/12717 ) Change subject: add osmo_tdef API, originally adopted from osmo-bsc T_def ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12717 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ibd6b1ed7f1bd6e1f2e0fde53352055a4468f23e5 Gerrit-Change-Number: 12717 Gerrit-PatchSet: 7 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Mon, 04 Feb 2019 17:56:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 17:56:39 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 4 Feb 2019 17:56:39 +0000 Subject: Change in libosmocore[master]: add osmo_tdef API, originally adopted from osmo-bsc T_def In-Reply-To: References: Message-ID: Neels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/12717 ) Change subject: add osmo_tdef API, originally adopted from osmo-bsc T_def ...................................................................... add osmo_tdef API, originally adopted from osmo-bsc T_def Move T_def from osmo-bsc to libosmocore as osmo_tdef. Adjust naming to be more consistent. Upgrade to first class API: - add timer grouping - add generic vty support - add mising API doc - add C test - add VTY transcript tests, also as examples for using the API >From osmo_fsm_inst_state_chg() API doc, cross reference to osmo_tdef API. The root reason for moving to libosmocore is that I want to use the mgw_endpoint_fsm in osmo-msc for inter-MSC handover, and hence want to move the FSM to libosmo-mgcp-client. This FSM uses the T_def from osmo-bsc. Though the mgw_endpoint_fsm's use of T_def is minimal, I intend to use the osmo_tdef API in osmo-msc (and probably elsewhere) as well. libosmocore is the most sensible place for this. osmo_tdef provides: - a list of Tnnnn (GSM) timers with description, unit and default value. - vty UI to allow users to configure non-default timeouts. - API to tie T timers to osmo_fsm states and set them on state transitions. - a few standard units (minute, second, millisecond) as well as a custom unit (which relies on the timer's human readable description to indicate the meaning of the value). - conversion for standard units: for example, some GSM timers are defined in minutes, while our FSM definitions need timeouts in seconds. Conversion is for convenience only and can be easily avoided via the custom unit. By keeping separate osmo_tdef arrays, several groups of timers can be kept separately. The VTY tests in tests/tdef/ showcase different schemes: - tests/vty/tdef_vty_test_config_root.c: Keep several timer definitions in separately named groups: showcase the osmo_tdef_vty_groups*() API. Each timer group exists exactly once. - tests/vty/tdef_vty_test_config_subnode.c: Keep a single list of timers without separate grouping. Put this list on a specific subnode below the CONFIG_NODE. There could be several separate subnodes with timers like this, i.e. continuing from this example, sets timers could be separated by placing timers in specific config subnodes instead of using the global group name. - tests/vty/tdef_vty_test_dynamic.c: Dynamically allocate timer definitions per each new created object. Thus there can be an arbitrary number of independent timer definitions, one per allocated object. T_def was introduced during the recent osmo-bsc refactoring for inter-BSC handover, and has proven useful: - without osmo_tdef, each invocation of osmo_fsm_inst_state_chg() needs to be programmed with the right timeout value, for all code paths that invoke this state change. It is a likely source of errors to get one of them wrong. By defining a T timer exactly for an FSM state, the caller can merely invoke the state change and trust on the original state definition to apply the correct timeout. - it is helpful to have a standardized config file UI to provide user configurable timeouts, instead of inventing new VTY commands for each separate application of T timer numbers. Change-Id: Ibd6b1ed7f1bd6e1f2e0fde53352055a4468f23e5 --- M include/Makefile.am A include/osmocom/core/tdef.h A include/osmocom/vty/tdef_vty.h M src/Makefile.am M src/fsm.c A src/tdef.c M src/vty/Makefile.am A src/vty/tdef_vty.c M tests/Makefile.am A tests/tdef/tdef_test.c A tests/tdef/tdef_test.ok A tests/tdef/tdef_vty_test_config_root.c A tests/tdef/tdef_vty_test_config_root.vty A tests/tdef/tdef_vty_test_config_subnode.c A tests/tdef/tdef_vty_test_config_subnode.vty A tests/tdef/tdef_vty_test_dynamic.c A tests/tdef/tdef_vty_test_dynamic.vty M tests/testsuite.at 18 files changed, 2,998 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Neels Hofmeyr: Looks good to me, approved diff --git a/include/Makefile.am b/include/Makefile.am index 25a6d75..17f7d1c 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -47,6 +47,7 @@ osmocom/core/statistics.h \ osmocom/core/strrb.h \ osmocom/core/talloc.h \ + osmocom/core/tdef.h \ osmocom/core/timer.h \ osmocom/core/timer_compat.h \ osmocom/core/utils.h \ @@ -154,6 +155,7 @@ osmocom/vty/vector.h \ osmocom/vty/vty.h \ osmocom/vty/ports.h \ + osmocom/vty/tdef_vty.h \ osmocom/ctrl/control_vty.h endif diff --git a/include/osmocom/core/tdef.h b/include/osmocom/core/tdef.h new file mode 100644 index 0000000..92b7159 --- /dev/null +++ b/include/osmocom/core/tdef.h @@ -0,0 +1,172 @@ +/*! \file tdef.h + * API to define Tnnn timers globally and use for FSM state changes. + */ +/* + * (C) 2018-2019 by sysmocom - s.f.m.c. GmbH + * + * All Rights Reserved + * + * SPDX-License-Identifier: GPL-2.0+ + * + * Author: Neels Hofmeyr + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ +#pragma once + +#include +#include + +struct osmo_fsm_inst; + +/*! \defgroup Tdef Tnnn timer configuration + * @{ + * \file tdef.h + */ + +enum osmo_tdef_unit { + OSMO_TDEF_S = 0, /*!< most T are in seconds, keep 0 as default. */ + OSMO_TDEF_MS, /*!< milliseconds */ + OSMO_TDEF_M, /*!< minutes */ + OSMO_TDEF_CUSTOM, /*!< unspecified unit, explained in osmo_tdef.desc. */ +}; + +extern const struct value_string osmo_tdef_unit_names[]; +/*! \return enum osmo_tdef_unit value as human readable unit letter, or "custom-unit". */ +static inline const char *osmo_tdef_unit_name(enum osmo_tdef_unit val) +{ return get_value_string(osmo_tdef_unit_names, val); } + +/*! Define a GSM timer of the form Tnnn, with unit, default value and doc string. + * Typically used as an array with the last entry being left zero-initialized, e.g.: + * + * struct osmo_tdef tdefs[] = { + * { .T=10, .default_val=6, .desc="RR Assignment" }, + * { .T=101, .default_val=10, .desc="inter-BSC Handover MT, HO Request to HO Accept" }, + * { .T=3101, .default_val=3, .desc="RR Immediate Assignment" }, + * {} + * }; + * + * Program initialization should call osmo_tdefs_reset() so that all timers return the default_val, until e.g. the VTY + * configuration sets user-defined values (see osmo_tdef_vty_init()). + */ +struct osmo_tdef { + /*! T1234 number; type corresponds to struct osmo_fsm_inst.T. Negative and zero T numbers are actually possible, + * but be aware that osmo_tdef_fsm_inst_state_chg() interprets T == 0 as "no timer". */ + const int T; + /*! Timeout duration (according to unit), default value; type corresponds to osmo_fsm_inst_state_chg()'s + * timeout_secs argument. Note that osmo_fsm_inst_state_chg() clamps the range. */ + const unsigned long default_val; + const enum osmo_tdef_unit unit; + /*! Human readable description. For unit == OSMO_TDEF_CUSTOM, this should include an explanation of the value's + * unit. Best keep this a short one-liner (e.g. for VTY output). */ + const char *desc; + /*! Currently active timeout value, e.g. set by user config. This is the only mutable member: a user may + * configure the timeout value, but neither unit nor any other field. */ + unsigned long val; +}; + +/*! Iterate an array of struct osmo_tdef, the last item should be fully zero, i.e. "{}". + * Example: + * + * struct osmo_tdef *t; + * osmo_tdef_for_each(t, tdefs) { + * printf("%lu %s %s\n", t->val, osmo_tdef_unit_name(t->unit), t->desc); + * } + * + * \param[inout] t A struct osmo_tdef *t used for iteration, will point at the current entry inside the loop scope. + * \param[in] tdefs Array of struct osmo_tdef to iterate, zero-terminated. + */ +#define osmo_tdef_for_each(t, tdefs) \ + for (t = tdefs; t && (t->T || t->default_val || t->desc); t++) + +void osmo_tdefs_reset(struct osmo_tdef *tdefs); +unsigned long osmo_tdef_get(const struct osmo_tdef *tdefs, int T, enum osmo_tdef_unit as_unit, + unsigned long val_if_not_present); +struct osmo_tdef *osmo_tdef_get_entry(struct osmo_tdef *tdefs, int T); + +/*! Using osmo_tdef for osmo_fsm_inst: array entry for a mapping of state numbers to timeout definitions. + * For a usage example, see osmo_tdef_get_state_timeout() and test_tdef_state_timeout() in tdef_test.c. */ +struct osmo_tdef_state_timeout { + /*! Timer number to match struct osmo_tdef.T, and to pass to osmo_fsm_inst_state_chg(). */ + int T; + /*! If true, call osmo_fsm_inst_state_chg_keep_timer(). + * If T == 0, keep previous T number, otherwise also set fi->T. */ + bool keep_timer; +}; + +const struct osmo_tdef_state_timeout *osmo_tdef_get_state_timeout(uint32_t state, + const struct osmo_tdef_state_timeout *timeouts_array); + +/*! Call osmo_fsm_inst_state_chg() or osmo_fsm_inst_state_chg_keep_timer(), depending on the timeouts_array, tdefs and + * default_timeout. + * + * A T timer configured in sub-second precision is rounded up to the next full second. A timer in unit = + * OSMO_TDEF_CUSTOM is applied as if the unit is in seconds (i.e. this macro does not make sense for custom units!). + * + * See osmo_tdef_get_state_timeout() and osmo_tdef_get(). + * + * If no T timer is defined for the given state (T == 0), invoke the state change without a timeout. + * + * Should a T number be defined in timeouts_array that is not defined in tdefs, use default_timeout (in seconds). If + * default_timeout is negative, a missing T definition in tdefs instead causes a program abort. + * + * This is best used by wrapping this function call in a macro suitable for a specific FSM implementation, which can + * become as short as: my_fsm_state_chg(fi, NEXT_STATE): + * + * #define my_fsm_state_chg(fi, NEXT_STATE) \ + * osmo_tdef_fsm_inst_state_chg(fi, NEXT_STATE, my_fsm_timeouts, global_T_defs, 5) + * + * my_fsm_state_chg(fi, MY_FSM_STATE_1); + * // -> No timeout configured, will enter state without timeout. + * + * my_fsm_state_chg(fi, MY_FSM_STATE_3); + * // T423 configured for this state, will look up T423 in tdefs, or use 5 seconds if unset. + * + * my_fsm_state_chg(fi, MY_FSM_STATE_8); + * // keep_timer == true for this state, will invoke osmo_fsm_inst_state_chg_keep_timer(). + * + * \param[inout] fi osmo_fsm_inst to transition to another state. + * \param[in] state State number to transition to. + * \param[in] timeouts_array Array of struct osmo_tdef_state_timeout[32] to look up state in. + * \param[in] tdefs Array of struct osmo_tdef (last entry zero initialized) to look up T in. + * \param[in] default_timeout If a T is set in timeouts_array, but no timeout value is configured for T, then use this + * default timeout value as fallback, or pass -1 to abort the program. + * \return Return value from osmo_fsm_inst_state_chg() or osmo_fsm_inst_state_chg_keep_timer(). + */ +#define osmo_tdef_fsm_inst_state_chg(fi, state, timeouts_array, tdefs, default_timeout) \ + _osmo_tdef_fsm_inst_state_chg(fi, state, timeouts_array, tdefs, default_timeout, \ + __FILE__, __LINE__) +int _osmo_tdef_fsm_inst_state_chg(struct osmo_fsm_inst *fi, uint32_t state, + const struct osmo_tdef_state_timeout *timeouts_array, + const struct osmo_tdef *tdefs, unsigned long default_timeout, + const char *file, int line); + +/*! Manage timer definitions in named groups. + * This should be defined as an array with the final element kept fully zero-initialized, + * to be compatible with osmo_tdef_vty* API. There must not be any tdefs == NULL entries except on the final + * zero-initialized entry. */ +struct osmo_tdef_group { + const char *name; + const char *desc; + struct osmo_tdef *tdefs; +}; + +/*! Iterate an array of struct osmo_tdef_group, the last item should be fully zero, i.e. "{}". + * \param[inout] g A struct osmo_tdef_group *g used for iteration, will point at the current entry inside the loop scope. + * \param[in] tdefs Array of struct osmo_tdef_group to iterate, zero-terminated. + */ +#define osmo_tdef_groups_for_each(g, tdef_groups) \ + for (g = tdef_groups; g && g->tdefs; g++) + +/*! @} */ diff --git a/include/osmocom/vty/tdef_vty.h b/include/osmocom/vty/tdef_vty.h new file mode 100644 index 0000000..f55239a --- /dev/null +++ b/include/osmocom/vty/tdef_vty.h @@ -0,0 +1,67 @@ +/*! \file tdef_vty.h + * API to configure osmo_tdef Tnnn timers from VTY configuration. + */ +/* (C) 2018-2019 by sysmocom - s.f.m.c. GmbH + * + * Author: Neels Hofmeyr + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ +#pragma once + +#include + +struct vty; + +/*! \defgroup Tdef_VTY Tnnn timer VTY configuration + * @{ + * \file tdef_vty.h + */ + +struct osmo_tdef; +struct osmo_tdef_group; + +#define OSMO_TDEF_VTY_ARG_T "TNNNN" +#define OSMO_TDEF_VTY_DOC_T "T-number, optionally preceded by 't' or 'T'.\n" +#define OSMO_TDEF_VTY_ARG_T_OPTIONAL "[" OSMO_TDEF_VTY_ARG_T "]" + +#define OSMO_TDEF_VTY_ARG_VAL "(<0-2147483647>|default)" +#define OSMO_TDEF_VTY_DOC_VAL "New timer value\n" "Set to default timer value\n" +#define OSMO_TDEF_VTY_ARG_VAL_OPTIONAL "[" OSMO_TDEF_VTY_ARG_VAL "]" + +#define OSMO_TDEF_VTY_ARG_SET OSMO_TDEF_VTY_ARG_T " " OSMO_TDEF_VTY_ARG_VAL +#define OSMO_TDEF_VTY_DOC_SET OSMO_TDEF_VTY_DOC_T OSMO_TDEF_VTY_DOC_VAL +#define OSMO_TDEF_VTY_ARG_SET_OPTIONAL OSMO_TDEF_VTY_ARG_T_OPTIONAL " " OSMO_TDEF_VTY_ARG_VAL_OPTIONAL + +int osmo_tdef_vty_set_cmd(struct vty *vty, struct osmo_tdef *tdefs, const char **args); +int osmo_tdef_vty_show_cmd(struct vty *vty, struct osmo_tdef *tdefs, const char *T_arg, + const char *prefix_fmt, ...); +void osmo_tdef_vty_write(struct vty *vty, struct osmo_tdef *tdefs, + const char *prefix_fmt, ...); + +void osmo_tdef_vty_out_one(struct vty *vty, struct osmo_tdef *t, const char *prefix_fmt, ...); +void osmo_tdef_vty_out_all(struct vty *vty, struct osmo_tdef *tdefs, const char *prefix_fmt, ...); + +void osmo_tdef_vty_out_one_va(struct vty *vty, struct osmo_tdef *t, const char *prefix_fmt, va_list va); +void osmo_tdef_vty_out_all_va(struct vty *vty, struct osmo_tdef *tdefs, const char *prefix_fmt, va_list va); + +struct osmo_tdef *osmo_tdef_vty_parse_T_arg(struct vty *vty, struct osmo_tdef *tdefs, const char *osmo_tdef_str); +unsigned long osmo_tdef_vty_parse_val_arg(const char *val_arg, unsigned long default_val); + +void osmo_tdef_vty_groups_init(enum node_type parent_node, struct osmo_tdef_group *groups); +void osmo_tdef_vty_groups_write(struct vty *vty, const char *indent); + +/*! @} */ diff --git a/src/Makefile.am b/src/Makefile.am index 6840f79..27ab702 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -23,7 +23,8 @@ loggingrb.c crc8gen.c crc16gen.c crc32gen.c crc64gen.c \ macaddr.c stat_item.c stats.c stats_statsd.c prim.c \ conv_acc.c conv_acc_generic.c sercomm.c prbs.c \ - isdnhdlc.c + isdnhdlc.c \ + tdef.c if HAVE_SSSE3 libosmocore_la_SOURCES += conv_acc_sse.c diff --git a/src/fsm.c b/src/fsm.c index 0d31f87..6e15ab7 100644 --- a/src/fsm.c +++ b/src/fsm.c @@ -498,6 +498,10 @@ * timer_cb. If passing timeout_secs == 0, it is recommended to also pass T == * 0, so that fi->T is reset to 0 when no timeout is invoked. * + * See also osmo_tdef_fsm_inst_state_chg() from the osmo_tdef API, which + * provides a unified way to configure and apply GSM style Tnnnn timers to FSM + * state transitions. + * * Range: since time_t's maximum value is not well defined in a cross platform * way, clamp timeout_secs to the maximum of the signed 32bit range, or roughly * 68 years (float(0x7fffffff) / (60. * 60 * 24 * 365.25) = 68.0497). Thus diff --git a/src/tdef.c b/src/tdef.c new file mode 100644 index 0000000..7e79d68 --- /dev/null +++ b/src/tdef.c @@ -0,0 +1,282 @@ +/*! \file tdef.c + * Implementation to define Tnnn timers globally and use for FSM state changes. + */ +/* + * (C) 2018-2019 by sysmocom - s.f.m.c. GmbH + * + * All Rights Reserved + * + * SPDX-License-Identifier: GPL-2.0+ + * + * Author: Neels Hofmeyr + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +#include + +#include +#include + +/*! \addtogroup Tdef + * + * Implementation to define Tnnn timers globally and use for FSM state changes. + * + * See also \ref Tdef_VTY + * + * osmo_tdef provides: + * + * - a list of Tnnnn (GSM) timers with description, unit and default value. + * - vty UI to allow users to configure non-default timeouts. + * - API to tie T timers to osmo_fsm states and set them on state transitions. + * + * - a few standard units (minute, second, millisecond) as well as a custom unit + * (which relies on the timer's human readable description to indicate the + * meaning of the value). + * - conversion for standard units: for example, some GSM timers are defined in + * minutes, while our FSM definitions need timeouts in seconds. Conversion is + * for convenience only and can be easily avoided via the custom unit. + * + * By keeping separate osmo_tdef arrays, several groups of timers can be kept + * separately. The VTY tests in tests/tdef/ showcase different schemes: + * + * - \ref tests/vty/tdef_vty_test_config_root.c: + * Keep several timer definitions in separately named groups: showcase the + * osmo_tdef_vty_groups*() API. Each timer group exists exactly once. + * + * - \ref tests/vty/tdef_vty_test_config_subnode.c: + * Keep a single list of timers without separate grouping. + * Put this list on a specific subnode below the CONFIG_NODE. + * There could be several separate subnodes with timers like this, i.e. + * continuing from this example, sets of timers could be separated by placing + * timers in specific config subnodes instead of using the global group name. + * + * - \ref tests/vty/tdef_vty_test_dynamic.c: + * Dynamically allocate timer definitions per each new created object. + * Thus there can be an arbitrary number of independent timer definitions, one + * per allocated object. + * + * osmo_tdef was introduced because: + * + * - without osmo_tdef, each invocation of osmo_fsm_inst_state_chg() needs to be + * programmed with the right timeout value, for all code paths that invoke this + * state change. It is a likely source of errors to get one of them wrong. By + * defining a T timer exactly for an FSM state, the caller can merely invoke the + * state change and trust on the original state definition to apply the correct + * timeout. + * + * - it is helpful to have a standardized config file UI to provide user + * configurable timeouts, instead of inventing new VTY commands for each + * separate application of T timer numbers. See \ref tdef_vty.h. + * + * @{ + * \file tdef.c + */ + +/*! a = return_val * b. \return 0 if factor is below 1. */ +static unsigned long osmo_tdef_factor(enum osmo_tdef_unit a, enum osmo_tdef_unit b) +{ + if (b == a + || b == OSMO_TDEF_CUSTOM || a == OSMO_TDEF_CUSTOM) + return 1; + + switch (b) { + case OSMO_TDEF_MS: + switch (a) { + case OSMO_TDEF_S: + return 1000; + case OSMO_TDEF_M: + return 60*1000; + default: + return 0; + } + case OSMO_TDEF_S: + switch (a) { + case OSMO_TDEF_M: + return 60; + default: + return 0; + } + default: + return 0; + } +} + +/*! \return val in unit to_unit, rounded up to the next integer value and clamped to ULONG_MAX, or 0 if val == 0. */ +static unsigned long osmo_tdef_round(unsigned long val, enum osmo_tdef_unit from_unit, enum osmo_tdef_unit to_unit) +{ + unsigned long f; + if (!val) + return 0; + + f = osmo_tdef_factor(from_unit, to_unit); + if (f == 1) + return val; + if (f < 1) { + f = osmo_tdef_factor(to_unit, from_unit); + return (val / f) + (val % f? 1 : 0); + } + /* range checking */ + if (f > (ULONG_MAX / val)) + return ULONG_MAX; + return val * f; +} + +/*! Set all osmo_tdef values to the default_val. + * It is convenient to define a tdefs array by setting only the default_val, and calling osmo_tdefs_reset() once for + * program startup. (See also osmo_tdef_vty_init()) + * \param[in] tdefs Array of timer definitions, last entry being fully zero. + */ +void osmo_tdefs_reset(struct osmo_tdef *tdefs) +{ + struct osmo_tdef *t; + osmo_tdef_for_each(t, tdefs) + t->val = t->default_val; +} + +/*! Return the value of a T timer from a list of osmo_tdef, in the given unit. + * If no such timer is defined, return the default value passed, or abort the program if default < 0. + * + * Round up any value match as_unit: 1100 ms as OSMO_TDEF_S becomes 2 seconds, as OSMO_TDEF_M becomes one minute. + * However, always return a value of zero as zero (0 ms as OSMO_TDEF_M still is 0 m). + * + * Range: even though the value range is unsigned long here, in practice, using ULONG_MAX as value for a timeout in + * seconds may actually wrap to negative or low timeout values (e.g. in struct timeval). It is recommended to stay below + * INT_MAX seconds. See also osmo_fsm_inst_state_chg(). + * + * Usage example: + * + * struct osmo_tdef global_T_defs[] = { + * { .T=7, .default_val=50, .desc="Water Boiling Timeout" }, // default is .unit=OSMO_TDEF_S == 0 + * { .T=8, .default_val=300, .desc="Tea brewing" }, + * { .T=9, .default_val=5, .unit=OSMO_TDEF_M, .desc="Let tea cool down before drinking" }, + * { .T=10, .default_val=20, .unit=OSMO_TDEF_M, .desc="Forgot to drink tea while it's warm" }, + * {} // <-- important! last entry shall be zero + * }; + * osmo_tdefs_reset(global_T_defs); // make all values the default + * osmo_tdef_vty_init(global_T_defs, CONFIG_NODE); + * + * val = osmo_tdef_get(global_T_defs, 7, OSMO_TDEF_S, -1); // -> 50 + * sleep(val); + * + * val = osmo_tdef_get(global_T_defs, 7, OSMO_TDEF_M, -1); // 50 seconds becomes 1 minute -> 1 + * sleep_minutes(val); + * + * val = osmo_tdef_get(global_T_defs, 99, OSMO_TDEF_S, 3); // not defined, returns 3 + * + * val = osmo_tdef_get(global_T_defs, 99, OSMO_TDEF_S, -1); // not defined, program aborts! + * + * \param[in] tdefs Array of timer definitions, last entry must be fully zero initialized. + * \param[in] T Timer number to get the value for. + * \param[in] as_unit Return timeout value in this unit. + * \param[in] val_if_not_present Fallback value to return if no timeout is defined. + * \return Timeout value in the unit given by as_unit, rounded up if necessary, or val_if_not_present. + */ +unsigned long osmo_tdef_get(const struct osmo_tdef *tdefs, int T, enum osmo_tdef_unit as_unit, unsigned long val_if_not_present) +{ + const struct osmo_tdef *t = osmo_tdef_get_entry((struct osmo_tdef*)tdefs, T); + if (!t) { + OSMO_ASSERT(val_if_not_present >= 0); + return val_if_not_present; + } + return osmo_tdef_round(t->val, t->unit, as_unit); +} + +/*! Find tdef entry matching T. + * This is useful for manipulation, which is usually limited to the VTY configuration. To retrieve a timeout value, + * most callers probably should use osmo_tdef_get() instead. + * \param[in] tdefs Array of timer definitions, last entry being fully zero. + * \param[in] T Timer number to get the entry for. + * \return osmo_tdef entry matching T in given array, or NULL if no match is found. + */ +struct osmo_tdef *osmo_tdef_get_entry(struct osmo_tdef *tdefs, int T) +{ + struct osmo_tdef *t; + osmo_tdef_for_each(t, tdefs) { + if (t->T == T) + return t; + } + return NULL; +} + +/*! Using osmo_tdef for osmo_fsm_inst: find a given state's osmo_tdef_state_timeout entry. + * + * The timeouts_array shall contain exactly 32 elements, regardless whether only some of them are actually populated + * with nonzero values. 32 corresponds to the number of states allowed by the osmo_fsm_* API. Lookup is by array index. + * Not populated entries imply a state change invocation without timeout. + * + * For example: + * + * struct osmo_tdef_state_timeout my_fsm_timeouts[32] = { + * [MY_FSM_STATE_3] = { .T = 423 }, // look up timeout configured for T423 + * [MY_FSM_STATE_7] = { .T = 235 }, + * [MY_FSM_STATE_8] = { .keep_timer = true }, // keep previous state's T number, continue timeout. + * // any state that is omitted will remain zero == no timeout + * }; + * osmo_tdef_get_state_timeout(MY_FSM_STATE_0, &my_fsm_timeouts) -> NULL, + * osmo_tdef_get_state_timeout(MY_FSM_STATE_7, &my_fsm_timeouts) -> { .T = 235 } + * + * The intention is then to obtain the timer like osmo_tdef_get(global_T_defs, T=235); see also + * fsm_inst_state_chg_T() below. + * + * \param[in] state State constant to look up. + * \param[in] timeouts_array Array[32] of struct osmo_tdef_state_timeout defining which timer number to use per state. + * \return A struct osmo_tdef_state_timeout entry, or NULL if that entry is zero initialized. + */ +const struct osmo_tdef_state_timeout *osmo_tdef_get_state_timeout(uint32_t state, const struct osmo_tdef_state_timeout *timeouts_array) +{ + const struct osmo_tdef_state_timeout *t; + OSMO_ASSERT(state < 32); + t = &timeouts_array[state]; + if (!t->keep_timer && !t->T) + return NULL; + return t; +} + +/*! See invocation macro osmo_tdef_fsm_inst_state_chg() instead. + * \param[in] file Source file name, like __FILE__. + * \param[in] line Source file line number, like __LINE__. + */ +int _osmo_tdef_fsm_inst_state_chg(struct osmo_fsm_inst *fi, uint32_t state, + const struct osmo_tdef_state_timeout *timeouts_array, + const struct osmo_tdef *tdefs, unsigned long default_timeout, + const char *file, int line) +{ + const struct osmo_tdef_state_timeout *t = osmo_tdef_get_state_timeout(state, timeouts_array); + unsigned long val; + + /* No timeout defined for this state? */ + if (!t) + return _osmo_fsm_inst_state_chg(fi, state, 0, 0, file, line); + + if (t->keep_timer) { + int rc = _osmo_fsm_inst_state_chg_keep_timer(fi, state, file, line); + if (t->T && !rc) + fi->T = t->T; + return rc; + } + + val = osmo_tdef_get(tdefs, t->T, OSMO_TDEF_S, default_timeout); + return _osmo_fsm_inst_state_chg(fi, state, val, t->T, file, line); +} + +const struct value_string osmo_tdef_unit_names[] = { + { OSMO_TDEF_S, "s" }, + { OSMO_TDEF_MS, "ms" }, + { OSMO_TDEF_M, "m" }, + { OSMO_TDEF_CUSTOM, "custom-unit" }, + {} +}; + +/*! @} */ diff --git a/src/vty/Makefile.am b/src/vty/Makefile.am index 2e49498..cdde0fa 100644 --- a/src/vty/Makefile.am +++ b/src/vty/Makefile.am @@ -11,7 +11,8 @@ libosmovty_la_SOURCES = buffer.c command.c vty.c vector.c utils.c \ telnet_interface.c logging_vty.c stats_vty.c \ - fsm_vty.c talloc_ctx_vty.c + fsm_vty.c talloc_ctx_vty.c \ + tdef_vty.c libosmovty_la_LDFLAGS = -version-info $(LIBVERSION) -no-undefined libosmovty_la_LIBADD = $(top_builddir)/src/libosmocore.la $(TALLOC_LIBS) endif diff --git a/src/vty/tdef_vty.c b/src/vty/tdef_vty.c new file mode 100644 index 0000000..1c6af70 --- /dev/null +++ b/src/vty/tdef_vty.c @@ -0,0 +1,372 @@ +/*! \file tdef_vty.c + * Implementation to configure osmo_tdef Tnnn timers from VTY configuration. + */ +/* (C) 2018-2019 by sysmocom - s.f.m.c. GmbH + * + * Author: Neels Hofmeyr + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include +#include + +#include +#include +#include +#include + +/*! \addtogroup Tdef_VTY + * + * VTY API for \ref Tdef. + * + * @{ + * \file tdef_vty.c + */ + +/*! Parse an argument like "T1234", "t1234" or "1234", as from OSMO_TDEF_VTY_ARG_T. + * \param[in] vty VTY context for vty_out() of error messages. + * \param[in] tdefs Array of timer definitions to look up T timer. + * \param[in] T_str Argument string. It is not validated, expected to be checked by VTY input. + * \return the corresponding osmo_tdef entry from the tdefs array, or NULL if no such entry exists. + */ +struct osmo_tdef *osmo_tdef_vty_parse_T_arg(struct vty *vty, struct osmo_tdef *tdefs, const char *T_str) +{ + long l; + int T; + struct osmo_tdef *t; + char *endptr; + const char *T_nr_str; + + if (!tdefs) { + vty_out(vty, "%% Error: no timers found%s", VTY_NEWLINE); + return NULL; + } + + T_nr_str = T_str; + if (T_nr_str[0] == 't' || T_nr_str[0] == 'T') + T_nr_str++; + + errno = 0; + l = strtol(T_nr_str, &endptr, 10); + if (errno || *endptr || l > INT_MAX) { + vty_out(vty, "%% No such timer: '%s'%s", T_str, VTY_NEWLINE); + return NULL; + } + T = l; + + t = osmo_tdef_get_entry(tdefs, T); + if (!t) + vty_out(vty, "%% No such timer: T%d%s", T, VTY_NEWLINE); + return t; +} + +/*! Parse an argument of the form "(0-2147483647|default)", as from OSMO_TDEF_VTY_ARG_VAL. + * \param[in] val_arg Argument string (not format checked). + * \param[in] default_val Value to return in case of val_arg being "default". + * \return Parsed value or default_val. + */ +unsigned long osmo_tdef_vty_parse_val_arg(const char *val_arg, unsigned long default_val) +{ + if (!strcmp(val_arg, "default")) + return default_val; + return atoll(val_arg); +} + +/*! Apply a timer configuration from VTY argument strings. + * Employ both osmo_tdef_vty_parse_T_arg() and osmo_tdef_vty_parse_val_arg() to configure a T timer in an array of + * tdefs. Evaluate two arguments, a "T1234" argument and a "(0-2147483647|default)" argument, as from + * OSMO_TDEF_VTY_ARGS. If the T timer given in the first argument is found in tdefs, set it to the value given in the + * second argument. + * \param[in] vty VTY context for vty_out() of error messages. + * \param[in] tdefs Array of timer definitions to look up T timer. + * \param[in] args Array of string arguments like { "T1234", "23" }. + * \return CMD_SUCCESS, or CMD_WARNING if no such timer is found in tdefs. + */ +int osmo_tdef_vty_set_cmd(struct vty *vty, struct osmo_tdef *tdefs, const char **args) +{ + const char *T_arg = args[0]; + const char *val_arg = args[1]; + struct osmo_tdef *t = osmo_tdef_vty_parse_T_arg(vty, tdefs, T_arg); + if (!t) + return CMD_WARNING; + t->val = osmo_tdef_vty_parse_val_arg(val_arg, t->default_val); + return CMD_SUCCESS; +} + +/*! Output one or all timers to the VTY, as for a VTY command like 'show timer [TNNNN]'. + * If T_arg is NULL, print all timers in tdefs to the VTY. + * If T_arg is not NULL, employ osmo_tdef_vty_parse_T_arg() to select one timer from tdefs and print only that to the + * VTY. + * \param[in] vty VTY context for vty_out() of error messages. + * \param[in] tdefs Array of timer definitions. + * \param[in] T_arg Argument string like "T1234", or NULL. + * \param[in] prefix_fmt Arbitrary string to start each line with, with variable printf like arguments. + * \return CMD_SUCCESS, or CMD_WARNING if no such timer is found in tdefs. + */ +int osmo_tdef_vty_show_cmd(struct vty *vty, struct osmo_tdef *tdefs, const char *T_arg, + const char *prefix_fmt, ...) +{ + va_list va; + if (T_arg) { + struct osmo_tdef *t = osmo_tdef_vty_parse_T_arg(vty, tdefs, T_arg); + if (!t) + return CMD_WARNING; + va_start(va, prefix_fmt); + osmo_tdef_vty_out_one_va(vty, t, prefix_fmt, va); + va_end(va); + } else { + va_start(va, prefix_fmt); + osmo_tdef_vty_out_all_va(vty, tdefs, prefix_fmt, va); + va_end(va); + } + return CMD_SUCCESS; +} + +/*! Write to VTY the current status of one timer. + * \param[in] vty VTY context for vty_out(). + * \param[in] t The timer to print. + * \param[in] prefix_fmt Arbitrary string to start each line with, with variable vprintf like arguments. + * \param[in] va va_list instance. As always, call va_start() before, and va_end() after this call. + */ +void osmo_tdef_vty_out_one_va(struct vty *vty, struct osmo_tdef *t, const char *prefix_fmt, va_list va) +{ + if (!t) { + vty_out(vty, "%% Error: no such timer%s", VTY_NEWLINE); + return; + } + if (prefix_fmt) + vty_out_va(vty, prefix_fmt, va); + vty_out(vty, "T%d = %lu%s%s\t%s (default: %lu%s%s)%s", + t->T, t->val, + t->unit == OSMO_TDEF_CUSTOM ? "" : " ", t->unit == OSMO_TDEF_CUSTOM ? "" : osmo_tdef_unit_name(t->unit), + t->desc, t->default_val, + t->unit == OSMO_TDEF_CUSTOM ? "" : " ", t->unit == OSMO_TDEF_CUSTOM ? "" : osmo_tdef_unit_name(t->unit), + VTY_NEWLINE); +} + +/*! Write to VTY the current status of one timer. + * \param[in] vty VTY context for vty_out(). + * \param[in] t The timer to print. + * \param[in] prefix_fmt Arbitrary string to start each line with, with variable printf like arguments. + */ +void osmo_tdef_vty_out_one(struct vty *vty, struct osmo_tdef *t, const char *prefix_fmt, ...) +{ + va_list va; + va_start(va, prefix_fmt); + osmo_tdef_vty_out_one_va(vty, t, prefix_fmt, va); + va_end(va); +} + +/*! Write to VTY the current status of all given timers. + * \param[in] vty VTY context for vty_out(). + * \param[in] tdefs Array of timers to print, ended with a fully zero-initialized entry. + * \param[in] prefix_fmt Arbitrary string to start each line with, with variable vprintf like arguments. + * \param[in] va va_list instance. As always, call va_start() before, and va_end() after this call. + */ +void osmo_tdef_vty_out_all_va(struct vty *vty, struct osmo_tdef *tdefs, const char *prefix_fmt, va_list va) +{ + struct osmo_tdef *t; + if (!tdefs) { + vty_out(vty, "%% Error: no such timers%s", VTY_NEWLINE); + return; + } + osmo_tdef_for_each(t, tdefs) { + va_list va2; + va_copy(va2, va); + osmo_tdef_vty_out_one_va(vty, t, prefix_fmt, va); + va_end(va2); + } +} + +/*! Write to VTY the current status of all given timers. + * \param[in] vty VTY context for vty_out(). + * \param[in] tdefs Array of timers to print, ended with a fully zero-initialized entry. + * \param[in] prefix_fmt Arbitrary string to start each line with, with variable printf like arguments. + */ +void osmo_tdef_vty_out_all(struct vty *vty, struct osmo_tdef *tdefs, const char *prefix_fmt, ...) +{ + va_list va; + va_start(va, prefix_fmt); + osmo_tdef_vty_out_all_va(vty, tdefs, prefix_fmt, va); + va_end(va); +} + +/*! Write current timer configuration arguments to the vty. Skip all entries that reflect their default value. + * The passed prefix string must contain both necessary indent and the VTY command the specific implementation is using. + * See tdef_vty_test_config_subnode.c and tdef_vty_test_dynamic.c for examples. + * \param[in] vty VTY context. + * \param[in] tdefs Array of timers to print, ended with a fully zero-initialized entry. + * \param[in] prefix_fmt Arbitrary string to start each line with, with variable printf like arguments. + */ +void osmo_tdef_vty_write(struct vty *vty, struct osmo_tdef *tdefs, const char *prefix_fmt, ...) +{ + va_list va; + struct osmo_tdef *t; + osmo_tdef_for_each(t, tdefs) { + if (t->val == t->default_val) + continue; + if (prefix_fmt && *prefix_fmt) { + va_start(va, prefix_fmt); + vty_out_va(vty, prefix_fmt, va); + va_end(va); + } + vty_out(vty, "T%d %lu%s", t->T, t->val, VTY_NEWLINE); + } +} + +/*! Singleton Tnnn groups definition as set by osmo_tdef_vty_groups_init(). */ +static struct osmo_tdef_group *global_tdef_groups; + +/*! \return true iff the first characters of str fully match startswith_str or both are empty. */ +static bool startswith(const char *str, const char *startswith_str) +{ + if (!startswith_str) + return true; + if (!str) + return false; + return strncmp(str, startswith_str, strlen(startswith_str)) == 0; +} + +DEFUN(show_timer, show_timer_cmd, "DYNAMIC", "DYNAMIC") + /* show timer [(alpha|beta|gamma)] [TNNNN] */ +{ + const char *group_arg = argc > 0 ? argv[0] : NULL; + const char *T_arg = argc > 1 ? argv[1] : NULL; + struct osmo_tdef_group *g; + + /* The argument should be either "tea" or "software", but the VTY also allows partial arguments + * like "softw" or "t" (which can also be ambiguous). */ + + osmo_tdef_groups_for_each(g, global_tdef_groups) { + if (!group_arg || startswith(g->name, group_arg)) + osmo_tdef_vty_show_cmd(vty, g->tdefs, T_arg, "%s: ", g->name); + } + return CMD_SUCCESS; +} + +DEFUN(cfg_timer, cfg_timer_cmd, "DYNAMIC", "DYNAMIC") + /* show timer [(alpha|beta|gamma)] [TNNNN] [(<0-2147483647>|default)] */ +{ + const char *group_arg; + const char **timer_args; + struct osmo_tdef *tdefs = NULL; + struct osmo_tdef_group *g = NULL; + + /* If any arguments are missing, redirect to 'show' */ + if (argc < 3) + return show_timer(self, vty, argc, argv); + + /* If all arguments are passed, this is configuring a timer. */ + group_arg = argc > 0 ? argv[0] : NULL; + timer_args = argv + 1; + osmo_tdef_groups_for_each(g, global_tdef_groups) { + if (strcmp(g->name, group_arg)) + continue; + if (tdefs) { + vty_out(vty, "%% Error: ambiguous timer group match%s", VTY_NEWLINE); + return CMD_WARNING; + } + tdefs = g->tdefs; + } + + return osmo_tdef_vty_set_cmd(vty, tdefs, timer_args); +} + +static char *add_group_args(void *talloc_ctx, char *dest) +{ + struct osmo_tdef_group *g; + osmo_talloc_asprintf(talloc_ctx, dest, "[("); + osmo_tdef_groups_for_each(g, global_tdef_groups) { + osmo_talloc_asprintf(talloc_ctx, dest, "%s%s", + (g == global_tdef_groups) ? "" : "|", + g->name); + } + osmo_talloc_asprintf(talloc_ctx, dest, ")]"); + return dest; +} + +static char *add_group_docs(void *talloc_ctx, char *dest) +{ + struct osmo_tdef_group *g; + osmo_tdef_groups_for_each(g, global_tdef_groups) { + osmo_talloc_asprintf(talloc_ctx, dest, "%s\n", g->desc); + } + return dest; +} + +static char *timer_command_string(const char *prefix, const char *suffix) +{ + char *dest = NULL; + osmo_talloc_asprintf(tall_vty_cmd_ctx, dest, "%s ", prefix); + dest = add_group_args(tall_vty_cmd_ctx, dest); + osmo_talloc_asprintf(tall_vty_cmd_ctx, dest, " %s", suffix); + return dest; +} + +static char *timer_doc_string(const char *prefix, const char *suffix) +{ + char *dest = NULL; + osmo_talloc_asprintf(tall_vty_cmd_ctx, dest, "%s ", prefix); + dest = add_group_docs(tall_vty_cmd_ctx, dest); + osmo_talloc_asprintf(tall_vty_cmd_ctx, dest, " %s", suffix); + return dest; +} + +/*! Convenience implementation for keeping a fixed set of timer groups in a program. + * Install a 'timer [(group|names|...)] [TNNN] [(|default)]' command under the given parent_node, + * and install a 'show timer...' command on VIEW_NODE and ENABLE_NODE. + * For a usage example, see \ref tdef_test_config_root.c. + * The given timer definitions group is stored in a global pointer, so this can be done only once per main() scope. + * It would also be possible to have distinct timer groups on separate VTY subnodes, with a "manual" implementation, but + * not with this API. + * \param[in] parent_node VTY node id at which to add the timer group commands, e.g. CONFIG_NODE. + * \param[in] groups Global timer groups definition. + */ +void osmo_tdef_vty_groups_init(enum node_type parent_node, struct osmo_tdef_group *groups) +{ + struct osmo_tdef_group *g; + OSMO_ASSERT(!global_tdef_groups); + global_tdef_groups = groups; + + osmo_tdef_groups_for_each(g, global_tdef_groups) + osmo_tdefs_reset(g->tdefs); + + show_timer_cmd.string = timer_command_string("show timer", OSMO_TDEF_VTY_ARG_T_OPTIONAL); + show_timer_cmd.doc = timer_doc_string(SHOW_STR "Show timers\n", OSMO_TDEF_VTY_DOC_T); + + cfg_timer_cmd.string = timer_command_string("timer", OSMO_TDEF_VTY_ARG_SET_OPTIONAL); + cfg_timer_cmd.doc = timer_doc_string("Configure or show timers\n", OSMO_TDEF_VTY_DOC_SET); + + install_element_ve(&show_timer_cmd); + install_element(parent_node, &cfg_timer_cmd); +} + +/*! Write the global osmo_tdef_group configuration to VTY, as previously passed to osmo_tdef_vty_groups_init(). + * \param[in] vty VTY context. + * \param[in] indent String to print before each line. + */ +void osmo_tdef_vty_groups_write(struct vty *vty, const char *indent) +{ + struct osmo_tdef_group *g; + osmo_tdef_groups_for_each(g, global_tdef_groups) + osmo_tdef_vty_write(vty, g->tdefs, "%stimer %s ", indent ? : "", g->name); +} + +/*! @} */ diff --git a/tests/Makefile.am b/tests/Makefile.am index 91f042e..54fb11f 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -27,6 +27,9 @@ oap/oap_client_test gsm29205/gsm29205_test \ logging/logging_vty_test \ vty/vty_transcript_test \ + tdef/tdef_test tdef/tdef_vty_test_config_root \ + tdef/tdef_vty_test_config_subnode \ + tdef/tdef_vty_test_dynamic \ $(NULL) if ENABLE_MSGFILE @@ -221,6 +224,18 @@ gsm23003_gsm23003_test_SOURCES = gsm23003/gsm23003_test.c gsm23003_gsm23003_test_LDADD = $(LDADD) $(top_builddir)/src/gsm/libosmogsm.la +tdef_tdef_test_SOURCES = tdef/tdef_test.c +tdef_tdef_test_LDADD = $(LDADD) + +tdef_tdef_vty_test_config_root_SOURCES = tdef/tdef_vty_test_config_root.c +tdef_tdef_vty_test_config_root_LDADD = $(LDADD) $(top_builddir)/src/vty/libosmovty.la + +tdef_tdef_vty_test_config_subnode_SOURCES = tdef/tdef_vty_test_config_subnode.c +tdef_tdef_vty_test_config_subnode_LDADD = $(LDADD) $(top_builddir)/src/vty/libosmovty.la + +tdef_tdef_vty_test_dynamic_SOURCES = tdef/tdef_vty_test_dynamic.c +tdef_tdef_vty_test_dynamic_LDADD = $(LDADD) $(top_builddir)/src/vty/libosmovty.la + # The `:;' works around a Bash 3.2 bug when the output is not writeable. $(srcdir)/package.m4: $(top_srcdir)/configure.ac :;{ \ @@ -284,6 +299,10 @@ timer/clk_override_test.ok \ oap/oap_client_test.ok oap/oap_client_test.err \ vty/vty_transcript_test.vty \ + tdef/tdef_test.ok \ + tdef/tdef_vty_test_config_root.vty \ + tdef/tdef_vty_test_config_subnode.vty \ + tdef/tdef_vty_test_dynamic.vty \ $(NULL) DISTCLEANFILES = atconfig atlocal conv/gsm0503_test_vectors.c @@ -328,6 +347,7 @@ # To update the VTY script from current application behavior, # pass -u to osmo_verify_transcript_vty.py by doing: # make vty-test U=-u + vty-test-logging: osmo_verify_transcript_vty.py -v \ -p 42042 \ @@ -340,9 +360,25 @@ -r "$(top_builddir)/tests/vty/vty_transcript_test" \ $(U) $(srcdir)/vty/*.vty +vty-test-tdef: + osmo_verify_transcript_vty.py -v \ + -p 42042 \ + -r "$(top_builddir)/tests/tdef/tdef_vty_test_config_root" \ + $(U) $(srcdir)/tdef/tdef_vty_test_config_root.vty + osmo_verify_transcript_vty.py -v \ + -p 42042 \ + -r "$(top_builddir)/tests/tdef/tdef_vty_test_config_subnode" \ + $(U) $(srcdir)/tdef/tdef_vty_test_config_subnode.vty + osmo_verify_transcript_vty.py -v \ + -p 42042 \ + -r "$(top_builddir)/tests/tdef/tdef_vty_test_dynamic" \ + $(U) $(srcdir)/tdef/tdef_vty_test_dynamic.vty + +# don't run vty tests concurrently so that the ports don't conflict vty-test: $(MAKE) vty-test-logging $(MAKE) vty-test-vty + $(MAKE) vty-test-tdef ctrl-test: echo "No CTRL tests exist currently" diff --git a/tests/tdef/tdef_test.c b/tests/tdef/tdef_test.c new file mode 100644 index 0000000..682c7ac --- /dev/null +++ b/tests/tdef/tdef_test.c @@ -0,0 +1,445 @@ +/* Test implementation for osmo_tdef API. */ +/* + * (C) 2019 by sysmocom s.f.m.c. GmbH + * + * All Rights Reserved + * + * SPDX-License-Identifier: GPL-2.0+ + * + * Author: Neels Hofmeyr + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include +#include +#include + +#include +#include +#include + +#include + +static void *ctx = NULL; + +static struct osmo_tdef tdefs[] = { + { .T=1, .default_val=100, .desc="100s" }, + { .T=2, .default_val=100, .unit=OSMO_TDEF_MS, .desc="100ms" }, + { .T=3, .default_val=100, .unit=OSMO_TDEF_M, .desc="100m" }, + { .T=4, .default_val=100, .unit=OSMO_TDEF_CUSTOM, .desc="100 potatoes" }, + + { .T=7, .default_val=50, .desc="Water Boiling Timeout" }, // default is .unit=OSMO_TDEF_S == 0 + { .T=8, .default_val=300, .desc="Tea brewing" }, + { .T=9, .default_val=5, .unit=OSMO_TDEF_M, .desc="Let tea cool down before drinking" }, + { .T=10, .default_val=20, .unit=OSMO_TDEF_M, .desc="Forgot to drink tea while it's warm" }, + + /* test conversions */ + { .T=1000, .default_val=2*1000, .unit=OSMO_TDEF_MS, .desc="two seconds from ms" }, + { .T=1001, .default_val=60*1000, .unit=OSMO_TDEF_MS, .desc="one minute from ms" }, + { .T=1002, .default_val=(ULONG_MAX/60), .unit=OSMO_TDEF_M, .desc="almost too many seconds" }, + { .T=1003, .default_val=ULONG_MAX, .unit=OSMO_TDEF_M, .desc="too many seconds" }, + { .T=1004, .default_val=1, .unit=OSMO_TDEF_MS, .desc="one ms" }, + { .T=1005, .default_val=0, .unit=OSMO_TDEF_MS, .desc="zero ms" }, + { .T=1006, .default_val=0, .unit=OSMO_TDEF_S, .desc="zero s" }, + { .T=1007, .default_val=0, .unit=OSMO_TDEF_M, .desc="zero m" }, + { .T=1008, .default_val=0, .unit=OSMO_TDEF_CUSTOM, .desc="zero" }, + + /* test range */ + { .T=INT_MAX, .default_val=ULONG_MAX, .unit=OSMO_TDEF_S, .desc="very large" }, + { .T=INT_MAX-1, .default_val=ULONG_MAX-1, .unit=OSMO_TDEF_S, .desc="very large" }, + { .T=INT_MAX-2, .default_val=LONG_MAX, .unit=OSMO_TDEF_S, .desc="very large" }, + { .T=INT_MAX-3, .default_val=ULONG_MAX, .unit=OSMO_TDEF_M, .desc="very large in minutes" }, + { .T=INT_MIN, .default_val=ULONG_MAX, .unit=OSMO_TDEF_S, .desc="negative" }, + + { .T=0, .default_val=1, .unit=OSMO_TDEF_CUSTOM, .desc="zero" }, + + /* no desc */ + { .T=123, .default_val=1 }, + + {} // <-- important! last entry shall be zero +}; + +#define print_tdef_get(T, AS_UNIT) do { \ + unsigned long val = osmo_tdef_get(tdefs, T, AS_UNIT, 999); \ + printf("osmo_tdef_get(tdefs, %d, %s, 999)\t= %lu\n", T, osmo_tdef_unit_name(AS_UNIT), val); \ + } while (0) + +#define print_tdef_get_short(T, AS_UNIT) do { \ + unsigned long val = osmo_tdef_get(tdefs, T, AS_UNIT, 999); \ + printf("osmo_tdef_get(%d, %s)\t= %lu\n", T, osmo_tdef_unit_name(AS_UNIT), val); \ + } while (0) + +void print_tdef_info(unsigned int T) +{ + const struct osmo_tdef *t = osmo_tdef_get_entry(tdefs, T); + if (!t) { + printf("T%d=NULL", T); + return; + } + printf("T%d=%lu%s", T, t->val, osmo_tdef_unit_name(t->unit)); + if (t->val != t->default_val) + printf("(def=%lu)", t->default_val); + printf("\n"); +} + +static void test_tdef_get() +{ + int i; + enum osmo_tdef_unit as_unit; + + printf("\n%s()\n", __func__); + + osmo_tdefs_reset(tdefs); // make all values the default + + for (i = 0; i < ARRAY_SIZE(tdefs)-1; i++) { + unsigned int T = tdefs[i].T; + print_tdef_info(T); + for (as_unit = OSMO_TDEF_S; as_unit <= OSMO_TDEF_CUSTOM; as_unit++) { + print_tdef_get_short(T, as_unit); + } + } +} + +static void test_tdef_get_nonexisting() +{ + printf("\n%s()\n", __func__); + + print_tdef_get(5, OSMO_TDEF_S); + print_tdef_get(5, OSMO_TDEF_MS); + print_tdef_get(5, OSMO_TDEF_M); + print_tdef_get(5, OSMO_TDEF_CUSTOM); +} + +static void test_tdef_set_and_get() +{ + struct osmo_tdef *t; + printf("\n%s()\n", __func__); + + t = osmo_tdef_get_entry(tdefs, 7); + printf("setting 7 = 42\n"); + t->val = 42; + print_tdef_info(7); + print_tdef_get_short(7, OSMO_TDEF_MS); + print_tdef_get_short(7, OSMO_TDEF_S); + print_tdef_get_short(7, OSMO_TDEF_M); + print_tdef_get_short(7, OSMO_TDEF_CUSTOM); + + printf("setting 7 = 420\n"); + t->val = 420; + print_tdef_info(7); + print_tdef_get_short(7, OSMO_TDEF_MS); + print_tdef_get_short(7, OSMO_TDEF_S); + print_tdef_get_short(7, OSMO_TDEF_M); + print_tdef_get_short(7, OSMO_TDEF_CUSTOM); + + printf("resetting\n"); + osmo_tdefs_reset(tdefs); + print_tdef_info(7); + print_tdef_get_short(7, OSMO_TDEF_S); +} + +enum test_tdef_fsm_states { + S_A = 0, + S_B, + S_C, + S_D, + S_G, + S_H, + S_I, + S_J, + S_K, + S_L, + S_M, + S_N, + S_O, + S_X, + S_Y, + S_Z, +}; + +static const struct osmo_tdef_state_timeout test_tdef_state_timeouts[32] = { + [S_A] = { .T = 1 }, + [S_B] = { .T = 2 }, + [S_C] = { .T = 3 }, + [S_D] = { .T = 4 }, + + [S_G] = { .T = 7 }, + [S_H] = { .T = 8 }, + [S_I] = { .T = 9 }, + [S_J] = { .T = 10 }, + + /* keep_timer: adopt whichever T was running before and continue the timeout. */ + [S_K] = { .keep_timer = true }, + /* S_F defines an undefined T, but should continue previous state's timeout. */ + [S_L] = { .T = 123, .keep_timer = true }, + + /* range */ + [S_M] = { .T = INT_MAX }, + [S_N] = { .T = INT_MIN }, + + /* T0 is not addressable from osmo_tdef_state_timeout, since it is indistinguishable from an unset entry. Even + * though a timeout value is set for T=0, the transition to state S_O will show "no timer configured". */ + [S_O] = { .T = 0 }, + + /* S_X undefined on purpose */ + /* S_Y defines a T that does not exist */ + [S_Y] = { .T = 666 }, + /* S_Z undefined on purpose */ +}; + +#define S(x) (1 << (x)) + +static const struct osmo_fsm_state test_tdef_fsm_states[] = { +#define DEF_STATE(NAME) \ + [S_##NAME] = { \ + .name = #NAME, \ + .out_state_mask = 0 \ + | S(S_A) \ + | S(S_B) \ + | S(S_C) \ + | S(S_D) \ + | S(S_G) \ + | S(S_H) \ + | S(S_I) \ + | S(S_J) \ + | S(S_K) \ + | S(S_L) \ + | S(S_M) \ + | S(S_N) \ + | S(S_O) \ + | S(S_X) \ + | S(S_Y) \ + | S(S_Z) \ + , \ + } + + DEF_STATE(A), + DEF_STATE(B), + DEF_STATE(C), + DEF_STATE(D), + + DEF_STATE(G), + DEF_STATE(H), + DEF_STATE(I), + DEF_STATE(J), + + DEF_STATE(K), + DEF_STATE(L), + + DEF_STATE(M), + DEF_STATE(N), + DEF_STATE(O), + + DEF_STATE(X), + DEF_STATE(Y), + /* Z: test not being allowed to transition to other states. */ + [S_Z] = { + .name = "Z", + .out_state_mask = 0 + | S(S_A) + , + }, +}; + +static const struct value_string test_tdef_fsm_event_names[] = { {} }; + +static struct osmo_fsm test_tdef_fsm = { + .name = "tdef_test", + .states = test_tdef_fsm_states, + .event_names = test_tdef_fsm_event_names, + .num_states = ARRAY_SIZE(test_tdef_fsm_states), + .log_subsys = DLGLOBAL, +}; + +const struct timeval fake_time_start_time = { 123, 456 }; + +#define fake_time_passes(secs, usecs) do \ +{ \ + struct timeval diff; \ + osmo_gettimeofday_override_add(secs, usecs); \ + osmo_clock_override_add(CLOCK_MONOTONIC, secs, usecs * 1000); \ + timersub(&osmo_gettimeofday_override_time, &fake_time_start_time, &diff); \ + printf("Total time passed: %ld.%06ld s\n", diff.tv_sec, diff.tv_usec); \ + osmo_timers_prepare(); \ + osmo_timers_update(); \ +} while (0) + +void fake_time_start() +{ + struct timespec *clock_override; + + osmo_gettimeofday_override_time = fake_time_start_time; + osmo_gettimeofday_override = true; + clock_override = osmo_clock_override_gettimespec(CLOCK_MONOTONIC); + OSMO_ASSERT(clock_override); + clock_override->tv_sec = fake_time_start_time.tv_sec; + clock_override->tv_nsec = fake_time_start_time.tv_usec * 1000; + osmo_clock_override_enable(CLOCK_MONOTONIC, true); + fake_time_passes(0, 0); +} + +static void print_fsm_state(struct osmo_fsm_inst *fi) +{ + struct timeval remaining; + printf("state=%s T=%d", osmo_fsm_inst_state_name(fi), fi->T); + + if (!osmo_timer_pending(&fi->timer)) { + printf(", no timeout\n"); + return; + } + + osmo_timer_remaining(&fi->timer, &osmo_gettimeofday_override_time, &remaining); + printf(", %lu.%06lu s remaining\n", remaining.tv_sec, remaining.tv_usec); +} + + +#define test_tdef_fsm_state_chg(NEXT_STATE) do { \ + const struct osmo_tdef_state_timeout *st = osmo_tdef_get_state_timeout(NEXT_STATE, \ + test_tdef_state_timeouts); \ + if (!st) { \ + printf(" --> %s (no timer configured for this state)\n", \ + osmo_fsm_state_name(&test_tdef_fsm, NEXT_STATE)); \ + } else { \ + struct osmo_tdef *t = osmo_tdef_get_entry(tdefs, st->T); \ + int rc = osmo_tdef_fsm_inst_state_chg(fi, NEXT_STATE, test_tdef_state_timeouts, tdefs, 999); \ + printf(" --> %s (configured as T%d%s %lu %s) rc=%d;\t", osmo_fsm_state_name(&test_tdef_fsm, \ + NEXT_STATE), \ + st->T, st->keep_timer ? "(keep_timer)" : "", \ + t? t->val : -1, t? osmo_tdef_unit_name(t->unit) : "-", \ + rc); \ + print_fsm_state(fi); \ + } \ + } while(0) + + + +static void test_tdef_state_timeout(bool test_range) +{ + struct osmo_fsm_inst *fi; + struct osmo_tdef *m = osmo_tdef_get_entry(tdefs, INT_MAX); + unsigned long m_secs; + printf("\n%s()\n", __func__); + + osmo_tdefs_reset(tdefs); + + fake_time_start(); + + fi = osmo_fsm_inst_alloc(&test_tdef_fsm, ctx, NULL, LOGL_DEBUG, __func__); + OSMO_ASSERT(fi); + print_fsm_state(fi); + + test_tdef_fsm_state_chg(S_A); + test_tdef_fsm_state_chg(S_B); + test_tdef_fsm_state_chg(S_C); + test_tdef_fsm_state_chg(S_D); + + test_tdef_fsm_state_chg(S_G); + test_tdef_fsm_state_chg(S_H); + test_tdef_fsm_state_chg(S_I); + test_tdef_fsm_state_chg(S_J); + + printf("- test keep_timer:\n"); + fake_time_passes(123, 45678); + print_fsm_state(fi); + test_tdef_fsm_state_chg(S_K); + test_tdef_fsm_state_chg(S_A); + fake_time_passes(23, 45678); + print_fsm_state(fi); + test_tdef_fsm_state_chg(S_K); + + test_tdef_fsm_state_chg(S_A); + fake_time_passes(23, 45678); + print_fsm_state(fi); + test_tdef_fsm_state_chg(S_L); + + printf("- test large T:\n"); + test_tdef_fsm_state_chg(S_M); + + printf("- test T<0:\n"); + test_tdef_fsm_state_chg(S_N); + + printf("- test T=0:\n"); + test_tdef_fsm_state_chg(S_O); + + printf("- test no timer:\n"); + test_tdef_fsm_state_chg(S_X); + + printf("- test undefined timer, using default_val arg of osmo_tdef_fsm_inst_state_chg(), here passed as 999:\n"); + test_tdef_fsm_state_chg(S_Y); + + /* the range of unsigned long is architecture dependent. This test can be invoked manually to see whether + * clamping the timeout values works, but the output will be of varying lengths depending on the system's + * unsigned long range, and would cause differences in expected output. */ + if (test_range) { + printf("- test range:\n"); + test_tdef_fsm_state_chg(S_M); + /* sweep through all the bits, shifting in 0xfffff.. from the right. */ + m_secs = 0; + do { + m_secs = (m_secs << 1) + 1; + switch (m_secs) { + case 0x7fff: + printf("--- int32_t max ---\n"); + break; + case 0xffff: + printf("--- uint32_t max ---\n"); + break; + case 0x7fffffff: + printf("--- int64_t max ---\n"); + break; + case 0xffffffff: + printf("--- uint64_t max ---\n"); + break; + default: + break; + } + + m->val = m_secs - 1; + test_tdef_fsm_state_chg(S_M); + m->val = m_secs; + test_tdef_fsm_state_chg(S_M); + m->val = m_secs + 1; + test_tdef_fsm_state_chg(S_M); + } while (m_secs < ULONG_MAX); + } + + printf("- test disallowed transition:\n"); + test_tdef_fsm_state_chg(S_Z); + test_tdef_fsm_state_chg(S_B); + test_tdef_fsm_state_chg(S_C); + test_tdef_fsm_state_chg(S_D); +} + +int main(int argc, char **argv) +{ + ctx = talloc_named_const(NULL, 0, "tdef_test.c"); + osmo_init_logging2(ctx, NULL); + + log_set_print_filename(osmo_stderr_target, 0); + log_set_print_category(osmo_stderr_target, 1); + log_set_use_color(osmo_stderr_target, 0); + + osmo_fsm_register(&test_tdef_fsm); + + test_tdef_get(); + test_tdef_get_nonexisting(); + test_tdef_set_and_get(); + /* Run range test iff any argument is passed on the cmdline. For the rationale, see the comment in + * test_tdef_state_timeout(). */ + test_tdef_state_timeout(argc > 1); + + return EXIT_SUCCESS; +} diff --git a/tests/tdef/tdef_test.ok b/tests/tdef/tdef_test.ok new file mode 100644 index 0000000..cf4b77f --- /dev/null +++ b/tests/tdef/tdef_test.ok @@ -0,0 +1,184 @@ + +test_tdef_get() +T1=100s +osmo_tdef_get(1, s) = 100 +osmo_tdef_get(1, ms) = 100000 +osmo_tdef_get(1, m) = 2 +osmo_tdef_get(1, custom-unit) = 100 +T2=100ms +osmo_tdef_get(2, s) = 1 +osmo_tdef_get(2, ms) = 100 +osmo_tdef_get(2, m) = 1 +osmo_tdef_get(2, custom-unit) = 100 +T3=100m +osmo_tdef_get(3, s) = 6000 +osmo_tdef_get(3, ms) = 6000000 +osmo_tdef_get(3, m) = 100 +osmo_tdef_get(3, custom-unit) = 100 +T4=100custom-unit +osmo_tdef_get(4, s) = 100 +osmo_tdef_get(4, ms) = 100 +osmo_tdef_get(4, m) = 100 +osmo_tdef_get(4, custom-unit) = 100 +T7=50s +osmo_tdef_get(7, s) = 50 +osmo_tdef_get(7, ms) = 50000 +osmo_tdef_get(7, m) = 1 +osmo_tdef_get(7, custom-unit) = 50 +T8=300s +osmo_tdef_get(8, s) = 300 +osmo_tdef_get(8, ms) = 300000 +osmo_tdef_get(8, m) = 5 +osmo_tdef_get(8, custom-unit) = 300 +T9=5m +osmo_tdef_get(9, s) = 300 +osmo_tdef_get(9, ms) = 300000 +osmo_tdef_get(9, m) = 5 +osmo_tdef_get(9, custom-unit) = 5 +T10=20m +osmo_tdef_get(10, s) = 1200 +osmo_tdef_get(10, ms) = 1200000 +osmo_tdef_get(10, m) = 20 +osmo_tdef_get(10, custom-unit) = 20 +T1000=2000ms +osmo_tdef_get(1000, s) = 2 +osmo_tdef_get(1000, ms) = 2000 +osmo_tdef_get(1000, m) = 1 +osmo_tdef_get(1000, custom-unit) = 2000 +T1001=60000ms +osmo_tdef_get(1001, s) = 60 +osmo_tdef_get(1001, ms) = 60000 +osmo_tdef_get(1001, m) = 1 +osmo_tdef_get(1001, custom-unit) = 60000 +T1002=307445734561825860m +osmo_tdef_get(1002, s) = 18446744073709551600 +osmo_tdef_get(1002, ms) = 18446744073709551615 +osmo_tdef_get(1002, m) = 307445734561825860 +osmo_tdef_get(1002, custom-unit) = 307445734561825860 +T1003=18446744073709551615m +osmo_tdef_get(1003, s) = 18446744073709551615 +osmo_tdef_get(1003, ms) = 18446744073709551615 +osmo_tdef_get(1003, m) = 18446744073709551615 +osmo_tdef_get(1003, custom-unit) = 18446744073709551615 +T1004=1ms +osmo_tdef_get(1004, s) = 1 +osmo_tdef_get(1004, ms) = 1 +osmo_tdef_get(1004, m) = 1 +osmo_tdef_get(1004, custom-unit) = 1 +T1005=0ms +osmo_tdef_get(1005, s) = 0 +osmo_tdef_get(1005, ms) = 0 +osmo_tdef_get(1005, m) = 0 +osmo_tdef_get(1005, custom-unit) = 0 +T1006=0s +osmo_tdef_get(1006, s) = 0 +osmo_tdef_get(1006, ms) = 0 +osmo_tdef_get(1006, m) = 0 +osmo_tdef_get(1006, custom-unit) = 0 +T1007=0m +osmo_tdef_get(1007, s) = 0 +osmo_tdef_get(1007, ms) = 0 +osmo_tdef_get(1007, m) = 0 +osmo_tdef_get(1007, custom-unit) = 0 +T1008=0custom-unit +osmo_tdef_get(1008, s) = 0 +osmo_tdef_get(1008, ms) = 0 +osmo_tdef_get(1008, m) = 0 +osmo_tdef_get(1008, custom-unit) = 0 +T2147483647=18446744073709551615s +osmo_tdef_get(2147483647, s) = 18446744073709551615 +osmo_tdef_get(2147483647, ms) = 18446744073709551615 +osmo_tdef_get(2147483647, m) = 307445734561825861 +osmo_tdef_get(2147483647, custom-unit) = 18446744073709551615 +T2147483646=18446744073709551614s +osmo_tdef_get(2147483646, s) = 18446744073709551614 +osmo_tdef_get(2147483646, ms) = 18446744073709551615 +osmo_tdef_get(2147483646, m) = 307445734561825861 +osmo_tdef_get(2147483646, custom-unit) = 18446744073709551614 +T2147483645=9223372036854775807s +osmo_tdef_get(2147483645, s) = 9223372036854775807 +osmo_tdef_get(2147483645, ms) = 18446744073709551615 +osmo_tdef_get(2147483645, m) = 153722867280912931 +osmo_tdef_get(2147483645, custom-unit) = 9223372036854775807 +T2147483644=18446744073709551615m +osmo_tdef_get(2147483644, s) = 18446744073709551615 +osmo_tdef_get(2147483644, ms) = 18446744073709551615 +osmo_tdef_get(2147483644, m) = 18446744073709551615 +osmo_tdef_get(2147483644, custom-unit) = 18446744073709551615 +T-2147483648=18446744073709551615s +osmo_tdef_get(-2147483648, s) = 18446744073709551615 +osmo_tdef_get(-2147483648, ms) = 18446744073709551615 +osmo_tdef_get(-2147483648, m) = 307445734561825861 +osmo_tdef_get(-2147483648, custom-unit) = 18446744073709551615 +T0=1custom-unit +osmo_tdef_get(0, s) = 1 +osmo_tdef_get(0, ms) = 1 +osmo_tdef_get(0, m) = 1 +osmo_tdef_get(0, custom-unit) = 1 +T123=1s +osmo_tdef_get(123, s) = 1 +osmo_tdef_get(123, ms) = 1000 +osmo_tdef_get(123, m) = 1 +osmo_tdef_get(123, custom-unit) = 1 + +test_tdef_get_nonexisting() +osmo_tdef_get(tdefs, 5, s, 999) = 999 +osmo_tdef_get(tdefs, 5, ms, 999) = 999 +osmo_tdef_get(tdefs, 5, m, 999) = 999 +osmo_tdef_get(tdefs, 5, custom-unit, 999) = 999 + +test_tdef_set_and_get() +setting 7 = 42 +T7=42s(def=50) +osmo_tdef_get(7, ms) = 42000 +osmo_tdef_get(7, s) = 42 +osmo_tdef_get(7, m) = 1 +osmo_tdef_get(7, custom-unit) = 42 +setting 7 = 420 +T7=420s(def=50) +osmo_tdef_get(7, ms) = 420000 +osmo_tdef_get(7, s) = 420 +osmo_tdef_get(7, m) = 7 +osmo_tdef_get(7, custom-unit) = 420 +resetting +T7=50s +osmo_tdef_get(7, s) = 50 + +test_tdef_state_timeout() +Total time passed: 0.000000 s +state=A T=0, no timeout + --> A (configured as T1 100 s) rc=0; state=A T=1, 100.000000 s remaining + --> B (configured as T2 100 ms) rc=0; state=B T=2, 1.000000 s remaining + --> C (configured as T3 100 m) rc=0; state=C T=3, 6000.000000 s remaining + --> D (configured as T4 100 custom-unit) rc=0; state=D T=4, 100.000000 s remaining + --> G (configured as T7 50 s) rc=0; state=G T=7, 50.000000 s remaining + --> H (configured as T8 300 s) rc=0; state=H T=8, 300.000000 s remaining + --> I (configured as T9 5 m) rc=0; state=I T=9, 300.000000 s remaining + --> J (configured as T10 20 m) rc=0; state=J T=10, 1200.000000 s remaining +- test keep_timer: +Total time passed: 123.045678 s +state=J T=10, 1076.954322 s remaining + --> K (configured as T0(keep_timer) 1 custom-unit) rc=0; state=K T=10, 1076.954322 s remaining + --> A (configured as T1 100 s) rc=0; state=A T=1, 100.000000 s remaining +Total time passed: 146.091356 s +state=A T=1, 76.954322 s remaining + --> K (configured as T0(keep_timer) 1 custom-unit) rc=0; state=K T=1, 76.954322 s remaining + --> A (configured as T1 100 s) rc=0; state=A T=1, 100.000000 s remaining +Total time passed: 169.137034 s +state=A T=1, 76.954322 s remaining + --> L (configured as T123(keep_timer) 1 s) rc=0; state=L T=123, 76.954322 s remaining +- test large T: + --> M (configured as T2147483647 18446744073709551615 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining +- test T<0: + --> N (configured as T-2147483648 18446744073709551615 s) rc=0; state=N T=-2147483648, 2147483647.000000 s remaining +- test T=0: + --> O (no timer configured for this state) +- test no timer: + --> X (no timer configured for this state) +- test undefined timer, using default_val arg of osmo_tdef_fsm_inst_state_chg(), here passed as 999: + --> Y (configured as T666 18446744073709551615 -) rc=0; state=Y T=666, 999.000000 s remaining +- test disallowed transition: + --> Z (no timer configured for this state) + --> B (configured as T2 100 ms) rc=0; state=B T=2, 1.000000 s remaining + --> C (configured as T3 100 m) rc=0; state=C T=3, 6000.000000 s remaining + --> D (configured as T4 100 custom-unit) rc=0; state=D T=4, 100.000000 s remaining diff --git a/tests/tdef/tdef_vty_test_config_root.c b/tests/tdef/tdef_vty_test_config_root.c new file mode 100644 index 0000000..138ac00 --- /dev/null +++ b/tests/tdef/tdef_vty_test_config_root.c @@ -0,0 +1,292 @@ +/* Test implementation for osmo_tdef VTY configuration API. */ +/* + * (C) 2019 by sysmocom s.f.m.c. GmbH + * + * All Rights Reserved + * + * SPDX-License-Identifier: GPL-2.0+ + * + * Author: Neels Hofmeyr + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#define _GNU_SOURCE +#include +#include +#include +#include + +#include + +#include +#include +#include + +#include +#include + +#include + +#include "config.h" + +/* ------------------- HERE IS THE INTERESTING TDEF RELEVANT PART ------------------- */ + +/* This example keeps several separate timer groups and offers 'timer' VTY commands at the root of the config node. See + * the tdef_vty_test_config_root.vty transcript test. + */ + +static struct osmo_tdef tdefs_test[] = { + { .T=1, .default_val=100, .desc="Testing a hundred seconds" }, // default is .unit=OSMO_TDEF_S == 0 + { .T=2, .default_val=100, .unit=OSMO_TDEF_MS, .desc="Testing a hundred milliseconds" }, + { .T=3, .default_val=100, .unit=OSMO_TDEF_M, .desc="Testing a hundred minutes" }, + { .T=4, .default_val=100, .unit=OSMO_TDEF_CUSTOM, .desc="Testing a hundred potatoes" }, + { .T=INT_MAX, .default_val=ULONG_MAX, .unit=OSMO_TDEF_M, .desc="Very large" }, + { .T=-23, .default_val=-15, .desc="Negative T number" }, + {} // <-- important! last entry shall be zero +}; + +static struct osmo_tdef tdefs_tea[] = { + { .T=1, .default_val=50, .desc="Water Boiling Timeout" }, + { .T=2, .default_val=300, .desc="Tea brewing" }, + { .T=3, .default_val=5, .unit=OSMO_TDEF_M, .desc="Let tea cool down before drinking" }, + { .T=4, .default_val=20, .unit=OSMO_TDEF_M, .desc="Forgot to drink tea while it's warm" }, + {} +}; + +static struct osmo_tdef tdefs_software[] = { + { .T=1, .default_val=30, .unit=OSMO_TDEF_M, .desc="Write code" }, + { .T=2, .default_val=20, .unit=OSMO_TDEF_MS, .desc="Hit segfault" }, + { .T=3, .default_val=480, .unit=OSMO_TDEF_M, .desc="Fix bugs" }, + {} +}; + +static struct osmo_tdef_group tdef_groups[] = { + { + .name = "tea", + .desc = "Tea time", + .tdefs = tdefs_tea, + }, + { + .name = "test", + .desc = "Test timers", + .tdefs = tdefs_test, + }, + { + .name = "software", + .desc = "Typical software development cycle", + .tdefs = tdefs_software, + }, + {} +}; + +enum tdef_vty_test_nodes { + TIMER_NODE = _LAST_OSMOVTY_NODE + 1, +}; + +/* This example puts 'timer' configuration commands directly at the root of the CONFIG_NODE. + * This TIMER_NODE is merely needed as a hook for the vty_write() command, but becomes an empty node in the VTY docs. + * It is possible to cheat around needing this if you choose to config_write_timer() in another root nodes' write cb. + * Another example using a 'network' subnode is \ref tdef_vty_test_config_subnode.c */ +static struct cmd_node timer_node = { + TIMER_NODE, + "%s(config-timer)# ", + 1, +}; + +static int config_write_timer(struct vty *vty) +{ + osmo_tdef_vty_groups_write(vty, ""); + return CMD_SUCCESS; +} + +static void timer_init_vty() +{ + /* Again, this is merely to get a vty write hook, see above. */ + install_node(&timer_node, config_write_timer); + + osmo_tdef_vty_groups_init(CONFIG_NODE, tdef_groups); +} + +/* ------------------- THE REST is just boilerplate osmo main() ------------------- */ + +void *root_ctx = NULL; + +static void print_help() +{ + printf( "options:\n" + " -h --help this text\n" + " -d --debug MASK Enable debugging (e.g. -d DRSL:DOML:DLAPDM)\n" + " -D --daemonize For the process into a background daemon\n" + " -c --config-file Specify the filename of the config file\n" + " -s --disable-color Don't use colors in stderr log output\n" + " -T --timestamp Prefix every log line with a timestamp\n" + " -V --version Print version information and exit\n" + " -e --log-level Set a global log-level\n" + ); +} + +static struct { + const char *config_file; + int daemonize; +} cmdline_config = {}; + +static void handle_options(int argc, char **argv) +{ + while (1) { + int option_idx = 0, c; + static const struct option long_options[] = { + { "help", 0, 0, 'h' }, + { "debug", 1, 0, 'd' }, + { "daemonize", 0, 0, 'D' }, + { "config-file", 1, 0, 'c' }, + { "disable-color", 0, 0, 's' }, + { "timestamp", 0, 0, 'T' }, + { "version", 0, 0, 'V' }, + { "log-level", 1, 0, 'e' }, + {} + }; + + c = getopt_long(argc, argv, "hc:d:Dc:sTVe:", + long_options, &option_idx); + if (c == -1) + break; + + switch (c) { + case 'h': + print_help(); + exit(0); + case 's': + log_set_use_color(osmo_stderr_target, 0); + break; + case 'd': + log_parse_category_mask(osmo_stderr_target, optarg); + break; + case 'D': + cmdline_config.daemonize = 1; + break; + case 'c': + cmdline_config.config_file = optarg; + break; + case 'T': + log_set_print_timestamp(osmo_stderr_target, 1); + break; + case 'e': + log_set_log_level(osmo_stderr_target, atoi(optarg)); + break; + case 'V': + print_version(1); + exit(0); + break; + default: + /* catch unknown options *as well as* missing arguments. */ + fprintf(stderr, "Error in command line options. Exiting.\n"); + exit(-1); + } + } +} + +static int quit = 0; + +static void signal_handler(int signal) +{ + fprintf(stdout, "signal %u received\n", signal); + + switch (signal) { + case SIGINT: + case SIGTERM: + quit++; + break; + case SIGABRT: + osmo_generate_backtrace(); + /* in case of abort, we want to obtain a talloc report + * and then return to the caller, who will abort the process */ + case SIGUSR1: + talloc_report(tall_vty_ctx, stderr); + talloc_report_full(root_ctx, stderr); + break; + case SIGUSR2: + talloc_report_full(tall_vty_ctx, stderr); + break; + default: + break; + } +} + +static struct vty_app_info vty_info = { + .name = "tdef_vty_test", + .version = PACKAGE_VERSION, +}; + +static const struct log_info_cat default_categories[] = {}; + +const struct log_info log_info = { + .cat = default_categories, + .num_cat = ARRAY_SIZE(default_categories), +}; + +int main(int argc, char **argv) +{ + int rc; + + root_ctx = talloc_named_const(NULL, 0, "tdef_vty_test"); + + osmo_init_logging2(root_ctx, &log_info); + + vty_info.tall_ctx = root_ctx; + vty_init(&vty_info); + osmo_talloc_vty_add_cmds(); + + timer_init_vty(); /* <---- the only tdef relevant init */ + + handle_options(argc, argv); + + if (cmdline_config.config_file) { + rc = vty_read_config_file(cmdline_config.config_file, NULL); + if (rc < 0) { + fprintf(stderr, "Failed to parse the config file: '%s'\n", cmdline_config.config_file); + return 1; + } + } + + rc = telnet_init_dynif(root_ctx, NULL, vty_get_bind_addr(), 42042); + if (rc < 0) + return 2; + + signal(SIGINT, &signal_handler); + signal(SIGTERM, &signal_handler); + signal(SIGABRT, &signal_handler); + signal(SIGUSR1, &signal_handler); + signal(SIGUSR2, &signal_handler); + osmo_init_ignore_signals(); + + if (cmdline_config.daemonize) { + rc = osmo_daemonize(); + if (rc < 0) { + perror("Error during daemonize"); + return 6; + } + } + + while (!quit) { + log_reset_context(); + osmo_select_main(0); + } + + talloc_free(root_ctx); + talloc_free(tall_vty_ctx); + + return 0; +} diff --git a/tests/tdef/tdef_vty_test_config_root.vty b/tests/tdef/tdef_vty_test_config_root.vty new file mode 100644 index 0000000..12876a6 --- /dev/null +++ b/tests/tdef/tdef_vty_test_config_root.vty @@ -0,0 +1,292 @@ +tdef_vty_test> list +... + show timer [(tea|test|software)] [TNNNN] +... + +tdef_vty_test> show timer ? + [tea] Tea time + [test] Test timers + [software] Typical software development cycle + +tdef_vty_test> show timer test ? + [TNNNN] T-number, optionally preceded by 't' or 'T'. + +tdef_vty_test> show timer +tea: T1 = 50 s Water Boiling Timeout (default: 50 s) +tea: T2 = 300 s Tea brewing (default: 300 s) +tea: T3 = 5 m Let tea cool down before drinking (default: 5 m) +tea: T4 = 20 m Forgot to drink tea while it's warm (default: 20 m) +test: T1 = 100 s Testing a hundred seconds (default: 100 s) +test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) +test: T3 = 100 m Testing a hundred minutes (default: 100 m) +test: T4 = 100 Testing a hundred potatoes (default: 100) +test: T2147483647 = 18446744073709551615 m Very large (default: 18446744073709551615 m) +test: T-23 = 18446744073709551601 s Negative T number (default: 18446744073709551601 s) +software: T1 = 30 m Write code (default: 30 m) +software: T2 = 20 ms Hit segfault (default: 20 ms) +software: T3 = 480 m Fix bugs (default: 480 m) + +tdef_vty_test> enable +tdef_vty_test# show timer +tea: T1 = 50 s Water Boiling Timeout (default: 50 s) +tea: T2 = 300 s Tea brewing (default: 300 s) +tea: T3 = 5 m Let tea cool down before drinking (default: 5 m) +tea: T4 = 20 m Forgot to drink tea while it's warm (default: 20 m) +test: T1 = 100 s Testing a hundred seconds (default: 100 s) +test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) +test: T3 = 100 m Testing a hundred minutes (default: 100 m) +test: T4 = 100 Testing a hundred potatoes (default: 100) +test: T2147483647 = 18446744073709551615 m Very large (default: 18446744073709551615 m) +test: T-23 = 18446744073709551601 s Negative T number (default: 18446744073709551601 s) +software: T1 = 30 m Write code (default: 30 m) +software: T2 = 20 ms Hit segfault (default: 20 ms) +software: T3 = 480 m Fix bugs (default: 480 m) + +tdef_vty_test# configure terminal + +tdef_vty_test(config)# show running-config +... !timer + +tdef_vty_test(config)# list +... + timer [(tea|test|software)] [TNNNN] [(<0-2147483647>|default)] +... + +tdef_vty_test(config)# timer ? + [tea] Tea time + [test] Test timers + [software] Typical software development cycle + +tdef_vty_test(config)# timer sof T123 ? + [<0-2147483647>] New timer value + [default] Set to default timer value + +tdef_vty_test(config)# timer sof T123 ? + [<0-2147483647>] New timer value + [default] Set to default timer value + +tdef_vty_test(config)# timer test ? + [TNNNN] T-number, optionally preceded by 't' or 'T'. + +tdef_vty_test(config)# timer test t2 ? + [<0-2147483647>] New timer value + [default] Set to default timer value + +tdef_vty_test(config)# do show timer +tea: T1 = 50 s Water Boiling Timeout (default: 50 s) +tea: T2 = 300 s Tea brewing (default: 300 s) +tea: T3 = 5 m Let tea cool down before drinking (default: 5 m) +tea: T4 = 20 m Forgot to drink tea while it's warm (default: 20 m) +test: T1 = 100 s Testing a hundred seconds (default: 100 s) +test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) +test: T3 = 100 m Testing a hundred minutes (default: 100 m) +test: T4 = 100 Testing a hundred potatoes (default: 100) +test: T2147483647 = 18446744073709551615 m Very large (default: 18446744073709551615 m) +test: T-23 = 18446744073709551601 s Negative T number (default: 18446744073709551601 s) +software: T1 = 30 m Write code (default: 30 m) +software: T2 = 20 ms Hit segfault (default: 20 ms) +software: T3 = 480 m Fix bugs (default: 480 m) + +tdef_vty_test(config)# do show timer tea +tea: T1 = 50 s Water Boiling Timeout (default: 50 s) +tea: T2 = 300 s Tea brewing (default: 300 s) +tea: T3 = 5 m Let tea cool down before drinking (default: 5 m) +tea: T4 = 20 m Forgot to drink tea while it's warm (default: 20 m) + +tdef_vty_test(config)# do show timer tea 2 +tea: T2 = 300 s Tea brewing (default: 300 s) + +tdef_vty_test(config)# do show timer tea t2 +tea: T2 = 300 s Tea brewing (default: 300 s) + +tdef_vty_test(config)# do show timer tea T2 +tea: T2 = 300 s Tea brewing (default: 300 s) + +tdef_vty_test(config)# do show timer tea T5 +% No such timer: T5 + +tdef_vty_test(config)# do show timer tea T0 +% No such timer: T0 + +tdef_vty_test(config)# do show timer tea T-123 +% No such timer: T-123 + +tdef_vty_test(config)# do show timer t +tea: T1 = 50 s Water Boiling Timeout (default: 50 s) +tea: T2 = 300 s Tea brewing (default: 300 s) +tea: T3 = 5 m Let tea cool down before drinking (default: 5 m) +tea: T4 = 20 m Forgot to drink tea while it's warm (default: 20 m) +test: T1 = 100 s Testing a hundred seconds (default: 100 s) +test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) +test: T3 = 100 m Testing a hundred minutes (default: 100 m) +test: T4 = 100 Testing a hundred potatoes (default: 100) +test: T2147483647 = 18446744073709551615 m Very large (default: 18446744073709551615 m) +test: T-23 = 18446744073709551601 s Negative T number (default: 18446744073709551601 s) + +tdef_vty_test(config)# do show timer te +tea: T1 = 50 s Water Boiling Timeout (default: 50 s) +tea: T2 = 300 s Tea brewing (default: 300 s) +tea: T3 = 5 m Let tea cool down before drinking (default: 5 m) +tea: T4 = 20 m Forgot to drink tea while it's warm (default: 20 m) +test: T1 = 100 s Testing a hundred seconds (default: 100 s) +test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) +test: T3 = 100 m Testing a hundred minutes (default: 100 m) +test: T4 = 100 Testing a hundred potatoes (default: 100) +test: T2147483647 = 18446744073709551615 m Very large (default: 18446744073709551615 m) +test: T-23 = 18446744073709551601 s Negative T number (default: 18446744073709551601 s) + +tdef_vty_test(config)# do show timer te T2 +tea: T2 = 300 s Tea brewing (default: 300 s) +test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) + + +tdef_vty_test(config)# timer tea 3 30 +tdef_vty_test(config)# timer tea T3 +tea: T3 = 30 m Let tea cool down before drinking (default: 5 m) + +tdef_vty_test(config)# timer tea t3 31 +tdef_vty_test(config)# timer tea T3 +tea: T3 = 31 m Let tea cool down before drinking (default: 5 m) + +tdef_vty_test(config)# timer tea T3 32 +tdef_vty_test(config)# timer tea T3 +tea: T3 = 32 m Let tea cool down before drinking (default: 5 m) + +tdef_vty_test(config)# timer tea T-123 99 +% No such timer: T-123 + +tdef_vty_test(config)# timer tea T0 0 +% No such timer: T0 + +tdef_vty_test(config)# timer tea T123 default +% No such timer: T123 + +tdef_vty_test(config)# timer tea +tea: T1 = 50 s Water Boiling Timeout (default: 50 s) +tea: T2 = 300 s Tea brewing (default: 300 s) +tea: T3 = 32 m Let tea cool down before drinking (default: 5 m) +tea: T4 = 20 m Forgot to drink tea while it's warm (default: 20 m) + +tdef_vty_test(config)# timer t +tea: T1 = 50 s Water Boiling Timeout (default: 50 s) +tea: T2 = 300 s Tea brewing (default: 300 s) +tea: T3 = 32 m Let tea cool down before drinking (default: 5 m) +tea: T4 = 20 m Forgot to drink tea while it's warm (default: 20 m) +test: T1 = 100 s Testing a hundred seconds (default: 100 s) +test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) +test: T3 = 100 m Testing a hundred minutes (default: 100 m) +test: T4 = 100 Testing a hundred potatoes (default: 100) +test: T2147483647 = 18446744073709551615 m Very large (default: 18446744073709551615 m) +test: T-23 = 18446744073709551601 s Negative T number (default: 18446744073709551601 s) + +tdef_vty_test(config)# timer te T2 +tea: T2 = 300 s Tea brewing (default: 300 s) +test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) + +tdef_vty_test(config)# timer test T2 100 + +tdef_vty_test(config)# timer tes T2 100 +% Error: no timers found + +tdef_vty_test(config)# timer te T2 100 +% Error: no timers found + + +tdef_vty_test(config)# do show timer software +software: T1 = 30 m Write code (default: 30 m) +software: T2 = 20 ms Hit segfault (default: 20 ms) +software: T3 = 480 m Fix bugs (default: 480 m) + +tdef_vty_test(config)# do show timer software 1 +software: T1 = 30 m Write code (default: 30 m) + +tdef_vty_test(config)# do show timer software t1 +software: T1 = 30 m Write code (default: 30 m) + +tdef_vty_test(config)# do show timer software T1 +software: T1 = 30 m Write code (default: 30 m) + +tdef_vty_test(config)# do show timer software T99 +% No such timer: T99 + +tdef_vty_test(config)# do show timer software T-123123 +% No such timer: T-123123 + +tdef_vty_test(config)# do show timer software T0 +% No such timer: T0 + +tdef_vty_test(config)# timer software 1 11 +tdef_vty_test(config)# timer software T1 +software: T1 = 11 m Write code (default: 30 m) + +tdef_vty_test(config)# timer software t1 12 +tdef_vty_test(config)# timer software T1 +software: T1 = 12 m Write code (default: 30 m) + +tdef_vty_test(config)# timer software T1 13 +tdef_vty_test(config)# timer software T2 0 +tdef_vty_test(config)# timer software +software: T1 = 13 m Write code (default: 30 m) +software: T2 = 0 ms Hit segfault (default: 20 ms) +software: T3 = 480 m Fix bugs (default: 480 m) + +tdef_vty_test(config)# timer softw +software: T1 = 13 m Write code (default: 30 m) +software: T2 = 0 ms Hit segfault (default: 20 ms) +software: T3 = 480 m Fix bugs (default: 480 m) + +tdef_vty_test(config)# timer softw T3 +software: T3 = 480 m Fix bugs (default: 480 m) + +tdef_vty_test(config)# timer softw T3 23 +% Error: no timers found + +tdef_vty_test(config)# timer +tea: T1 = 50 s Water Boiling Timeout (default: 50 s) +tea: T2 = 300 s Tea brewing (default: 300 s) +tea: T3 = 32 m Let tea cool down before drinking (default: 5 m) +tea: T4 = 20 m Forgot to drink tea while it's warm (default: 20 m) +test: T1 = 100 s Testing a hundred seconds (default: 100 s) +test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) +test: T3 = 100 m Testing a hundred minutes (default: 100 m) +test: T4 = 100 Testing a hundred potatoes (default: 100) +test: T2147483647 = 18446744073709551615 m Very large (default: 18446744073709551615 m) +test: T-23 = 18446744073709551601 s Negative T number (default: 18446744073709551601 s) +software: T1 = 13 m Write code (default: 30 m) +software: T2 = 0 ms Hit segfault (default: 20 ms) +software: T3 = 480 m Fix bugs (default: 480 m) + +tdef_vty_test(config)# do show timer +tea: T1 = 50 s Water Boiling Timeout (default: 50 s) +tea: T2 = 300 s Tea brewing (default: 300 s) +tea: T3 = 32 m Let tea cool down before drinking (default: 5 m) +tea: T4 = 20 m Forgot to drink tea while it's warm (default: 20 m) +test: T1 = 100 s Testing a hundred seconds (default: 100 s) +test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) +test: T3 = 100 m Testing a hundred minutes (default: 100 m) +test: T4 = 100 Testing a hundred potatoes (default: 100) +test: T2147483647 = 18446744073709551615 m Very large (default: 18446744073709551615 m) +test: T-23 = 18446744073709551601 s Negative T number (default: 18446744073709551601 s) +software: T1 = 13 m Write code (default: 30 m) +software: T2 = 0 ms Hit segfault (default: 20 ms) +software: T3 = 480 m Fix bugs (default: 480 m) + +tdef_vty_test(config)# show running-config +... !timer +timer tea T3 32 +timer software T1 13 +timer software T2 0 +... !timer + +tdef_vty_test(config)# timer tea T3 default +tdef_vty_test(config)# timer software T1 default +tdef_vty_test(config)# show running-config +... !timer +timer software T2 0 +... !timer + +tdef_vty_test(config)# timer softw 2 default +% Error: no timers found +tdef_vty_test(config)# timer software 2 default +tdef_vty_test(config)# show running-config +... !timer diff --git a/tests/tdef/tdef_vty_test_config_subnode.c b/tests/tdef/tdef_vty_test_config_subnode.c new file mode 100644 index 0000000..c371c8d --- /dev/null +++ b/tests/tdef/tdef_vty_test_config_subnode.c @@ -0,0 +1,288 @@ +/* Test implementation for osmo_tdef VTY configuration API. */ +/* + * (C) 2019 by sysmocom s.f.m.c. GmbH + * + * All Rights Reserved + * + * SPDX-License-Identifier: GPL-2.0+ + * + * Author: Neels Hofmeyr + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#define _GNU_SOURCE +#include +#include +#include +#include + +#include + +#include +#include +#include + +#include +#include + +#include + +#include "config.h" + +/* ------------------- HERE IS THE INTERESTING TDEF RELEVANT PART ------------------- */ + +/* This example keeps a single global timer group and offers a custom 'timer' VTY command in a 'network' subnode below + * the CONFIG_NODE. + * the tdef_vty_test_config_subnode.vty transcript test. + */ + +static struct osmo_tdef global_tdefs[] = { + { .T=1, .default_val=100, .desc="Testing a hundred seconds" }, // default is .unit=OSMO_TDEF_S == 0 + { .T=2, .default_val=100, .unit=OSMO_TDEF_MS, .desc="Testing a hundred milliseconds" }, + { .T=3, .default_val=100, .unit=OSMO_TDEF_M, .desc="Testing a hundred minutes" }, + { .T=4, .default_val=100, .unit=OSMO_TDEF_CUSTOM, .desc="Testing a hundred potatoes" }, + { .T=INT_MAX, .default_val=ULONG_MAX, .unit=OSMO_TDEF_M, .desc="Very large" }, + { .T=-23, .default_val=-15, .desc="Negative T number" }, + {} // <-- important! last entry shall be zero +}; + +enum tdef_vty_test_nodes { + GSMNET_NODE = _LAST_OSMOVTY_NODE + 1, +}; + +/* This example offers 'timer T123' commands within an "unrelated" already existing subnode. */ +static struct cmd_node gsmnet_node = { + GSMNET_NODE, + "%s(config-net)# ", + 1, +}; + +DEFUN(show_timer, show_timer_cmd, + "show timer " OSMO_TDEF_VTY_ARG_T_OPTIONAL, + SHOW_STR "Show timers\n" + OSMO_TDEF_VTY_DOC_T) +{ + const char *T_arg = argc > 0 ? argv[0] : NULL; + return osmo_tdef_vty_show_cmd(vty, global_tdefs, T_arg, NULL); +} + +DEFUN(cfg_net_timer, cfg_net_timer_cmd, + "timer " OSMO_TDEF_VTY_ARG_SET_OPTIONAL, + "Configure or show timers\n" + OSMO_TDEF_VTY_DOC_SET) +{ + /* If any arguments are missing, redirect to 'show' */ + if (argc < 2) + return show_timer(self, vty, argc, argv); + return osmo_tdef_vty_set_cmd(vty, global_tdefs, argv); +} + +DEFUN(cfg_net, cfg_net_cmd, + "network", "Enter network node\n") +{ + vty->node = GSMNET_NODE; + return CMD_SUCCESS; +} + +static int config_write_gsmnet(struct vty *vty) +{ + vty_out(vty, "net%s", VTY_NEWLINE); + /* usually, here would be the output of any other 'net' config items... */ + + osmo_tdef_vty_write(vty, global_tdefs, " timer "); + return CMD_SUCCESS; +} + +static void gsmnet_init_vty() +{ + install_node(&gsmnet_node, config_write_gsmnet); + install_element(CONFIG_NODE, &cfg_net_cmd); + + osmo_tdefs_reset(global_tdefs); + install_element_ve(&show_timer_cmd); + install_element(GSMNET_NODE, &cfg_net_timer_cmd); +} + +/* ------------------- THE REST is just boilerplate osmo main() ------------------- */ + +void *root_ctx = NULL; + +static void print_help() +{ + printf( "options:\n" + " -h --help this text\n" + " -d --debug MASK Enable debugging (e.g. -d DRSL:DOML:DLAPDM)\n" + " -D --daemonize For the process into a background daemon\n" + " -c --config-file Specify the filename of the config file\n" + " -s --disable-color Don't use colors in stderr log output\n" + " -T --timestamp Prefix every log line with a timestamp\n" + " -V --version Print version information and exit\n" + " -e --log-level Set a global log-level\n" + ); +} + +static struct { + const char *config_file; + int daemonize; +} cmdline_config = {}; + +static void handle_options(int argc, char **argv) +{ + while (1) { + int option_idx = 0, c; + static const struct option long_options[] = { + { "help", 0, 0, 'h' }, + { "debug", 1, 0, 'd' }, + { "daemonize", 0, 0, 'D' }, + { "config-file", 1, 0, 'c' }, + { "disable-color", 0, 0, 's' }, + { "timestamp", 0, 0, 'T' }, + { "version", 0, 0, 'V' }, + { "log-level", 1, 0, 'e' }, + {} + }; + + c = getopt_long(argc, argv, "hc:d:Dc:sTVe:", + long_options, &option_idx); + if (c == -1) + break; + + switch (c) { + case 'h': + print_help(); + exit(0); + case 's': + log_set_use_color(osmo_stderr_target, 0); + break; + case 'd': + log_parse_category_mask(osmo_stderr_target, optarg); + break; + case 'D': + cmdline_config.daemonize = 1; + break; + case 'c': + cmdline_config.config_file = optarg; + break; + case 'T': + log_set_print_timestamp(osmo_stderr_target, 1); + break; + case 'e': + log_set_log_level(osmo_stderr_target, atoi(optarg)); + break; + case 'V': + print_version(1); + exit(0); + break; + default: + /* catch unknown options *as well as* missing arguments. */ + fprintf(stderr, "Error in command line options. Exiting.\n"); + exit(-1); + } + } +} + +static int quit = 0; + +static void signal_handler(int signal) +{ + fprintf(stdout, "signal %u received\n", signal); + + switch (signal) { + case SIGINT: + case SIGTERM: + quit++; + break; + case SIGABRT: + osmo_generate_backtrace(); + /* in case of abort, we want to obtain a talloc report + * and then return to the caller, who will abort the process */ + case SIGUSR1: + talloc_report(tall_vty_ctx, stderr); + talloc_report_full(root_ctx, stderr); + break; + case SIGUSR2: + talloc_report_full(tall_vty_ctx, stderr); + break; + default: + break; + } +} + +static struct vty_app_info vty_info = { + .name = "tdef_vty_test", + .version = PACKAGE_VERSION, +}; + +static const struct log_info_cat default_categories[] = {}; + +const struct log_info log_info = { + .cat = default_categories, + .num_cat = ARRAY_SIZE(default_categories), +}; + +int main(int argc, char **argv) +{ + int rc; + + root_ctx = talloc_named_const(NULL, 0, "tdef_vty_test"); + + osmo_init_logging2(root_ctx, &log_info); + + vty_info.tall_ctx = root_ctx; + vty_init(&vty_info); + osmo_talloc_vty_add_cmds(); + + gsmnet_init_vty(); /* <--- relevant init for this example */ + + handle_options(argc, argv); + + if (cmdline_config.config_file) { + rc = vty_read_config_file(cmdline_config.config_file, NULL); + if (rc < 0) { + fprintf(stderr, "Failed to parse the config file: '%s'\n", cmdline_config.config_file); + return 1; + } + } + + rc = telnet_init_dynif(root_ctx, NULL, vty_get_bind_addr(), 42042); + if (rc < 0) + return 2; + + signal(SIGINT, &signal_handler); + signal(SIGTERM, &signal_handler); + signal(SIGABRT, &signal_handler); + signal(SIGUSR1, &signal_handler); + signal(SIGUSR2, &signal_handler); + osmo_init_ignore_signals(); + + if (cmdline_config.daemonize) { + rc = osmo_daemonize(); + if (rc < 0) { + perror("Error during daemonize"); + return 6; + } + } + + while (!quit) { + log_reset_context(); + osmo_select_main(0); + } + + talloc_free(root_ctx); + talloc_free(tall_vty_ctx); + + return 0; +} diff --git a/tests/tdef/tdef_vty_test_config_subnode.vty b/tests/tdef/tdef_vty_test_config_subnode.vty new file mode 100644 index 0000000..6cfd3bf --- /dev/null +++ b/tests/tdef/tdef_vty_test_config_subnode.vty @@ -0,0 +1,107 @@ +tdef_vty_test> list +... !timer + show timer [TNNNN] +... !timer + +tdef_vty_test> show timer ? + [TNNNN] T-number, optionally preceded by 't' or 'T'. + +tdef_vty_test> show timer +T1 = 100 s Testing a hundred seconds (default: 100 s) +T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) +T3 = 100 m Testing a hundred minutes (default: 100 m) +T4 = 100 Testing a hundred potatoes (default: 100) +T2147483647 = 18446744073709551615 m Very large (default: 18446744073709551615 m) +T-23 = 18446744073709551601 s Negative T number (default: 18446744073709551601 s) + +tdef_vty_test> enable +tdef_vty_test# show timer +T1 = 100 s Testing a hundred seconds (default: 100 s) +T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) +T3 = 100 m Testing a hundred minutes (default: 100 m) +T4 = 100 Testing a hundred potatoes (default: 100) +T2147483647 = 18446744073709551615 m Very large (default: 18446744073709551615 m) +T-23 = 18446744073709551601 s Negative T number (default: 18446744073709551601 s) + +tdef_vty_test# configure terminal +tdef_vty_test(config)# show running-config +... !timer + +tdef_vty_test(config)# network + +tdef_vty_test(config-net)# do show timer +T1 = 100 s Testing a hundred seconds (default: 100 s) +T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) +T3 = 100 m Testing a hundred minutes (default: 100 m) +T4 = 100 Testing a hundred potatoes (default: 100) +T2147483647 = 18446744073709551615 m Very large (default: 18446744073709551615 m) +T-23 = 18446744073709551601 s Negative T number (default: 18446744073709551601 s) + +tdef_vty_test(config-net)# do show timer T3 +T3 = 100 m Testing a hundred minutes (default: 100 m) +tdef_vty_test(config-net)# do show timer 3 +T3 = 100 m Testing a hundred minutes (default: 100 m) +tdef_vty_test(config-net)# do show timer t3 +T3 = 100 m Testing a hundred minutes (default: 100 m) + +tdef_vty_test(config-net)# timer T1 5 +tdef_vty_test(config-net)# timer T1 +T1 = 5 s Testing a hundred seconds (default: 100 s) + +tdef_vty_test(config-net)# timer t1 678 +tdef_vty_test(config-net)# timer T1 +T1 = 678 s Testing a hundred seconds (default: 100 s) + +tdef_vty_test(config-net)# timer 1 9012345 +tdef_vty_test(config-net)# timer T1 +T1 = 9012345 s Testing a hundred seconds (default: 100 s) + +tdef_vty_test(config-net)# do show timer T666 +% No such timer: T666 +tdef_vty_test(config-net)# do show timer t666 +% No such timer: T666 +tdef_vty_test(config-net)# do show timer 666 +% No such timer: T666 + +tdef_vty_test(config-net)# timer T666 +% No such timer: T666 +tdef_vty_test(config-net)# timer t666 +% No such timer: T666 +tdef_vty_test(config-net)# timer 666 +% No such timer: T666 + +tdef_vty_test(config-net)# timer T666 5 +% No such timer: T666 + +tdef_vty_test(config-net)# timer T-23 42 +tdef_vty_test(config-net)# timer T-23 +T-23 = 42 s Negative T number (default: 18446744073709551601 s) + +tdef_vty_test(config-net)# timer t-23 43 +tdef_vty_test(config-net)# timer T-23 +T-23 = 43 s Negative T number (default: 18446744073709551601 s) + +tdef_vty_test(config-net)# timer -23 44 +tdef_vty_test(config-net)# timer T-23 +T-23 = 44 s Negative T number (default: 18446744073709551601 s) + +tdef_vty_test(config-net)# do show timer +T1 = 9012345 s Testing a hundred seconds (default: 100 s) +T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) +T3 = 100 m Testing a hundred minutes (default: 100 m) +T4 = 100 Testing a hundred potatoes (default: 100) +T2147483647 = 18446744073709551615 m Very large (default: 18446744073709551615 m) +T-23 = 44 s Negative T number (default: 18446744073709551601 s) + +tdef_vty_test(config-net)# show running-config +... !timer +net + timer T1 9012345 + timer T-23 44 +... !timer + +tdef_vty_test(config-net)# timer T1 default +tdef_vty_test(config-net)# timer T-23 default + +tdef_vty_test(config-net)# show running-config +... !timer diff --git a/tests/tdef/tdef_vty_test_dynamic.c b/tests/tdef/tdef_vty_test_dynamic.c new file mode 100644 index 0000000..20dae53 --- /dev/null +++ b/tests/tdef/tdef_vty_test_dynamic.c @@ -0,0 +1,362 @@ +/* Test implementation for osmo_tdef VTY configuration API. */ +/* + * (C) 2019 by sysmocom s.f.m.c. GmbH + * + * All Rights Reserved + * + * SPDX-License-Identifier: GPL-2.0+ + * + * Author: Neels Hofmeyr + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#define _GNU_SOURCE +#include +#include +#include +#include + +#include + +#include +#include +#include + +#include +#include + +#include + +#include "config.h" + +void *root_ctx = NULL; + +/* ------------------- HERE IS THE INTERESTING TDEF RELEVANT PART ------------------- */ + +/* This example keeps a separate list of timers for each instance of a dynamically allocated instance of a VTY node, + * for example of keeping separate timers for each BTS in a BSC. + */ + +static const struct osmo_tdef bts_default_tdefs[] = { + { .T=1111, .default_val=2, .desc="Dynamic Duo" }, + { .T=2222, .default_val=1, .desc="BATMAN" }, + { .T=3333, .default_val=12, .desc="Dadadadadadadadadadadada" }, + { .T=4444, .default_val=500, .unit=OSMO_TDEF_MS, .desc="POW!" }, + {} +}; + + +/* Boilerplate dynamic VTY node ... */ + +enum tdef_vty_test_nodes { + MEMBER_NODE = _LAST_OSMOVTY_NODE + 1, +}; + +static struct cmd_node member_node = { + MEMBER_NODE, + "%s(config-member)# ", + 1, +}; + +struct member { + struct llist_head entry; + char name[23]; + struct osmo_tdef *tdefs; +}; + +LLIST_HEAD(all_members); + +struct member *member_alloc(const char *name) +{ + struct member *m = talloc_zero(root_ctx, struct member); + osmo_strlcpy(m->name, name, sizeof(m->name)); + + /* DYNAMIC TDEF COPIES */ + m->tdefs = (struct osmo_tdef*)talloc_size(m, sizeof(bts_default_tdefs)); + memcpy((char*)m->tdefs, (char*)&bts_default_tdefs, sizeof(bts_default_tdefs)); + osmo_tdefs_reset(m->tdefs); + + llist_add_tail(&m->entry, &all_members); + return m; +} + +struct member *member_find(const char *name) +{ + struct member *m; + llist_for_each_entry(m, &all_members, entry) { + if (!strcmp(m->name, name)) + return m; + } + return NULL; +} + +DEFUN(cfg_member, cfg_member_cmd, + "member NAME", + "Enter member node\n" "Existing or new member node name\n") +{ + const char *name = argv[0]; + struct member *m = member_find(name); + if (!m) + m = member_alloc(name); + vty->index = m; + vty->node = MEMBER_NODE; + return CMD_SUCCESS; +} + + +/* TDEF SPECIFIC VTY */ + +static bool startswith(const char *str, const char *startswith_str) +{ + if (!startswith_str) + return true; + if (!str) + return false; + return strncmp(str, startswith_str, strlen(startswith_str)) == 0; +} + +DEFUN(show_timer, show_member_timer_cmd, + "show member-timer [NAME] " OSMO_TDEF_VTY_ARG_T_OPTIONAL, + SHOW_STR "Show timers for a specific member" "member name\n" + OSMO_TDEF_VTY_DOC_T) +{ + const char *name = argc > 0 ? argv[0] : NULL; + struct member *m; + const char *T_arg = argc > 1 ? argv[1] : NULL; + int shown = 0; + + llist_for_each_entry(m, &all_members, entry) { + if (!name || startswith(m->name, name)) { + osmo_tdef_vty_show_cmd(vty, m->tdefs, T_arg, "%11s: ", m->name); + shown ++; + } + } + if (!shown) { + vty_out(vty, "%% No such member: %s%s", name ? : "(none)", VTY_NEWLINE); + return CMD_WARNING; + } + return CMD_SUCCESS; +} + +DEFUN(cfg_member_timer, cfg_member_timer_cmd, + "timer " OSMO_TDEF_VTY_ARG_SET_OPTIONAL, + "Configure or show timers for this member\n" + OSMO_TDEF_VTY_DOC_SET) +{ + struct member *m = vty->index; + + if (!m || !m->tdefs) { + vty_out(vty, "%% No timers here%s", VTY_NEWLINE); + return CMD_WARNING; + } + + /* If any arguments are missing, redirect to 'show' */ + if (argc < 2) { + const char *T_arg = argc > 0 ? argv[0] : NULL; + return osmo_tdef_vty_show_cmd(vty, m->tdefs, T_arg, "%11s: ", m->name); + } + + return osmo_tdef_vty_set_cmd(vty, m->tdefs, argv); +} + +static int config_write_member(struct vty *vty) +{ + struct member *m; + llist_for_each_entry(m, &all_members, entry) { + vty_out(vty, "member %s%s", m->name, VTY_NEWLINE); + osmo_tdef_vty_write(vty, m->tdefs, " timer "); + } + + return CMD_SUCCESS; +} + +static void member_init_vty() +{ + install_node(&member_node, config_write_member); + install_element(CONFIG_NODE, &cfg_member_cmd); + + install_element_ve(&show_member_timer_cmd); + install_element(MEMBER_NODE, &cfg_member_timer_cmd); +} + +/* ------------------- THE REST is just boilerplate osmo main() ------------------- */ + +static void print_help() +{ + printf( "options:\n" + " -h --help this text\n" + " -d --debug MASK Enable debugging (e.g. -d DRSL:DOML:DLAPDM)\n" + " -D --daemonize For the process into a background daemon\n" + " -c --config-file Specify the filename of the config file\n" + " -s --disable-color Don't use colors in stderr log output\n" + " -T --timestamp Prefix every log line with a timestamp\n" + " -V --version Print version information and exit\n" + " -e --log-level Set a global log-level\n" + ); +} + +static struct { + const char *config_file; + int daemonize; +} cmdline_config = {}; + +static void handle_options(int argc, char **argv) +{ + while (1) { + int option_idx = 0, c; + static const struct option long_options[] = { + { "help", 0, 0, 'h' }, + { "debug", 1, 0, 'd' }, + { "daemonize", 0, 0, 'D' }, + { "config-file", 1, 0, 'c' }, + { "disable-color", 0, 0, 's' }, + { "timestamp", 0, 0, 'T' }, + { "version", 0, 0, 'V' }, + { "log-level", 1, 0, 'e' }, + {} + }; + + c = getopt_long(argc, argv, "hc:d:Dc:sTVe:", + long_options, &option_idx); + if (c == -1) + break; + + switch (c) { + case 'h': + print_help(); + exit(0); + case 's': + log_set_use_color(osmo_stderr_target, 0); + break; + case 'd': + log_parse_category_mask(osmo_stderr_target, optarg); + break; + case 'D': + cmdline_config.daemonize = 1; + break; + case 'c': + cmdline_config.config_file = optarg; + break; + case 'T': + log_set_print_timestamp(osmo_stderr_target, 1); + break; + case 'e': + log_set_log_level(osmo_stderr_target, atoi(optarg)); + break; + case 'V': + print_version(1); + exit(0); + break; + default: + /* catch unknown options *as well as* missing arguments. */ + fprintf(stderr, "Error in command line options. Exiting.\n"); + exit(-1); + } + } +} + +static int quit = 0; + +static void signal_handler(int signal) +{ + fprintf(stdout, "signal %u received\n", signal); + + switch (signal) { + case SIGINT: + case SIGTERM: + quit++; + break; + case SIGABRT: + osmo_generate_backtrace(); + /* in case of abort, we want to obtain a talloc report + * and then return to the caller, who will abort the process */ + case SIGUSR1: + talloc_report(tall_vty_ctx, stderr); + talloc_report_full(root_ctx, stderr); + break; + case SIGUSR2: + talloc_report_full(tall_vty_ctx, stderr); + break; + default: + break; + } +} + +static struct vty_app_info vty_info = { + .name = "tdef_vty_test", + .version = PACKAGE_VERSION, +}; + +static const struct log_info_cat default_categories[] = {}; + +const struct log_info log_info = { + .cat = default_categories, + .num_cat = ARRAY_SIZE(default_categories), +}; + +int main(int argc, char **argv) +{ + int rc; + + root_ctx = talloc_named_const(NULL, 0, "tdef_vty_test"); + + osmo_init_logging2(root_ctx, &log_info); + + vty_info.tall_ctx = root_ctx; + vty_init(&vty_info); + osmo_talloc_vty_add_cmds(); + + member_init_vty(); /* <--- relevant init for this example */ + + handle_options(argc, argv); + + if (cmdline_config.config_file) { + rc = vty_read_config_file(cmdline_config.config_file, NULL); + if (rc < 0) { + fprintf(stderr, "Failed to parse the config file: '%s'\n", cmdline_config.config_file); + return 1; + } + } + + rc = telnet_init_dynif(root_ctx, NULL, vty_get_bind_addr(), 42042); + if (rc < 0) + return 2; + + signal(SIGINT, &signal_handler); + signal(SIGTERM, &signal_handler); + signal(SIGABRT, &signal_handler); + signal(SIGUSR1, &signal_handler); + signal(SIGUSR2, &signal_handler); + osmo_init_ignore_signals(); + + if (cmdline_config.daemonize) { + rc = osmo_daemonize(); + if (rc < 0) { + perror("Error during daemonize"); + return 6; + } + } + + while (!quit) { + log_reset_context(); + osmo_select_main(0); + } + + talloc_free(root_ctx); + talloc_free(tall_vty_ctx); + + return 0; +} diff --git a/tests/tdef/tdef_vty_test_dynamic.vty b/tests/tdef/tdef_vty_test_dynamic.vty new file mode 100644 index 0000000..6aae746 --- /dev/null +++ b/tests/tdef/tdef_vty_test_dynamic.vty @@ -0,0 +1,83 @@ +tdef_vty_test> list +... + show member-timer [NAME] [TNNNN] +... + +tdef_vty_test> enable +tdef_vty_test# configure terminal + +tdef_vty_test(config)# member robin +tdef_vty_test(config-member)# timer + robin: T1111 = 2 s Dynamic Duo (default: 2 s) + robin: T2222 = 1 s BATMAN (default: 1 s) + robin: T3333 = 12 s Dadadadadadadadadadadada (default: 12 s) + robin: T4444 = 500 ms POW! (default: 500 ms) + +tdef_vty_test(config-member)# timer T2222 423 +tdef_vty_test(config-member)# timer T2222 + robin: T2222 = 423 s BATMAN (default: 1 s) + +tdef_vty_test(config-member)# timer + robin: T1111 = 2 s Dynamic Duo (default: 2 s) + robin: T2222 = 423 s BATMAN (default: 1 s) + robin: T3333 = 12 s Dadadadadadadadadadadada (default: 12 s) + robin: T4444 = 500 ms POW! (default: 500 ms) + +tdef_vty_test(config-member)# do show member-timer + robin: T1111 = 2 s Dynamic Duo (default: 2 s) + robin: T2222 = 423 s BATMAN (default: 1 s) + robin: T3333 = 12 s Dadadadadadadadadadadada (default: 12 s) + robin: T4444 = 500 ms POW! (default: 500 ms) + +tdef_vty_test(config-member)# exit + +tdef_vty_test(config)# member batman +tdef_vty_test(config-member)# timer 3333 17 +tdef_vty_test(config-member)# timer 3333 + batman: T3333 = 17 s Dadadadadadadadadadadada (default: 12 s) + +tdef_vty_test(config-member)# show running-config + +Current configuration: +... +member robin + timer T2222 423 +member batman + timer T3333 17 +... + +tdef_vty_test(config-member)# timer 3333 default + +tdef_vty_test(config-member)# show running-config +... +member robin + timer T2222 423 +member batman +... !timer + +tdef_vty_test(config-member)# exit +tdef_vty_test(config)# exit +tdef_vty_test# show member-timer + robin: T1111 = 2 s Dynamic Duo (default: 2 s) + robin: T2222 = 423 s BATMAN (default: 1 s) + robin: T3333 = 12 s Dadadadadadadadadadadada (default: 12 s) + robin: T4444 = 500 ms POW! (default: 500 ms) + batman: T1111 = 2 s Dynamic Duo (default: 2 s) + batman: T2222 = 1 s BATMAN (default: 1 s) + batman: T3333 = 12 s Dadadadadadadadadadadada (default: 12 s) + batman: T4444 = 500 ms POW! (default: 500 ms) + +tdef_vty_test# show member-timer batman + batman: T1111 = 2 s Dynamic Duo (default: 2 s) + batman: T2222 = 1 s BATMAN (default: 1 s) + batman: T3333 = 12 s Dadadadadadadadadadadada (default: 12 s) + batman: T4444 = 500 ms POW! (default: 500 ms) + +tdef_vty_test# show member-timer robin + robin: T1111 = 2 s Dynamic Duo (default: 2 s) + robin: T2222 = 423 s BATMAN (default: 1 s) + robin: T3333 = 12 s Dadadadadadadadadadadada (default: 12 s) + robin: T4444 = 500 ms POW! (default: 500 ms) + +tdef_vty_test# show member-timer joker +% No such member: joker diff --git a/tests/testsuite.at b/tests/testsuite.at index 6aaaa78..0093403 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -325,3 +325,9 @@ cat $abs_srcdir/gsm23003/gsm23003_test.ok > expout AT_CHECK([$abs_top_builddir/tests/gsm23003/gsm23003_test], [0], [expout], [ignore]) AT_CLEANUP + +AT_SETUP([tdef]) +AT_KEYWORDS([tdef]) +cat $abs_srcdir/tdef/tdef_test.ok > expout +AT_CHECK([$abs_top_builddir/tests/tdef/tdef_test], [0], [expout], [ignore]) +AT_CLEANUP -- To view, visit https://gerrit.osmocom.org/12717 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ibd6b1ed7f1bd6e1f2e0fde53352055a4468f23e5 Gerrit-Change-Number: 12717 Gerrit-PatchSet: 7 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 19:52:42 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 19:52:42 +0000 Subject: Change in libosmocore[master]: gsm0808: Add CSFB indication IE to BSSMAP CLEAR COMMAND In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12829 ) Change subject: gsm0808: Add CSFB indication IE to BSSMAP CLEAR COMMAND ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/12829/1/src/gsm/gsm0808.c File src/gsm/gsm0808.c: https://gerrit.osmocom.org/#/c/12829/1/src/gsm/gsm0808.c at 202 PS1, Line 202: struct msgb *gsm0808_create_clear_command2(uint8_t cause, bool csfb_ind) as an alternative to all those "foo2()" functions, one could also have gone for a "gsm0808_append_csfb_ind(struct msgb *)" function, which would then simply be a wrapper for msgb_v_put() and hence also be an inline function. I would personally find that cleaner in terms of API design, but I'll leave it up to you. -- To view, visit https://gerrit.osmocom.org/12829 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id8a75e1da2d5f520064666e4ee413d1c91da6ae3 Gerrit-Change-Number: 12829 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Mon, 04 Feb 2019 19:52:42 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 19:54:01 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 19:54:01 +0000 Subject: Change in osmo-ci[master]: gerrit-verifications: Add osmo-ccid-firmware In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12824 ) Change subject: gerrit-verifications: Add osmo-ccid-firmware ...................................................................... Patch Set 1: Verified+1 Code-Review+2 already deployed -- To view, visit https://gerrit.osmocom.org/12824 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I713d345240dec319ee07d99e9381fc1af6a2d86d Gerrit-Change-Number: 12824 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: K?vin Redon Gerrit-Reviewer: Max Gerrit-Comment-Date: Mon, 04 Feb 2019 19:54:01 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 19:54:04 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 19:54:04 +0000 Subject: Change in osmo-ci[master]: gerrit-verifications: Add osmo-ccid-firmware In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12824 ) Change subject: gerrit-verifications: Add osmo-ccid-firmware ...................................................................... gerrit-verifications: Add osmo-ccid-firmware The repository currently doesn't yet have a contrib/jenkins.sh script, so all verifications will fail. This is intentional, as it will force the addition of a related script in the first merged commit. Change-Id: I713d345240dec319ee07d99e9381fc1af6a2d86d --- M jobs/gerrit-verifications.yml 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Max: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved; Verified diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index c4737ff..a2f68f5 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -255,6 +255,7 @@ - osmo-remsim - simtrace2 - osmo-asf4-dfu + - osmo-ccid-firmware - gapk - pysim: -- To view, visit https://gerrit.osmocom.org/12824 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I713d345240dec319ee07d99e9381fc1af6a2d86d Gerrit-Change-Number: 12824 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: K?vin Redon Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 19:56:13 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 19:56:13 +0000 Subject: Change in python/osmo-python-tests[master]: osmo-trap2cgi: Fix script installation and dependencies In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12828 ) Change subject: osmo-trap2cgi: Fix script installation and dependencies ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12828 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: python/osmo-python-tests Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6add5f37b63dd5fcfdefe0459b539e0050d03897 Gerrit-Change-Number: 12828 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 04 Feb 2019 19:56:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 19:56:39 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 19:56:39 +0000 Subject: Change in libosmocore[master]: bitvec: Add bitvec_tailroom_bits() function In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12816 ) Change subject: bitvec: Add bitvec_tailroom_bits() function ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/12816/2/tests/bitvec/bitvec_test.c File tests/bitvec/bitvec_test.c: https://gerrit.osmocom.org/#/c/12816/2/tests/bitvec/bitvec_test.c at 219 PS2, Line 219: for (i = 0; i < 8; i++) { > Why only 8? Why not go over entire vector so both corner cases (no bits set vs all bits set) are cov [?] It didn't occur to me that "all bits set" could also be a problematic case, if we had already established that it works for one byte/8bits. Everything from there is just a logical progression. -- To view, visit https://gerrit.osmocom.org/12816 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I8980a6b6d1973b67a2d9ad411c878d956fb428d1 Gerrit-Change-Number: 12816 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max Gerrit-Comment-Date: Mon, 04 Feb 2019 19:56:39 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 19:57:24 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 19:57:24 +0000 Subject: Change in meta-telephony[laforge/nightly]: Add libosmo-netif to osmo-sysmon dependencies In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12821 ) Change subject: Add libosmo-netif to osmo-sysmon dependencies ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/12821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: laforge/nightly Gerrit-MessageType: comment Gerrit-Change-Id: I11dd06baf75f9bbb77642640280f6c624ce6d23d Gerrit-Change-Number: 12821 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Comment-Date: Mon, 04 Feb 2019 19:57:24 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 19:58:10 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 19:58:10 +0000 Subject: Change in meta-telephony[laforge/nightly]: Add libosmo-netif to osmo-sysmon dependencies In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12821 ) Change subject: Add libosmo-netif to osmo-sysmon dependencies ...................................................................... Add libosmo-netif to osmo-sysmon dependencies This is in preparation for upcoming patch related to OpenVPN probe [1]. [1] change-id I4493e19b9a09dcebd289457eacd1719f7f8cc31c (osmo-sysmon) Change-Id: I11dd06baf75f9bbb77642640280f6c624ce6d23d --- M recipes-osmocom/osmo-sysmon/osmo-sysmon.inc 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, approved Max: Verified diff --git a/recipes-osmocom/osmo-sysmon/osmo-sysmon.inc b/recipes-osmocom/osmo-sysmon/osmo-sysmon.inc index 1469438..aab52bc 100644 --- a/recipes-osmocom/osmo-sysmon/osmo-sysmon.inc +++ b/recipes-osmocom/osmo-sysmon/osmo-sysmon.inc @@ -3,7 +3,7 @@ LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -DEPENDS = "libtalloc libosmocore libmnl liboping" +DEPENDS = "libtalloc libosmocore libosmo-netif libmnl liboping" INC_PR="r0.${META_TELEPHONY_OSMO_INC}" -- To view, visit https://gerrit.osmocom.org/12821 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: laforge/nightly Gerrit-MessageType: merged Gerrit-Change-Id: I11dd06baf75f9bbb77642640280f6c624ce6d23d Gerrit-Change-Number: 12821 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Feb 4 19:58:07 2019 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Feb 2019 19:58:07 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5c589969b30d9_7f84b2660097320@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Debian_9.0/i586 Package network:osmocom:nightly/libosmocore failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 260s] | This file was extended by libosmocore config.status 1.0.1.26-0fd6, which was [ 260s] | generated by GNU Autoconf 2.69. Invocation command line was [ 260s] | [ 260s] | CONFIG_FILES = [ 260s] | CONFIG_HEADERS = [ 260s] | CONFIG_LINKS = [ 260s] | CONFIG_COMMANDS = [ 260s] | $ ./config.status Doxyfile.core [ 260s] | [ 260s] | on lamb05 [ 260s] | [ 260s] | config.status:1203: creating Doxyfile.core [ 260s] [ 260s] debian/rules:26: recipe for target 'override_dh_auto_test' failed [ 260s] make[1]: *** [override_dh_auto_test] Error 1 [ 260s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 260s] debian/rules:15: recipe for target 'build' failed [ 260s] make: *** [build] Error 2 [ 260s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 260s] [ 260s] lamb05 failed "build libosmocore_1.0.1.26.0fd6.dsc" at Mon Feb 4 19:57:49 UTC 2019. [ 260s] [ 260s] ### VM INTERACTION START ### [ 262s] [ 249.053764] sysrq: SysRq : Power Off [ 262s] [ 249.060248] reboot: Power down [ 262s] ### VM INTERACTION END ### [ 262s] [ 262s] lamb05 failed "build libosmocore_1.0.1.26.0fd6.dsc" at Mon Feb 4 19:57:53 UTC 2019. [ 262s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Mon Feb 4 19:59:11 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 19:59:11 +0000 Subject: Change in meta-telephony[201705]: Add libosmo-netif to osmo-sysmon dependencies In-Reply-To: References: Message-ID: Max has abandoned this change. ( https://gerrit.osmocom.org/12757 ) Change subject: Add libosmo-netif to osmo-sysmon dependencies ...................................................................... Abandoned Merged into laforge/nightly instead. -- To view, visit https://gerrit.osmocom.org/12757 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: meta-telephony Gerrit-Branch: 201705 Gerrit-MessageType: abandon Gerrit-Change-Id: I11dd06baf75f9bbb77642640280f6c624ce6d23d Gerrit-Change-Number: 12757 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Feb 4 19:59:33 2019 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Feb 2019 19:59:33 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in xUbuntu_17.10/i586 In-Reply-To: References: Message-ID: <5c5899c1988c4_7f84b26600977d7@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/xUbuntu_17.10/i586 Package network:osmocom:nightly/libosmocore failed to build in xUbuntu_17.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 170s] - --> N (configured as T-2147483648 18446744073709551615 s) rc=0; state=N T=-2147483648, 2147483647.000000 s remaining [ 170s] + --> N (configured as T-2147483648 4294967295 s) rc=0; state=N T=-2147483648, 2147483647.000000 s remaining [ 170s] - test T=0: [ 170s] --> O (no timer configured for this state) [ 170s] - test no timer: [ 170s] --> X (no timer configured for this state) [ 170s] - test undefined timer, using default_val arg of osmo_tdef_fsm_inst_state_chg(), here passed as 999: [ 170s] - --> Y (configured as T666 18446744073709551615 -) rc=0; state=Y T=666, 999.000000 s remaining [ 170s] + --> Y (configured as T666 4294967295 -) rc=0; state=Y T=666, 999.000000 s remaining [ 170s] - test disallowed transition: [ 170s] --> Z (no timer configured for this state) [ 170s] --> B (configured as T2 100 ms) rc=0; state=B T=2, 1.000000 s remaining [ 170s] 52. testsuite.at:329: 52. tdef (testsuite.at:329): FAILED (testsuite.at:332) [ 170s] debian/rules:26: recipe for target 'override_dh_auto_test' failed [ 170s] make[1]: *** [override_dh_auto_test] Error 1 [ 170s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 170s] debian/rules:15: recipe for target 'build' failed [ 170s] make: *** [build] Error 2 [ 170s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 170s] [ 170s] build82 failed "build libosmocore_1.0.1.26.0fd6.dsc" at Mon Feb 4 19:56:11 UTC 2019. [ 170s] [ 170s] ### VM INTERACTION START ### [ 173s] [ 164.855896] sysrq: SysRq : Power Off [ 173s] [ 164.857553] reboot: Power down [ 174s] ### VM INTERACTION END ### [ 174s] [ 174s] build82 failed "build libosmocore_1.0.1.26.0fd6.dsc" at Mon Feb 4 19:56:16 UTC 2019. [ 174s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Mon Feb 4 20:00:12 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 4 Feb 2019 20:00:12 +0000 Subject: Change in osmo-msc[master]: a_iface: Include CSFB Indication into BSSMAP CLEAR COMMAND In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12830 ) Change subject: a_iface: Include CSFB Indication into BSSMAP CLEAR COMMAND ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12830/1/src/libmsc/a_iface.c File src/libmsc/a_iface.c: https://gerrit.osmocom.org/#/c/12830/1/src/libmsc/a_iface.c at 424 PS1, Line 424: vsub && vsub->sgs_fsm->state == SGS_UE_ST_ASSOCIATED I don't recall all the SGs details anymore. Is it guaranteed that the call was CSFB related if we are in that state? What if we are in SGS associated and a phone might for whatever reasons (e.g. loss of 4G coverage) have returned to 2G/3G? We'd have invalidated the state then already before? I guess what I'd ideally be hoping for is that we somehow *know* that this particular call was established via CSFB, rather than relying on some "global" state of the subscriber. Not super critical, just my 2 cents. -- To view, visit https://gerrit.osmocom.org/12830 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6cfa4b3becdd0138d74e2e1eddd83a0b1568c1de Gerrit-Change-Number: 12830 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Harald Welte Gerrit-Comment-Date: Mon, 04 Feb 2019 20:00:12 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Mon Feb 4 20:00:24 2019 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Feb 2019 20:00:24 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in xUbuntu_18.04/i586 In-Reply-To: References: Message-ID: <5c5899dfbe4a2_7f84b266009795@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/xUbuntu_18.04/i586 Package network:osmocom:nightly/libosmocore failed to build in xUbuntu_18.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 369s] - --> N (configured as T-2147483648 18446744073709551615 s) rc=0; state=N T=-2147483648, 2147483647.000000 s remaining [ 369s] + --> N (configured as T-2147483648 4294967295 s) rc=0; state=N T=-2147483648, 2147483647.000000 s remaining [ 369s] - test T=0: [ 369s] --> O (no timer configured for this state) [ 369s] - test no timer: [ 369s] --> X (no timer configured for this state) [ 369s] - test undefined timer, using default_val arg of osmo_tdef_fsm_inst_state_chg(), here passed as 999: [ 369s] - --> Y (configured as T666 18446744073709551615 -) rc=0; state=Y T=666, 999.000000 s remaining [ 369s] + --> Y (configured as T666 4294967295 -) rc=0; state=Y T=666, 999.000000 s remaining [ 369s] - test disallowed transition: [ 369s] --> Z (no timer configured for this state) [ 369s] --> B (configured as T2 100 ms) rc=0; state=B T=2, 1.000000 s remaining [ 369s] 52. testsuite.at:329: 52. tdef (testsuite.at:329): FAILED (testsuite.at:332) [ 369s] debian/rules:26: recipe for target 'override_dh_auto_test' failed [ 369s] make[1]: *** [override_dh_auto_test] Error 1 [ 369s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 369s] debian/rules:15: recipe for target 'build' failed [ 369s] make: *** [build] Error 2 [ 369s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 369s] [ 369s] cloud122 failed "build libosmocore_1.0.1.26.0fd6.dsc" at Mon Feb 4 19:59:58 UTC 2019. [ 369s] [ 369s] ### VM INTERACTION START ### [ 372s] [ 336.663635] sysrq: SysRq : Power Off [ 372s] [ 336.707211] reboot: Power down [ 377s] ### VM INTERACTION END ### [ 377s] [ 377s] cloud122 failed "build libosmocore_1.0.1.26.0fd6.dsc" at Mon Feb 4 20:00:06 UTC 2019. [ 377s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Feb 4 20:00:41 2019 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Feb 2019 20:00:41 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5c5899fa9181d_7f84b2660098159@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Debian_8.0/i586 Package network:osmocom:nightly/libosmocore failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 412s] | This file was extended by libosmocore config.status 1.0.1.26-0fd6, which was [ 412s] | generated by GNU Autoconf 2.69. Invocation command line was [ 412s] | [ 412s] | CONFIG_FILES = [ 412s] | CONFIG_HEADERS = [ 412s] | CONFIG_LINKS = [ 412s] | CONFIG_COMMANDS = [ 412s] | $ ./config.status Doxyfile.core [ 412s] | [ 412s] | on lamb04 [ 412s] | [ 412s] | config.status:1199: creating Doxyfile.core [ 412s] [ 412s] debian/rules:26: recipe for target 'override_dh_auto_test' failed [ 412s] make[1]: *** [override_dh_auto_test] Error 1 [ 412s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 412s] debian/rules:15: recipe for target 'build' failed [ 412s] make: *** [build] Error 2 [ 412s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 412s] [ 412s] lamb04 failed "build libosmocore_1.0.1.26.0fd6.dsc" at Mon Feb 4 20:00:21 UTC 2019. [ 412s] [ 412s] ### VM INTERACTION START ### [ 413s] Powering off. [ 413s] [ 399.421261] reboot: Power down [ 413s] ### VM INTERACTION END ### [ 413s] [ 413s] lamb04 failed "build libosmocore_1.0.1.26.0fd6.dsc" at Mon Feb 4 20:00:25 UTC 2019. [ 413s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Feb 4 20:00:41 2019 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Feb 2019 20:00:41 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in xUbuntu_16.04/i586 In-Reply-To: References: Message-ID: <5c5899faeb144_7f84b26600982d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/xUbuntu_16.04/i586 Package network:osmocom:nightly/libosmocore failed to build in xUbuntu_16.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 404s] - --> N (configured as T-2147483648 18446744073709551615 s) rc=0; state=N T=-2147483648, 2147483647.000000 s remaining [ 404s] + --> N (configured as T-2147483648 4294967295 s) rc=0; state=N T=-2147483648, 2147483647.000000 s remaining [ 404s] - test T=0: [ 404s] --> O (no timer configured for this state) [ 404s] - test no timer: [ 404s] --> X (no timer configured for this state) [ 404s] - test undefined timer, using default_val arg of osmo_tdef_fsm_inst_state_chg(), here passed as 999: [ 404s] - --> Y (configured as T666 18446744073709551615 -) rc=0; state=Y T=666, 999.000000 s remaining [ 404s] + --> Y (configured as T666 4294967295 -) rc=0; state=Y T=666, 999.000000 s remaining [ 404s] - test disallowed transition: [ 404s] --> Z (no timer configured for this state) [ 404s] --> B (configured as T2 100 ms) rc=0; state=B T=2, 1.000000 s remaining [ 404s] 52. testsuite.at:329: 52. tdef (testsuite.at:329): FAILED (testsuite.at:332) [ 404s] debian/rules:26: recipe for target 'override_dh_auto_test' failed [ 404s] make[1]: *** [override_dh_auto_test] Error 1 [ 404s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 404s] debian/rules:15: recipe for target 'build' failed [ 404s] make: *** [build] Error 2 [ 404s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 404s] [ 404s] lamb03 failed "build libosmocore_1.0.1.26.0fd6.dsc" at Mon Feb 4 20:00:21 UTC 2019. [ 404s] [ 404s] ### VM INTERACTION START ### [ 407s] [ 392.029802] sysrq: SysRq : Power Off [ 407s] [ 392.048339] reboot: Power down [ 407s] ### VM INTERACTION END ### [ 407s] [ 407s] lamb03 failed "build libosmocore_1.0.1.26.0fd6.dsc" at Mon Feb 4 20:00:26 UTC 2019. [ 407s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Feb 4 20:01:50 2019 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Feb 2019 20:01:50 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Raspbian_9.0/armv7l In-Reply-To: References: Message-ID: <5c589a39d761b_7f84b26600986b2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Raspbian_9.0/armv7l Package network:osmocom:nightly/libosmocore failed to build in Raspbian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 497s] | PACKAGE_NAME='libosmocore' [ 497s] | PACKAGE_STRING='libosmocore 1.0.1.26-0fd6' [ 497s] | PACKAGE_TARNAME='libosmocore' [ 497s] | PACKAGE_URL='' [ 497s] | PACKAGE_VERSION='1.0.1.26-0fd6' [ 497s] | PATH_SEPARATOR=':' [ 497s] | PCSC_CFLAGS='-pthread -I/usr/include/PCSC' [ 497s] | PCSC_LIBS='-lpcsclite' [ 497s] | PKG_CONFIG='/usr/bin/pkg-config' [ 497s] | PKG_CONFIG_INSTALLED='/usr/bin/pkg-config' [ 497s] | PKG_CONFIG_LIBDIR='' [ 497s] | PKG_CONFIG_PATH='' [ 497s] | PYTHON='' [ 497s] | PYTHON_EXEC_PREFIX='' [ 497s] | PYTHON_PLATFORM='' [ 497s] | PYTHON_PREFIX='' [ 497s] | PYTHON_VERSION='' [ 497s] | RANLIB='ranlib' [ 497s] | RELMAKE='-include osmo-release.mk' [ 497s] | SED='/bin/sed' [ 497s] | SET_MAKE='' [ 497s] | SHELL='/bin/bash' [ 497s] | SIMD_FLAGS='' [ 499s] | ST[ 462.934462] SysRq : Power Off [ 499s] [ 462.935907] reboot: Power down [ 499s] ### VM INTERACTION END ### [ 499s] [ 499s] armbuild01 failed "build libosmocore_1.0.1.26.0fd6.dsc" at Mon Feb 4 20:01:40 UTC 2019. [ 499s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Mon Feb 4 20:12:24 2019 From: admin at opensuse.org (OBS Notification) Date: Mon, 04 Feb 2019 20:12:24 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5c589cc0e9019_7f84b2660010432@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Debian_9.0/armv7l Package network:osmocom:nightly/libosmocore failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 680s] | ECHO_N='-n' [ 680s] | ECHO_T='' [ 680s] | EGREP='/bin/grep -E' [ 680s] | ENABLE_CTRL_FALSE='#' [ 680s] | ENABLE_CTRL_TRUE='' [ 680s] | ENABLE_EXT_TESTS_FALSE='' [ 680s] | ENABLE_EXT_TESTS_TRUE='#' [ 680s] | ENABLE_GB_FALSE='#' [ 680s] | ENABLE_GB_TRUE='' [ 680s] | ENABLE_GNUTLS='yes' [ 680s] | ENABLE_GNUTLS_FALSE='#' [ 680s] | ENABLE_GNUTLS_TRUE='' [ 680s] | ENABLE_MSGFILE_FALSE='#' [ 680s] | ENABLE_MSGFILE_TRUE='' [ 680s] | ENABLE_PCSC='yes' [ 680s] | ENABLE_PCSC_FALSE='#' [ 680s] | ENABLE_PCSC_TRUE='' [ 680s] | ENABLE_PLUGIN_FALSE='#' [ 680s] | ENABLE_PLUGIN_TRUE='' [ 680s] | ENABLE_PSEUDOTALLOC_FALSE='' [ 680s] | ENABLE_PSEUDOTALLOC_TRUE='#' [ 680s] | ENABLE_SERCOM_STUB_FALSE='' [ 680s] | ENABLE_SERCOM_STUB_TRUE='#' [ 682s] | EN[ 626.939675] SysRq : Power Off [ 682s] [ 626.941230] reboot: Power down [ 682s] ### VM INTERACTION END ### [ 682s] [ 682s] armbuild16 failed "build libosmocore_1.0.1.26.0fd6.dsc" at Mon Feb 4 20:12:20 UTC 2019. [ 682s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Mon Feb 4 22:44:32 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 4 Feb 2019 22:44:32 +0000 Subject: Change in libosmo-netif[master]: Cosmetic: use #pragma once as include guard In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12766 ) Change subject: Cosmetic: use #pragma once as include guard ...................................................................... Patch Set 1: Doh! Noticed comments only after merging it. Sorry about that. -- To view, visit https://gerrit.osmocom.org/12766 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2c1a13252730294597a7a9fb5726aae928f41bfd Gerrit-Change-Number: 12766 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 04 Feb 2019 22:44:32 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 23:30:54 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 4 Feb 2019 23:30:54 +0000 Subject: Change in osmo-bsc[master]: bsc_vty: add features to disable specific lchans via vty In-Reply-To: References: Message-ID: Neels Hofmeyr has removed a vote on this change. Change subject: bsc_vty: add features to disable specific lchans via vty ...................................................................... Removed Code-Review+2 by Harald Welte -- To view, visit https://gerrit.osmocom.org/12624 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: deleteVote Gerrit-Change-Id: I397e68e26d6a1727890353fa34f4897b54795866 Gerrit-Change-Number: 12624 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: dexter Gerrit-CC: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 23:36:30 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 4 Feb 2019 23:36:30 +0000 Subject: Change in osmo-bsc[master]: bsc_vty: add features to disable specific lchans via vty In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/12624 ) Change subject: bsc_vty: add features to disable specific lchans via vty ...................................................................... Patch Set 7: Code-Review-1 (2 comments) once this NULL deref is fixed, go ahead and give yourself a +2 IMO https://gerrit.osmocom.org/#/c/12624/7/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/#/c/12624/7/src/osmo-bsc/bsc_vty.c at 4810 PS7, Line 4810: if (lchan->fi->state == LCHAN_ST_UNUSED) vadim is right. Not all lchan->fi are actually allocated. This would become a NULL deref segfault when passing too large lchan nr. Sorry for missing this before. https://gerrit.osmocom.org/#/c/12624/7/src/osmo-bsc/bsc_vty.c at 4815 PS7, Line 4815: osmo_fsm_state_name(lchan->fi->fsm, lchan->fi->state), (this one could be osmo_fsm_inst_state_name(lchan->fi); but not important) -- To view, visit https://gerrit.osmocom.org/12624 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I397e68e26d6a1727890353fa34f4897b54795866 Gerrit-Change-Number: 12624 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: dexter Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Mon, 04 Feb 2019 23:36:30 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 4 23:45:12 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 4 Feb 2019 23:45:12 +0000 Subject: Change in osmo-bsc[master]: bsc_vty: add features to disable specific lchans via vty In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/12624 ) Change subject: bsc_vty: add features to disable specific lchans via vty ...................................................................... Patch Set 7: (1 comment) https://gerrit.osmocom.org/#/c/12624/7/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/#/c/12624/7/src/osmo-bsc/bsc_vty.c at 4810 PS7, Line 4810: if (lchan->fi->state == LCHAN_ST_UNUSED) > vadim is right. Not all lchan->fi are actually allocated. [?] So you can actually just check for lchan->fi != NULL, no need to pchan_subslots() then. Checking fi != NULL covers all dynamic / non-dynamic TS cases correctly, i.e. you can also mark lchans broken or back unused that are currently not "present" because a dyn TS would be in a different pchan at the moment. pchan_subslots() would be a lot more complex to get it right. -- To view, visit https://gerrit.osmocom.org/12624 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I397e68e26d6a1727890353fa34f4897b54795866 Gerrit-Change-Number: 12624 Gerrit-PatchSet: 7 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: dexter Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Mon, 04 Feb 2019 23:45:12 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 09:19:55 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 09:19:55 +0000 Subject: Change in osmo-bsc[master]: manual: It's not "A over SCCP" but "BSSAP over SCCP" Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12831 Change subject: manual: It's not "A over SCCP" but "BSSAP over SCCP" ...................................................................... manual: It's not "A over SCCP" but "BSSAP over SCCP" In GSM specs, the entire interface between two elements is designated with some letter, like the A interface between BSC and MSC. The interface uses a variety of protocols stacked on each other. In the specific case of A, there is no "A" on top of SCCP, but there's "BSSAP" on top of SCCP. This is followed somewhat un-orthodox by 3GPP, as "A over IP" is a violation of that principle. It should have been called "A utilizing IP", "A based on IP", "A with IP" or something the like. In any case, at no point do the specs ever claim that "A" is stacked on top of SCCP, so let's fix this. Change-Id: Ieb0d8f6c71debe1234aff343a994c2096326da1b --- M doc/manuals/chapters/overview.adoc 1 file changed, 14 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/31/12831/1 diff --git a/doc/manuals/chapters/overview.adoc b/doc/manuals/chapters/overview.adoc index 9b619fb..d3deb27 100644 --- a/doc/manuals/chapters/overview.adoc +++ b/doc/manuals/chapters/overview.adoc @@ -38,20 +38,20 @@ Osmocom offers two variants of the 'A' interface's protocol stacking: -- 'A/SCCPlite' -- 'A/SCCP/M3UA' +- 'BSSAP/SCCPlite' +- 'BSSAP/SCCP/M3UA' -Traditionally, OsmoBSC only implemented the A/SCCPlite protocol, but since a +Traditionally, OsmoBSC only implemented the BSSAP/SCCPlite protocol, but since a proper M3UA implementation is available from 'libosmo-sigtran' -('libosmo-sccp.git'), the stock OsmoBSC now supports only A/SCCP/M3UA. (The +('libosmo-sccp.git'), the stock OsmoBSC now supports only BSSAP/SCCP/M3UA. (The idea is that SCCPlite support may be added to libosmo-sigtran at some point in the future, after which the new `osmo-bsc` would support both variants of the A interface.) -The difference between an A/SCCPlite and A/SCCP/M3UA is illustrated in +The difference between an BSSAP/SCCPlite and BSSAP/SCCP/M3UA is illustrated in <> and <>. -===== A/SCCPlite +===== BSSAP/SCCPlite Unlike classic A interface implementations for E1 interfacs, `osmo-bsc-sccplite` implements a variant of encapsulating the A interface over @@ -60,12 +60,12 @@ This protocol stacking is sometimes called "SCCPlite". -At the time of writing, if you would like to use the old A/SCCPlite protocol, +At the time of writing, if you would like to use the old BSSAP/SCCPlite protocol, look for binary packages named `osmo-bsc-sccplite`, or compile `osmo-bsc` from the 'openbsc.git' repository. [[fig-sccplite]] -.`osmo-bsc-sccplite` operation using 'A/SCCPlite' +.`osmo-bsc-sccplite` operation using 'BSSAP/SCCPlite' [graphviz] ---- digraph G { @@ -81,24 +81,24 @@ {MS0,MS1}->BTS0 [label="Um"]; {MS2,MS3}->BTS1 [label="Um"]; {BTS0,BTS1}->BSC [label="Abis\nTCP\nIP"]; - BSC->MSC [label="A\nSCCP\nTCP\nIP"]; + BSC->MSC [label="BSSAP\nSCCP\nTCP\nIP"]; } ---- -===== A/SCCP/M3UA +===== BSSAP/SCCP/M3UA The default OsmoBSC's A interface uses the M3UA variant of SIGTRAN protocol stacking: |===== -|A +|BSSAP |SCCP |M3UA |SCTP |IP |===== -To use the now-default A/SCCP/M3UA protocol, look for binary packages named +To use the now-default BSSAP/SCCP/M3UA protocol, look for binary packages named `osmo-bsc`, or compile `osmo-bsc` from the 'osmo-bsc.git' repository. It is recommended to use the M3UA variant, which is required to operate with OsmoMSC. @@ -106,7 +106,7 @@ OsmoSTP is required. [[fig-sccp-m3ua]] -.`osmo-bsc` operation using 'A/SCCP/M3UA' +.`osmo-bsc` operation using 'BSSAP/SCCP/M3UA' [graphviz] ---- digraph G { @@ -123,7 +123,7 @@ {MS0,MS1}->BTS0 [label="Um"]; {MS2,MS3}->BTS1 [label="Um"]; {BTS0,BTS1}->BSC [label="Abis\nTCP\nIP"]; - BSC->STP->MSC [label="A\nSCCP\nM3UA\nSCTP\nIP"]; + BSC->STP->MSC [label="BSSAP\nSCCP\nM3UA\nSCTP\nIP"]; } ---- -- To view, visit https://gerrit.osmocom.org/12831 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ieb0d8f6c71debe1234aff343a994c2096326da1b Gerrit-Change-Number: 12831 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 09:19:55 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 09:19:55 +0000 Subject: Change in osmo-bsc[master]: manual: Add sections on 3G/4G neighbor cells Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12832 Change subject: manual: Add sections on 3G/4G neighbor cells ...................................................................... manual: Add sections on 3G/4G neighbor cells This adds some instructions on how to configure 3G/4G neighbor cells within osmo-bsc. I didn't want to add a new top-level chapter but instead chose to add it to the handover section which describes also the configuration of 2G neighbors. Change-Id: I81df1a453858b6fca80c8adf234b1d5b8bf5283d --- M doc/manuals/chapters/handover.adoc 1 file changed, 102 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/32/12832/1 diff --git a/doc/manuals/chapters/handover.adoc b/doc/manuals/chapters/handover.adoc index 297eafc..c75b03c 100644 --- a/doc/manuals/chapters/handover.adoc +++ b/doc/manuals/chapters/handover.adoc @@ -19,7 +19,8 @@ OsmoBSC currently supports handover within one BSS and between separate BSS. Whether inter-MSC is supported depends on the MSC implementation (to the BSC, inter-MSC handover looks identical to inter-BSC handover). Inter-RAT handover -is currently not implemented. +is currently not implemented. However, you may still advertise 3G and 4G neighbor cells +in order to facilitate cell/RAT re-selection to those neighbors. At the time of writing, OsmoMSC's inter-BSC handover support is not complete yet, so OsmoBSC can perform handover between separate BSS only in conjunction @@ -575,3 +576,103 @@ - Algorithm 1 has no `min rxlev` setting. - Algorithm 1 does not actually use any information besides the Measurement Reports, and hence can trivially treat all neighbor cells identically. + +=== Advertising 3G/4G neighbors + +Despite osmo-bsc not supporting inter-RAT hand-over at this point, it +still makes sense to advertise neighbor cells of other network +technologies like UMTS/UTRAN (3G) and LTE/EUTRAN (4G). This will help +phones with idle-mode re-selection of the best available radio access +technology (RAT). + +For more information on the inter-RAT cell re-selection algorithm and its +parameters, see 3GPP TS 45.008 - particularly Section 6.6.4 describing +measurements on cells of other (non-GSM) RATs. + +Such neighbors are advertised as part of the SI2quater (System +Information Type 2quater). + +==== UMTS/UTRAN/3G neighbors + +In order to advertise a 3G neighbor cell you have to specify the +following properties: + +* the UARFCN (UTRAN Absolute Radio Channel Number) on which the cell + broadcasts +* the Scrambling Code of the cell +* whether or not the cell uses diversity + + +In the following example, we're configuring a 3G neighbor cell on UARFCN +1234 using the scrambling code 511 with no diversity: + +---- +network + bts 0 + si2quater neighbor-list add uarfcn 1234 511 0 +---- + +3G neighbor cells can be removed using the same command, just replacing +`add` with `del`. + +==== LTE/EUTRAN/4G neighbors + +In order to advertise a 4G neighbor cell you have to specify the +following properties: + +* EARFCN (EUTRAN Absolute Radio Channel Number) on which the cell + broadcasts +* Reselection thresholds towards E-UTRAN cells: +[width="30%"] +|==== +| 0 | 0 dB +| 1 | 2 dB +| 2 | 4 dB +| 3 | 6 dB +| ... | ... +| 31 | 62 dB +|===== +* Priority of E-UTRAN frequency: 0 = lowest priority, ..., 7 = highest priority +* QRXLEVMIN parameter: Minimum required RX level in the UTRAN FDD cell + (dBm), see 3GPP TS 25.304. +[width="30%"] +|==== +| 0 | -140 dBm +| 1 | -138 dBm +| 2 | -136 dBm +| ... | ... +| 31 | -78 dBm +|==== +* Measurement bandwidth in MHz, see 3GPP TS 44.018 and 3GPP TS 44.060. + This field specifies the minimum value of the channel bandwidth of all + valid E-UTRAN cells on the specified EARFCN. It is defined by the + parameter Transmission Bandwidth Configuration, N RB (see 3GPP TS + 36.104). The values indicate the number of resource blocks over which + the mobile station could measure if the mobile station does not + support wideband RSRQ measurements (see 3GPP TS 24.008). A mobile + station supporting wideband RSRQ measurements shall measure over the + indicated number of resource blocks. The field is coded according to + the following table: +[width="30%"] +|==== +| 0 | N_RB = 6 +| 1 | N_RB = 15 +| 2 | N_RB = 25 +| 3 | N_RB = 50 +| 4 | N_RB = 75 +| 5 | N_RB = 100 +|==== + +In the following example we're configuring a 4G neighbor on EARFCN 2342 +with a higher reselection threshold of 40dB, a lower reselection +threshold of 20dB, priority 5, QRXLEVMIN of -140 dBm and a measurement +bandwidth of 100 resource blocks: + +---- +network + bts 0 + si2quater neighbor-list add earfcn 2342 thresh-hi 20 thresh-lo 10 prio 5 qrxlv 0 meas 5 +---- + +4G neighbor cells can be removed using the same command, just replacing +`add` with `del`. -- To view, visit https://gerrit.osmocom.org/12832 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I81df1a453858b6fca80c8adf234b1d5b8bf5283d Gerrit-Change-Number: 12832 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 09:19:55 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 09:19:55 +0000 Subject: Change in osmo-bsc[master]: manual: Re-order chapters in more logical order Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12833 Change subject: manual: Re-order chapters in more logical order ...................................................................... manual: Re-order chapters in more logical order It makes a lot of sense to first describe the VTY interface before going on using it to configure something. Also, configuration related topics relevant to operators/sysadmins Ashould precede other content only relevant to developers, like the details of the CTRL or Abis/IP protocol. Change-Id: I0872d072bbb06f9409a72b93133d136167f03b38 --- M doc/manuals/osmobsc-usermanual.adoc 1 file changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/33/12833/1 diff --git a/doc/manuals/osmobsc-usermanual.adoc b/doc/manuals/osmobsc-usermanual.adoc index eec77d7..2de1da7 100644 --- a/doc/manuals/osmobsc-usermanual.adoc +++ b/doc/manuals/osmobsc-usermanual.adoc @@ -11,12 +11,6 @@ include::{srcdir}/chapters/running.adoc[] -include::{srcdir}/chapters/control.adoc[] - -include::{srcdir}/chapters/counters.adoc[] - -include::{srcdir}/chapters/handover.adoc[] - include::./common/chapters/vty.adoc[] include::./common/chapters/logging.adoc[] @@ -27,6 +21,12 @@ include::./common/chapters/bsc.adoc[] +include::{srcdir}/chapters/handover.adoc[] + +include::{srcdir}/chapters/control.adoc[] + +include::{srcdir}/chapters/counters.adoc[] + include::./common/chapters/abis.adoc[] include::./common/chapters/control_if.adoc[] -- To view, visit https://gerrit.osmocom.org/12833 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0872d072bbb06f9409a72b93133d136167f03b38 Gerrit-Change-Number: 12833 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 09:19:56 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 09:19:56 +0000 Subject: Change in osmo-bsc[master]: manual: s/OsmoNITB/OsmoBSC/ in examples; remove E1 based BTSs Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12834 Change subject: manual: s/OsmoNITB/OsmoBSC/ in examples; remove E1 based BTSs ...................................................................... manual: s/OsmoNITB/OsmoBSC/ in examples; remove E1 based BTSs We still haven't re-introduced support for E1 based BTSs, so let's remove the relevant chapters from the manuals. Also, make sure we don't call anything OsmoNITB in this manual anymore. Change-Id: I834d65836731958b6be823a18e35407183398715 --- M doc/manuals/chapters/bts-examples.adoc 1 file changed, 6 insertions(+), 99 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/34/12834/1 diff --git a/doc/manuals/chapters/bts-examples.adoc b/doc/manuals/chapters/bts-examples.adoc index b15fb99..e404989 100644 --- a/doc/manuals/chapters/bts-examples.adoc +++ b/doc/manuals/chapters/bts-examples.adoc @@ -1,109 +1,16 @@ [[bts-examples]] -== OsmoNITB example configuration files +== OsmoBSC example configuration files -The `openbsc/doc/examples/osmo-nitb` directory in the OpenBSC source +The `osmo-bsc/doc/examples/osmo-bsc` directory in the OpenBSC source tree contains a collection of example configuration files, sorted by BTS type. This chapter is illustrating some excerpts from those examples -[[bts_example_bs11]] -=== Example configuration for OsmoNITB with one dual-TRX BS-11 - -.OsmoNITB with BS11, 2 TRX, no frequency hopping -==== - ----- -e1_input - e1_line 0 driver misdn -network - network country code 1 - mobile network code 1 - short name OpenBSC - long name OpenBSC - timer t3101 10 - timer t3113 60 - bts 0 - type bs11 <1> - band GSM900 - cell_identity 1 - location_area_code 1 - training_sequence_code 7 - base_station_id_code 63 - oml e1 line 0 timeslot 1 sub-slot full <2> - oml e1 tei 25 <3> - trx 0 - arfcn 121 - max_power_red 0 - rsl e1 line 0 timeslot 1 sub-slot full <4> - rsl e1 tei 1 <5> - timeslot 0 - phys_chan_config CCCH+SDCCH4 - e1 line 0 timeslot 1 sub-slot full - timeslot 1 - phys_chan_config TCH/F - e1 line 0 timeslot 2 sub-slot 1 <6> - timeslot 2 - phys_chan_config TCH/F - e1 line 0 timeslot 2 sub-slot 2 - timeslot 3 - phys_chan_config TCH/F - e1 line 0 timeslot 2 sub-slot 3 - timeslot 4 - phys_chan_config TCH/F - e1 line 0 timeslot 3 sub-slot 0 - timeslot 5 - phys_chan_config TCH/F - e1 line 0 timeslot 3 sub-slot 1 - timeslot 6 - phys_chan_config TCH/F - e1 line 0 timeslot 3 sub-slot 2 - timeslot 7 - phys_chan_config TCH/F - e1 line 0 timeslot 3 sub-slot 3 - trx 1 - arfcn 123 - max_power_red 0 - rsl e1 line 0 timeslot 1 sub-slot full <4> - rsl e1 tei 2 <5> - timeslot 0 - phys_chan_config TCH/F - e1 line 0 timeslot 4 sub-slot 0 <6> - timeslot 1 - phys_chan_config TCH/F - e1 line 0 timeslot 4 sub-slot 1 - timeslot 2 - phys_chan_config TCH/F - e1 line 0 timeslot 4 sub-slot 2 - timeslot 3 - phys_chan_config TCH/F - e1 line 0 timeslot 4 sub-slot 3 - timeslot 4 - phys_chan_config TCH/F - e1 line 0 timeslot 5 sub-slot 0 - timeslot 5 - phys_chan_config TCH/F - e1 line 0 timeslot 5 sub-slot 1 - timeslot 6 - phys_chan_config TCH/F - e1 line 0 timeslot 5 sub-slot 2 - timeslot 7 - phys_chan_config TCH/F - e1 line 0 timeslot 5 sub-slot 3 ----- -==== - -<1> The BTS type must be set to __bs11__ -<2> The OML E1 timeslot needs to be identical with what was on the BTS side using LMT. -<3> The OML TEI value needs to be identical with what was configured on the BTS side using LMT. -<4> The RSL E1 timeslot can be identical for all TRX. -<5> The RSL TEI values __must__ be different if multiple TRX share one E1 signalling timeslot. -<6> The TCH all need to be allocated one 16k sub-slot on the E1 - [[bts_example_nbts]] -=== Example configuration for OsmoNITB with one single-TRX nanoBTS +=== Example configuration for OsmoBSC with one single-TRX nanoBTS -.OsmoNITB with one single-TRX nanoBTS +.OsmoBSC with one single-TRX nanoBTS ==== ---- @@ -185,9 +92,9 @@ [[bts_example_nbts_multi]] -=== Example configuration for OsmoNITB with multi-TRX nanoBTS +=== Example configuration for OsmoBSC with multi-TRX nanoBTS -.OsmoNITB configured for dual-TRX (stacked) nanoBTS +.OsmoBSC configured for dual-TRX (stacked) nanoBTS ==== ---- -- To view, visit https://gerrit.osmocom.org/12834 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I834d65836731958b6be823a18e35407183398715 Gerrit-Change-Number: 12834 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 09:19:56 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 09:19:56 +0000 Subject: Change in osmo-bsc[master]: manual: Remove bogus "Control interface" sub-section in overview Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12835 Change subject: manual: Remove bogus "Control interface" sub-section in overview ...................................................................... manual: Remove bogus "Control interface" sub-section in overview We meanwhile have chapters about the CTRL interface protocol as well as the auto-generated list of CTRL interface commands/values, so let's remove the somewhat redundant information. Change-Id: I062d7eec3b3fc53c31726be3b3a407a2dd3b8b56 --- M doc/manuals/chapters/overview.adoc 1 file changed, 0 insertions(+), 22 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/35/12835/1 diff --git a/doc/manuals/chapters/overview.adoc b/doc/manuals/chapters/overview.adoc index d3deb27..869bd26 100644 --- a/doc/manuals/chapters/overview.adoc +++ b/doc/manuals/chapters/overview.adoc @@ -150,25 +150,3 @@ with E1 based BTS, OsmoBSC contains a E1 sub-channel de- and re-multiplexer as well as a TRAU mapper that can map uplink to downlink frames and vice versa. - -=== Control interface - -The actual protocol is described in <> section. Here we -describe variables specific to OsmoBSC. - -.Variables available over control interface -[options="header",width="100%",cols="20%,5%,5%,50%,20%"] -|=== -|Name|Access|Trap|Value|Comment -|msc_connection_status|RO|Yes|"connected", "disconnected"|Indicate the status of connection to MSC. -|bts_connection_status|RO|Yes|"connected", "disconnected"|Indicate the status of connection to BTS. -|location|RW|Yes|",(invalid\|fix2d\|fix3d),,,"|Set/Get location data. -|timezone|RW|No|",,", "off"|-19 <= hours <= 19, mins in {0, 15, 30, 45}, and 0 <= dst <= 2 -|notification|WO|Yes|| -|inform-msc-v1|WO|Yes|| -|ussd-notify-v1|WO|Yes|| -|=== - -Some comments. -FIXME: commands defined in src/ctrl/control_if.c? Nodes? Traps? - -- To view, visit https://gerrit.osmocom.org/12835 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I062d7eec3b3fc53c31726be3b3a407a2dd3b8b56 Gerrit-Change-Number: 12835 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 09:23:19 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 09:23:19 +0000 Subject: Change in osmo-bsc[master]: gsm_data: Add gsm_bts_name() just like we have gsm_{trx, ts, lchan}_name() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12817 ) Change subject: gsm_data: Add gsm_bts_name() just like we have gsm_{trx,ts,lchan}_name() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12817 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icd7fd6273396026c5fe2da600f35631b1bac1614 Gerrit-Change-Number: 12817 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Tue, 05 Feb 2019 09:23:19 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 09:23:20 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 09:23:20 +0000 Subject: Change in osmo-bsc[master]: gsm_data: Add gsm_bts_name() just like we have gsm_{trx, ts, lchan}_name() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12817 ) Change subject: gsm_data: Add gsm_bts_name() just like we have gsm_{trx,ts,lchan}_name() ...................................................................... gsm_data: Add gsm_bts_name() just like we have gsm_{trx,ts,lchan}_name() Change-Id: Icd7fd6273396026c5fe2da600f35631b1bac1614 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/gsm_data.c 2 files changed, 11 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Max: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 9f7ce8d..9f2f816 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -1215,6 +1215,7 @@ enum gsm_phys_chan_config gsm_pchan_parse(const char *name); const char *gsm_lchant_name(enum gsm_chan_t c); const char *gsm_chreq_name(enum gsm_chreq_reason_t c); +char *gsm_bts_name(const struct gsm_bts *bts); char *gsm_trx_name(const struct gsm_bts_trx *trx); char *gsm_ts_name(const struct gsm_bts_trx_ts *ts); char *gsm_ts_and_pchan_name(const struct gsm_bts_trx_ts *ts); diff --git a/src/osmo-bsc/gsm_data.c b/src/osmo-bsc/gsm_data.c index 7eee918..5d667bb 100644 --- a/src/osmo-bsc/gsm_data.c +++ b/src/osmo-bsc/gsm_data.c @@ -996,6 +996,16 @@ static char ts2str[255]; +char *gsm_bts_name(const struct gsm_bts *bts) +{ + if (!bts) + snprintf(ts2str, sizeof(ts2str), "(bts=NULL)"); + else + snprintf(ts2str, sizeof(ts2str), "(bts=%d)", bts->nr); + + return ts2str; +} + char *gsm_trx_name(const struct gsm_bts_trx *trx) { if (!trx) -- To view, visit https://gerrit.osmocom.org/12817 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Icd7fd6273396026c5fe2da600f35631b1bac1614 Gerrit-Change-Number: 12817 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 09:24:04 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 09:24:04 +0000 Subject: Change in libosmocore[master]: Extend gsm_04_08.h with CSFB related definitiosn form 44.018 Rel 15 In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12780 ) Change subject: Extend gsm_04_08.h with CSFB related definitiosn form 44.018 Rel 15 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12780 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0e101af316438b56d63d43fc2cb16d7caf563d07 Gerrit-Change-Number: 12780 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Tue, 05 Feb 2019 09:24:04 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 09:24:07 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 09:24:07 +0000 Subject: Change in libosmocore[master]: gsm_08_08.h: Add IEI definitions from Release 15 In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12781 ) Change subject: gsm_08_08.h: Add IEI definitions from Release 15 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12781 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If3649606ba7c25121e30ed02939ca08c94665be5 Gerrit-Change-Number: 12781 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Tue, 05 Feb 2019 09:24:07 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 09:24:09 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 09:24:09 +0000 Subject: Change in libosmocore[master]: bitvec: Add bitvec_bytes_used() function In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12787 ) Change subject: bitvec: Add bitvec_bytes_used() function ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12787 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id4bd7f7543f5b0f4f6f876e283bd065039c37646 Gerrit-Change-Number: 12787 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Tue, 05 Feb 2019 09:24:09 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 09:24:17 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 09:24:17 +0000 Subject: Change in libosmocore[master]: Extend gsm_04_08.h with CSFB related definitiosn form 44.018 Rel 15 In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12780 ) Change subject: Extend gsm_04_08.h with CSFB related definitiosn form 44.018 Rel 15 ...................................................................... Extend gsm_04_08.h with CSFB related definitiosn form 44.018 Rel 15 These are some IEI definitions that we'll need for CSFB Fast Return Change-Id: I0e101af316438b56d63d43fc2cb16d7caf563d07 --- M include/osmocom/gsm/protocol/gsm_04_08.h 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Max: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/gsm/protocol/gsm_04_08.h b/include/osmocom/gsm/protocol/gsm_04_08.h index fbd4fe6..c052e4c 100644 --- a/include/osmocom/gsm/protocol/gsm_04_08.h +++ b/include/osmocom/gsm/protocol/gsm_04_08.h @@ -1770,8 +1770,10 @@ #define GSM48_IE_GROUP_CHDES 0x74 #define GSM48_IE_BA_LIST_PREF 0x75 #define GSM48_IE_MOB_OVSERV_DIF 0x77 +#define GSM48_IE_CELL_SEL_IND_AFTER_REL 0x77 /* 44.018 Section 9.1.7 */ #define GSM48_IE_REALTIME_DIFF 0x7b #define GSM48_IE_START_TIME 0x7c +#define GSM48_IE_INDIVIDUAL_PRIORITIES 0x7c /* 44.018 Section 9.1.7 */ #define GSM48_IE_TIMING_ADVANCE 0x7d #define GSM48_IE_GROUP_CIP_SEQ 0x80 #define GSM48_IE_CIP_MODE_SET 0x90 -- To view, visit https://gerrit.osmocom.org/12780 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I0e101af316438b56d63d43fc2cb16d7caf563d07 Gerrit-Change-Number: 12780 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 09:24:18 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 09:24:18 +0000 Subject: Change in libosmocore[master]: gsm_08_08.h: Add IEI definitions from Release 15 In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12781 ) Change subject: gsm_08_08.h: Add IEI definitions from Release 15 ...................................................................... gsm_08_08.h: Add IEI definitions from Release 15 Change-Id: If3649606ba7c25121e30ed02939ca08c94665be5 --- M include/osmocom/gsm/protocol/gsm_08_08.h 1 file changed, 5 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Max: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/gsm/protocol/gsm_08_08.h b/include/osmocom/gsm/protocol/gsm_08_08.h index 33f3a6f..721da33 100644 --- a/include/osmocom/gsm/protocol/gsm_08_08.h +++ b/include/osmocom/gsm/protocol/gsm_08_08.h @@ -298,6 +298,11 @@ GSM0808_IE_CN_TO_MS_TRANSP_INFO = 0x93, GSM0808_IE_SELECTED_PLMN_ID = 0x94, GSM0808_IE_LAST_USED_EUTRAN_PLMN_ID = 0x95, + GSM0808_IE_OLD_LAI = 0x96, + GSM0808_IE_ATTACH_INDICATOR = 0x97, + GSM0808_IE_SELECTED_OPERATOR = 0x98, + GSM0808_IE_PS_REGISTERED_OPERATOR = 0x99, + GSM0808_IE_CS_REGISTERED_OPERATOR = 0x9a, }; /* 3GPP TS 48.008 3.2.3 Signalling Field Element Coding */ -- To view, visit https://gerrit.osmocom.org/12781 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If3649606ba7c25121e30ed02939ca08c94665be5 Gerrit-Change-Number: 12781 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 09:24:18 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 09:24:18 +0000 Subject: Change in libosmocore[master]: bitvec: Add bitvec_bytes_used() function In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12787 ) Change subject: bitvec: Add bitvec_bytes_used() function ...................................................................... bitvec: Add bitvec_bytes_used() function This new bitvec API function returns the number of bytes used in a given bit-vector. Change-Id: Id4bd7f7543f5b0f4f6f876e283bd065039c37646 --- M include/osmocom/core/bitvec.h M tests/bitvec/bitvec_test.c M tests/bitvec/bitvec_test.ok 3 files changed, 37 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Max: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/core/bitvec.h b/include/osmocom/core/bitvec.h index c9bab39..da2d4e4 100644 --- a/include/osmocom/core/bitvec.h +++ b/include/osmocom/core/bitvec.h @@ -84,4 +84,13 @@ unsigned int array_len, bool dry_run, unsigned int num_bits); +/*! Return the number of bytes used within the bit vector */ +static inline unsigned int bitvec_used_bytes(const struct bitvec *bv) +{ + unsigned int bytes = bv->cur_bit/8; + if (bv->cur_bit%8) + bytes++; + return bytes; +} + /*! @} */ diff --git a/tests/bitvec/bitvec_test.c b/tests/bitvec/bitvec_test.c index d0bc30c..c8795db 100644 --- a/tests/bitvec/bitvec_test.c +++ b/tests/bitvec/bitvec_test.c @@ -181,6 +181,29 @@ test_array_item(17, &b, n, array, n * 3); } +static void test_used_bytes() +{ + struct bitvec b; + uint8_t d[32]; + unsigned int i; + + b.data = d; + b.data_len = sizeof(d); + bitvec_zero(&b); + + OSMO_ASSERT(bitvec_used_bytes(&b) == 0); + + for (i = 0; i < 8; i++) { + bitvec_set_bit(&b, 1); + OSMO_ASSERT(bitvec_used_bytes(&b) == 1); + } + + for (i = 8; i < 16; i++) { + bitvec_set_bit(&b, 1); + OSMO_ASSERT(bitvec_used_bytes(&b) == 2); + } +} + int main(int argc, char **argv) { struct bitvec bv; @@ -286,6 +309,9 @@ bitvec_zero(&bv); test_bitvec_rl_curbit(&bv, 1, 64, 0); + printf("\nbitvec bytes used.\n"); + test_used_bytes(); + printf("\nbitvec ok.\n"); return 0; } diff --git a/tests/bitvec/bitvec_test.ok b/tests/bitvec/bitvec_test.ok index 6281973..a48912d 100644 --- a/tests/bitvec/bitvec_test.ok +++ b/tests/bitvec/bitvec_test.ok @@ -168,4 +168,6 @@ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ ........ bitvec_runlength.... +bitvec bytes used. + bitvec ok. -- To view, visit https://gerrit.osmocom.org/12787 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Id4bd7f7543f5b0f4f6f876e283bd065039c37646 Gerrit-Change-Number: 12787 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 09:24:21 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 09:24:21 +0000 Subject: Change in libosmocore[master]: bitvec: Add bitvec_tailroom_bits() function In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12816 ) Change subject: bitvec: Add bitvec_tailroom_bits() function ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12816 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I8980a6b6d1973b67a2d9ad411c878d956fb428d1 Gerrit-Change-Number: 12816 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max Gerrit-Comment-Date: Tue, 05 Feb 2019 09:24:21 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Tue Feb 5 09:45:59 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 5 Feb 2019 09:45:59 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-trx_=C2=BB_--with-ss?= =?UTF-8?Q?e,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#860?= Message-ID: <865512480.89.1549359959315.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 107.51 KB...] Searching INPUT for files to process... Reading and parsing tag files Parsing files Building group list... Building directory list... Building namespace list... Building file list... Building class list... Associating documentation with classes... Computing nesting relations for classes... Building example list... Searching for enumerations... Searching for documented typedefs... Searching for members imported via using declarations... Searching for included using directives... Searching for documented variables... Building interface member list... Building member list... Searching for friends... Searching for documented defines... Computing class inheritance relations... Computing class usage relations... Flushing cached template relations that have become invalid... Computing class relations... Add enum values to enums... Searching for member function documentation... Creating members for template instances... Building page list... Search for main page... Computing page relations... Determining the scope of groups... Sorting lists... Freeing entry tree Determining which enums are documented Computing member relations... Building full member lists recursively... Adding members to member groups. Computing member references... Inheriting documentation... Generating disk names... Adding source references... Adding xrefitems... Sorting member lists... Computing dependencies between directories... Generating citations page... Counting data structures... Resolving user defined references... Finding anchors and sections in the documentation... Transferring function references... Combining using relations... Adding members to index pages... Generating style sheet... Generating search indices... Generating example documentation... Generating file sources... Generating file documentation... Generating page documentation... Generating group documentation... Generating class documentation... Generating namespace index... Generating graph info page... Generating directory documentation... Generating index page... Generating page index... Generating module index... Generating namespace index... Generating namespace member index... Generating annotated compound index... Generating alphabetical compound index... Generating hierarchical class index... Generating graphical class hierarchy... Generating member index... Generating file index... Generating file member index... Generating example index... finalizing index lists... writing tag file... Running dot... Running dot for graph 1/1 lookup cache used 0/65536 hits=0 misses=0 finished... make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_guide.html cp -r html /usr/bin/install -c -m 644 ../README ' make[5]: Leaving directory ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in firmware make[2]: Entering directory ' Making install in include make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_i2c_addr.h usrp_spi_defs.h fpga_regs_common.h fpga_regs_standard.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' Making install in lib make[3]: Entering directory ' sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c delay.c -o delay.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c fx2utils.c -o fx2utils.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c i2c.c -o i2c.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c isr.c -o isr.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c timer.c -o timer.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c usb_common.c -o usb_common.rel usb_common.c:65: warning 196: pointer target lost const qualifier usb_common.c:66: warning 196: pointer target lost const qualifier usb_common.c:67: warning 196: pointer target lost const qualifier usb_common.c:68: warning 196: pointer target lost const qualifier usb_common.c:71: warning 196: pointer target lost const qualifier usb_common.c:72: warning 196: pointer target lost const qualifier usb_common.c:73: warning 196: pointer target lost const qualifier usb_common.c:74: warning 196: pointer target lost const qualifier timer.c:45: warning 158: overflow in implicit constant conversion isr.c:73: warning 94: comparison is always false due to limited range of data type -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'int fixed' to type 'volatile-unsigned-char xdata* xdata' isr.c:100: warning 94: comparison is always false due to limited range of data type usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:217: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:226: warning 126: unreachable code usb_common.c:184: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG usb_common.c:315: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG rm -f libfx2.lib touch libfx2.lib for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done make[3]: Leaving directory ' Making install in src make[3]: Entering directory ' Making install in common make[4]: Entering directory ' make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory ' make[4]: Leaving directory ' Making install in usrp2 make[4]: Entering directory ' test -f `basename 'eeprom_boot.a51'` || ln -s 'eeprom_boot.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_init.rel `test -f 'eeprom_init.c' || echo './'`eeprom_init.c test -f `basename '_startup.a51'` || ln -s '_startup.a51' . test -f `basename 'vectors.a51'` || ln -s 'vectors.a51' . srcdir=. /usr/bin/python ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_common.rel `test -f 'usrp_common.c' || echo './'`usrp_common.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o board_specific.rel `test -f 'board_specific.c' || echo './'`board_specific.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_load.rel `test -f 'fpga_load.c' || echo './'`fpga_load.c test -f ../common/`basename 'eeprom_boot.a51'` -o \ \! -f `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` \ || ln -s `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` ../common/`basename 'eeprom_boot.a51'` test -f ../common/`basename 'vectors.a51'` -o \ \! -f `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` \ || ln -s `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` ../common/`basename 'vectors.a51'` test -f ../common/`basename '_startup.a51'` -o \ \! -f `dirname '_startup.a51'`/../common/`basename '_startup.a51'` \ || ln -s `dirname '_startup.a51'`/../common/`basename '_startup.a51'` ../common/`basename '_startup.a51'` sdas8051 -plosgff `basename 'eeprom_boot.a51'` sdas8051 -plosgff `basename 'vectors.a51'` sdas8051 -plosgff `basename '_startup.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_rev2.rel `test -f 'fpga_rev2.c' || echo './'`fpga_rev2.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o init_gpif.rel `test -f 'init_gpif.c' || echo './'`init_gpif.c board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'bits' board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'mask' srcdir=. /usr/bin/python ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h ../common/fpga_load.c:139: warning 85: in function clock_out_config_byte unreferenced function argument : 'bits' ../common/fpga_load.c:181: warning 126: unreachable code test -f `basename 'usb_descriptors.a51'` || ln -s 'usb_descriptors.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o spi.rel `test -f 'spi.c' || echo './'`spi.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_io.rel `test -f 'eeprom_io.c' || echo './'`eeprom_io.c test -f ../common/`basename 'usb_descriptors.a51'` -o \ \! -f `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` \ || ln -s `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` ../common/`basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o eeprom_boot.ihx eeprom_boot.rel eeprom_init.rel _startup.rel sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_main.rel `test -f 'usrp_main.c' || echo './'`usrp_main.c sdas8051 -plosgff `basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_gpif.rel `test -f 'usrp_gpif.c' || echo './'`usrp_gpif.c /usr/bin/python ./../common/build_eeprom.py -p -r2 eeprom_boot.ihx > burn-usrp2-eeprom /usr/bin/python ./../common/build_eeprom.py -p -r4 eeprom_boot.ihx > burn-usrp4-eeprom usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion chmod +x burn-usrp4-eeprom chmod +x burn-usrp2-eeprom usrp_main.c:223: warning 112: function 'setup_flowstate_common' implicit declaration usrp_main.c:260: warning 112: function 'setup_flowstate_write' implicit declaration usrp_main.c:282: warning 112: function 'setup_flowstate_read' implicit declaration usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o std.ihx vectors.rel usrp_main.rel usrp_common.rel board_specific.rel fpga_load.rel fpga_rev2.rel init_gpif.rel usrp_gpif.rel usb_descriptors.rel spi.rel eeprom_io.rel _startup.rel ?ASlink-Warning-Undefined Global '_setup_flowstate_read' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_write' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_common' referenced by module 'usrp_main' Makefile:688: recipe for target 'std.ihx' failed make[4]: *** [std.ihx] Error 1 make[4]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[3]: *** [install-recursive] Error 1 make[3]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[2]: *** [install-recursive] Error 1 make[2]: Leaving directory ' Makefile:628: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:925: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Tue Feb 5 10:16:55 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 10:16:55 +0000 Subject: Change in libosmocore[master]: bitvec: Add bitvec_tailroom_bits() function In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12816 to look at the new patch set (#3). Change subject: bitvec: Add bitvec_tailroom_bits() function ...................................................................... bitvec: Add bitvec_tailroom_bits() function This is similar to msgb_tailroom(): It returns the amount of space left at the end of the bit vector (compared to the current cursor). The function returns the number of bits left in the bitvec. Change-Id: I8980a6b6d1973b67a2d9ad411c878d956fb428d1 --- M include/osmocom/core/bitvec.h M tests/bitvec/bitvec_test.c 2 files changed, 25 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/16/12816/3 -- To view, visit https://gerrit.osmocom.org/12816 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I8980a6b6d1973b67a2d9ad411c878d956fb428d1 Gerrit-Change-Number: 12816 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 10:19:32 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 10:19:32 +0000 Subject: Change in osmo-bsc[master]: manual: Re-order chapters in more logical order In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12833 to look at the new patch set (#2). Change subject: manual: Re-order chapters in more logical order ...................................................................... manual: Re-order chapters in more logical order It makes a lot of sense to first describe the VTY interface before going on using it to configure something. Also, configuration related topics relevant to operators/sysadmins Ashould precede other content only relevant to developers, like the details of the CTRL or Abis/IP protocol. Change-Id: I0872d072bbb06f9409a72b93133d136167f03b38 --- M doc/manuals/osmobsc-usermanual.adoc 1 file changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/33/12833/2 -- To view, visit https://gerrit.osmocom.org/12833 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I0872d072bbb06f9409a72b93133d136167f03b38 Gerrit-Change-Number: 12833 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 10:20:57 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 10:20:57 +0000 Subject: Change in libosmocore[master]: bitvec: Add bitvec_tailroom_bits() function In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12816 ) Change subject: bitvec: Add bitvec_tailroom_bits() function ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12816 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I8980a6b6d1973b67a2d9ad411c878d956fb428d1 Gerrit-Change-Number: 12816 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max Gerrit-Comment-Date: Tue, 05 Feb 2019 10:20:57 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 10:20:58 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 10:20:58 +0000 Subject: Change in libosmocore[master]: bitvec: Add bitvec_tailroom_bits() function In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12816 ) Change subject: bitvec: Add bitvec_tailroom_bits() function ...................................................................... bitvec: Add bitvec_tailroom_bits() function This is similar to msgb_tailroom(): It returns the amount of space left at the end of the bit vector (compared to the current cursor). The function returns the number of bits left in the bitvec. Change-Id: I8980a6b6d1973b67a2d9ad411c878d956fb428d1 --- M include/osmocom/core/bitvec.h M tests/bitvec/bitvec_test.c 2 files changed, 25 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/core/bitvec.h b/include/osmocom/core/bitvec.h index da2d4e4..bd10709 100644 --- a/include/osmocom/core/bitvec.h +++ b/include/osmocom/core/bitvec.h @@ -93,4 +93,10 @@ return bytes; } +/*! Return the tailroom in number of unused bits remaining in the bit-vector */ +static inline unsigned int bitvec_tailroom_bits(const struct bitvec *bv) +{ + return bv->data_len*8 - bv->cur_bit; +} + /*! @} */ diff --git a/tests/bitvec/bitvec_test.c b/tests/bitvec/bitvec_test.c index c8795db..fbf5c5d 100644 --- a/tests/bitvec/bitvec_test.c +++ b/tests/bitvec/bitvec_test.c @@ -204,6 +204,24 @@ } } +static void test_tailroom() +{ + struct bitvec b; + uint8_t d[32]; + unsigned int i; + + b.data = d; + b.data_len = sizeof(d); + bitvec_zero(&b); + + OSMO_ASSERT(bitvec_tailroom_bits(&b) == sizeof(d)*8); + + for (i = 0; i < 8*sizeof(d); i++) { + bitvec_set_bit(&b, 1); + OSMO_ASSERT(bitvec_tailroom_bits(&b) == sizeof(d)*8-(i+1)); + } +} + int main(int argc, char **argv) { struct bitvec bv; @@ -311,6 +329,7 @@ printf("\nbitvec bytes used.\n"); test_used_bytes(); + test_tailroom(); printf("\nbitvec ok.\n"); return 0; -- To view, visit https://gerrit.osmocom.org/12816 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I8980a6b6d1973b67a2d9ad411c878d956fb428d1 Gerrit-Change-Number: 12816 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 10:45:01 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 10:45:01 +0000 Subject: Change in gr-gsm[master]: python/trx/__init__.py: cosmetic: add missing new line In-Reply-To: References: Message-ID: Piotr Krysik has posted comments on this change. ( https://gerrit.osmocom.org/12574 ) Change subject: python/trx/__init__.py: cosmetic: add missing new line ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I379b321866bd892a52b0c272ed50c670da380a17 Gerrit-Change-Number: 12574 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik Gerrit-Comment-Date: Tue, 05 Feb 2019 10:45:01 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 10:45:23 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 10:45:23 +0000 Subject: Change in osmo-msc[master]: Add SGs Interface In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/11642 ) Change subject: Add SGs Interface ...................................................................... Add SGs Interface Add an SGs interface (3GPP TS 29.118) to osmo-msc in order to support SMS tunneling and Circuit Switched Fallback (CSFB) Change-Id: I73359925fc1ca72b33a1466e6ac41307f2f0b11d Related: OS#3615 --- M include/osmocom/msc/Makefile.am M include/osmocom/msc/debug.h M include/osmocom/msc/gsm_04_08.h M include/osmocom/msc/gsm_subscriber.h M include/osmocom/msc/ran_conn.h A include/osmocom/msc/sgs_iface.h A include/osmocom/msc/sgs_server.h A include/osmocom/msc/sgs_vty.h M include/osmocom/msc/vlr.h A include/osmocom/msc/vlr_sgs.h M include/osmocom/msc/vty.h M src/libmsc/Makefile.am M src/libmsc/gsm_04_08.c M src/libmsc/gsm_04_08_cc.c M src/libmsc/gsm_04_11.c M src/libmsc/gsm_09_11.c M src/libmsc/gsm_subscriber.c M src/libmsc/msc_ifaces.c M src/libmsc/msc_vty.c M src/libmsc/ran_conn.c A src/libmsc/sgs_iface.c A src/libmsc/sgs_server.c A src/libmsc/sgs_vty.c M src/libmsc/silent_call.c M src/libvlr/Makefile.am M src/libvlr/vlr.c M src/libvlr/vlr_lu_fsm.c A src/libvlr/vlr_sgs.c A src/libvlr/vlr_sgs_fsm.c A src/libvlr/vlr_sgs_fsm.h M src/osmo-msc/Makefile.am M src/osmo-msc/msc_main.c M tests/msc_vlr/Makefile.am M tests/msc_vlr/msc_vlr_test_authen_reuse.c M tests/msc_vlr/msc_vlr_test_call.c M tests/msc_vlr/msc_vlr_test_gsm_authen.c M tests/msc_vlr/msc_vlr_test_gsm_ciph.c M tests/msc_vlr/msc_vlr_test_hlr_reject.c M tests/msc_vlr/msc_vlr_test_hlr_timeout.c M tests/msc_vlr/msc_vlr_test_ms_timeout.c M tests/msc_vlr/msc_vlr_test_no_authen.c M tests/msc_vlr/msc_vlr_test_reject_concurrency.c M tests/msc_vlr/msc_vlr_test_rest.c M tests/msc_vlr/msc_vlr_test_ss.c M tests/msc_vlr/msc_vlr_test_umts_authen.c A tests/msc_vlr/stubs.h M tests/sms_queue/sms_queue_test.c M tests/test_nodes.vty 48 files changed, 2,939 insertions(+), 22 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/msc/Makefile.am b/include/osmocom/msc/Makefile.am index 13ac166..408d710 100644 --- a/include/osmocom/msc/Makefile.am +++ b/include/osmocom/msc/Makefile.am @@ -23,11 +23,15 @@ a_reset.h \ ran_conn.h \ rrlp.h \ + sgs_iface.h \ + sgs_server.h \ + sgs_vty.h \ signal.h \ silent_call.h \ smpp.h \ sms_queue.h \ transaction.h \ vlr.h \ + vlr_sgs.h \ vty.h \ $(NULL) diff --git a/include/osmocom/msc/debug.h b/include/osmocom/msc/debug.h index 717cf74..28ba482 100644 --- a/include/osmocom/msc/debug.h +++ b/include/osmocom/msc/debug.h @@ -21,5 +21,6 @@ DVLR, DIUCS, DBSSAP, + DSGS, Debug_LastEntry, }; diff --git a/include/osmocom/msc/gsm_04_08.h b/include/osmocom/msc/gsm_04_08.h index 5ff16de..2d4a0cd 100644 --- a/include/osmocom/msc/gsm_04_08.h +++ b/include/osmocom/msc/gsm_04_08.h @@ -77,5 +77,6 @@ int gsm48_tch_rtp_create(struct gsm_trans *trans); int gsm48_conn_sendmsg(struct msgb *msg, struct ran_conn *conn, struct gsm_trans *trans); +struct msgb *gsm48_create_mm_info(struct gsm_network *net); #endif diff --git a/include/osmocom/msc/gsm_subscriber.h b/include/osmocom/msc/gsm_subscriber.h index 2051067..f848ac8 100644 --- a/include/osmocom/msc/gsm_subscriber.h +++ b/include/osmocom/msc/gsm_subscriber.h @@ -5,6 +5,7 @@ #include #include +#include #include @@ -36,8 +37,8 @@ */ struct subscr_request *subscr_request_conn(struct vlr_subscr *vsub, gsm_cbfn *cbfn, void *param, - const char *label); - + const char *label, + enum sgsap_service_ind serv_ind); void subscr_remove_request(struct subscr_request *req); void subscr_paging_cancel(struct vlr_subscr *vsub, enum gsm_paging_event event); diff --git a/include/osmocom/msc/ran_conn.h b/include/osmocom/msc/ran_conn.h index affebc8..fca7ab6 100644 --- a/include/osmocom/msc/ran_conn.h +++ b/include/osmocom/msc/ran_conn.h @@ -208,6 +208,7 @@ void ran_conn_rx_bssmap_clear_complete(struct ran_conn *conn); void ran_conn_rx_iu_release_complete(struct ran_conn *conn); +void ran_conn_sgs_release_sent(struct ran_conn *conn); enum ran_conn_use { RAN_CONN_USE_UNTRACKED = -1, diff --git a/include/osmocom/msc/sgs_iface.h b/include/osmocom/msc/sgs_iface.h new file mode 100644 index 0000000..a167cd6 --- /dev/null +++ b/include/osmocom/msc/sgs_iface.h @@ -0,0 +1,87 @@ +/* (C) 2018-2019 by sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * Author: Harald Welte, Philipp Maier + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#pragma once + +#include +#include +#include +#include +#include + +static const unsigned int sgs_state_timer_defaults[_NUM_SGS_STATE_TIMERS] = { + [SGS_STATE_TS5] = SGS_TS5_DEFAULT, + [SGS_STATE_TS6_2] = SGS_TS6_2_DEFAULT, + [SGS_STATE_TS7] = SGS_TS7_DEFAULT, + [SGS_STATE_TS11] = SGS_TS11_DEFAULT, + [SGS_STATE_TS14] = SGS_TS14_DEFAULT, + [SGS_STATE_TS15] = SGS_TS15_DEFAULT, +}; + +static const unsigned int sgs_state_counter_defaults[_NUM_SGS_STATE_COUNTERS] = { + [SGS_STATE_NS7] = SGS_NS7_DEFAULT, + [SGS_STATE_NS11] = SGS_NS11_DEFAULT, +}; + +struct sgs_connection { + /* global list of SGs connections */ + struct llist_head entry; + + /* back-pointer */ + struct sgs_state *sgs; + + /* Socket name from osmo_sock_get_name() */ + char sockname[OSMO_SOCK_NAME_MAXLEN]; + + /* MME for this connection, if any. This field is NULL until we + * receive the first "MME name" IE from the MME, which could be part + * of the RESET procedure, but also just a normal LU request. */ + struct sgs_mme_ctx *mme; + + /* represents the SCTP connection we accept()ed from this MME */ + struct osmo_stream_srv *srv; +}; + +struct sgs_mme_ctx { + /* global list of MME contexts */ + struct llist_head entry; + + /* back-pointer */ + struct sgs_state *sgs; + + /* MME name as string representation */ + char fqdn[GSM23003_MME_DOMAIN_LEN + 1]; + + /* current connection for this MME, if any. Can be NULL if the SCTP + * connection to the MME was lost and hasn't been re-established yet */ + struct sgs_connection *conn; + + /* FSM for the "VLR reset" procedure" */ + struct osmo_fsm_inst *fi; + unsigned int ns11_remaining; +}; + +extern struct sgs_state *g_sgs; + +struct sgs_state *sgs_iface_init(void *ctx, struct gsm_network *network); +int sgs_iface_rx(struct sgs_connection *sgc, struct msgb *msg); +int sgs_iface_tx_paging(struct vlr_subscr *vsub, enum sgsap_service_ind serv_ind); +int sgs_iface_tx_dtap_ud(struct msgb *msg); +void sgs_iface_tx_release(struct ran_conn *conn); diff --git a/include/osmocom/msc/sgs_server.h b/include/osmocom/msc/sgs_server.h new file mode 100644 index 0000000..a89022d --- /dev/null +++ b/include/osmocom/msc/sgs_server.h @@ -0,0 +1,53 @@ +/* (C) 2018-2019 by sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * Author: Harald Welte, Philipp Maier + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#pragma once + +#include +#include + +#define DEFAULT_SGS_SERVER_IP "0.0.0.0" +#define DEFAULT_SGS_SERVER_VLR_NAME "vlr.example.net" + +/* global SGs state */ +struct sgs_state { + /* list of MMEs (sgs_mme_ctx) */ + struct llist_head mme_list; + + /* list of SCTP client connections */ + struct llist_head conn_list; + + /* SCTP server for inbound SGs connections */ + struct osmo_stream_srv_link *srv_link; + + struct { + char local_addr[INET6_ADDRSTRLEN]; + uint16_t local_port; + /* user-configured VLR name (FQDN) */ + char vlr_name[SGS_VLR_NAME_MAXLEN]; + /* timers on VLR side */ + unsigned int timer[_NUM_SGS_STATE_TIMERS]; + /* countrs on VLR side */ + unsigned int counter[_NUM_SGS_STATE_COUNTERS]; + } cfg; +}; + +struct sgs_state *sgs_server_alloc(void *ctx); +int sgs_server_open(struct sgs_state *sgs); diff --git a/include/osmocom/msc/sgs_vty.h b/include/osmocom/msc/sgs_vty.h new file mode 100644 index 0000000..daf69c1 --- /dev/null +++ b/include/osmocom/msc/sgs_vty.h @@ -0,0 +1,23 @@ +/* (C) 2018-2019 by sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * Author: Harald Welte, Philipp Maier + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#pragma once + +void sgs_vty_init(void); diff --git a/include/osmocom/msc/vlr.h b/include/osmocom/msc/vlr.h index 83c8e1b..3529640 100644 --- a/include/osmocom/msc/vlr.h +++ b/include/osmocom/msc/vlr.h @@ -13,6 +13,7 @@ #include #include #include +#include #define LOGGSUPP(level, gsup, fmt, args...) \ LOGP(DVLR, level, "GSUP(%s) " fmt, (gsup)->imsi, ## args) @@ -162,6 +163,7 @@ struct osmo_fsm_inst *lu_fsm; struct osmo_fsm_inst *auth_fsm; struct osmo_fsm_inst *proc_arq_fsm; + struct osmo_fsm_inst *sgs_fsm; bool lu_complete; time_t expire_lu; @@ -182,6 +184,17 @@ uint8_t lac; enum osmo_rat_type attached_via_ran; } cs; + /* SGs (MME) specific parts */ + struct { + struct vlr_sgs_cfg cfg; + char mme_name[SGS_MME_NAME_LEN + 1]; + struct osmo_location_area_id lai; + vlr_sgs_lu_response_cb_t response_cb; + vlr_sgs_lu_paging_cb_t paging_cb; + vlr_sgs_lu_mminfo_cb_t mminfo_cb; + enum sgsap_service_ind paging_serv_ind; + struct osmo_timer_list Ts5; + } sgs; struct gsm_classmark classmark; }; diff --git a/include/osmocom/msc/vlr_sgs.h b/include/osmocom/msc/vlr_sgs.h new file mode 100644 index 0000000..cc07807 --- /dev/null +++ b/include/osmocom/msc/vlr_sgs.h @@ -0,0 +1,107 @@ +/* (C) 2018-2019 by sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * Author: Harald Welte, Philipp Maier + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#pragma once + +#include + +enum vlr_lu_type; +struct vlr_subscr; +struct vlr_instance; + +/* See also 3GPP TS 29.118, chapter 4.2.2 States at the VLR */ +enum sgs_ue_fsm_state { + SGS_UE_ST_NULL, + SGS_UE_ST_ASSOCIATED, + SGS_UE_ST_LA_UPD_PRES, +}; + +enum vlr_sgs_state_tmr { + /* Started when sending the SGsAP-PAGING-REQUEST, implemented in vlr_sgs.c */ + SGS_STATE_TS5, + /* TMSI reallocation, 5.2.3.5, implemented by fsm in vlr_sgs_fsm.c */ + SGS_STATE_TS6_2, + /* Started when SGsAP-ALERT-REQUEST is sent 5.3.2.1, not implemented yet */ + SGS_STATE_TS7, + /* Reset ack timeout, implemnted in sgs_iface.c */ + SGS_STATE_TS11, + /* Started when SGsAP-SERVICE-REQUEST is received 5.15.1, not implemented yet */ + SGS_STATE_TS14, + /* Started when SGsAP-MO-CSFB-INDICATION is received 5.16.3 (UE fallback, not implemented yet) */ + SGS_STATE_TS15, + _NUM_SGS_STATE_TIMERS +}; + +enum vlr_sgs_state_ctr { + /* Alert request retransmit count */ + SGS_STATE_NS7, + /* Reset repeat count */ + SGS_STATE_NS11, + _NUM_SGS_STATE_COUNTERS +}; + +extern const struct value_string sgs_state_timer_names[]; +static inline const char *vlr_sgs_state_timer_name(enum vlr_sgs_state_tmr Ts) +{ + return get_value_string(sgs_state_timer_names, Ts); +} + +extern const struct value_string sgs_state_counter_names[]; +static inline const char *vlr_sgs_state_counter_name(enum vlr_sgs_state_ctr Ns) +{ + return get_value_string(sgs_state_timer_names, Ns); +} + +/* This callback function is called when an SGs location update is complete */ +struct sgs_lu_response { + bool accepted; + struct vlr_subscr *vsub; +}; +typedef void (*vlr_sgs_lu_response_cb_t) (struct sgs_lu_response *response); + +/* This callback function is called in cases where a paging request is required + * after the LU is completed */ +typedef int (*vlr_sgs_lu_paging_cb_t) (struct vlr_subscr *vsub, enum sgsap_service_ind serv_ind); + +/* This callback function is called to send the MM info to the UE. */ +typedef void (*vlr_sgs_lu_mminfo_cb_t) (struct vlr_subscr *vsub); + +/* Configuration parameters for the SGs FSM */ +struct vlr_sgs_cfg { + unsigned int timer[_NUM_SGS_STATE_TIMERS]; + unsigned int counter[_NUM_SGS_STATE_COUNTERS]; +}; + +void vlr_sgs_reset(struct vlr_instance *vlr); +int vlr_sgs_loc_update(struct vlr_instance *vlr, struct vlr_sgs_cfg *cfg, + vlr_sgs_lu_response_cb_t response_cb, vlr_sgs_lu_paging_cb_t paging_cb, + vlr_sgs_lu_mminfo_cb_t mminfo_cb, char *mme_name, enum vlr_lu_type type, const char *imsi, + struct osmo_location_area_id *new_lai); +void vlr_sgs_loc_update_acc_sent(struct vlr_subscr *vsub); +void vlr_sgs_loc_update_rej_sent(struct vlr_subscr *vsub); +void vlr_sgs_detach(struct vlr_instance *vlr, const char *imsi, bool eps); +void vlr_sgs_imsi_detach(struct vlr_instance *vlr, const char *imsi, enum sgsap_imsi_det_noneps_type type); +void vlr_sgs_eps_detach(struct vlr_instance *vlr, const char *imsi, enum sgsap_imsi_det_eps_type type); +void vlr_sgs_tmsi_reall_compl(struct vlr_instance *vlr, const char *imsi); +void vlr_sgs_pag_rej(struct vlr_instance *vlr, const char *imsi, enum sgsap_sgs_cause cause); +void vlr_sgs_pag_ack(struct vlr_instance *vlr, const char *imsi); +void vlr_sgs_ue_unr(struct vlr_instance *vlr, const char *imsi, enum sgsap_sgs_cause cause); +void vlr_sgs_pag(struct vlr_subscr *vsub, enum sgsap_service_ind serv_ind); +bool vlr_sgs_pag_pend(struct vlr_subscr *vsub); diff --git a/include/osmocom/msc/vty.h b/include/osmocom/msc/vty.h index 6a55df7..2a3b18b 100644 --- a/include/osmocom/msc/vty.h +++ b/include/osmocom/msc/vty.h @@ -23,6 +23,7 @@ SMPP_NODE, SMPP_ESME_NODE, HLR_NODE, + CFG_SGS_NODE, }; int bsc_vty_init_extra(void); diff --git a/src/libmsc/Makefile.am b/src/libmsc/Makefile.am index 72da747..454b970 100644 --- a/src/libmsc/Makefile.am +++ b/src/libmsc/Makefile.am @@ -17,6 +17,7 @@ $(LIBOSMOMGCPCLIENT_CFLAGS) \ $(LIBOSMOGSUPCLIENT_CFLAGS) \ $(LIBOSMORANAP_CFLAGS) \ + $(LIBOSMONETIF_CFLAGS) \ $(NULL) noinst_HEADERS = \ @@ -52,6 +53,9 @@ transaction.c \ osmo_msc.c \ ctrl_commands.c \ + sgs_iface.c \ + sgs_server.c \ + sgs_vty.c \ $(NULL) if BUILD_IU libmsc_a_SOURCES += \ diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c index adc946e..c6e5528 100644 --- a/src/libmsc/gsm_04_08.c +++ b/src/libmsc/gsm_04_08.c @@ -469,13 +469,12 @@ return ret; } - -/* Section 9.2.15a */ -int gsm48_tx_mm_info(struct ran_conn *conn) +/* Generate a message buffer that contains a valid MM info message, + * See also 3GPP TS 24.008, chapter 9.2.15a */ +struct msgb *gsm48_create_mm_info(struct gsm_network *net) { struct msgb *msg = gsm48_msgb_alloc_name("GSM 04.08 MM INF"); struct gsm48_hdr *gh; - struct gsm_network *net = conn->network; uint8_t *ptr8; int name_len, name_pad; @@ -617,8 +616,18 @@ ptr8[2] = dst; } - LOG_RAN_CONN(conn, LOGL_DEBUG, "Tx MM INFO\n"); + return msg; +} +/* Section 9.2.15a */ +int gsm48_tx_mm_info(struct ran_conn *conn) +{ + struct gsm_network *net = conn->network; + struct msgb *msg; + + msg = gsm48_create_mm_info(net); + + LOG_RAN_CONN(conn, LOGL_DEBUG, "Tx MM INFO\n"); return gsm48_conn_sendmsg(msg, conn, NULL); } diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c index 0119e7b..93e136c 100644 --- a/src/libmsc/gsm_04_08_cc.c +++ b/src/libmsc/gsm_04_08_cc.c @@ -1969,7 +1969,8 @@ vsub, setup_trig_pag_evt, trans, - "MNCC: establish call"); + "MNCC: establish call", + SGSAP_SERV_IND_CS_CALL); if (!trans->paging_request) { LOGP(DCC, LOGL_ERROR, "Failed to allocate paging token.\n"); vlr_subscr_put(vsub); diff --git a/src/libmsc/gsm_04_11.c b/src/libmsc/gsm_04_11.c index 1edf2d4..e63d1b6 100644 --- a/src/libmsc/gsm_04_11.c +++ b/src/libmsc/gsm_04_11.c @@ -193,7 +193,9 @@ LOGP(DLSMS, LOGL_DEBUG, "Initiating Paging procedure " "for %s due to MMSMS_EST_REQ\n", vlr_subscr_name(trans->vsub)); trans->paging_request = subscr_request_conn(trans->vsub, - paging_cb_mmsms_est_req, trans, "MT SMS"); + paging_cb_mmsms_est_req, + trans, "MT SMS", + SGSAP_SERV_IND_SMS); if (!trans->paging_request) { LOGP(DLSMS, LOGL_ERROR, "Failed to initiate Paging " "procedure for %s\n", vlr_subscr_name(trans->vsub)); diff --git a/src/libmsc/gsm_09_11.c b/src/libmsc/gsm_09_11.c index 608d4ff..dca315d 100644 --- a/src/libmsc/gsm_09_11.c +++ b/src/libmsc/gsm_09_11.c @@ -343,7 +343,8 @@ /* Trigger Paging Request */ trans->paging_request = subscr_request_conn(vsub, - &handle_paging_event, trans, "GSM 09.11 SS/USSD"); + &handle_paging_event, trans, "GSM 09.11 SS/USSD", + SGSAP_SERV_IND_CS_CALL); if (!trans->paging_request) { LOGP(DMM, LOGL_ERROR, "Failed to allocate paging token\n"); trans_free(trans); diff --git a/src/libmsc/gsm_subscriber.c b/src/libmsc/gsm_subscriber.c index 9ca5e2b..e60344f 100644 --- a/src/libmsc/gsm_subscriber.c +++ b/src/libmsc/gsm_subscriber.c @@ -48,6 +48,7 @@ #include #include #include +#include void subscr_paging_cancel(struct vlr_subscr *vsub, enum gsm_paging_event event) { @@ -109,7 +110,9 @@ return 0; } -static int msc_paging_request(struct vlr_subscr *vsub) +/* Execute a paging on the currently active RAN. Returns the number of + * delivered paging requests or -EINVAL in case of failure. */ +static int msc_paging_request(struct vlr_subscr *vsub, enum sgsap_service_ind serv_ind) { /* The subscriber was last seen in subscr->lac. Find out which * BSCs/RNCs are responsible and send them a paging request via open @@ -122,6 +125,8 @@ vsub->tmsi == GSM_RESERVED_TMSI? NULL : &vsub->tmsi, vsub->cgi.lai.lac); + case OSMO_RAT_EUTRAN_SGS: + return sgs_iface_tx_paging(vsub, serv_ind); default: break; } @@ -142,10 +147,11 @@ * \param cbfn function to call when the conn is established. * \param param caller defined param to pass to cbfn(). * \param label human readable label of the request kind used for logging. + * \param serv_ind sgsap service indicator (in case SGs interface is used to page). */ struct subscr_request *subscr_request_conn(struct vlr_subscr *vsub, gsm_cbfn *cbfn, void *param, - const char *label) + const char *label, enum sgsap_service_ind serv_ind) { int rc; struct subscr_request *request; @@ -155,7 +161,7 @@ if (!vsub->cs.is_paging) { LOGP(DMM, LOGL_DEBUG, "Subscriber %s not paged yet, start paging.\n", vlr_subscr_name(vsub)); - rc = msc_paging_request(vsub); + rc = msc_paging_request(vsub, serv_ind); if (rc <= 0) { LOGP(DMM, LOGL_ERROR, "Subscriber %s paging failed: %d\n", vlr_subscr_name(vsub), rc); diff --git a/src/libmsc/msc_ifaces.c b/src/libmsc/msc_ifaces.c index 3074d07..e2c52df 100644 --- a/src/libmsc/msc_ifaces.c +++ b/src/libmsc/msc_ifaces.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -60,6 +61,10 @@ msg->dst = conn->iu.ue_ctx; return ranap_iu_tx(msg, 0); + case OSMO_RAT_EUTRAN_SGS: + msg->dst = conn; + return sgs_iface_tx_dtap_ud(msg); + default: LOGP(DMSC, LOGL_ERROR, "msc_tx(): conn->via_ran invalid (%d)\n", diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c index 93d093f..e1019a2 100644 --- a/src/libmsc/msc_vty.c +++ b/src/libmsc/msc_vty.c @@ -56,6 +56,8 @@ #include #include #include +#include +#include static struct gsm_network *gsmnet = NULL; @@ -565,7 +567,7 @@ { vty_out(vty, "%08x %3s %5u %3u %08x %c /%1u %27s %22s%s", conn->a.conn_id, - conn->via_ran == OSMO_RAT_UTRAN_IU ? "Iu" : "A", + osmo_rat_type_name(conn->via_ran), conn->lac, conn->use_count, conn->use_tokens, @@ -729,6 +731,15 @@ reqs += 1; vty_out(vty, " Paging: %s paging for %d requests%s", vsub->cs.is_paging ? "is" : "not", reqs, VTY_NEWLINE); + + /* SGs related */ + vty_out(vty, " SGs-state: %s%s", + osmo_fsm_inst_state_name(vsub->sgs_fsm), VTY_NEWLINE); + if (vsub->sgs.mme_name && strlen(vsub->sgs.mme_name)) + vty_out(vty, " SGs-MME: %s%s", vsub->sgs.mme_name, VTY_NEWLINE); + else + vty_out(vty, " SGs-MME: (none)%s", VTY_NEWLINE); + vty_out(vty, " Use count: %u%s", vsub->use_count, VTY_NEWLINE); /* Connection */ @@ -1159,7 +1170,7 @@ return CMD_WARNING; } - req = subscr_request_conn(vsub, NULL, NULL, "manual Paging from VTY"); + req = subscr_request_conn(vsub, NULL, NULL, "manual Paging from VTY", SGSAP_SERV_IND_CS_CALL); if (req) vty_out(vty, "%% paging subscriber%s", VTY_NEWLINE); else @@ -1590,6 +1601,7 @@ #ifdef BUILD_IU ranap_iu_vty_init(MSC_NODE, &msc_network->iu.rab_assign_addr_enc); #endif + sgs_vty_init(); osmo_fsm_vty_add_cmds(); osmo_signal_register_handler(SS_SCALL, scall_cbfn, NULL); diff --git a/src/libmsc/ran_conn.c b/src/libmsc/ran_conn.c index 4eefa6d..6629bf6 100644 --- a/src/libmsc/ran_conn.c +++ b/src/libmsc/ran_conn.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include "../../bscconfig.h" @@ -338,6 +339,13 @@ { struct ran_conn *conn = fi->priv; + /* The SGs interface needs to access vsub struct members to send the + * release message, however the following release procedures will + * remove conn->vsub, so we need to send the release right now. */ + if (conn->via_ran == OSMO_RAT_EUTRAN_SGS) { + sgs_iface_tx_release(conn); + } + /* Use count for either conn->a.waiting_for_clear_complete or * conn->iu.waiting_for_release_complete. 'get' it early, so we don't deallocate after tearing * down active transactions. Safeguard against double-get (though it shouldn't happen). */ @@ -381,6 +389,12 @@ } conn->iu.waiting_for_release_complete = true; break; + case OSMO_RAT_EUTRAN_SGS: + /* Release message is already sent at the beginning of this + * functions (see above), but we still need to notify the + * conn that a release has been sent / is in progress. */ + ran_conn_sgs_release_sent(conn); + break; default: LOGP(DMM, LOGL_ERROR, "%s: Unknown RAN type, cannot tx release/clear\n", vlr_subscr_name(conn->vsub)); @@ -667,6 +681,8 @@ case OSMO_RAT_UTRAN_IU: conn->log_subsys = DRANAP; break; + case OSMO_RAT_EUTRAN_SGS: + conn->log_subsys = DSGS; default: conn->log_subsys = DMSC; break; @@ -772,3 +788,11 @@ { rx_close_complete(conn, "Iu Release Complete", &conn->iu.waiting_for_release_complete); } + +void ran_conn_sgs_release_sent(struct ran_conn *conn) +{ + bool dummy_waiting_for_release_complete = true; + + /* Note: In SGsAP there is no confirmation of a release. */ + rx_close_complete(conn, "SGs Release Complete", &dummy_waiting_for_release_complete); +} diff --git a/src/libmsc/sgs_iface.c b/src/libmsc/sgs_iface.c new file mode 100644 index 0000000..1c2146a --- /dev/null +++ b/src/libmsc/sgs_iface.c @@ -0,0 +1,1265 @@ +/* SGs Interface according to 3GPP TS 23.272 + TS 29.118 */ + +/* (C) 2018-2019 by sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * Author: Harald Welte, Philipp Maier + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +#define S(x) (1 << (x)) + +/* A pointer to the GSM network we work with. By the current paradigm, + * there can only be one gsm_network per MSC. The pointer is set once + * when calling a_init() */ +static struct gsm_network *gsm_network = NULL; + +static struct osmo_fsm sgs_vlr_reset_fsm; +static void sgs_tx(struct sgs_connection *sgc, struct msgb *msg); + +struct sgs_state *g_sgs; + +/*********************************************************************** + * SGs state per MME connection + ***********************************************************************/ + +#define LOGSGC(sgc, lvl, fmt, args...) \ + LOGP(DSGS, lvl, "%s: " fmt, sgc->sockname, ## args) + +#define LOGSGC_VSUB(sgc, sub_info, lvl, fmt, args...) \ + LOGP(DSGS, lvl, "(sub %s) %s: " fmt, sub_info, sgc->sockname, ## args) + +#define LOGMME(mme, lvl, fmt, args...) \ + LOGP(DSGS, lvl, "%s: " fmt, mme->fqdn ? mme->fqdn : mme->conn->sockname, ## args) + +enum sgs_vlr_reset_fsm_state { + SGS_VLRR_ST_NULL, + SGS_VLRR_ST_WAIT_ACK, + SGS_VLRR_ST_COMPLETE, +}; + +enum sgs_vlr_reset_fsm_event { + SGS_VLRR_E_START_RESET, + SGS_VLRR_E_RX_RESET_ACK, +}; + +/*********************************************************************** + * SGs utility functions + ***********************************************************************/ + +/* Allocate a new subscriber connection */ +static struct ran_conn *subscr_conn_allocate_sgs(struct sgs_connection *sgc, struct vlr_subscr *vsub, bool mt) +{ + struct ran_conn *conn; + + conn = ran_conn_alloc(gsm_network, OSMO_RAT_EUTRAN_SGS, vsub->sgs.lai.lac); + if (!conn) { + LOGSGC_VSUB(sgc, vlr_subscr_name(vsub), LOGL_ERROR, "Connection allocation failed\n"); + return NULL; + } + + conn->vsub = vsub; + conn->vsub->cs.attached_via_ran = conn->via_ran; + + /* Accept the connection immediately, since the UE is already + * authenticated by the MME no authentication is required. */ + conn->complete_layer3_type = mt ? COMPLETE_LAYER3_PAGING_RESP : COMPLETE_LAYER3_CM_SERVICE_REQ; + ran_conn_update_id(conn); + osmo_fsm_inst_dispatch(conn->fi, RAN_CONN_E_COMPLETE_LAYER_3, NULL); + osmo_fsm_inst_dispatch(conn->fi, RAN_CONN_E_ACCEPTED, NULL); + + LOG_RAN_CONN(conn, LOGL_DEBUG, "RAN connection successfully allocated!\n"); + return conn; +} + +/* Check if there are connections associated with a given subscriber. If yes, + * make sure that those connections are tossed. */ +static void subscr_conn_toss(struct vlr_subscr *vsub) +{ + struct ran_conn *conn; + + conn = connection_for_subscr(vsub); + if (!conn) + return; + + LOG_RAN_CONN(conn, LOGL_DEBUG, "RAN connection tossed because of unexpected RAN change!\n"); + + ran_conn_mo_close(conn, GSM48_REJECT_CONGESTION); +} + +struct sgs_mme_ctx *sgs_mme_by_fqdn(struct sgs_state *sgs, const char *mme_fqdn) +{ + struct sgs_mme_ctx *mme; + + llist_for_each_entry(mme, &sgs->mme_list, entry) { + if (!strcasecmp(mme_fqdn, mme->fqdn)) + return mme; + } + return NULL; +} + +static struct sgs_mme_ctx *sgs_mme_alloc(struct sgs_state *sgs, const char *mme_fqdn, const struct osmo_gummei *gummei) +{ + struct sgs_mme_ctx *mme; + + OSMO_ASSERT(sgs_mme_by_fqdn(sgs, mme_fqdn) == NULL); + + mme = talloc_zero(sgs, struct sgs_mme_ctx); + if (!mme) + return NULL; + mme->sgs = sgs; + OSMO_STRLCPY_ARRAY(mme->fqdn, mme_fqdn); + mme->fi = osmo_fsm_inst_alloc(&sgs_vlr_reset_fsm, mme, mme, LOGL_INFO, osmo_gummei_name(gummei)); + if (!mme->fi) { + talloc_free(mme); + return NULL; + } + llist_add_tail(&mme->entry, &sgs->mme_list); + return mme; +} + +/* Decode and verify MME name */ +static int decode_mme_name(char *mme_name, const struct tlv_parsed *tp) +{ + const uint8_t *mme_name_enc = TLVP_VAL_MINLEN(tp, SGSAP_IE_MME_NAME, SGS_MME_NAME_LEN); + struct osmo_gummei gummei; + + if (!mme_name_enc) + return -EINVAL; + + /* decode the MME name from DNS labels to string */ + osmo_apn_to_str(mme_name, TLVP_VAL(tp, SGSAP_IE_MME_NAME), TLVP_LEN(tp, SGSAP_IE_MME_NAME)); + + /* try to parse the MME name into a GUMMEI as a test for the format */ + if (osmo_parse_mme_domain(&gummei, mme_name) < 0) + return -EINVAL; + + return 0; +} + +/* A MME FQDN was received (e.g. RESET-IND/RESET-ACK/LU-REQ) */ +static int sgs_mme_fqdn_received(struct sgs_connection *sgc, const char *mme_fqdn) +{ + struct sgs_mme_ctx *mme; + struct osmo_gummei gummei; + + /* caller must pass in a valid FQDN string syntax */ + OSMO_ASSERT(osmo_parse_mme_domain(&gummei, mme_fqdn) == 0); + + if (!sgc->mme) { + /* attempt to find MME with given name */ + mme = sgs_mme_by_fqdn(sgc->sgs, mme_fqdn); + if (!mme) + mme = sgs_mme_alloc(sgc->sgs, mme_fqdn, &gummei); + OSMO_ASSERT(mme); + + if (mme->conn) { + /* The MME context has another connection !?! */ + LOGSGC(sgc, LOGL_ERROR, "Rx MME name %s, but that MME already has other " + "SCTP connection?!?\n", mme_fqdn); + return -1; + } else { + /* associate the two */ + mme->conn = sgc; + sgc->mme = mme; + } + } else { + mme = sgc->mme; + if (strcasecmp(mme->fqdn, mme_fqdn) != 0) { + LOGMME(mme, LOGL_ERROR, "Rx MME name \"%s\" in packet from MME \"%s\" ?!?\n", mme_fqdn, + mme->fqdn); + return -2; + } + } + return 0; +} + +/* Safely get the mme-name for an sgs-connection */ +static char *sgs_mme_fqdn_get(struct sgs_connection *sgc) +{ + if (!sgc) + return NULL; + if (!sgc->mme) + return NULL; + if (sgc->mme->fqdn[0] == '\0') + return NULL; + return sgc->mme->fqdn; +} + +/* Find an sgs_mme_ctx for a given vlr subscriber, also check result */ +struct sgs_mme_ctx *sgs_mme_ctx_by_vsub(struct vlr_subscr *vsub, uint8_t msg_type) +{ + struct sgs_mme_ctx *mme; + + /* Find SGS connection by MME name */ + mme = sgs_mme_by_fqdn(g_sgs, vsub->sgs.mme_name); + if (!mme) { + LOGP(DSGS, LOGL_ERROR, "(sub %s) Tx %s cannot find suitable MME!\n", + vlr_subscr_name(vsub), sgsap_msg_type_name(msg_type)); + return NULL; + } + if (!mme->conn) { + LOGP(DSGS, LOGL_ERROR, + "(sub %s) Tx %s suitable MME found, but no SGS connection present!\n", + vlr_subscr_name(vsub), sgsap_msg_type_name(msg_type)); + return NULL; + } + if (!mme->sgs) { + LOGP(DSGS, LOGL_ERROR, + "(sub %s) Tx %s suitable MME found, but no SGS state present!\n", + vlr_subscr_name(vsub), sgsap_msg_type_name(msg_type)); + return NULL; + } + + return mme; +} + +/* Make sure that the subscriber is known and that the subscriber is in the + * SGs associated state. In case of failure the function returns false and + * automatically sends a release message to the MME */ +static bool check_sgs_association(struct sgs_connection *sgc, struct msgb *msg, char *imsi) +{ + struct vlr_subscr *vsub; + struct msgb *resp; + uint8_t msg_type = msg->data[0]; + + /* Subscriber must be known by the VLR */ + vsub = vlr_subscr_find_by_imsi(gsm_network->vlr, imsi); + if (!vsub) { + LOGSGC(sgc, LOGL_NOTICE, "SGsAP Message %s with unknown IMSI (%s), releasing\n", + sgsap_msg_type_name(msg_type), imsi); + resp = gsm29118_create_release_req(imsi, SGSAP_SGS_CAUSE_IMSI_UNKNOWN); + sgs_tx(sgc, resp); + return false; + } + + /* The SGs FSM must also be in SGs associated state */ + if (vsub->sgs_fsm->state != SGS_UE_ST_ASSOCIATED) { + LOGSGC(sgc, LOGL_NOTICE, "(sub %s) SGsAP Message %s subscriber not SGs-associated, releasing\n", + vlr_subscr_name(vsub), sgsap_msg_type_name(msg_type)); + resp = gsm29118_create_release_req(vsub->imsi, SGSAP_SGS_CAUSE_IMSI_DET_EPS_NONEPS); + sgs_tx(sgc, resp); + vlr_subscr_put(vsub); + return false; + } + + vlr_subscr_put(vsub); + return true; +} + +/*********************************************************************** + * SGsAP transmit functions + ***********************************************************************/ + +/* Send message out to remote end (final step) */ +static void sgs_tx(struct sgs_connection *sgc, struct msgb *msg) +{ + if (!msg) { + LOGSGC(sgc, LOGL_NOTICE, "Null message, cannot transmit!\n"); + return; + } + + msgb_sctp_ppid(msg) = 0; + if (!sgc) { + LOGSGC(sgc, LOGL_NOTICE, "Cannot transmit %s: connection dead. Discarding\n", + sgsap_msg_type_name(msg->data[0])); + msgb_free(msg); + return; + } + osmo_stream_srv_send(sgc->srv, msg); +} + +/* Get some subscriber info from ISMI (for the log text) */ +const char *subscr_info(const char *imsi) +{ + const char *subscr_string = ""; + struct vlr_subscr *vsub; + + if (imsi) { + vsub = vlr_subscr_find_by_imsi(gsm_network->vlr, imsi); + if (!vsub) + subscr_string = imsi; + else { + subscr_string = vlr_subscr_name(vsub); + vlr_subscr_put(vsub); + } + } + + return subscr_string; +} + +/* Comfortable status message generator that also generates some basic + * context-dependent dependand log output */ +static int sgs_tx_status(struct sgs_connection *sgc, const char *imsi, enum sgsap_sgs_cause cause, struct msgb *msg, + int sgsap_iei) +{ + struct msgb *resp; + + if (sgsap_iei < 0) { + LOGSGC_VSUB(sgc, subscr_info(imsi), LOGL_ERROR, "Rx %s failed with cause %s!\n", + sgsap_msg_type_name(msg->data[0]), sgsap_sgs_cause_name(cause)); + } else if (cause == SGSAP_SGS_CAUSE_MISSING_MAND_IE) { + LOGSGC_VSUB(sgc, subscr_info(imsi), LOGL_ERROR, "Rx %s with missing mandatory %s IEI!\n", + sgsap_msg_type_name(msg->data[0]), sgsap_iei_name(sgsap_iei)); + } else if (cause == SGSAP_SGS_CAUSE_INVALID_MAND_IE) { + LOGSGC_VSUB(sgc, subscr_info(imsi), LOGL_ERROR, "Rx %s with invalid mandatory %s IEI!\n", + sgsap_msg_type_name(msg->data[0]), sgsap_iei_name(sgsap_iei)); + } else if (cause == SGSAP_SGS_CAUSE_COND_IE_ERROR) { + LOGSGC_VSUB(sgc, subscr_info(imsi), LOGL_ERROR, "Rx %s with errornous conditional %s IEI!\n", + sgsap_msg_type_name(msg->data[0]), sgsap_iei_name(sgsap_iei)); + } else { + LOGSGC_VSUB(sgc, subscr_info(imsi), LOGL_ERROR, "Rx %s failed with cause %s at %s IEI!\n", + sgsap_msg_type_name(msg->data[0]), sgsap_sgs_cause_name(cause), sgsap_iei_name(sgsap_iei)); + } + + resp = gsm29118_create_status(imsi, cause, msg); + sgs_tx(sgc, resp); + return 0; +} + +/* Called by VLR via callback, transmits the the location update response or + * reject, depending on the outcome of the location update. */ +static void sgs_tx_loc_upd_resp_cb(struct sgs_lu_response *response) +{ + struct msgb *resp; + struct vlr_subscr *vsub = response->vsub; + struct sgs_mme_ctx *mme; + uint8_t new_id[2 + GSM48_TMSI_LEN]; + uint8_t *new_id_ptr = new_id; + unsigned int new_id_len = 0; + uint8_t resp_msg_type; + + if (response->accepted) + resp_msg_type = SGSAP_MSGT_LOC_UPD_ACK; + else + resp_msg_type = SGSAP_MSGT_LOC_UPD_REJ; + + mme = sgs_mme_ctx_by_vsub(vsub, resp_msg_type); + if (!mme) + return; + + if (response->accepted) { + if (vsub->tmsi_new != GSM_RESERVED_TMSI) { + new_id_len = gsm48_generate_mid_from_tmsi(new_id, vsub->tmsi_new); + new_id_ptr = new_id + 2; + new_id_len -= 2; + } + resp = gsm29118_create_lu_ack(vsub->imsi, &vsub->sgs.lai, new_id_ptr, new_id_len); + sgs_tx(mme->conn, resp); + vlr_sgs_loc_update_acc_sent(vsub); + } else { + resp = gsm29118_create_lu_rej(vsub->imsi, SGSAP_SGS_CAUSE_IMSI_UNKNOWN, &vsub->sgs.lai); + sgs_tx(mme->conn, resp); + vlr_sgs_loc_update_rej_sent(vsub); + } +} + +/* Called by VLR via callback, transmits MM information to the UE */ +static void sgs_tx_mm_info_cb(struct vlr_subscr *vsub) +{ + struct msgb *msg; + struct msgb *msg_mm_info; + struct sgs_mme_ctx *mme; + + /* The sending of MM information requests is an optional feature and + * depends on the network configuration (VTY) */ + if (!gsm_network->send_mm_info) + return; + + mme = sgs_mme_ctx_by_vsub(vsub, SGSAP_MSGT_MM_INFO_REQ); + if (!mme) + return; + + /* Create and send MM information request message, see also: + * 3GPP TS 29.118, chapter 8.12 SGsAP-MM-INFORMATION-REQUEST and + * 3GPP TS 29.018, chapter 18.4.16 MM information. */ + msg_mm_info = gsm48_create_mm_info(gsm_network); + msg = gsm29118_create_mm_info_req(vsub->imsi, msg_mm_info->data + 2, msg_mm_info->len - 2); + sgs_tx(mme->conn, msg); + msgb_free(msg_mm_info); +} + +/*! Page UE through SGs interface + * \param[in] vsub subscriber context + * \param[in] serv_ind service indicator (sms or voide) + * \returns 0 in case of success, -EINVAL in case of error. */ +int sgs_iface_tx_paging(struct vlr_subscr *vsub, enum sgsap_service_ind serv_ind) +{ + struct msgb *resp; + struct gsm29118_paging_req paging_params; + struct sgs_mme_ctx *mme; + + /* See also: 3GPP TS 29.118, chapter 5.1.2.2 Paging Initiation */ + if (vsub->sgs_fsm->state == SGS_UE_ST_NULL && vsub->conf_by_radio_contact_ind == true) + return -EINVAL; + + mme = sgs_mme_ctx_by_vsub(vsub, SGSAP_MSGT_PAGING_REQ); + if (!mme) + return -EINVAL; + + /* Check if there is still a paging in progress for this subscriber, + * if yes, don't initiate another paging request. */ + if (vlr_sgs_pag_pend(vsub)) + return 0; + + memset(&paging_params, 0, sizeof(paging_params)); + osmo_strlcpy(paging_params.imsi, vsub->imsi, sizeof(paging_params.imsi)); + osmo_strlcpy(paging_params.vlr_name, mme->sgs->cfg.vlr_name, sizeof(paging_params.vlr_name)); + paging_params.serv_ind = serv_ind; + if (vsub->conf_by_radio_contact_ind == true) { + memcpy(&paging_params.lai, &vsub->sgs.lai, sizeof(paging_params.lai)); + paging_params.lai_present = true; + } + resp = gsm29118_create_paging_req(&paging_params); + sgs_tx(mme->conn, resp); + + /* FIXME: If we are in SGS_UE_ST_NULL while sub->conf_by_radio_contact_ind == false, + * we are supposed to start a search procedure as defined in 3GPP TS 23.018 */ + + /* Inform the VLR that a paging via SGs is in progress */ + vlr_sgs_pag(vsub, serv_ind); + + /* Return a page count of 1 (success) */ + return 1; +} + +/*********************************************************************** + * SGs incoming messages from the MME + ***********************************************************************/ + +/* Safely read out the SGs cause code from a given message/tlv set, send status + * message in case the cause code is invalid or missing. */ +static int sgs_cause_from_msg(struct sgs_connection *sgc, struct msgb *msg, const struct tlv_parsed *tp, + const char *imsi) +{ + enum sgsap_sgs_cause cause; + const uint8_t *cause_ptr; + cause_ptr = TLVP_VAL_MINLEN(tp, SGSAP_IE_SGS_CAUSE, 1); + if (!cause_ptr) { + sgs_tx_status(sgc, imsi, SGSAP_SGS_CAUSE_MISSING_MAND_IE, msg, SGSAP_IE_SGS_CAUSE); + return -1; + } else + cause = *cause_ptr; + return cause; +} + +/* SGsAP-STATUS 3GPP TS 29.118, chapter 8.18 */ +static int sgs_rx_status(struct sgs_connection *sgc, struct msgb *msg, const struct tlv_parsed *tp, const char *imsi) +{ + int cause; + const uint8_t *err_msg; + const char *imsi_ptr; + char *err_msg_hex = "(none)"; + + cause = sgs_cause_from_msg(sgc, msg, tp, NULL); + if (cause < 0) + return 0; + + if (imsi[0] != '\0') + imsi_ptr = imsi; + else + imsi_ptr = ""; + + if (TLVP_PRESENT(tp, SGSAP_IE_ERR_MSG)) + err_msg = TLVP_VAL(tp, SGSAP_IE_ERR_MSG); + else + err_msg = NULL; + + if (err_msg) + err_msg_hex = osmo_hexdump(err_msg, TLVP_LEN(tp, SGSAP_IE_ERR_MSG)); + + LOGSGC(sgc, LOGL_NOTICE, "Rx STATUS cause=%s, IMSI=%s, err_msg=%s\n", + sgsap_sgs_cause_name(cause), imsi_ptr, err_msg_hex); + + return 0; +} + +/* SGsAP-RESET-INDICATION 3GPP TS 29.118, chapter 8.16 */ +static int sgs_rx_reset_ind(struct sgs_connection *sgc, struct msgb *msg, const struct tlv_parsed *tp) +{ + struct gsm29118_reset_msg reset_params; + struct msgb *resp; + + memset(&reset_params, 0, sizeof(reset_params)); + osmo_strlcpy(reset_params.vlr_name, sgc->sgs->cfg.vlr_name, sizeof(reset_params.vlr_name)); + reset_params.vlr_name_present = true; + + resp = gsm29118_create_reset_ack(&reset_params); + + /* Perform a reset of the SGS FSM of all subscribers that are present in the VLR */ + vlr_sgs_reset(gsm_network->vlr); + + sgs_tx(sgc, resp); + return 0; +} + +/* SGsAP-RESET-ACK 3GPP TS 29.118, chapter 8.15 */ +static int sgs_rx_reset_ack(struct sgs_connection *sgc, struct msgb *msg, const struct tlv_parsed *tp) +{ + /* dispatch event to VLR reset FSM for this MME */ + if (sgc->mme && sgc->mme->fi) + osmo_fsm_inst_dispatch(sgc->mme->fi, SGS_VLRR_E_RX_RESET_ACK, msg); + return 0; +} + +/* SGsAP-LOCATION-UPDATE-REQUEST 3GPP TS 29.118, chapter 8.11 */ +static int sgs_rx_loc_upd_req(struct sgs_connection *sgc, struct msgb *msg, const struct tlv_parsed *tp, char *imsi) +{ + struct msgb *resp; + const uint8_t *lu_type_ie; + enum vlr_lu_type type; + struct osmo_location_area_id new_lai; + const struct gsm48_loc_area_id *gsm48_lai; + int rc; + char *mme_name; + struct vlr_sgs_cfg vlr_sgs_cfg; + struct vlr_subscr *vsub; + + /* Check for lingering connections */ + vsub = vlr_subscr_find_by_imsi(gsm_network->vlr, imsi); + if (vsub) { + subscr_conn_toss(vsub); + vlr_subscr_put(vsub); + } + + /* Determine MME-Name */ + mme_name = sgs_mme_fqdn_get(sgc); + if (!mme_name) { + resp = gsm29118_create_lu_rej(imsi, SGSAP_SGS_CAUSE_IMSI_UNKNOWN, NULL); + sgs_tx(sgc, resp); + return 0; + } + + /* Parse LU-Type */ + lu_type_ie = TLVP_VAL_MINLEN(tp, SGSAP_IE_EPS_LU_TYPE, 1); + if (!lu_type_ie) + return sgs_tx_status(sgc, imsi, SGSAP_SGS_CAUSE_MISSING_MAND_IE, msg, SGSAP_IE_EPS_LU_TYPE); + if (lu_type_ie[0] == 0x01) + type = VLR_LU_TYPE_IMSI_ATTACH; + else + type = VLR_LU_TYPE_REGULAR; + + /* Parse LAI of the new location */ + gsm48_lai = (struct gsm48_loc_area_id *)TLVP_VAL_MINLEN(tp, SGSAP_IE_LAI, 5); + if (!gsm48_lai) + return sgs_tx_status(sgc, imsi, SGSAP_SGS_CAUSE_MISSING_MAND_IE, msg, SGSAP_IE_LAI); + gsm48_decode_lai2(gsm48_lai, &new_lai); + + /* Perform actual location update */ + memcpy(vlr_sgs_cfg.timer, sgc->sgs->cfg.timer, sizeof(vlr_sgs_cfg.timer)); + memcpy(vlr_sgs_cfg.counter, sgc->sgs->cfg.counter, sizeof(vlr_sgs_cfg.counter)); + rc = vlr_sgs_loc_update(gsm_network->vlr, &vlr_sgs_cfg, sgs_tx_loc_upd_resp_cb, sgs_iface_tx_paging, + sgs_tx_mm_info_cb, mme_name, type, imsi, &new_lai); + if (rc != 0) { + resp = gsm29118_create_lu_rej(imsi, SGSAP_SGS_CAUSE_IMSI_UNKNOWN, NULL); + sgs_tx(sgc, resp); + } + + return 0; +} + +/* SGsAP-IMSI-DETACH-INDICATION 3GPP TS 29.118, chapter 8.8 */ +static int sgs_rx_imsi_det_ind(struct sgs_connection *sgc, struct msgb *msg, const struct tlv_parsed *tp, char *imsi) +{ + struct msgb *resp; + enum sgsap_imsi_det_noneps_type type; + const uint8_t *type_ie; + + type_ie = TLVP_VAL_MINLEN(tp, SGSAP_IE_IMSI_DET_NONEPS_TYPE, 1); + if (!type_ie) + return sgs_tx_status(sgc, imsi, SGSAP_SGS_CAUSE_MISSING_MAND_IE, msg, SGSAP_IE_IMSI_DET_NONEPS_TYPE); + + switch (type_ie[0]) { + case SGSAP_ID_NONEPS_T_EXPLICIT_UE_NONEPS: + type = SGSAP_ID_NONEPS_T_EXPLICIT_UE_NONEPS; + break; + case SGSAP_ID_NONEPS_T_COMBINED_UE_EPS_NONEPS: + type = SGSAP_ID_NONEPS_T_COMBINED_UE_EPS_NONEPS; + break; + case SGSAP_ID_NONEPS_T_IMPLICIT_UE_EPS_NONEPS: + type = SGSAP_ID_NONEPS_T_IMPLICIT_UE_EPS_NONEPS; + break; + default: + return sgs_tx_status(sgc, imsi, SGSAP_SGS_CAUSE_INVALID_MAND_IE, msg, SGSAP_IE_IMSI_DET_NONEPS_TYPE); + break; + } + + vlr_sgs_imsi_detach(gsm_network->vlr, imsi, type); + resp = gsm29118_create_imsi_det_ack(imsi); + sgs_tx(sgc, resp); + + return 0; +} + +/* SGsAP-EPS-DETACH-INDICATION 3GPP TS 29.118, chapter 8.6 */ +static int sgs_rx_eps_det_ind(struct sgs_connection *sgc, struct msgb *msg, const struct tlv_parsed *tp, char *imsi) +{ + struct msgb *resp; + enum sgsap_imsi_det_eps_type type; + const uint8_t *type_ie; + + type_ie = TLVP_VAL_MINLEN(tp, SGSAP_IE_IMSI_DET_EPS_TYPE, 1); + if (!type_ie) + return sgs_tx_status(sgc, imsi, SGSAP_SGS_CAUSE_MISSING_MAND_IE, msg, SGSAP_IE_IMSI_DET_EPS_TYPE); + + switch (type_ie[0]) { + case SGSAP_ID_EPS_T_NETWORK_INITIATED: + type = SGSAP_ID_EPS_T_NETWORK_INITIATED; + break; + case SGSAP_ID_EPS_T_UE_INITIATED: + type = SGSAP_ID_EPS_T_UE_INITIATED; + break; + case SGSAP_ID_EPS_T_EPS_NOT_ALLOWED: + type = SGSAP_ID_EPS_T_EPS_NOT_ALLOWED; + break; + default: + return sgs_tx_status(sgc, imsi, SGSAP_SGS_CAUSE_INVALID_MAND_IE, msg, SGSAP_IE_IMSI_DET_EPS_TYPE); + break; + } + + vlr_sgs_eps_detach(gsm_network->vlr, imsi, type); + resp = gsm29118_create_eps_det_ack(imsi); + sgs_tx(sgc, resp); + + return 0; +} + +/* SGsAP-PAGING-REJECT 3GPP TS 29.118, chapter 8.13 */ +static int sgs_rx_pag_rej(struct sgs_connection *sgc, struct msgb *msg, const struct tlv_parsed *tp, char *imsi) +{ + int cause; + struct vlr_subscr *vsub; + + cause = sgs_cause_from_msg(sgc, msg, tp, NULL); + if (cause < 0) + return 0; + + /* Subscriber must be known by the VLR */ + vsub = vlr_subscr_find_by_imsi(gsm_network->vlr, imsi); + if (!vsub) + return sgs_tx_status(sgc, imsi, SGSAP_SGS_CAUSE_IMSI_UNKNOWN, msg, SGSAP_IE_IMSI); + + /* Inform the VLR */ + vlr_sgs_pag_rej(gsm_network->vlr, imsi, cause); + + /* Stop all paging activity */ + subscr_paging_cancel(vsub, GSM_PAGING_EXPIRED); + + /* Depending on the cause code some action is required */ + if (cause == SGSAP_SGS_CAUSE_MT_CSFB_REJ_USER) { + /* FIXME: We are supposed to trigger a User Determined User Busy (UDUB) + * as specified in 3GPP TS 24.082 here, SGs association state shall not + * be changed */ + LOGSGC(sgc, LOGL_ERROR, + "Rx %s with SGSAP_SGS_CAUSE_MT_CSFB_REJ_USER, but sending UDUP is not implemented yet!\n", + sgsap_msg_type_name(msg->data[0])); + } else if (cause == SGSAP_SGS_CAUSE_IMSI_DET_EPS) { + /* FIXME: In this case we should send the paging via A/Iu interface */ + OSMO_ASSERT(false); + } + + vlr_subscr_put(vsub); + return 0; +} + +/* SGsAP-UE-UNREACHABLE 3GPP TS 29.118, chapter 8.21 */ +static int sgs_rx_ue_unr(struct sgs_connection *sgc, struct msgb *msg, const struct tlv_parsed *tp, char *imsi) +{ + int cause; + + cause = sgs_cause_from_msg(sgc, msg, tp, NULL); + if (cause < 0) + return 0; + + vlr_sgs_ue_unr(gsm_network->vlr, imsi, cause); + + return 0; +} + +/* SGsAP-TMSI-REALLOCATION-COMPLETE 3GPP TS 29.118, chapter 8.19 */ +static int sgs_rx_tmsi_reall_cmpl(struct sgs_connection *sgc, struct msgb *msg, const struct tlv_parsed *tp, char *imsi) +{ + vlr_sgs_tmsi_reall_compl(gsm_network->vlr, imsi); + return 0; +} + +/* SGsAP-SERVICE-REQUEST 3GPP TS 29.118, chapter 8.17 */ +static int sgs_rx_service_req(struct sgs_connection *sgc, struct msgb *msg, const struct tlv_parsed *tp, char *imsi) +{ + enum sgsap_service_ind serv_ind; + const uint8_t *serv_ind_ie; + struct ran_conn *conn; + struct vlr_subscr *vsub; + + /* Note: While in other RAN concepts a service request is used to + * initiate mobile originated operation, the service request in SGsAP + * is comparable to a paging response. The SGsAP SERVICE REQUEST must + * not be confused or compared with a CM SERVICE REQUEST! */ + + if (!check_sgs_association(sgc, msg, imsi)) + return 0; + + vsub = vlr_subscr_find_by_imsi(gsm_network->vlr, imsi); + /* Note: vsub is already sufficiently verified by check_sgs_association(), + * we must have a vsub at this point! */ + OSMO_ASSERT(vsub); + + /* The Service request is intended as a paging response, if one is + * received while nothing is paging something is very wrong! */ + if (!vlr_sgs_pag_pend(vsub)) { + vlr_subscr_put(vsub); + return sgs_tx_status(sgc, imsi, SGSAP_SGS_CAUSE_MSG_INCOMP_STATE, msg, -1); + } + serv_ind_ie = TLVP_VAL_MINLEN(tp, SGSAP_IE_SERVICE_INDICATOR, 1); + + if (!serv_ind_ie) { + vlr_subscr_put(vsub); + return sgs_tx_status(sgc, imsi, SGSAP_SGS_CAUSE_MISSING_MAND_IE, msg, SGSAP_IE_SERVICE_INDICATOR); + } + if (serv_ind_ie[0] == SGSAP_SERV_IND_CS_CALL) + serv_ind = serv_ind_ie[0]; + else if (serv_ind_ie[0] == SGSAP_SERV_IND_SMS) + serv_ind = serv_ind_ie[0]; + else { + vlr_subscr_put(vsub); + return sgs_tx_status(sgc, imsi, SGSAP_SGS_CAUSE_INVALID_MAND_IE, msg, SGSAP_IE_SERVICE_INDICATOR); + } + + /* FIXME: The MME shall include an UE EMM Mode IE, but the field is + * marked optional. (Why do we need this info at all?) */ + + /* Report to the VLR that the paging has successfully completed */ + vlr_sgs_pag_ack(gsm_network->vlr, imsi); + + /* Exit early when the service indicator indicates that a call is being + * established. In those cases we do not allocate a connection, instead + * the connection will be allocated when the MS is appearing on the + * A-Interface. */ + if (serv_ind == SGSAP_SERV_IND_CS_CALL) { + vlr_subscr_put(vsub); + return 0; + } + + /* Allocate subscriber connection */ + conn = subscr_conn_allocate_sgs(sgc, vsub, true); + if (!conn) { + vlr_subscr_put(vsub); + return sgs_tx_status(sgc, imsi, SGSAP_SGS_CAUSE_MSG_INCOMP_STATE, msg, -1); + } + + return 0; +} + +/* SGsAP-UPLINK-UNITDATA 3GPP TS 29.118, chapter 8.22 */ +static int sgs_rx_ul_ud(struct sgs_connection *sgc, struct msgb *msg, const struct tlv_parsed *tp, char *imsi) +{ + struct dtap_header *dtap; + struct ran_conn *conn; + bool ran_conn_created = false; + const uint8_t *nas_msg_container_ie; + struct vlr_subscr *vsub; + + if (!check_sgs_association(sgc, msg, imsi)) + return 0; + + vsub = vlr_subscr_find_by_imsi(gsm_network->vlr, imsi); + /* Note: vsub is already sufficiently verified by check_sgs_association(), + * we must have a vsub at this point! */ + OSMO_ASSERT(vsub); + + /* Try to find existing connection (MT) or allocate a new one (MO) */ + conn = connection_for_subscr(vsub); + if (!conn) { + conn = subscr_conn_allocate_sgs(sgc, vsub, false); + ran_conn_created = true; + } else { + if (conn->via_ran != OSMO_RAT_EUTRAN_SGS) { + LOGSGC(sgc, LOGL_ERROR, + "Receiving uplink unit-data for non-sgs connection -- discarding message!\n"); + msgb_free(msg); + return 0; + } + } + + /* If we do not find an existing connection and allocating a new one + * faild, give up and return status. */ + if (!conn) { + vlr_subscr_put(vsub); + return sgs_tx_status(sgc, imsi, SGSAP_SGS_CAUSE_MSG_INCOMP_STATE, msg, 0); + } + + nas_msg_container_ie = TLVP_VAL_MINLEN(tp, SGSAP_IE_NAS_MSG_CONTAINER, 1); + if (!nas_msg_container_ie) { + vlr_subscr_put(vsub); + return sgs_tx_status(sgc, imsi, SGSAP_SGS_CAUSE_MISSING_MAND_IE, msg, SGSAP_IE_NAS_MSG_CONTAINER); + } + + /* ran_conn_dtap expects the dtap payload in l3h */ + dtap = (struct dtap_header *)nas_msg_container_ie; + msg->l3h = (uint8_t *) nas_msg_container_ie; + OMSC_LINKID_CB(msg) = dtap->link_id; + + /* Forward dtap payload into the msc */ + ran_conn_dtap(conn, msg); + + /* If we did not create the conn right here, we just handle the ref + * counting normally. Otherwise we are in the same role as + * sgs_rx_service_req() and we want that the refcount says incremented + * througout the lifetime of the newly created conn. */ + if (!ran_conn_created) + vlr_subscr_put(vsub); + return 0; +} + +/* SGsAP-MO-CSFB-INDICATION, chapter 8.25 */ +static int sgs_rx_csfb_ind(struct sgs_connection *sgc, struct msgb *msg, const struct tlv_parsed *tp, char *imsi) +{ + struct vlr_subscr *vsub; + + /* The MME informs us with this message that the UE has returned back + * to the 4G network, so we use the SGs interface again for further + * communication with the UE. */ + + vsub = vlr_subscr_find_by_imsi(gsm_network->vlr, imsi); + if (!vsub) + return sgs_tx_status(sgc, imsi, SGSAP_SGS_CAUSE_IMSI_UNKNOWN, msg, SGSAP_IE_IMSI); + + /* Check for lingering connections */ + subscr_conn_toss(vsub); + + vsub->cs.attached_via_ran = OSMO_RAT_EUTRAN_SGS; + vlr_subscr_put(vsub); + return 0; +} + +/* SGsAP-UE-ACTIVITY-INDICATION, chapter 8.20 */ +static int sgs_rx_ue_act_ind(struct sgs_connection *sgc, struct msgb *msg, const struct tlv_parsed *tp, char *imsi) +{ + /* In this MSC/VLR implementation we do not support the alerting + * procedure yet and therefore we will never request any alerting + * at the MME. Given that it is unlikely that we ever get activity + * indications from the MME, but if we do we should not act all too + * hostile and ignore the indication silently. */ + + LOGSGC(sgc, LOGL_ERROR, "Rx %s unexpected, we do not implement alerting yet, ignoring!\n", + sgsap_msg_type_name(msg->data[0])); + + return 0; +} + +#define TX_STATUS_AND_LOG(sgc, msg_type, cause, fmt) \ + LOGSGC(sgc, LOGL_ERROR, fmt, sgsap_msg_type_name(msg_type)); \ + resp = gsm29118_create_status(NULL, cause, msg); \ + sgs_tx(sgc, resp); \ + +/*! Process incoming SGs message (see sgs_server.c) + * \param[in] sgc related sgs connection + * \param[in] msg received message + * \returns 0 in case of success, -EINVAL in case of error. */ +int sgs_iface_rx(struct sgs_connection *sgc, struct msgb *msg) +{ + struct msgb *resp; + uint8_t msg_type = msg->l2h[0]; + struct tlv_parsed tp; + int rc; + char imsi[GSM48_MI_SIZE]; + char mme_name[SGS_MME_NAME_LEN + 1]; + + memset(imsi, 0, sizeof(imsi)); + memset(mme_name, 0, sizeof(mme_name)); + + /* When the receiving entity receives a message that is too short to contain a complete + * message type information element, the receiving entity shall ignore that message. */ + if (msgb_l2len(msg) < 1) + goto error; + + /* Parse TLV elements */ + rc = tlv_parse(&tp, &sgsap_ie_tlvdef, msgb_l2(msg) + 1, msgb_l2len(msg) - 1, 0, 0); + if (rc < 0) { + TX_STATUS_AND_LOG(sgc, msg_type, SGSAP_SGS_CAUSE_SEMANT_INCORR_MSG, "SGsAP Message %s parsing error\n"); + goto error; + } + + /* Most of the messages contain an IMSI as mandatory IE, parse it right here */ + if (!TLVP_PRESENT(&tp, SGSAP_IE_IMSI) && + msg_type != SGSAP_MSGT_STATUS && msg_type != SGSAP_MSGT_RESET_IND && msg_type != SGSAP_MSGT_RESET_ACK) { + /* reject the message; all but the three above have mandatory IMSI */ + TX_STATUS_AND_LOG(sgc, msg_type, SGSAP_SGS_CAUSE_MISSING_MAND_IE, + "SGsAP Message %s without IMSI, dropping\n"); + goto error; + } + + if (TLVP_PRESENT(&tp, SGSAP_IE_IMSI)) { + gsm48_mi_to_string(imsi, sizeof(imsi), TLVP_VAL(&tp, SGSAP_IE_IMSI), TLVP_LEN(&tp, SGSAP_IE_IMSI)); + if (strlen(imsi) < GSM23003_IMSI_MIN_DIGITS) { + TX_STATUS_AND_LOG(sgc, msg_type, SGSAP_SGS_CAUSE_INVALID_MAND_IE, + "SGsAP Message %s with short IMSI, dropping\n"); + goto error; + } + } + + /* Some messages contain an MME-NAME as mandatore IE, parse it right here. The + * MME-NAME is als immediately registered with the sgc, so it will be implicitly + * known to all functions that have access to the sgc context. */ + if (!TLVP_PRESENT(&tp, SGSAP_IE_MME_NAME) + && (msg_type == SGSAP_MSGT_RESET_IND || msg_type == SGSAP_MSGT_RESET_ACK + || msg_type == SGSAP_MSGT_LOC_UPD_REQ || msg_type == SGSAP_MSGT_IMSI_DET_IND + || msg_type == SGSAP_MSGT_EPS_DET_IND)) { + TX_STATUS_AND_LOG(sgc, msg_type, SGSAP_SGS_CAUSE_MISSING_MAND_IE, + "SGsAP Message %s without MME-Name, dropping\n"); + goto error; + } + + if (TLVP_PRESENT(&tp, SGSAP_IE_MME_NAME)) { + if (decode_mme_name(mme_name, &tp) != 0) { + TX_STATUS_AND_LOG(sgc, msg_type, SGSAP_SGS_CAUSE_INVALID_MAND_IE, + "SGsAP Message %s with invalid MME-Name, dropping\n"); + goto error; + } + /* Regsister/check mme_name with sgc */ + if (sgs_mme_fqdn_received(sgc, mme_name) < 0) { + TX_STATUS_AND_LOG(sgc, msg_type, SGSAP_SGS_CAUSE_MSG_INCOMP_STATE, + "SGsAP Message %s with invalid MME-Name, dropping\n"); + goto error; + } + } + + /* dispatch msg to various handler functions. msgb ownership remains here! */ + rc = -EINVAL; + switch (msg_type) { + case SGSAP_MSGT_STATUS: + rc = sgs_rx_status(sgc, msg, &tp, imsi); + break; + case SGSAP_MSGT_RESET_IND: + rc = sgs_rx_reset_ind(sgc, msg, &tp); + break; + case SGSAP_MSGT_RESET_ACK: + rc = sgs_rx_reset_ack(sgc, msg, &tp); + break; + case SGSAP_MSGT_LOC_UPD_REQ: + rc = sgs_rx_loc_upd_req(sgc, msg, &tp, imsi); + break; + case SGSAP_MSGT_IMSI_DET_IND: + rc = sgs_rx_imsi_det_ind(sgc, msg, &tp, imsi); + break; + case SGSAP_MSGT_EPS_DET_IND: + rc = sgs_rx_eps_det_ind(sgc, msg, &tp, imsi); + break; + case SGSAP_MSGT_PAGING_REJ: + rc = sgs_rx_pag_rej(sgc, msg, &tp, imsi); + break; + case SGSAP_MSGT_UE_UNREACHABLE: + rc = sgs_rx_ue_unr(sgc, msg, &tp, imsi); + break; + case SGSAP_MSGT_TMSI_REALL_CMPL: + rc = sgs_rx_tmsi_reall_cmpl(sgc, msg, &tp, imsi); + break; + case SGSAP_MSGT_SERVICE_REQ: + rc = sgs_rx_service_req(sgc, msg, &tp, imsi); + break; + case SGSAP_MSGT_UL_UD: + rc = sgs_rx_ul_ud(sgc, msg, &tp, imsi); + break; + case SGSAP_MSGT_MO_CSFB_IND: + rc = sgs_rx_csfb_ind(sgc, msg, &tp, imsi); + break; + case SGSAP_MSGT_UE_ACT_IND: + rc = sgs_rx_ue_act_ind(sgc, msg, &tp, imsi); + break; + case SGSAP_MSGT_ALERT_ACK: + case SGSAP_MSGT_ALERT_REJ: + LOGSGC(sgc, LOGL_ERROR, "Rx unmplemented SGsAP %s: %s\n", + sgsap_msg_type_name(msg_type), msgb_hexdump(msg)); + resp = gsm29118_create_status(imsi, SGSAP_SGS_CAUSE_MSG_UNKNOWN, msg); + sgs_tx(sgc, resp); + rc = 0; + break; + default: + LOGSGC(sgc, LOGL_ERROR, "Rx unknown SGsAP message type 0x%02x: %s\n", msg_type, msgb_hexdump(msg)); + resp = gsm29118_create_status(imsi, SGSAP_SGS_CAUSE_MSG_UNKNOWN, msg); + sgs_tx(sgc, resp); + rc = 0; + break; + } + + /* Catch unhandled errors */ + if (rc < 0) { + /* Note: Usually the sgs_rx_ should catch errors locally and + * eimit a status message with proper cause code, including + * a suitable log message. If we end up here, something is + * not right and should be fixed */ + LOGSGC(sgc, LOGL_ERROR, "Rx unable to decode SGsAP %s: %s\n", + sgsap_msg_type_name(msg_type), msgb_hexdump(msg)); + resp = gsm29118_create_status(imsi, SGSAP_SGS_CAUSE_MSG_UNKNOWN, msg); + sgs_tx(sgc, resp); + } + +error: + msgb_free(msg); + return 0; +} + +/*********************************************************************** + * SGs connection "VLR Reset Procedure" FSM + ***********************************************************************/ + +static const struct value_string sgs_vlr_reset_fsm_event_names[] = { + {SGS_VLRR_E_START_RESET, "START-RESET"}, + {SGS_VLRR_E_RX_RESET_ACK, "RX-RESET-ACK"}, + {0, NULL} +}; + +static void sgs_vlr_reset_fsm_null(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + switch (event) { + case SGS_VLRR_E_RX_RESET_ACK: + break; + default: + OSMO_ASSERT(0); + break; + } +} + +static void sgs_vlr_reset_fsm_wait_ack(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + switch (event) { + case SGS_VLRR_E_RX_RESET_ACK: + osmo_fsm_inst_state_chg(fi, SGS_VLRR_ST_COMPLETE, 0, 0); + break; + default: + OSMO_ASSERT(0); + break; + } +} + +static void sgs_vlr_reset_fsm_complete(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + switch (event) { + case SGS_VLRR_E_RX_RESET_ACK: + break; + default: + OSMO_ASSERT(0); + break; + } +} + +static void sgs_vlr_reset_fsm_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct msgb *reset_ind; + struct gsm29118_reset_msg reset_params; + struct sgs_mme_ctx *mme = (struct sgs_mme_ctx *)fi->priv; + struct sgs_connection *sgc = mme->conn; + struct sgs_state *sgs = mme->sgs; + + switch (event) { + case SGS_VLRR_E_START_RESET: + osmo_fsm_inst_state_chg(fi, SGS_VLRR_ST_NULL, 0, 0); + mme->ns11_remaining = sgs->cfg.counter[SGS_STATE_NS11]; + /* send a reset message and enter WAIT_ACK state */ + memset(&reset_params, 0, sizeof(reset_params)); + osmo_strlcpy(reset_params.vlr_name, sgs->cfg.vlr_name, sizeof(reset_params.vlr_name)); + reset_params.vlr_name_present = true; + reset_ind = gsm29118_create_reset_ind(&reset_params); + sgs_tx(sgc, reset_ind); + osmo_fsm_inst_state_chg(fi, SGS_VLRR_ST_WAIT_ACK, sgs->cfg.timer[SGS_STATE_TS11], 11); + break; + default: + OSMO_ASSERT(0); + break; + } +} + +static int sgs_vlr_reset_fsm_timer_cb(struct osmo_fsm_inst *fi) +{ + struct msgb *reset_ind; + struct gsm29118_reset_msg reset_params; + struct sgs_mme_ctx *mme = (struct sgs_mme_ctx *)fi->priv; + struct sgs_connection *sgc = mme->conn; + struct sgs_state *sgs = mme->sgs; + + switch (fi->T) { + case 11: + if (mme->ns11_remaining >= 1) { + memset(&reset_params, 0, sizeof(reset_params)); + osmo_strlcpy(reset_params.vlr_name, sgs->cfg.vlr_name, sizeof(reset_params.vlr_name)); + reset_params.vlr_name_present = true; + reset_ind = gsm29118_create_reset_ind(&reset_params); + sgs_tx(sgc, reset_ind); + osmo_fsm_inst_state_chg(fi, SGS_VLRR_ST_WAIT_ACK, sgs->cfg.timer[SGS_STATE_TS11], 11); + mme->ns11_remaining--; + } else { + LOGMME(mme, LOGL_ERROR, "Ts11 expired more than %u (Ns11) times, giving up\n", + sgs->cfg.counter[SGS_STATE_TS11]); + osmo_fsm_inst_state_chg(fi, SGS_VLRR_ST_NULL, 0, 0); + } + break; + default: + OSMO_ASSERT(0); + break; + } + return 0; +} + +static const struct osmo_fsm_state sgs_vlr_reset_fsm_states[] = { + [SGS_VLRR_ST_NULL] = { + /* We haven't even tried yet to send a RESET */ + .name = "NULL", + .action = sgs_vlr_reset_fsm_null, + .in_event_mask = S(SGS_VLRR_E_RX_RESET_ACK), + .out_state_mask = S(SGS_VLRR_ST_NULL) | S(SGS_VLRR_ST_WAIT_ACK), + }, + [SGS_VLRR_ST_WAIT_ACK] = { + /* We're waiting for a SGsAP_RESET_ACK */ + .name = "WAIT-ACK", + .action = sgs_vlr_reset_fsm_wait_ack, + .in_event_mask = S(SGS_VLRR_E_RX_RESET_ACK), + .out_state_mask = S(SGS_VLRR_ST_NULL) | + S(SGS_VLRR_ST_COMPLETE) | S(SGS_VLRR_ST_WAIT_ACK), + }, + [SGS_VLRR_ST_COMPLETE] = { + /* Reset procedure to this MME has been completed */ + .name = "COMPLETE", + .action = sgs_vlr_reset_fsm_complete, + .in_event_mask = S(SGS_VLRR_E_RX_RESET_ACK), + .out_state_mask = S(SGS_VLRR_ST_NULL) | S(SGS_VLRR_ST_COMPLETE), + }, +}; + +static struct osmo_fsm sgs_vlr_reset_fsm = { + .name = "SGs-VLR-RESET", + .states = sgs_vlr_reset_fsm_states, + .allstate_event_mask = S(SGS_VLRR_E_START_RESET), + .allstate_action = sgs_vlr_reset_fsm_allstate, + .timer_cb = sgs_vlr_reset_fsm_timer_cb, + .log_subsys = DSGS, + .event_names = sgs_vlr_reset_fsm_event_names, +}; + +/*! Send unit-data through SGs interface (see msc_ifaces.c) + * \param[in] msg layer 3 message to send. + * \returns 0 in case of success, -EINVAL in case of error. */ +int sgs_iface_tx_dtap_ud(struct msgb *msg) +{ + struct ran_conn *conn; + struct vlr_subscr *vsub; + struct msgb *msg_sgs; + struct sgs_mme_ctx *mme; + int rc = -EINVAL; + + /* This function expects a pointer to the related gsm subscriber + * connection (conn) in msg->dst. Also conn->vsub must point to + * the related subscriber */ + + OSMO_ASSERT(msg->dst); + conn = msg->dst; + OSMO_ASSERT(conn->vsub); + vsub = conn->vsub; + + mme = sgs_mme_ctx_by_vsub(vsub, SGSAP_MSGT_DL_UD); + if (!mme) + goto error; + + /* Make sure the subscriber has a valid SGs association, otherwise + * don't let unit-data through. */ + if (vsub->sgs_fsm->state != SGS_UE_ST_ASSOCIATED) { + LOG_RAN_CONN(conn, LOGL_NOTICE, "Tx %s subscriber not SGs-associated, dropping\n", + sgsap_msg_type_name(SGSAP_MSGT_DL_UD)); + goto error; + } + + msg_sgs = gsm29118_create_dl_ud(vsub->imsi, msg); + sgs_tx(mme->conn, msg_sgs); + rc = 0; + +error: + msgb_free(msg); + return rc; +} + +/*! Send a relase message through SGs interface (see msc_ifaces.c) + * \param[in] msg layer 3 message to send. + * \returns 0 in case of success, -EINVAL in case of error. */ +void sgs_iface_tx_release(struct ran_conn *conn) +{ + struct msgb *msg_sgs; + struct vlr_subscr *vsub; + struct sgs_mme_ctx *mme; + + /*! Use this function to release an SGs connection normally + * (cause code is 0). This function also automatically causes + * the VLR subscriber usage to be balanced. */ + + OSMO_ASSERT(conn->vsub); + vsub = conn->vsub; + + mme = sgs_mme_ctx_by_vsub(vsub, SGSAP_MSGT_DL_UD); + if (!mme) + return; + + msg_sgs = gsm29118_create_release_req(vsub->imsi, 0); + sgs_tx(mme->conn, msg_sgs); +} + +/*! initalize SGs new interface + * \param[in] ctx talloc context + * \param[in] network associated gsm network + * \returns returns allocated sgs_stae, NULL in case of error. */ +struct sgs_state *sgs_iface_init(void *ctx, struct gsm_network *network) +{ + struct sgs_state *sgs; + + gsm_network = network; + + sgs = sgs_server_alloc(ctx); + OSMO_ASSERT(sgs); + + /* We currently only support one SGs instance */ + if (g_sgs) + return NULL; + g_sgs = sgs; + + osmo_fsm_register(&sgs_vlr_reset_fsm); + sgs_server_open(sgs); + + return sgs; +} diff --git a/src/libmsc/sgs_server.c b/src/libmsc/sgs_server.c new file mode 100644 index 0000000..56f1548 --- /dev/null +++ b/src/libmsc/sgs_server.c @@ -0,0 +1,187 @@ +/* (C) 2018-2019 by sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * Author: Harald Welte, Philipp Maier + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#define LOGSGC(sgc, lvl, fmt, args...) \ + LOGP(DSGS, lvl, "%s: " fmt, (sgc)->sockname, ## args) + +/* call-back when data arrives on SGs */ +static int sgs_conn_readable_cb(struct osmo_stream_srv *conn) +{ + struct osmo_fd *ofd = osmo_stream_srv_get_ofd(conn); + struct sgs_connection *sgc = osmo_stream_srv_get_data(conn); + struct msgb *msg = gsm29118_msgb_alloc(); + struct sctp_sndrcvinfo sinfo; + int flags = 0; + int rc; + + /* we cannot use osmo_stream_srv_recv() here, as we might get some out-of-band info from + * SCTP. FIXME: add something like osmo_stream_srv_recv_sctp() to libosmo-netif and use + * it here as well as in libosmo-sigtran */ + rc = sctp_recvmsg(ofd->fd, msgb_data(msg), msgb_tailroom(msg), NULL, NULL, &sinfo, &flags); + if (rc < 0) { + osmo_stream_srv_destroy(conn); + rc = -EBADF; + goto out; + } else if (rc == 0) { + osmo_stream_srv_destroy(conn); + rc = -EBADF; + goto out; + } else { + msgb_put(msg, rc); + } + + if (flags & MSG_NOTIFICATION) { + union sctp_notification *notif = (union sctp_notification *)msgb_data(msg); + + switch (notif->sn_header.sn_type) { + case SCTP_SHUTDOWN_EVENT: + osmo_stream_srv_destroy(conn); + rc = -EBADF; + break; + case SCTP_ASSOC_CHANGE: + /* FIXME: do we have to notify the SGs code about this? */ + break; + default: + break; + } + rc = 0; + goto out; + } + + /* set l2 header, as that's what we use in SGs code */ + msg->l2h = msgb_data(msg); + + if (msgb_sctp_ppid(msg) != 0) { + LOGSGC(sgc, LOGL_NOTICE, "Ignoring SCTP PPID %ld (spec violation)\n", msgb_sctp_ppid(msg)); + msgb_free(msg); + return 0; + } + + /* handle message */ + sgs_iface_rx(sgc, msg); + + return 0; +out: + msgb_free(msg); + return rc; +} + +/* call-back when new connection is closed ed on SGs */ +static int sgs_conn_closed_cb(struct osmo_stream_srv *conn) +{ + struct sgs_connection *sgc = osmo_stream_srv_get_data(conn); + + LOGSGC(sgc, LOGL_NOTICE, "Connection lost\n"); + if (sgc->mme) { + /* unlink ourselves from the MME context */ + if (sgc->mme->conn == sgc) + sgc->mme->conn = NULL; + } + llist_del(&sgc->entry); + return 0; +} + +/* call-back when new connection is accept() ed on SGs */ +static int sgs_accept_cb(struct osmo_stream_srv_link *link, int fd) +{ + struct sgs_state *sgs = osmo_stream_srv_link_get_data(link); + struct sgs_connection *sgc = talloc_zero(link, struct sgs_connection); + OSMO_ASSERT(sgc); + sgc->sgs = sgs; + osmo_sock_get_name_buf(sgc->sockname, sizeof(sgc->sockname), fd); + sgc->srv = osmo_stream_srv_create(sgc, link, fd, sgs_conn_readable_cb, sgs_conn_closed_cb, sgc); + if (!sgc->srv) { + talloc_free(sgc); + return -1; + } + LOGSGC(sgc, LOGL_INFO, "Accepted new SGs connection\n"); + llist_add_tail(&sgc->entry, &sgs->conn_list); + + return 0; +} + +static struct sgs_state *sgs_state_alloc(void *ctx) +{ + struct sgs_state *sgs = talloc_zero(ctx, struct sgs_state); + + INIT_LLIST_HEAD(&sgs->mme_list); + INIT_LLIST_HEAD(&sgs->conn_list); + + memcpy(sgs->cfg.timer, sgs_state_timer_defaults, sizeof(sgs->cfg.timer)); + memcpy(sgs->cfg.counter, sgs_state_counter_defaults, sizeof(sgs->cfg.counter)); + sgs->cfg.local_port = SGS_PORT_DEFAULT; + osmo_strlcpy(sgs->cfg.local_addr, DEFAULT_SGS_SERVER_IP, sizeof(sgs->cfg.local_addr)); + osmo_strlcpy(sgs->cfg.vlr_name, DEFAULT_SGS_SERVER_VLR_NAME, sizeof(sgs->cfg.vlr_name)); + + return sgs; +} + +/*! allocate SGs new sgs state + * \param[in] ctx talloc context + * \returns returns allocated sgs state, NULL in case of error. */ +struct sgs_state *sgs_server_alloc(void *ctx) +{ + struct sgs_state *sgs; + struct osmo_stream_srv_link *link; + + sgs = sgs_state_alloc(ctx); + if (!sgs) + return NULL; + + sgs->srv_link = link = osmo_stream_srv_link_create(ctx); + if (!sgs->srv_link) + return NULL; + + osmo_stream_srv_link_set_nodelay(link, true); + osmo_stream_srv_link_set_addr(link, sgs->cfg.local_addr); + osmo_stream_srv_link_set_port(link, sgs->cfg.local_port); + osmo_stream_srv_link_set_proto(link, IPPROTO_SCTP); + osmo_stream_srv_link_set_data(link, sgs); + osmo_stream_srv_link_set_accept_cb(link, sgs_accept_cb); + + return sgs; +} + +/*! (re)open SGs interface (SCTP) + * \param[in] sgs associated sgs state + * \returns 0 in case of success, -EINVAL in case of error. */ +int sgs_server_open(struct sgs_state *sgs) +{ + int rc; + struct osmo_fd *ofd = osmo_stream_srv_link_get_ofd(sgs->srv_link); + + rc = osmo_stream_srv_link_open(sgs->srv_link); + if (rc < 0) { + LOGP(DSGS, LOGL_ERROR, "SGs socket cannot be opened: %s\n", strerror(errno)); + return -EINVAL; + } + + LOGP(DSGS, LOGL_NOTICE, "SGs socket bound to %s\n", osmo_sock_get_name2(ofd->fd)); + return 0; +} diff --git a/src/libmsc/sgs_vty.c b/src/libmsc/sgs_vty.c new file mode 100644 index 0000000..5b26178 --- /dev/null +++ b/src/libmsc/sgs_vty.c @@ -0,0 +1,197 @@ +/* (C) 2018-2019 by sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * Author: Harald Welte, Philipp Maier + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct cmd_node cfg_sgs_node = { + CFG_SGS_NODE, + "%s(config-sgs)# ", + 1 +}; + +DEFUN(cfg_sgs, cfg_sgs_cmd, + "sgs", + "Configure the SGs interface\n") +{ + vty->index = g_sgs; + vty->node = CFG_SGS_NODE; + + return CMD_SUCCESS; +} + +DEFUN(cfg_sgs_local_ip, cfg_sgs_local_ip_cmd, + "local-ip A.B.C.D", + "Set the Local IP Address of the SGs interface\n" + "Local IP Address of the SGs interface\n") +{ + struct sgs_state *sgs = vty->index; + int rc; + + osmo_strlcpy(sgs->cfg.local_addr, argv[0], sizeof(sgs->cfg.local_addr)); + osmo_stream_srv_link_set_addr(sgs->srv_link, sgs->cfg.local_addr); + + rc = sgs_server_open(sgs); + if (rc < 0) { + vty_out(vty, "%% SGs socket cannot be opened: %s%s", strerror(errno), VTY_NEWLINE); + return CMD_WARNING; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_sgs_local_port, cfg_sgs_local_port_cmd, + "local-port <0-65535>", + "Set the local SCTP port of the SGs interface\n" + "Local SCTP port of the SGs interface\n") +{ + struct sgs_state *sgs = vty->index; + int rc; + + sgs->cfg.local_port = atoi(argv[0]); + osmo_stream_srv_link_set_port(sgs->srv_link, sgs->cfg.local_port); + + rc = sgs_server_open(sgs); + if (rc < 0) { + vty_out(vty, "%% SGs socket cannot be opened: %s%s", strerror(errno), VTY_NEWLINE); + return CMD_WARNING; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_sgs_vlr_name, cfg_sgs_vlr_name_cmd, + "vlr-name FQDN", + "Set the SGs VLR Name as per TS 29.118 9.4.22\n" + "Fully-Qualified Domain Name of this VLR\n") +{ + struct sgs_state *sgs = vty->index; + osmo_strlcpy(sgs->cfg.vlr_name, argv[0], sizeof(sgs->cfg.vlr_name)); + + return CMD_SUCCESS; +} + +DEFUN(cfg_sgs_timer, cfg_sgs_timer_cmd, + "timer (ts5|ts6-2|ts7|ts11|ts14|ts15) <1-120>", + "Configure SGs Timer\n" + "Paging procedure guard timer\n" + "TMSI reallocation guard timer\n" + "Non-EPS alert procedure guard timer\n" + "VLR reset guard timer\n" + "UE fallback prcoedure timer\n" + "MO UE fallback procedure guard timer\n" + "Time in seconds\n") +{ + struct sgs_state *sgs = vty->index; + unsigned int i; + + for (i = 0; i < ARRAY_SIZE(sgs->cfg.timer); i++) { + if (!strcasecmp(argv[0], vlr_sgs_state_timer_name(i))) { + sgs->cfg.timer[i] = atoi(argv[1]); + return CMD_SUCCESS; + } + } + + return CMD_WARNING; +} + +DEFUN(cfg_sgs_counter, cfg_sgs_counter_cmd, + "counter (ns7|ns11) <0-255>", + "Configure SGs Counter\n" + "Non-EPS alert request retry counter\n" + "VLR reset retry counter\n" "Counter value\n") +{ + struct sgs_state *sgs = vty->index; + unsigned int i = 0; + + for (i = 0; i < ARRAY_SIZE(sgs->cfg.counter); i++) { + if (!strcasecmp(argv[0], vlr_sgs_state_counter_name(i))) { + sgs->cfg.counter[i] = atoi(argv[1]); + return CMD_SUCCESS; + } + } + + return CMD_WARNING; +} + +DEFUN(show_sgs_conn, show_sgs_conn_cmd, + "show sgs-connections", SHOW_STR + "Show SGs interface connections / MMEs\n") +{ + struct sgs_connection *sgc; + + llist_for_each_entry(sgc, &g_sgs->conn_list, entry) { + vty_out(vty, " %s %s%s", sgc->sockname, sgc->mme ? sgc->mme->fqdn : "", VTY_NEWLINE); + } + return CMD_SUCCESS; +} + +static int config_write_sgs(struct vty *vty) +{ + struct sgs_state *sgs = g_sgs; + unsigned int i; + char str_buf[256]; + + vty_out(vty, "sgs%s", VTY_NEWLINE); + if (sgs->cfg.local_port != SGS_PORT_DEFAULT) + vty_out(vty, " local-port %u%s", sgs->cfg.local_port, VTY_NEWLINE); + if (sgs->cfg.local_addr) + vty_out(vty, " local-ip %s%s", sgs->cfg.local_addr, VTY_NEWLINE); + if (sgs->cfg.vlr_name) + vty_out(vty, " vlr-name %s%s", sgs->cfg.vlr_name, VTY_NEWLINE); + + for (i = 0; i < ARRAY_SIZE(sgs->cfg.timer); i++) { + if (sgs->cfg.timer[i] == sgs_state_timer_defaults[i]) + continue; + osmo_str_tolower_buf(str_buf, sizeof(str_buf), vlr_sgs_state_timer_name(i)); + vty_out(vty, " timer %s %u%s", str_buf, sgs->cfg.timer[i], VTY_NEWLINE); + } + + for (i = 0; i < ARRAY_SIZE(sgs->cfg.counter); i++) { + if (sgs->cfg.counter[i] == sgs_state_counter_defaults[i]) + continue; + osmo_str_tolower_buf(str_buf, sizeof(str_buf), vlr_sgs_state_counter_name(i)); + vty_out(vty, " counter %s %u%s", str_buf, sgs->cfg.counter[i], VTY_NEWLINE); + } + + return CMD_SUCCESS; +} + +void sgs_vty_init(void) +{ + /* configuration commands / nodes */ + install_element(CONFIG_NODE, &cfg_sgs_cmd); + install_node(&cfg_sgs_node, config_write_sgs); + install_element(CFG_SGS_NODE, &cfg_sgs_local_ip_cmd); + install_element(CFG_SGS_NODE, &cfg_sgs_local_port_cmd); + install_element(CFG_SGS_NODE, &cfg_sgs_timer_cmd); + install_element(CFG_SGS_NODE, &cfg_sgs_counter_cmd); + install_element(CFG_SGS_NODE, &cfg_sgs_vlr_name_cmd); + + install_element_ve(&show_sgs_conn_cmd); +} diff --git a/src/libmsc/silent_call.c b/src/libmsc/silent_call.c index b4fc154..2a9fa9c 100644 --- a/src/libmsc/silent_call.c +++ b/src/libmsc/silent_call.c @@ -128,7 +128,8 @@ * This doesn't apply to the situation after MSCSPLIT with an * A-interface. */ req = subscr_request_conn(vsub, paging_cb_silent, data, - "establish silent call"); + "establish silent call", + SGSAP_SERV_IND_CS_CALL); if (!req) return -ENODEV; return 0; diff --git a/src/libvlr/Makefile.am b/src/libvlr/Makefile.am index dcae1c7..14cd302 100644 --- a/src/libvlr/Makefile.am +++ b/src/libvlr/Makefile.am @@ -8,6 +8,7 @@ $(LIBOSMOGSUPCLIENT_CFLAGS) \ $(LIBOSMOABIS_CFLAGS) \ $(LIBOSMORANAP_CFLAGS) \ + $(LIBOSMOGSM_CFLAGS) \ $(COVERAGE_CFLAGS) \ $(NULL) @@ -16,6 +17,7 @@ vlr_auth_fsm.h \ vlr_core.h \ vlr_lu_fsm.h \ + vlr_sgs_fsm.h \ $(NULL) noinst_LIBRARIES = libvlr.a @@ -25,4 +27,6 @@ vlr_access_req_fsm.c \ vlr_auth_fsm.c \ vlr_lu_fsm.c \ + vlr_sgs.c \ + vlr_sgs_fsm.c \ $(NULL) diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c index 451c521..c5b3c80 100644 --- a/src/libvlr/vlr.c +++ b/src/libvlr/vlr.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -42,6 +43,7 @@ #include "vlr_auth_fsm.h" #include "vlr_lu_fsm.h" #include "vlr_access_req_fsm.h" +#include "vlr_sgs_fsm.h" #define SGSN_SUBSCR_MAX_RETRIES 3 #define SGSN_SUBSCR_RETRY_INTERVAL 10 @@ -262,6 +264,11 @@ INIT_LLIST_HEAD(&vsub->cs.requests); INIT_LLIST_HEAD(&vsub->ps.pdp_list); + /* Create an SGs FSM, which is needed to control CSFB, + * in cases where CSFB/SGs is not in use, this FSM will + * just do nothing. (see also: sgs_iface.c) */ + vlr_sgs_fsm_create(vsub); + llist_add_tail(&vsub->list, &vlr->subscribers); return vsub; } @@ -307,6 +314,13 @@ { llist_del(&vsub->list); DEBUGP(DREF, "freeing VLR subscr %s\n", vlr_subscr_name(vsub)); + + /* Make sure SGs timer Ts5 is removed */ + osmo_timer_del(&vsub->sgs.Ts5); + + /* Remove SGs FSM (see also: sgs_iface.c) */ + vlr_sgs_fsm_remove(vsub); + talloc_free(vsub); } @@ -854,7 +868,13 @@ static int vlr_subscr_handle_lu_res(struct vlr_subscr *vsub, const struct osmo_gsup_message *gsup) { - if (!vsub->lu_fsm) { + struct sgs_lu_response sgs_lu_response; + bool sgs_lu_in_progress = false; + + if (vsub->sgs_fsm->state == SGS_UE_ST_LA_UPD_PRES) + sgs_lu_in_progress = true; + + if (!vsub->lu_fsm && !sgs_lu_in_progress) { LOGVSUBP(LOGL_ERROR, vsub, "Rx GSUP LU Result " "without LU in progress\n"); return -ENODEV; @@ -865,7 +885,12 @@ * nested INSERT SUBSCRIBER DATA transaction */ vlr_subscr_gsup_insert_data(vsub, gsup); - osmo_fsm_inst_dispatch(vsub->lu_fsm, VLR_ULA_E_HLR_LU_RES, NULL); + if (sgs_lu_in_progress) { + sgs_lu_response.accepted = true; + sgs_lu_response.vsub = vsub; + vsub->sgs.response_cb(&sgs_lu_response); + } else + osmo_fsm_inst_dispatch(vsub->lu_fsm, VLR_ULA_E_HLR_LU_RES, NULL); return 0; } @@ -874,7 +899,13 @@ static int vlr_subscr_handle_lu_err(struct vlr_subscr *vsub, const struct osmo_gsup_message *gsup) { - if (!vsub->lu_fsm) { + struct sgs_lu_response sgs_lu_response; + bool sgs_lu_in_progress = false; + + if (vsub->sgs_fsm->state == SGS_UE_ST_LA_UPD_PRES) + sgs_lu_in_progress = true; + + if (!vsub->lu_fsm && !sgs_lu_in_progress) { LOGVSUBP(LOGL_ERROR, vsub, "Rx GSUP LU Error " "without LU in progress\n"); return -ENODEV; @@ -883,9 +914,13 @@ LOGVSUBP(LOGL_DEBUG, vsub, "UpdateLocation failed; gmm_cause: %s\n", get_value_string(gsm48_gmm_cause_names, gsup->cause)); - osmo_fsm_inst_dispatch(vsub->lu_fsm, VLR_ULA_E_HLR_LU_RES, - (void *)&gsup->cause); - + if (sgs_lu_in_progress) { + sgs_lu_response.accepted = false; + sgs_lu_response.vsub = vsub; + vsub->sgs.response_cb(&sgs_lu_response); + } else + osmo_fsm_inst_dispatch(vsub->lu_fsm, VLR_ULA_E_HLR_LU_RES, + (void *)&gsup->cause); return 0; } @@ -1225,6 +1260,9 @@ vsub->imsi_detached_flag = true; vsub->expire_lu = VLR_SUBSCRIBER_NO_EXPIRATION; + /* Inform the UE-SGs FSM that the subscriber has been detached */ + osmo_fsm_inst_dispatch(vsub->sgs_fsm, SGS_UE_E_RX_DETACH_IND_FROM_UE, NULL); + vlr_subscr_expire(vsub); return 0; @@ -1273,6 +1311,8 @@ vlr_lu_fsm_init(); /* vlr_access_request_fsm.c */ vlr_parq_fsm_init(); + /* vlr_sgs_fsm.c */ + vlr_sgs_fsm_init(); return vlr; } diff --git a/src/libvlr/vlr_lu_fsm.c b/src/libvlr/vlr_lu_fsm.c index a97e97a..8152d20 100644 --- a/src/libvlr/vlr_lu_fsm.c +++ b/src/libvlr/vlr_lu_fsm.c @@ -27,6 +27,7 @@ #include "vlr_core.h" #include "vlr_auth_fsm.h" #include "vlr_lu_fsm.h" +#include "vlr_sgs_fsm.h" #define S(x) (1 << (x)) @@ -362,6 +363,7 @@ vlr_subscr_get(vsub); } _vlr_lu_compl_fsm_done(fi, VLR_FSM_RESULT_SUCCESS, 0); + vlr_sgs_fsm_update_id(vsub); } static void vlr_lu_compl_fsm_failure(struct osmo_fsm_inst *fi, uint8_t cause) @@ -1055,6 +1057,11 @@ OSMO_ASSERT(lfp->vsub); + /* At this point we know for which subscriber the location update is, + * we now must inform SGs-UE FSM that we received a location update + * via A, IU or Gs interface. */ + osmo_fsm_inst_dispatch(lfp->vsub->sgs_fsm, SGS_UE_E_RX_LU_FROM_A_IU_GS, NULL); + /* See 3GPP TS 23.012, procedure Retrieve_IMEISV_If_Required */ if ((!vlr->cfg.retrieve_imeisv_early) || (lfp->type == VLR_LU_TYPE_PERIODIC && lfp->vsub->imeisv[0])) { diff --git a/src/libvlr/vlr_sgs.c b/src/libvlr/vlr_sgs.c new file mode 100644 index 0000000..8614892 --- /dev/null +++ b/src/libvlr/vlr_sgs.c @@ -0,0 +1,331 @@ +/* (C) 2018-2019 by sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * Author: Harald Welte, Philipp Maier + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include +#include +#include +#include "vlr_sgs_fsm.h" + +const struct value_string sgs_state_timer_names[] = { + {SGS_STATE_TS5, "Ts5"}, + {SGS_STATE_TS6_2, "Ts6-2"}, + {SGS_STATE_TS7, "Ts7"}, + {SGS_STATE_TS11, "Ts11"}, + {SGS_STATE_TS14, "Ts14"}, + {SGS_STATE_TS15, "Ts15"}, + {0, NULL} +}; + +const struct value_string sgs_state_counter_names[] = { + {SGS_STATE_NS7, "Ns7"}, + {SGS_STATE_NS11, "Ns11"}, + {0, NULL} +}; + +/* Reset all SGs-Associations back to zero. + * \param[in] vlr VLR instace. */ +void vlr_sgs_reset(struct vlr_instance *vlr) +{ + struct vlr_subscr *vsub; + + OSMO_ASSERT(vlr); + + LOGP(DVLR, LOGL_INFO, "dropping all SGs associations.\n"); + + llist_for_each_entry(vsub, &vlr->subscribers, list) { + osmo_fsm_inst_dispatch(vsub->sgs_fsm, SGS_UE_E_RX_RESET_FROM_MME, NULL); + } +} + +/*! Perform an SGs location update. + * \param[in] vlr VLR instace. + * \param[in] cfg SGs interface configuration parameters. + * \param[in] response_cb calback function that is called when LU is done. + * \param[in] paging_cb calback function that is called when LU needs to page. + * \param[in] mminfo_cb calback function that is called to provide MM info to the UE. + * \param[in] mme_name fqdn of the requesting MME (mme-name). + * \param[in] type location update type (normal or IMSI attach). + * \param[in] imsi mobile identity (IMSI). + * \param[in] new_lai identifier of the new location area. + * \returns 0 in case of success, -EINVAL in case of error. */ +int vlr_sgs_loc_update(struct vlr_instance *vlr, struct vlr_sgs_cfg *cfg, + vlr_sgs_lu_response_cb_t response_cb, vlr_sgs_lu_paging_cb_t paging_cb, + vlr_sgs_lu_mminfo_cb_t mminfo_cb, char *mme_name, enum vlr_lu_type type, const char *imsi, + struct osmo_location_area_id *new_lai) +{ + struct vlr_subscr *vsub = NULL; + + OSMO_ASSERT(response_cb); + OSMO_ASSERT(paging_cb); + OSMO_ASSERT(mminfo_cb); + OSMO_ASSERT(cfg); + OSMO_ASSERT(imsi); + + vsub = vlr_subscr_find_or_create_by_imsi(vlr, imsi, NULL); + if (!vsub) { + LOGP(DSGS, LOGL_ERROR, "VLR subscriber allocation failed\n"); + return -EINVAL; + } + + vsub->sgs.cfg = *cfg; + vsub->sgs.response_cb = response_cb; + vsub->sgs.paging_cb = paging_cb; + vsub->sgs.mminfo_cb = mminfo_cb; + vlr_subscr_set_imsi(vsub, imsi); + osmo_strlcpy(vsub->sgs.mme_name, mme_name, sizeof(vsub->sgs.mme_name)); + + osmo_fsm_inst_dispatch(vsub->sgs_fsm, SGS_UE_E_RX_LU_FROM_MME, NULL); + + /* FIXME: Use the "type" type parameter (for what is it useful?) */ + + vsub->sgs.lai = *new_lai; + vsub->cgi.lai = *new_lai; + vsub->cs.lac = vsub->sgs.lai.lac; + + return 0; +} + +/*! Notify that the SGs Location Update accept message has been sent to MME. + * \param[in] vsub VLR subscriber. */ +void vlr_sgs_loc_update_acc_sent(struct vlr_subscr *vsub) +{ + osmo_fsm_inst_dispatch(vsub->sgs_fsm, SGS_UE_E_TX_LU_ACCEPT, NULL); + + /* FIXME: At this point we need to check the status of Ts5 and if + * it is still running this means the LU has interrupted the paging, + * and we need to start paging again. 3GPP TS 29.118, + * chapter 5.2.3.2 */ +} + +/*! Notify that the SGs Location Update reject message has been sent to MME. + * \param[in] vsub VLR subscriber. */ +void vlr_sgs_loc_update_rej_sent(struct vlr_subscr *vsub) +{ + osmo_fsm_inst_dispatch(vsub->sgs_fsm, SGS_UE_E_TX_LU_REJECT, NULL); +} + +/*! Perform an SGs IMSI detach. + * \param[in] vsub VLR subscriber. + * \param[in] imsi mobile identity (IMSI). + * \param[in] type datach type. */ +void vlr_sgs_imsi_detach(struct vlr_instance *vlr, const char *imsi, enum sgsap_imsi_det_noneps_type type) +{ + struct vlr_subscr *vsub; + enum sgs_ue_fsm_event evt; + vsub = vlr_subscr_find_by_imsi(vlr, imsi); + if (!vsub) + return; + + switch (type) { + case SGSAP_ID_NONEPS_T_EXPLICIT_UE_NONEPS: + evt = SGS_UE_E_RX_DETACH_IND_FROM_UE; + break; + case SGSAP_ID_NONEPS_T_COMBINED_UE_EPS_NONEPS: + case SGSAP_ID_NONEPS_T_IMPLICIT_UE_EPS_NONEPS: + /* FIXME: Is that right? */ + evt = SGS_UE_E_RX_DETACH_IND_FROM_MME; + break; + default: + LOGP(DSGS, LOGL_ERROR, "(sub %s) invalid SGS IMSI detach type, detaching anyway...\n", + vlr_subscr_msisdn_or_name(vsub)); + evt = SGS_UE_E_RX_DETACH_IND_FROM_MME; + break; + } + + osmo_fsm_inst_dispatch(vsub->sgs_fsm, evt, NULL); + vlr_subscr_put(vsub); +} + +/*! Perform an SGs EPS detach. + * \param[in] vsub VLR subscriber. + * \param[in] imsi mobile identity (IMSI). + * \param[in] type datach type. */ +void vlr_sgs_eps_detach(struct vlr_instance *vlr, const char *imsi, enum sgsap_imsi_det_eps_type type) +{ + struct vlr_subscr *vsub; + enum sgs_ue_fsm_event evt; + vsub = vlr_subscr_find_by_imsi(vlr, imsi); + if (!vsub) + return; + + switch (type) { + case SGSAP_ID_EPS_T_NETWORK_INITIATED: + evt = SGS_UE_E_RX_DETACH_IND_FROM_MME; + break; + case SGSAP_ID_EPS_T_UE_INITIATED: + evt = SGS_UE_E_RX_DETACH_IND_FROM_UE; + break; + case SGSAP_ID_EPS_T_EPS_NOT_ALLOWED: + evt = SGS_UE_E_RX_DETACH_IND_FROM_MME; + break; + default: + LOGP(DSGS, LOGL_ERROR, "(sub %s) invalid SGS IMSI detach type, detaching anyway...\n", + vlr_subscr_msisdn_or_name(vsub)); + evt = SGS_UE_E_RX_DETACH_IND_FROM_MME; + break; + } + + osmo_fsm_inst_dispatch(vsub->sgs_fsm, evt, NULL); + vlr_subscr_put(vsub); +} + +/*! Perform an SGs TMSI reallocation complete. + * \param[in] vsub VLR subscriber. + * \param[in] imsi mobile identity (IMSI). */ +void vlr_sgs_tmsi_reall_compl(struct vlr_instance *vlr, const char *imsi) +{ + struct vlr_subscr *vsub; + vsub = vlr_subscr_find_by_imsi(vlr, imsi); + if (!vsub) + return; + + osmo_fsm_inst_dispatch(vsub->sgs_fsm, SGS_UE_E_RX_TMSI_REALLOC, NULL); + vlr_subscr_put(vsub); +} + +/*! Notify that an SGs paging has been rejected by the MME. + * \param[in] vsub VLR subscriber. + * \param[in] imsi mobile identity (IMSI). + * \param[in] cause SGs cause code. */ +void vlr_sgs_pag_rej(struct vlr_instance *vlr, const char *imsi, enum sgsap_sgs_cause cause) +{ + struct vlr_subscr *vsub; + vsub = vlr_subscr_find_by_imsi(vlr, imsi); + if (!vsub) + return; + + /* On the reception of a paging rej the VLR is supposed to stop Ts5, + also 3GPP TS 29.118, chapter 5.1.2.4 */ + osmo_timer_del(&vsub->sgs.Ts5); + LOGP(DSGS, LOGL_DEBUG, "(sub %s) Paging via SGs interface rejected by MME, %s stopped, cause: %s!\n", + vlr_subscr_msisdn_or_name(vsub), vlr_sgs_state_timer_name(SGS_STATE_TS5), sgsap_sgs_cause_name(cause)); + + osmo_fsm_inst_dispatch(vsub->sgs_fsm, SGS_UE_E_RX_PAGING_FAILURE, &cause); + vlr_subscr_put(vsub); + + /* Balance ref count increment from vlr_sgs_pag() */ + vlr_subscr_put(vsub); +} + +/*! Notify that an SGs paging has been accepted by the MME. + * \param[in] vsub VLR subscriber. + * \param[in] imsi mobile identity (IMSI). */ +void vlr_sgs_pag_ack(struct vlr_instance *vlr, const char *imsi) +{ + struct vlr_subscr *vsub; + vsub = vlr_subscr_find_by_imsi(vlr, imsi); + if (!vsub) + return; + + /* Stop Ts5 and and consider the paging as successful */ + osmo_timer_del(&vsub->sgs.Ts5); + vlr_subscr_put(vsub); + + /* Balance ref count increment from vlr_sgs_pag() */ + vlr_subscr_put(vsub); +} + +/*! Notify that the UE has been marked as unreachable by the MME. + * \param[in] vsub VLR subscriber. + * \param[in] imsi mobile identity (IMSI). + * \param[in] cause SGs cause code. */ +void vlr_sgs_ue_unr(struct vlr_instance *vlr, const char *imsi, enum sgsap_sgs_cause cause) +{ + struct vlr_subscr *vsub; + vsub = vlr_subscr_find_by_imsi(vlr, imsi); + if (!vsub) + return; + + /* On the reception of an UE unreachable the VLR is supposed to stop + * Ts5, also 3GPP TS 29.118, chapter 5.1.2.5 */ + osmo_timer_del(&vsub->sgs.Ts5); + LOGP(DSGS, LOGL_DEBUG, + "(sub %s) Paging via SGs interface not possible, UE unreachable, %s stopped, cause: %s\n", + vlr_subscr_msisdn_or_name(vsub), vlr_sgs_state_timer_name(SGS_STATE_TS5), sgsap_sgs_cause_name(cause)); + + osmo_fsm_inst_dispatch(vsub->sgs_fsm, SGS_UE_E_RX_SGSAP_UE_UNREACHABLE, &cause); + vlr_subscr_put(vsub); +} + +/* Callback function that is called when an SGs paging request times out */ +static void Ts5_timeout_cb(void *arg) +{ + struct vlr_subscr *vsub = arg; + + /* 3GPP TS 29.118 does not specify a specif action that has to happen + * in case Ts5 times out. The timeout just indicates that the paging + * failed. Other actions may check the status of Ts5 to see if a paging + * is still ongoing or not. */ + + LOGP(DSGS, LOGL_ERROR, "(sub %s) Paging via SGs interface timed out (%s expired)!\n", + vlr_subscr_msisdn_or_name(vsub), vlr_sgs_state_timer_name(SGS_STATE_TS5)); + + /* Balance ref count increment from vlr_sgs_pag() */ + vlr_subscr_put(vsub); + + return; +} + +/*! Notify that a paging message has been sent and a paging is now in progress. + * \param[in] vsub VLR subscriber. */ +void vlr_sgs_pag(struct vlr_subscr *vsub, enum sgsap_service_ind serv_ind) +{ + + /* In cases where we have to respawn a paging after an intermitted LU, + * there may e a Ts5 still running. In those cases we have to remove + * the old timer first */ + if (osmo_timer_pending(&vsub->sgs.Ts5)) + osmo_timer_del(&vsub->sgs.Ts5); + + /* Note: 3GPP TS 29.118, chapter 4.2.2 mentions paging in the FSM + * diagram, but paging never causes a state transition except when + * an explicit failure is indicated (MME actively rejects paging). + * Apparantly it is also possible that an LU happens while the paging + * is still ongoing and Ts5 is running. (chapter 5.1.2.3). This means + * that the paging procedure is intended to run in parallel to the + * SGs FSM and given that the benaviour around Ts5 must be implemented + * also separately, to emphasize this separation Ts5 is implemented + * here in and not in vlr_sgs_fsm.c. */ + osmo_timer_setup(&vsub->sgs.Ts5, Ts5_timeout_cb, vsub); + osmo_timer_schedule(&vsub->sgs.Ts5, vsub->sgs.cfg.timer[SGS_STATE_TS5], 0); + + /* Formally 3GPP TS 29.118 defines the sending of a paging request + * as an event, but as far as the VLR is concerned only Ts5 is + * started. */ + osmo_fsm_inst_dispatch(vsub->sgs_fsm, SGS_UE_E_TX_PAGING, NULL); + + /* Memorize service type in for the case that the paging must be + * respawned after an LU */ + vsub->sgs.paging_serv_ind = serv_ind; + + /* Ensure that the reference count is increased by one while the + * paging is happening. We will balance this again in vlr_sgs_pag_rej() + * and vlr_sgs_pag_ack(); */ + vlr_subscr_get(vsub); +} + +/*! Check if the SGs interface is currently paging + * \param[in] vsub VLR subscriber. */ +bool vlr_sgs_pag_pend(struct vlr_subscr *vsub) +{ + return osmo_timer_pending(&vsub->sgs.Ts5); +} diff --git a/src/libvlr/vlr_sgs_fsm.c b/src/libvlr/vlr_sgs_fsm.c new file mode 100644 index 0000000..ee1d748 --- /dev/null +++ b/src/libvlr/vlr_sgs_fsm.c @@ -0,0 +1,386 @@ +/* (C) 2018-2019 by sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * Author: Harald Welte, Philipp Maier + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include +#include +#include +#include + +#include "vlr_sgs_fsm.h" +#include "vlr_core.h" + +#define S(x) (1 << (x)) + +static const struct value_string sgs_ue_fsm_event_names[] = { + {SGS_UE_E_VLR_FAILURE, "VLR_FAILURE"}, + {SGS_UE_E_RX_RESET_FROM_MME, "RX_RESET_FROM_MME"}, + {SGS_UE_E_RX_DETACH_IND_FROM_MME, "RX_DETACH_IND_FROM_MME"}, + {SGS_UE_E_RX_DETACH_IND_FROM_UE, "RX_DETACH_IND_FROM_UE"}, /* vlr.c */ + {SGS_UE_E_RX_LU_FROM_A_IU_GS, "RX_LU_FROM_A_Iu_Gs"}, /* vlr_lu_fsm.c */ + {SGS_UE_E_RX_PAGING_FAILURE, "RX_PAGING_FAILURE"}, + {SGS_UE_E_RX_ALERT_FAILURE, "RX_ALERT_FAILURE"}, + {SGS_UE_E_RX_LU_FROM_MME, "RX_LU_FROM_MME"}, + {SGS_UE_E_TX_LU_REJECT, "TX_LU_REJECT"}, + {SGS_UE_E_TX_LU_ACCEPT, "TX_LU_ACCEPT"}, + {SGS_UE_E_TX_PAGING, "TX_PAGING"}, + {SGS_UE_E_RX_SGSAP_UE_UNREACHABLE, "RX_SGSAP_UE_UNREACH"}, + {SGS_UE_E_RX_TMSI_REALLOC, "RX_TMSI_REALLOC"}, + {0, NULL} +}; + +/* Initiate location update and change to SGS_UE_ST_LA_UPD_PRES state */ +static void perform_lu(struct osmo_fsm_inst *fi) +{ + struct vlr_subscr *vsub = fi->priv; + int rc; + osmo_fsm_inst_state_chg(fi, SGS_UE_ST_LA_UPD_PRES, 0, 0); + vsub->ms_not_reachable_flag = false; + + /* Note: At the moment we allocate a new TMSI on each LU. */ + rc = vlr_subscr_alloc_tmsi(vsub); + if (rc != 0) + LOGPFSML(fi, LOGL_ERROR, "(sub %s) VLR LU tmsi allocation failed\n", vlr_subscr_name(vsub)); + + rc = vlr_subscr_req_lu(vsub); + if (rc != 0) + LOGPFSML(fi, LOGL_ERROR, "(sub %s) HLR LU request failed\n", vlr_subscr_name(vsub)); +} + +/* Send the SGs Association to NULL state immediately */ +static void to_null(struct osmo_fsm_inst *fi) +{ + struct vlr_subscr *vsub = fi->priv; + osmo_fsm_inst_state_chg(fi, SGS_UE_ST_NULL, 0, 0); + + /* Note: This is only relevent for cases where we are in the middle + * of an TMSI reallocation procedure. Should a failure of some sort + * put us to NULL state, we have to free the pending TMSI */ + vsub->tmsi_new = GSM_RESERVED_TMSI; + + /* Make sure any ongoing paging is aborted. */ + vsub->cs.is_paging = false; + + /* Ensure that Ts5 (pending paging via SGs) is deleted */ + if (vlr_sgs_pag_pend(vsub)) + osmo_timer_del(&vsub->sgs.Ts5); +} + +/* Respawn a pending paging (Timer is reset and a new paging request is sent) */ +static void respawn_paging(struct vlr_subscr *vsub) +{ + if (vlr_sgs_pag_pend(vsub)) { + + /* Delete the old paging timer first. */ + osmo_timer_del(&vsub->sgs.Ts5); + + /* Issue a fresh paging request */ + vsub->sgs.paging_cb(vsub, vsub->sgs.paging_serv_ind); + } +} + +/* Figure 4.2.2.1 SGs-NULL */ +static void sgs_ue_fsm_null(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + switch (event) { + case SGS_UE_E_RX_LU_FROM_MME: + perform_lu(fi); + break; + case SGS_UE_E_TX_PAGING: + /* do nothing */ + break; + case SGS_UE_E_RX_PAGING_FAILURE: + /* do nothing */ + break; + default: + OSMO_ASSERT(0); + } +} + +/* Figure 4.2.2.1 SGs-LA-UPDATE-PRESENT */ +static void sgs_ue_fsm_lau_present(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct vlr_subscr *vsub = fi->priv; + enum sgsap_sgs_cause *cause = NULL; + + switch (event) { + case SGS_UE_E_TX_LU_ACCEPT: + vsub->conf_by_radio_contact_ind = true; + vsub->sub_dataconf_by_hlr_ind = true; + vsub->loc_conf_in_hlr_ind = true; + vsub->la_allowed = true; + vsub->imsi_detached_flag = false; + vsub->lu_complete = true; + vlr_sgs_fsm_update_id(vsub); + vsub->cs.attached_via_ran = OSMO_RAT_EUTRAN_SGS; + + /* Check if we expect a TMSI REALLOCATION COMPLETE message from the MME + * by checking the tmsi_new flag. If this flag is not GSM_RESERVED_TMSI + * we know that we have a TMSI pending and need to wait for the MME + * to acknowlege first */ + if (vsub->tmsi_new != GSM_RESERVED_TMSI) { + osmo_fsm_inst_state_chg(fi, SGS_UE_ST_ASSOCIATED, vsub->sgs.cfg.timer[SGS_STATE_TS6_2], + SGS_STATE_TS6_2); + } else { + /* Trigger sending of an MM information request */ + vsub->sgs.mminfo_cb(vsub); + + /* In cases where the LU has interrupted the paging, respawn the paging now, + * See also: 3GPP TS 29.118, chapter 5.2.3.2 Location update response */ + if (vlr_sgs_pag_pend(vsub)) + respawn_paging(vsub); + + osmo_fsm_inst_state_chg(fi, SGS_UE_ST_ASSOCIATED, 0, 0); + } + + break; + case SGS_UE_E_RX_PAGING_FAILURE: + cause = data; + if (*cause == SGSAP_SGS_CAUSE_MT_CSFB_REJ_USER) + break; + to_null(fi); + break; + case SGS_UE_E_TX_LU_REJECT: + case SGS_UE_E_RX_ALERT_FAILURE: + to_null(fi); + break; + case SGS_UE_E_TX_PAGING: + /* do nothing */ + break; + default: + OSMO_ASSERT(0); + break; + } +} + +/* Figure 4.2.2.1 SGs-ASSOCIATED */ +static void sgs_ue_fsm_associated(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct vlr_subscr *vsub = fi->priv; + enum sgsap_sgs_cause *cause = NULL; + + switch (event) { + case SGS_UE_E_TX_PAGING: + /* do nothing */ + break; + case SGS_UE_E_RX_TMSI_REALLOC: + if (vsub->tmsi_new == GSM_RESERVED_TMSI) { + LOGPFSML(fi, LOGL_ERROR, + "(sub %s) TMSI reallocation completed at the MME, but no TMSI reallocation ordered.\n", + vlr_subscr_msisdn_or_name(vsub)); + } + + vsub->tmsi = vsub->tmsi_new; + vsub->tmsi_new = GSM_RESERVED_TMSI; + + /* Trigger sending of MM information */ + vsub->sgs.mminfo_cb(vsub); + + /* In cases where the LU has interrupted the paging, respawn the paging now, + * See also: 3GPP TS 29.118, chapter 5.2.3.2 Location update response */ + if (vlr_sgs_pag_pend(vsub)) + respawn_paging(vsub); + + /* Note: We are already in SGS_UE_ST_ASSOCIATED but the + * transition that lead us here had is guarded with Ts6-1, + * wo we change the state now once more without timeout + * to ensure the timer is stopped */ + osmo_fsm_inst_state_chg(fi, SGS_UE_ST_ASSOCIATED, 0, 0); + break; + case SGS_UE_E_RX_SGSAP_UE_UNREACHABLE: + /* do nothing */ + break; + case SGS_UE_E_RX_PAGING_FAILURE: + cause = data; + if (*cause == SGSAP_SGS_CAUSE_MT_CSFB_REJ_USER) + break; + to_null(fi); + case SGS_UE_E_RX_ALERT_FAILURE: + to_null(fi); + break; + case SGS_UE_E_RX_LU_FROM_MME: + perform_lu(fi); + break; + default: + OSMO_ASSERT(0); + break; + } +} + +/* Figure 4.2.2.1 From any of the three states (at the VLR) */ +static void sgs_ue_fsm_allstate(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct vlr_subscr *vsub = fi->priv; + + switch (event) { + case SGS_UE_E_RX_DETACH_IND_FROM_MME: + case SGS_UE_E_RX_DETACH_IND_FROM_UE: + vsub->imsi_detached_flag = true; + vsub->expire_lu = VLR_SUBSCRIBER_NO_EXPIRATION; + /* See 5.4.3 and 5.5.3 */ + to_null(fi); + break; + case SGS_UE_E_RX_RESET_FROM_MME: + /* See also 3GPP TS 29.118, chapter 5.7.2.1 VLR Reset Initiation */ + vsub->conf_by_radio_contact_ind = false; + to_null(fi); + break; + case SGS_UE_E_VLR_FAILURE: + case SGS_UE_E_RX_LU_FROM_A_IU_GS: + to_null(fi); + break; + default: + OSMO_ASSERT(0); + break; + } +} + +static int sgs_ue_fsm_timer_cb(struct osmo_fsm_inst *fi) +{ + struct vlr_subscr *vsub = fi->priv; + switch (fi->T) { + + case SGS_STATE_TS6_2: + /* Failed TMSI reallocation procedure, deallocate all TMSI + * information, but don't change the SGs association state. */ + vsub->tmsi_new = GSM_RESERVED_TMSI; + vsub->tmsi = GSM_RESERVED_TMSI; + break; + default: + /* Unhandled timer */ + OSMO_ASSERT(false); + break; + } + return 0; +} + +static const struct osmo_fsm_state sgs_ue_fsm_states[] = { + [SGS_UE_ST_NULL] = { + .name = "SGs-NULL", + .action = sgs_ue_fsm_null, + .in_event_mask = 0 + | S(SGS_UE_E_RX_LU_FROM_MME) + | S(SGS_UE_E_TX_PAGING) + | S(SGS_UE_E_RX_PAGING_FAILURE) + , + .out_state_mask = 0 + | S(SGS_UE_ST_NULL) + | S(SGS_UE_ST_LA_UPD_PRES) + , + }, + [SGS_UE_ST_LA_UPD_PRES] = { + .name = "SGs-LA-UPDATE-PRESENT", + .action = sgs_ue_fsm_lau_present, + .in_event_mask = 0 + | S(SGS_UE_E_TX_LU_ACCEPT) + | S(SGS_UE_E_TX_LU_REJECT) + | S(SGS_UE_E_TX_PAGING) + | S(SGS_UE_E_RX_PAGING_FAILURE) + | S(SGS_UE_E_RX_ALERT_FAILURE) + , + .out_state_mask = 0 + | S(SGS_UE_ST_NULL) + | S(SGS_UE_ST_ASSOCIATED) + | S(SGS_UE_ST_LA_UPD_PRES) + , + }, + [SGS_UE_ST_ASSOCIATED] = { + .name = "SGs-ASSOCIATED", + .action = sgs_ue_fsm_associated, + .in_event_mask = 0 + | S(SGS_UE_E_TX_PAGING) + | S(SGS_UE_E_RX_TMSI_REALLOC) + | S(SGS_UE_E_RX_SGSAP_UE_UNREACHABLE) + | S(SGS_UE_E_RX_PAGING_FAILURE) + | S(SGS_UE_E_RX_ALERT_FAILURE) + | S(SGS_UE_E_RX_LU_FROM_MME) + , + .out_state_mask = 0 + | S(SGS_UE_ST_NULL) + | S(SGS_UE_ST_ASSOCIATED) + | S(SGS_UE_ST_LA_UPD_PRES) + , + }, +}; + +static struct osmo_fsm sgs_ue_fsm = { + .name = "SGs-UE", + .states = sgs_ue_fsm_states, + .num_states = ARRAY_SIZE(sgs_ue_fsm_states), + .allstate_event_mask = S(SGS_UE_E_RX_RESET_FROM_MME) | + S(SGS_UE_E_VLR_FAILURE) | S(SGS_UE_E_RX_DETACH_IND_FROM_MME) | S(SGS_UE_E_RX_DETACH_IND_FROM_UE) | + S(SGS_UE_E_RX_LU_FROM_A_IU_GS), + .allstate_action = sgs_ue_fsm_allstate, + .timer_cb = sgs_ue_fsm_timer_cb, + .log_subsys = DSGS, + .event_names = sgs_ue_fsm_event_names, +}; + +/*! Initalize/Register SGs FSM in osmo-fsm subsystem */ +void vlr_sgs_fsm_init(void) +{ + if (osmo_fsm_find_by_name(sgs_ue_fsm.name) != &sgs_ue_fsm) + osmo_fsm_register(&sgs_ue_fsm); +} + +/*! Crate SGs FSM in struct vlr_subscr. + * \param[in] vsub VLR subscriber for which the SGs FSM should be created. */ +void vlr_sgs_fsm_create(struct vlr_subscr *vsub) +{ + char interim_fsm_id[256]; + static unsigned int fsm_id_num = 0; + + /* An SGSs FSM must not be created twice! */ + OSMO_ASSERT(!vsub->sgs_fsm); + + snprintf(interim_fsm_id, sizeof(interim_fsm_id), "num:%u", fsm_id_num); + + vsub->sgs_fsm = osmo_fsm_inst_alloc(&sgs_ue_fsm, vsub, vsub, LOGL_INFO, interim_fsm_id); + OSMO_ASSERT(vsub->sgs_fsm); + + osmo_fsm_inst_state_chg(vsub->sgs_fsm, SGS_UE_ST_NULL, 0, 0); + + fsm_id_num++; +} + +/*! Remove SGs FSM from struct vlr_subscr. + * \param[in] vsub VLR subscriber from which the SGs FSM should be removed. */ +void vlr_sgs_fsm_remove(struct vlr_subscr *vsub) +{ + /* An SGSs FSM must exist! */ + OSMO_ASSERT(vsub->sgs_fsm); + + osmo_fsm_inst_state_chg(vsub->sgs_fsm, SGS_UE_ST_NULL, 0, 0); + osmo_fsm_inst_term(vsub->sgs_fsm, OSMO_FSM_TERM_REGULAR, NULL); + vsub->sgs_fsm = NULL; +} + +/*! Update the ID of the SGs FSM with the subscriber IMSI + * \param[in] vsub VLR subscriber to update. */ +void vlr_sgs_fsm_update_id(struct vlr_subscr *vsub) +{ + char fsm_id[256]; + + if (strlen(vsub->imsi) > 0) { + snprintf(fsm_id, sizeof(fsm_id), "imsi:%s", vsub->imsi); + osmo_fsm_inst_update_id(vsub->sgs_fsm, fsm_id); + } +} diff --git a/src/libvlr/vlr_sgs_fsm.h b/src/libvlr/vlr_sgs_fsm.h new file mode 100644 index 0000000..94f202b --- /dev/null +++ b/src/libvlr/vlr_sgs_fsm.h @@ -0,0 +1,42 @@ +/* (C) 2018-2019 by sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * Author: Harald Welte, Philipp Maier + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +#pragma once + +enum sgs_ue_fsm_event { + SGS_UE_E_VLR_FAILURE, + SGS_UE_E_RX_RESET_FROM_MME, + SGS_UE_E_RX_DETACH_IND_FROM_MME, + SGS_UE_E_RX_DETACH_IND_FROM_UE, + SGS_UE_E_RX_LU_FROM_A_IU_GS, + SGS_UE_E_RX_PAGING_FAILURE, + SGS_UE_E_RX_ALERT_FAILURE, + SGS_UE_E_RX_LU_FROM_MME, + SGS_UE_E_TX_LU_REJECT, + SGS_UE_E_TX_LU_ACCEPT, + SGS_UE_E_TX_PAGING, + SGS_UE_E_RX_SGSAP_UE_UNREACHABLE, + SGS_UE_E_RX_TMSI_REALLOC, +}; + +void vlr_sgs_fsm_init(void); +void vlr_sgs_fsm_create(struct vlr_subscr *vsub); +void vlr_sgs_fsm_remove(struct vlr_subscr *vsub); +void vlr_sgs_fsm_update_id(struct vlr_subscr *vsub); diff --git a/src/osmo-msc/Makefile.am b/src/osmo-msc/Makefile.am index bcc4ada..abe9ad3 100644 --- a/src/osmo-msc/Makefile.am +++ b/src/osmo-msc/Makefile.am @@ -12,6 +12,7 @@ $(LIBOSMOVTY_CFLAGS) \ $(LIBOSMOCTRL_CFLAGS) \ $(LIBOSMOABIS_CFLAGS) \ + $(LIBOSMONETIF_CFLAGS) \ $(LIBSMPP34_CFLAGS) \ $(LIBOSMORANAP_CFLAGS) \ $(LIBASN1C_CFLAGS) \ @@ -40,11 +41,13 @@ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOCTRL_LIBS) \ $(LIBOSMOABIS_LIBS) \ + $(LIBOSMONETIF_LIBS) \ $(LIBSMPP34_LIBS) \ $(LIBOSMOSIGTRAN_LIBS) \ $(LIBOSMOMGCPCLIENT_LIBS) \ $(LIBOSMOGSUPCLIENT_LIBS) \ -ldbi \ + -lsctp \ $(NULL) if BUILD_IU osmo_msc_LDADD += \ diff --git a/src/osmo-msc/msc_main.c b/src/osmo-msc/msc_main.c index 6eecf46..f29b2a8 100644 --- a/src/osmo-msc/msc_main.c +++ b/src/osmo-msc/msc_main.c @@ -61,6 +61,7 @@ #include #include #include +#include #ifdef BUILD_IU #include @@ -491,6 +492,12 @@ .description = "BSSAP Protocol (A Interface)", .enabled = 1, .loglevel = LOGL_NOTICE, }, + [DSGS] = { + .name = "DSGS", + .description = "SGs Interface (SGsAP)", + .enabled = 1, .loglevel = LOGL_NOTICE, + }, + }; @@ -566,6 +573,7 @@ if (smpp_openbsc_alloc_init(tall_msc_ctx) < 0) return -1; #endif + sgs_iface_init(tall_msc_ctx, msc_network); rc = vty_read_config_file(msc_cmdline_config.config_file, NULL); if (rc < 0) { diff --git a/tests/msc_vlr/Makefile.am b/tests/msc_vlr/Makefile.am index 8a5e719..dea63e5 100644 --- a/tests/msc_vlr/Makefile.am +++ b/tests/msc_vlr/Makefile.am @@ -57,6 +57,7 @@ noinst_HEADERS = \ msc_vlr_tests.h \ + stubs.h \ $(NULL) EXTRA_DIST = \ diff --git a/tests/msc_vlr/msc_vlr_test_authen_reuse.c b/tests/msc_vlr/msc_vlr_test_authen_reuse.c index bdbdae3..0972584 100644 --- a/tests/msc_vlr/msc_vlr_test_authen_reuse.c +++ b/tests/msc_vlr/msc_vlr_test_authen_reuse.c @@ -24,6 +24,7 @@ /* NOTE that further auth re-use tests exist in msc_vlr_test_hlr_reject.c */ #include "msc_vlr_tests.h" +#include "stubs.h" static void _test_auth_reuse(enum osmo_rat_type via_ran, int set_max_reuse_count, diff --git a/tests/msc_vlr/msc_vlr_test_call.c b/tests/msc_vlr/msc_vlr_test_call.c index b5f6b6c..29639b5 100644 --- a/tests/msc_vlr/msc_vlr_test_call.c +++ b/tests/msc_vlr/msc_vlr_test_call.c @@ -22,6 +22,7 @@ */ #include "msc_vlr_tests.h" +#include "stubs.h" #include diff --git a/tests/msc_vlr/msc_vlr_test_gsm_authen.c b/tests/msc_vlr/msc_vlr_test_gsm_authen.c index f6f1ab6..8dca655 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_authen.c +++ b/tests/msc_vlr/msc_vlr_test_gsm_authen.c @@ -22,6 +22,7 @@ */ #include "msc_vlr_tests.h" +#include "stubs.h" static void test_gsm_authen() { diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c index 31b5f5d..19092e2 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c @@ -22,6 +22,7 @@ */ #include "msc_vlr_tests.h" +#include "stubs.h" static void test_ciph() { diff --git a/tests/msc_vlr/msc_vlr_test_hlr_reject.c b/tests/msc_vlr/msc_vlr_test_hlr_reject.c index 13bed42..c613ff9 100644 --- a/tests/msc_vlr/msc_vlr_test_hlr_reject.c +++ b/tests/msc_vlr/msc_vlr_test_hlr_reject.c @@ -22,6 +22,7 @@ */ #include "msc_vlr_tests.h" +#include "stubs.h" static void test_hlr_rej_auth_info_unknown_imsi() { diff --git a/tests/msc_vlr/msc_vlr_test_hlr_timeout.c b/tests/msc_vlr/msc_vlr_test_hlr_timeout.c index b23a7a7..bb7ef19 100644 --- a/tests/msc_vlr/msc_vlr_test_hlr_timeout.c +++ b/tests/msc_vlr/msc_vlr_test_hlr_timeout.c @@ -22,6 +22,7 @@ */ #include "msc_vlr_tests.h" +#include "stubs.h" #include diff --git a/tests/msc_vlr/msc_vlr_test_ms_timeout.c b/tests/msc_vlr/msc_vlr_test_ms_timeout.c index 3702a0c..9eae850 100644 --- a/tests/msc_vlr/msc_vlr_test_ms_timeout.c +++ b/tests/msc_vlr/msc_vlr_test_ms_timeout.c @@ -22,6 +22,7 @@ */ #include "msc_vlr_tests.h" +#include "stubs.h" static void test_ms_timeout_lu_auth_resp() { diff --git a/tests/msc_vlr/msc_vlr_test_no_authen.c b/tests/msc_vlr/msc_vlr_test_no_authen.c index d52d3d6..df23011 100644 --- a/tests/msc_vlr/msc_vlr_test_no_authen.c +++ b/tests/msc_vlr/msc_vlr_test_no_authen.c @@ -22,6 +22,7 @@ */ #include "msc_vlr_tests.h" +#include "stubs.h" static void test_no_authen() { diff --git a/tests/msc_vlr/msc_vlr_test_reject_concurrency.c b/tests/msc_vlr/msc_vlr_test_reject_concurrency.c index 66d2e39..ec7117b 100644 --- a/tests/msc_vlr/msc_vlr_test_reject_concurrency.c +++ b/tests/msc_vlr/msc_vlr_test_reject_concurrency.c @@ -22,6 +22,7 @@ */ #include "msc_vlr_tests.h" +#include "stubs.h" static void test_reject_2nd_conn() { diff --git a/tests/msc_vlr/msc_vlr_test_rest.c b/tests/msc_vlr/msc_vlr_test_rest.c index 4587383..7c17a83 100644 --- a/tests/msc_vlr/msc_vlr_test_rest.c +++ b/tests/msc_vlr/msc_vlr_test_rest.c @@ -22,6 +22,7 @@ */ #include "msc_vlr_tests.h" +#include "stubs.h" static void test_early_stage() { diff --git a/tests/msc_vlr/msc_vlr_test_ss.c b/tests/msc_vlr/msc_vlr_test_ss.c index 0390196..b264d07 100644 --- a/tests/msc_vlr/msc_vlr_test_ss.c +++ b/tests/msc_vlr/msc_vlr_test_ss.c @@ -21,6 +21,7 @@ */ #include "msc_vlr_tests.h" +#include "stubs.h" #define IMSI "901700000004620" diff --git a/tests/msc_vlr/msc_vlr_test_umts_authen.c b/tests/msc_vlr/msc_vlr_test_umts_authen.c index beeea22..8528b98 100644 --- a/tests/msc_vlr/msc_vlr_test_umts_authen.c +++ b/tests/msc_vlr/msc_vlr_test_umts_authen.c @@ -22,6 +22,7 @@ */ #include "msc_vlr_tests.h" +#include "stubs.h" static void _test_umts_authen(enum osmo_rat_type via_ran) { diff --git a/tests/msc_vlr/stubs.h b/tests/msc_vlr/stubs.h new file mode 100644 index 0000000..bf55baa --- /dev/null +++ b/tests/msc_vlr/stubs.h @@ -0,0 +1,40 @@ +/* (C) 2018-2019 by sysmocom s.f.m.c. GmbH + * All Rights Reserved + * + * Author: Harald Welte, Philipp Maier + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +void osmo_stream_srv_link_set_data(struct osmo_stream_srv_link *link, void *data) {} +struct osmo_fd *osmo_stream_srv_get_ofd(struct osmo_stream_srv *srv) { return NULL; } +void osmo_stream_srv_destroy(struct osmo_stream_srv *conn) {} +struct osmo_stream_srv *osmo_stream_srv_create(void *ctx, struct osmo_stream_srv_link *link, + int fd, int (*cb)(struct osmo_stream_srv *conn), + int (*closed_cb)(struct osmo_stream_srv *conn), + void *data) { return NULL; } +void osmo_stream_srv_send(struct osmo_stream_srv *conn, struct msgb *msg) {} +void osmo_stream_srv_link_set_proto(struct osmo_stream_srv_link *link, uint16_t proto) {} +struct osmo_fd *osmo_stream_srv_link_get_ofd(struct osmo_stream_srv_link *link) { return NULL; } +struct osmo_stream_srv_link *osmo_stream_srv_link_create(void *ctx) { return NULL; } +void *osmo_stream_srv_get_data(struct osmo_stream_srv *conn) { return NULL; } +void osmo_stream_srv_link_set_nodelay(struct osmo_stream_srv_link *link, bool nodelay) {} +void osmo_stream_srv_link_set_accept_cb(struct osmo_stream_srv_link *link, int (*accept_cb) + (struct osmo_stream_srv_link *link, int fd)) {} +int osmo_stream_srv_link_open(struct osmo_stream_srv_link *link) { return 0; } +void *osmo_stream_srv_link_get_data(struct osmo_stream_srv_link *link) { return NULL; } +void osmo_stream_srv_link_set_port(struct osmo_stream_srv_link *link, uint16_t port) {} +void osmo_stream_srv_link_set_addr(struct osmo_stream_srv_link *link, const char *addr) {} +int sctp_recvmsg(int sd, void *msg, size_t len, void *from, void *fromlen, void *info, int *msg_flags) { return 0; } diff --git a/tests/sms_queue/sms_queue_test.c b/tests/sms_queue/sms_queue_test.c index 68819b9..e426377 100644 --- a/tests/sms_queue/sms_queue_test.c +++ b/tests/sms_queue/sms_queue_test.c @@ -237,3 +237,24 @@ return 0; } + +void osmo_stream_srv_link_set_data(struct osmo_stream_srv_link *link, void *data) {} +struct osmo_fd *osmo_stream_srv_get_ofd(struct osmo_stream_srv *srv) { return NULL; } +void osmo_stream_srv_destroy(struct osmo_stream_srv *conn) {} +struct osmo_stream_srv *osmo_stream_srv_create(void *ctx, struct osmo_stream_srv_link *link, + int fd, int (*cb)(struct osmo_stream_srv *conn), + int (*closed_cb)(struct osmo_stream_srv *conn), + void *data) { return NULL; } +void osmo_stream_srv_send(struct osmo_stream_srv *conn, struct msgb *msg) {} +void osmo_stream_srv_link_set_proto(struct osmo_stream_srv_link *link, uint16_t proto) {} +struct osmo_fd *osmo_stream_srv_link_get_ofd(struct osmo_stream_srv_link *link) { return NULL; } +struct osmo_stream_srv_link *osmo_stream_srv_link_create(void *ctx) { return NULL; } +void *osmo_stream_srv_get_data(struct osmo_stream_srv *conn) { return NULL; } +void osmo_stream_srv_link_set_nodelay(struct osmo_stream_srv_link *link, bool nodelay) {} +void osmo_stream_srv_link_set_accept_cb(struct osmo_stream_srv_link *link, int (*accept_cb) + (struct osmo_stream_srv_link *link, int fd)) {} +int osmo_stream_srv_link_open(struct osmo_stream_srv_link *link) { return 0; } +void *osmo_stream_srv_link_get_data(struct osmo_stream_srv_link *link) { return NULL; } +void osmo_stream_srv_link_set_port(struct osmo_stream_srv_link *link, uint16_t port) {} +void osmo_stream_srv_link_set_addr(struct osmo_stream_srv_link *link, const char *addr) {} +int sctp_recvmsg(int sd, void *msg, size_t len, void *from, void *fromlen, void *info, int *msg_flags) { return 0; } diff --git a/tests/test_nodes.vty b/tests/test_nodes.vty index c62c692..f2312d1 100644 --- a/tests/test_nodes.vty +++ b/tests/test_nodes.vty @@ -4,6 +4,7 @@ ... network msc + sgs mncc-int hlr ... @@ -92,6 +93,18 @@ OsmoMSC# configure terminal OsmoMSC(config)# network OsmoMSC(config-net)# end + +OsmoMSC# configure terminal +OsmoMSC(config)# sgs +OsmoMSC(config-sgs)# list +... + local-ip A.B.C.D + local-port <0-65535> + timer (ts5|ts6-2|ts7|ts11|ts14|ts15) <1-120> + counter (ns7|ns11) <0-255> + vlr-name FQDN +OsmoMSC(config-sgs)# end + OsmoMSC# disable OsmoMSC> enable @@ -125,4 +138,7 @@ hlr remote-ip 127.0.0.1 remote-port 4222 +sgs + local-ip 0.0.0.0 + vlr-name vlr.example.net end -- To view, visit https://gerrit.osmocom.org/11642 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I73359925fc1ca72b33a1466e6ac41307f2f0b11d Gerrit-Change-Number: 11642 Gerrit-PatchSet: 36 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: dexter Gerrit-CC: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 10:46:06 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 10:46:06 +0000 Subject: Change in gr-gsm[master]: python/trx: rename 'change_sign_of_dict_elements' to 'dict_toggle_sign' In-Reply-To: References: Message-ID: Piotr Krysik has posted comments on this change. ( https://gerrit.osmocom.org/12575 ) Change subject: python/trx: rename 'change_sign_of_dict_elements' to 'dict_toggle_sign' ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12575 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie75e1d6e5e74c7c1cf34154633c1472e4b85dbb6 Gerrit-Change-Number: 12575 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik Gerrit-Comment-Date: Tue, 05 Feb 2019 10:46:06 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 10:46:43 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 10:46:43 +0000 Subject: Change in gr-gsm[master]: trx/radio_if.py: use existing 'dict_toggle_sign' block In-Reply-To: References: Message-ID: Piotr Krysik has posted comments on this change. ( https://gerrit.osmocom.org/12576 ) Change subject: trx/radio_if.py: use existing 'dict_toggle_sign' block ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12576 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifa616644a858f493b9f8706663f9e7fed717f3d0 Gerrit-Change-Number: 12576 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik Gerrit-Comment-Date: Tue, 05 Feb 2019 10:46:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 10:49:25 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 10:49:25 +0000 Subject: Change in gr-gsm[master]: python/trx: use CamelCase naming for basic classes In-Reply-To: References: Message-ID: Piotr Krysik has posted comments on this change. ( https://gerrit.osmocom.org/12629 ) Change subject: python/trx: use CamelCase naming for basic classes ...................................................................... Patch Set 1: Verified+1 Code-Review+2 This change moves us to the Dark Side (TM) IMO ;). But let it be this way. -- To view, visit https://gerrit.osmocom.org/12629 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ica9c56d01191dda38e63b51caba2ec8c63b671c9 Gerrit-Change-Number: 12629 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik Gerrit-Comment-Date: Tue, 05 Feb 2019 10:49:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 10:50:05 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 10:50:05 +0000 Subject: Change in gr-gsm[master]: apps/grgsm_trx: move init code from run() to __init__() In-Reply-To: References: Message-ID: Piotr Krysik has posted comments on this change. ( https://gerrit.osmocom.org/12630 ) Change subject: apps/grgsm_trx: move init code from run() to __init__() ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12630 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1bcc9c8a2d37d156bbec93be3838200f6c4a80c2 Gerrit-Change-Number: 12630 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik Gerrit-Comment-Date: Tue, 05 Feb 2019 10:50:05 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 10:55:54 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 10:55:54 +0000 Subject: Change in gr-gsm[master]: python/trx: get rid of FakePM class In-Reply-To: References: Message-ID: Piotr Krysik has posted comments on this change. ( https://gerrit.osmocom.org/12631 ) Change subject: python/trx: get rid of FakePM class ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie96eb9735ecaa3329135c7be976ffd277a2f64f4 Gerrit-Change-Number: 12631 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik Gerrit-Comment-Date: Tue, 05 Feb 2019 10:55:54 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 11:03:49 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 11:03:49 +0000 Subject: Change in gr-gsm[master]: trx/radio_if.py: do not init both rx_freq and tx_freq In-Reply-To: References: Message-ID: Piotr Krysik has posted comments on this change. ( https://gerrit.osmocom.org/12632 ) Change subject: trx/radio_if.py: do not init both rx_freq and tx_freq ...................................................................... Patch Set 1: Verified+1 Code-Review+2 (1 comment) https://gerrit.osmocom.org/#/c/12632/1/python/trx/radio_if.py File python/trx/radio_if.py: https://gerrit.osmocom.org/#/c/12632/1/python/trx/radio_if.py at 230 PS1, Line 230: self.DUMMY_FREQ, phy_sample_rate, osr = self.osr) the DUMMY_FREQ is never changed. It should be updated in set_rx_freq. This problem existed before - self.rx_freq wasn't updated as well. We should add updating of this value. -- To view, visit https://gerrit.osmocom.org/12632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9f251958ec90141d144fdb027aff20182131a1d1 Gerrit-Change-Number: 12632 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik Gerrit-Comment-Date: Tue, 05 Feb 2019 11:03:49 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 11:14:18 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 5 Feb 2019 11:14:18 +0000 Subject: Change in libosmo-netif[master]: Stream client: update logging Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12836 Change subject: Stream client: update logging ...................................................................... Stream client: update logging Introduce logging macro wrapper to properly log current client state and function to aid in debugging. Change-Id: Ie22a80dcec95998cce0b25053fdf74f23eab6e53 --- M src/stream.c 1 file changed, 24 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/36/12836/1 diff --git a/src/stream.c b/src/stream.c index dbbaa9c..ca67aa0 100644 --- a/src/stream.c +++ b/src/stream.c @@ -49,6 +49,8 @@ #include #endif +#define LOGSCLI(cli, level, fmt, args...) LOGP(DLINP, level, "[%s] %s(): " fmt, get_value_string(stream_cli_state_names, cli->state), __func__, ## args) + /*! \addtogroup stream Osmocom Stream Socket * @{ * @@ -131,6 +133,13 @@ STREAM_CLI_STATE_MAX }; +const struct value_string stream_cli_state_names[] = { + { STREAM_CLI_STATE_NONE, " NONE" }, + { STREAM_CLI_STATE_CONNECTING, "CONNECTING" }, + { STREAM_CLI_STATE_CONNECTED, " CONNECTED" }, + { 0, NULL } +}; + #define OSMO_STREAM_CLI_F_RECONF (1 << 0) #define OSMO_STREAM_CLI_F_NODELAY (1 << 1) @@ -160,12 +169,12 @@ void osmo_stream_cli_reconnect(struct osmo_stream_cli *cli) { if (cli->reconnect_timeout < 0) { - LOGP(DLINP, LOGL_DEBUG, "not reconnecting, disabled.\n"); + LOGSCLI(cli, LOGL_DEBUG, "not reconnecting, disabled.\n"); return; } - LOGP(DLINP, LOGL_DEBUG, "connection closed\n"); + LOGSCLI(cli, LOGL_DEBUG, "connection closed\n"); osmo_stream_cli_close(cli); - LOGP(DLINP, LOGL_DEBUG, "retrying in %d seconds...\n", + LOGSCLI(cli, LOGL_DEBUG, "retrying in %d seconds...\n", cli->reconnect_timeout); osmo_timer_schedule(&cli->timer, cli->reconnect_timeout, 0); cli->state = STREAM_CLI_STATE_CONNECTING; @@ -186,7 +195,7 @@ static void osmo_stream_cli_read(struct osmo_stream_cli *cli) { - LOGP(DLINP, LOGL_DEBUG, "message received\n"); + LOGSCLI(cli, LOGL_DEBUG, "message received\n"); if (cli->read_cb) cli->read_cb(cli); @@ -201,7 +210,7 @@ struct llist_head *lh; int ret; - LOGP(DLINP, LOGL_DEBUG, "sending data\n"); + LOGSCLI(cli, LOGL_DEBUG, "sending data\n"); if (llist_empty(&cli->tx_queue)) { cli->ofd.when &= ~BSC_FD_WRITE; @@ -212,7 +221,7 @@ msg = llist_entry(lh, struct msgb, list); if (cli->state == STREAM_CLI_STATE_CONNECTING) { - LOGP(DLINP, LOGL_ERROR, "not connected, dropping data!\n"); + LOGSCLI(cli, LOGL_ERROR, "not connected, dropping data!\n"); return 0; } @@ -235,7 +244,7 @@ if (errno == EPIPE || errno == ENOTCONN) { osmo_stream_cli_reconnect(cli); } - LOGP(DLINP, LOGL_ERROR, "error to send\n"); + LOGSCLI(cli, LOGL_ERROR, "error to send\n"); } msgb_free(msg); return 0; @@ -255,7 +264,7 @@ return 0; } ofd->when &= ~BSC_FD_WRITE; - LOGP(DLINP, LOGL_DEBUG, "connection done.\n"); + LOGSCLI(cli, LOGL_DEBUG, "connection done.\n"); cli->state = STREAM_CLI_STATE_CONNECTED; if (cli->proto == IPPROTO_SCTP) { #ifdef SO_NOSIGPIPE @@ -263,7 +272,7 @@ ret = setsockopt(ofd->fd, SOL_SOCKET, SO_NOSIGPIPE, (void*)&val, sizeof(val)); if (ret < 0) - LOGP(DLINP, LOGL_DEBUG, "Failed setting SO_NOSIGPIPE: %s\n", strerror(errno)); + LOGSCLI(cli, LOGL_DEBUG, "Failed setting SO_NOSIGPIPE: %s\n", strerror(errno)); #endif sctp_sock_activate_events(ofd->fd); } @@ -272,11 +281,11 @@ break; case STREAM_CLI_STATE_CONNECTED: if (what & BSC_FD_READ) { - LOGP(DLINP, LOGL_DEBUG, "connected read\n"); + LOGSCLI(cli, LOGL_DEBUG, "connected read\n"); osmo_stream_cli_read(cli); } if (what & BSC_FD_WRITE) { - LOGP(DLINP, LOGL_DEBUG, "connected write\n"); + LOGSCLI(cli, LOGL_DEBUG, "connected write\n"); osmo_stream_cli_write(cli); } break; @@ -503,7 +512,7 @@ { struct osmo_stream_cli *cli = data; - LOGP(DLINP, LOGL_DEBUG, "reconnecting.\n"); + LOGSCLI(cli, LOGL_DEBUG, "reconnecting.\n"); switch(cli->state) { case STREAM_CLI_STATE_CONNECTING: @@ -535,18 +544,17 @@ ret = recv(cli->ofd.fd, msg->data, msg->data_len, 0); if (ret < 0) { if (errno == EPIPE || errno == ECONNRESET) { - LOGP(DLINP, LOGL_ERROR, - "lost connection with srv\n"); + LOGSCLI(cli, LOGL_ERROR, "lost connection with srv\n"); } osmo_stream_cli_reconnect(cli); return ret; } else if (ret == 0) { - LOGP(DLINP, LOGL_ERROR, "connection closed with srv\n"); + LOGSCLI(cli, LOGL_ERROR, "connection closed with srv\n"); osmo_stream_cli_reconnect(cli); return ret; } msgb_put(msg, ret); - LOGP(DLINP, LOGL_DEBUG, "received %d bytes from srv\n", ret); + LOGSCLI(cli, LOGL_DEBUG, "received %d bytes from srv\n", ret); return ret; } -- To view, visit https://gerrit.osmocom.org/12836 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie22a80dcec95998cce0b25053fdf74f23eab6e53 Gerrit-Change-Number: 12836 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 11:33:08 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 5 Feb 2019 11:33:08 +0000 Subject: Change in gr-gsm[master]: trx/radio_if.py: do not init both rx_freq and tx_freq In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12632 ) Change subject: trx/radio_if.py: do not init both rx_freq and tx_freq ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12632/1/python/trx/radio_if.py File python/trx/radio_if.py: https://gerrit.osmocom.org/#/c/12632/1/python/trx/radio_if.py at 230 PS1, Line 230: self.DUMMY_FREQ, phy_sample_rate, osr = self.osr) > the DUMMY_FREQ is never changed. It should be updated in set_rx_freq. [?] Yep, agree with you. I've also noticed this, please see: https://gerrit.osmocom.org/#/c/gr-gsm/+/12637/ -- To view, visit https://gerrit.osmocom.org/12632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9f251958ec90141d144fdb027aff20182131a1d1 Gerrit-Change-Number: 12632 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 05 Feb 2019 11:33:08 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 11:45:12 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 11:45:12 +0000 Subject: Change in gr-gsm[master]: trx/radio_if.py: introduce a new @property 'ready' In-Reply-To: References: Message-ID: Piotr Krysik has posted comments on this change. ( https://gerrit.osmocom.org/12633 ) Change subject: trx/radio_if.py: introduce a new @property 'ready' ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I513da0f45c6a608d15fbd0e8eafe14d6af8833d7 Gerrit-Change-Number: 12633 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik Gerrit-Comment-Date: Tue, 05 Feb 2019 11:45:12 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 11:52:26 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 11:52:26 +0000 Subject: Change in gr-gsm[master]: python/trx: introduce and use Transceiver class In-Reply-To: References: Message-ID: Piotr Krysik has posted comments on this change. ( https://gerrit.osmocom.org/12635 ) Change subject: python/trx: introduce and use Transceiver class ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12635 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6dc88edbb69a68746cc8e01206dc86f7ea2fa80f Gerrit-Change-Number: 12635 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik Gerrit-Comment-Date: Tue, 05 Feb 2019 11:52:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 11:53:32 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 11:53:32 +0000 Subject: Change in gr-gsm[master]: trx/radio_if.py: do not print anything if freq. shift is 0 In-Reply-To: References: Message-ID: Piotr Krysik has posted comments on this change. ( https://gerrit.osmocom.org/12636 ) Change subject: trx/radio_if.py: do not print anything if freq. shift is 0 ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12636 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I100ce2ab8effc00e164e13253894445bdc816f06 Gerrit-Change-Number: 12636 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik Gerrit-Comment-Date: Tue, 05 Feb 2019 11:53:32 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 11:54:07 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 11:54:07 +0000 Subject: Change in gr-gsm[master]: trx/radio_if.py: update clock_offset_control in set_rx_freq() In-Reply-To: References: Message-ID: Piotr Krysik has posted comments on this change. ( https://gerrit.osmocom.org/12637 ) Change subject: trx/radio_if.py: update clock_offset_control in set_rx_freq() ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12637 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I065bf664f775099c90c123c9ff75f262a73bf1be Gerrit-Change-Number: 12637 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik Gerrit-Comment-Date: Tue, 05 Feb 2019 11:54:07 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 11:58:22 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 5 Feb 2019 11:58:22 +0000 Subject: Change in gr-gsm[master]: trx/ctrl_if_bb.py: reset transceiver on POWEROFF In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12634 ) Change subject: trx/ctrl_if_bb.py: reset transceiver on POWEROFF ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/12634 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1e7f74c56388a431794a0b32b8a9537c360f5d33 Gerrit-Change-Number: 12634 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Piotr Krysik Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 05 Feb 2019 11:58:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 12:01:22 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 5 Feb 2019 12:01:22 +0000 Subject: Change in libosmo-netif[master]: Stream client: fix disconnection logic In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12760 ) Change subject: Stream client: fix disconnection logic ...................................................................... Patch Set 4: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/12760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If41ed60bd625488c283d1e8a2b078e640f04c78e Gerrit-Change-Number: 12760 Gerrit-PatchSet: 4 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pablo Neira Ayuso Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 05 Feb 2019 12:01:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 12:02:05 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 12:02:05 +0000 Subject: Change in gr-gsm[master]: trx/ctrl_if.py: use relative import for UDPLink In-Reply-To: References: Message-ID: Piotr Krysik has posted comments on this change. ( https://gerrit.osmocom.org/12672 ) Change subject: trx/ctrl_if.py: use relative import for UDPLink ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12672 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If4b00f6332461d3c37cde5a1f724906ca3d3a30f Gerrit-Change-Number: 12672 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Piotr Krysik Gerrit-Comment-Date: Tue, 05 Feb 2019 12:02:05 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 12:06:43 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 12:06:43 +0000 Subject: Change in gr-gsm[master]: python/trx: fork RadioInterfaceUHD from RadioInterface In-Reply-To: References: Message-ID: Piotr Krysik has posted comments on this change. ( https://gerrit.osmocom.org/12673 ) Change subject: python/trx: fork RadioInterfaceUHD from RadioInterface ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12673 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1644a3f6b8da0d5f2a1a133058269e5383948fda Gerrit-Change-Number: 12673 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Piotr Krysik Gerrit-Comment-Date: Tue, 05 Feb 2019 12:06:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 12:07:40 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 12:07:40 +0000 Subject: Change in gr-gsm[master]: trx/radio_if.py: print type of RadioInterface In-Reply-To: References: Message-ID: Piotr Krysik has posted comments on this change. ( https://gerrit.osmocom.org/12674 ) Change subject: trx/radio_if.py: print type of RadioInterface ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6c1ba8546caec122cd1ea0ed87656f691abec068 Gerrit-Change-Number: 12674 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Piotr Krysik Gerrit-Comment-Date: Tue, 05 Feb 2019 12:07:40 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 12:07:59 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 12:07:59 +0000 Subject: Change in gr-gsm[master]: apps/grgsm_trx: add RadioInterface driver selection argument In-Reply-To: References: Message-ID: Piotr Krysik has posted comments on this change. ( https://gerrit.osmocom.org/12675 ) Change subject: apps/grgsm_trx: add RadioInterface driver selection argument ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12675 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic11f878c176bad16b057f25725ab0cfecc01782f Gerrit-Change-Number: 12675 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Piotr Krysik Gerrit-Comment-Date: Tue, 05 Feb 2019 12:07:59 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 12:09:29 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 12:09:29 +0000 Subject: Change in gr-gsm[master]: apps/grgsm_trx: introduce initial LMS driver support In-Reply-To: References: Message-ID: Piotr Krysik has posted comments on this change. ( https://gerrit.osmocom.org/12676 ) Change subject: apps/grgsm_trx: introduce initial LMS driver support ...................................................................... Patch Set 2: Verified+1 Code-Review+2 I suppose it will be pure fun to make the LMS support work ;). -- To view, visit https://gerrit.osmocom.org/12676 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie983b10d1814906b6e659213f865e58d0f5c08e4 Gerrit-Change-Number: 12676 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik Gerrit-Comment-Date: Tue, 05 Feb 2019 12:09:29 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 12:10:31 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 12:10:31 +0000 Subject: Change in gr-gsm[master]: python/trx/__init__.py: cosmetic: add missing new line In-Reply-To: References: Message-ID: Piotr Krysik has submitted this change and it was merged. ( https://gerrit.osmocom.org/12574 ) Change subject: python/trx/__init__.py: cosmetic: add missing new line ...................................................................... python/trx/__init__.py: cosmetic: add missing new line Change-Id: I379b321866bd892a52b0c272ed50c670da380a17 --- M python/trx/__init__.py 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, but someone else must approve Piotr Krysik: Looks good to me, approved; Verified diff --git a/python/trx/__init__.py b/python/trx/__init__.py index 13b5a52..372f46b 100644 --- a/python/trx/__init__.py +++ b/python/trx/__init__.py @@ -26,4 +26,4 @@ from fake_pm import fake_pm from radio_if_grc import radio_if_grc from radio_if import radio_if -from change_sign_of_dict_elements import change_sign_of_dict_elements \ No newline at end of file +from change_sign_of_dict_elements import change_sign_of_dict_elements -- To view, visit https://gerrit.osmocom.org/12574 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I379b321866bd892a52b0c272ed50c670da380a17 Gerrit-Change-Number: 12574 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 12:10:31 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 12:10:31 +0000 Subject: Change in gr-gsm[master]: python/trx: rename 'change_sign_of_dict_elements' to 'dict_toggle_sign' In-Reply-To: References: Message-ID: Piotr Krysik has submitted this change and it was merged. ( https://gerrit.osmocom.org/12575 ) Change subject: python/trx: rename 'change_sign_of_dict_elements' to 'dict_toggle_sign' ...................................................................... python/trx: rename 'change_sign_of_dict_elements' to 'dict_toggle_sign' The old name was quite long, resulting into cumbersome imports: from change_sign_of_dict_elements import change_sign_of_dict_elements let's use a shorter variant: from dict_toggle_sign import dict_toggle_sign Change-Id: Ie75e1d6e5e74c7c1cf34154633c1472e4b85dbb6 --- M python/trx/CMakeLists.txt M python/trx/__init__.py R python/trx/dict_toggle_sign.py M python/trx/radio_if_grc.py 4 files changed, 7 insertions(+), 7 deletions(-) Approvals: Harald Welte: Looks good to me, but someone else must approve Piotr Krysik: Looks good to me, approved; Verified diff --git a/python/trx/CMakeLists.txt b/python/trx/CMakeLists.txt index c6e3010..ffe5234 100644 --- a/python/trx/CMakeLists.txt +++ b/python/trx/CMakeLists.txt @@ -26,6 +26,6 @@ fake_pm.py radio_if.py radio_if_grc.py - change_sign_of_dict_elements.py + dict_toggle_sign.py DESTINATION ${GR_PYTHON_DIR}/grgsm/trx ) diff --git a/python/trx/__init__.py b/python/trx/__init__.py index 372f46b..fda783e 100644 --- a/python/trx/__init__.py +++ b/python/trx/__init__.py @@ -26,4 +26,4 @@ from fake_pm import fake_pm from radio_if_grc import radio_if_grc from radio_if import radio_if -from change_sign_of_dict_elements import change_sign_of_dict_elements +from dict_toggle_sign import dict_toggle_sign diff --git a/python/trx/change_sign_of_dict_elements.py b/python/trx/dict_toggle_sign.py similarity index 94% rename from python/trx/change_sign_of_dict_elements.py rename to python/trx/dict_toggle_sign.py index fd7c585..d6cd8bd 100644 --- a/python/trx/change_sign_of_dict_elements.py +++ b/python/trx/dict_toggle_sign.py @@ -9,7 +9,7 @@ from gnuradio import gr from pmt import * -class change_sign_of_dict_elements(gr.basic_block): +class dict_toggle_sign(gr.basic_block): def __init__(self): # only default arguments here gr.basic_block.__init__( self, diff --git a/python/trx/radio_if_grc.py b/python/trx/radio_if_grc.py index 920b0c5..8a92f6e 100755 --- a/python/trx/radio_if_grc.py +++ b/python/trx/radio_if_grc.py @@ -8,7 +8,7 @@ # Generated: Fri Dec 1 10:49:25 2017 ################################################## -from change_sign_of_dict_elements import change_sign_of_dict_elements +from dict_toggle_sign import dict_toggle_sign from gnuradio import blocks from gnuradio import digital from gnuradio import eng_notation @@ -94,16 +94,16 @@ self.gsm_burst_type_filter_0 = grgsm.burst_type_filter(([3])) self.gsm_burst_to_fn_time_0 = grgsm.burst_to_fn_time() self.digital_burst_shaper_xx_0 = digital.burst_shaper_cc((firdes.window(firdes.WIN_HANN, 16, 0)), 0, 20, False, "packet_len") - self.change_sign_of_dict_elements = change_sign_of_dict_elements() + self.dict_toggle_sign = dict_toggle_sign() self.blocks_pdu_to_tagged_stream_0_0 = blocks.pdu_to_tagged_stream(blocks.byte_t, "packet_len") ################################################## # Connections ################################################## - self.msg_connect((self.change_sign_of_dict_elements, 'dict_out'), (self.gsm_msg_to_tag_0_0, 'msg')) + self.msg_connect((self.dict_toggle_sign, 'dict_out'), (self.gsm_msg_to_tag_0_0, 'msg')) self.msg_connect((self.gsm_burst_to_fn_time_0, 'fn_time_out'), (self.gsm_txtime_setter_0, 'fn_time')) self.msg_connect((self.gsm_burst_type_filter_0, 'bursts_out'), (self.gsm_burst_to_fn_time_0, 'bursts_in')) - self.msg_connect((self.gsm_clock_offset_control_0, 'ctrl'), (self.change_sign_of_dict_elements, 'dict_in')) + self.msg_connect((self.gsm_clock_offset_control_0, 'ctrl'), (self.dict_toggle_sign, 'dict_in')) self.msg_connect((self.gsm_clock_offset_control_0, 'ctrl'), (self.gsm_msg_to_tag_0, 'msg')) self.msg_connect((self.gsm_preprocess_tx_burst_0, 'bursts_out'), (self.blocks_pdu_to_tagged_stream_0_0, 'pdus')) self.msg_connect((self.gsm_receiver_0, 'C0'), (self.gsm_burst_type_filter_0, 'bursts_in')) -- To view, visit https://gerrit.osmocom.org/12575 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie75e1d6e5e74c7c1cf34154633c1472e4b85dbb6 Gerrit-Change-Number: 12575 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 12:10:32 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 12:10:32 +0000 Subject: Change in gr-gsm[master]: trx/radio_if.py: use existing 'dict_toggle_sign' block In-Reply-To: References: Message-ID: Piotr Krysik has submitted this change and it was merged. ( https://gerrit.osmocom.org/12576 ) Change subject: trx/radio_if.py: use existing 'dict_toggle_sign' block ...................................................................... trx/radio_if.py: use existing 'dict_toggle_sign' block Change-Id: Ifa616644a858f493b9f8706663f9e7fed717f3d0 --- M python/trx/radio_if.py 1 file changed, 1 insertion(+), 19 deletions(-) Approvals: Harald Welte: Looks good to me, but someone else must approve Piotr Krysik: Looks good to me, approved; Verified diff --git a/python/trx/radio_if.py b/python/trx/radio_if.py index 85970a9..49e6788 100644 --- a/python/trx/radio_if.py +++ b/python/trx/radio_if.py @@ -38,25 +38,7 @@ from gnuradio import filter from gnuradio.filter import firdes - -# HACK: should be implemented in C++! -class dict_toggle_sign(gr.basic_block): - def __init__(self): # only default arguments here - gr.basic_block.__init__(self, - name='Change sign of elts in dict', - in_sig=[], - out_sig=[] - ) - self.message_port_register_in(pmt.intern("dict_in")) - self.message_port_register_out(pmt.intern("dict_out")) - self.set_msg_handler(pmt.intern("dict_in"), self.change_sign) - - def change_sign(self, msg): - if pmt.is_dict(msg): - d = pmt.to_python(msg) - for key, value in d.items(): - d[key] *= -1 - self.message_port_pub(pmt.intern("dict_out"), pmt.to_pmt(d)) +from dict_toggle_sign import dict_toggle_sign class radio_if(gr.top_block): # PHY specific variables -- To view, visit https://gerrit.osmocom.org/12576 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ifa616644a858f493b9f8706663f9e7fed717f3d0 Gerrit-Change-Number: 12576 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 12:10:32 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 12:10:32 +0000 Subject: Change in gr-gsm[master]: python/trx: use CamelCase naming for basic classes In-Reply-To: References: Message-ID: Piotr Krysik has submitted this change and it was merged. ( https://gerrit.osmocom.org/12629 ) Change subject: python/trx: use CamelCase naming for basic classes ...................................................................... python/trx: use CamelCase naming for basic classes Change-Id: Ica9c56d01191dda38e63b51caba2ec8c63b671c9 --- M apps/grgsm_trx M python/trx/__init__.py M python/trx/ctrl_if.py M python/trx/ctrl_if_bb.py M python/trx/fake_pm.py M python/trx/radio_if.py M python/trx/radio_if_grc.py M python/trx/udp_link.py 8 files changed, 25 insertions(+), 23 deletions(-) Approvals: Harald Welte: Looks good to me, but someone else must approve Piotr Krysik: Looks good to me, approved; Verified diff --git a/apps/grgsm_trx b/apps/grgsm_trx index 6b3565d..23268b8 100755 --- a/apps/grgsm_trx +++ b/apps/grgsm_trx @@ -29,9 +29,9 @@ from argparse import ArgumentTypeError from gnuradio import eng_notation -from grgsm.trx import ctrl_if_bb -from grgsm.trx import radio_if -from grgsm.trx import fake_pm +from grgsm.trx import CTRLInterfaceBB +from grgsm.trx import RadioInterface +from grgsm.trx import FakePM COPYRIGHT = \ "Copyright (C) 2016-2018 by Vadim Yanitskiy \n" \ @@ -60,7 +60,7 @@ def run(self): # Init Radio interface - self.radio = radio_if(self.phy_args, self.phy_sample_rate, + self.radio = RadioInterface(self.phy_args, self.phy_sample_rate, self.phy_rx_gain, self.phy_tx_gain, self.phy_ppm, self.phy_rx_antenna, self.phy_tx_antenna, self.phy_freq_offset, self.bind_addr, @@ -69,10 +69,10 @@ # Power measurement emulation # Noise: -120 .. -105 # BTS: -75 .. -50 - self.pm = fake_pm(-120, -105, -75, -50) + self.pm = FakePM(-120, -105, -75, -50) # Init TRX CTRL interface - self.server = ctrl_if_bb( + self.server = CTRLInterfaceBB( self.remote_addr, self.base_port + 101, self.bind_addr, self.base_port + 1, self.radio, self.pm) @@ -122,7 +122,7 @@ help = "Set device arguments") phy_group.add_argument("-s", "--sample-rate", dest = "sample_rate", type = eng_float, - default = radio_if.SAMPLE_RATE, + default = RadioInterface.SAMPLE_RATE, help = "Set samp_rate (default %(default)s)") phy_group.add_argument("-g", "--rx-gain", dest = "rx_gain", type = float, default = 30, diff --git a/python/trx/__init__.py b/python/trx/__init__.py index fda783e..c512262 100644 --- a/python/trx/__init__.py +++ b/python/trx/__init__.py @@ -20,10 +20,11 @@ This is a set of helper classes for the grgsm_trx application. ''' -from udp_link import udp_link -from ctrl_if import ctrl_if -from ctrl_if_bb import ctrl_if_bb -from fake_pm import fake_pm -from radio_if_grc import radio_if_grc -from radio_if import radio_if +from udp_link import UDPLink +from ctrl_if import CTRLInterface +from ctrl_if_bb import CTRLInterfaceBB +from fake_pm import FakePM +from radio_if_grc import RadioInterfaceGRC +from radio_if import RadioInterface + from dict_toggle_sign import dict_toggle_sign diff --git a/python/trx/ctrl_if.py b/python/trx/ctrl_if.py index ae5cf05..fc43b7f 100644 --- a/python/trx/ctrl_if.py +++ b/python/trx/ctrl_if.py @@ -22,9 +22,9 @@ # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -from grgsm.trx import udp_link +from grgsm.trx import UDPLink -class ctrl_if(udp_link): +class CTRLInterface(UDPLink): def handle_rx(self, data, remote): if self.verify_req(data): request = self.prepare_req(data) diff --git a/python/trx/ctrl_if_bb.py b/python/trx/ctrl_if_bb.py index fe0002e..781c35c 100644 --- a/python/trx/ctrl_if_bb.py +++ b/python/trx/ctrl_if_bb.py @@ -23,11 +23,12 @@ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. import grgsm -from ctrl_if import ctrl_if -class ctrl_if_bb(ctrl_if): +from ctrl_if import CTRLInterface + +class CTRLInterfaceBB(CTRLInterface): def __init__(self, remote_addr, remote_port, bind_addr, bind_port, tb, pm): - ctrl_if.__init__(self, remote_addr, remote_port, + CTRLInterface.__init__(self, remote_addr, remote_port, bind_addr, bind_port) print("[i] Init CTRL interface (%s)" % self.desc_link()) diff --git a/python/trx/fake_pm.py b/python/trx/fake_pm.py index 72cf771..1d76916 100644 --- a/python/trx/fake_pm.py +++ b/python/trx/fake_pm.py @@ -24,7 +24,7 @@ from random import randint -class fake_pm: +class FakePM: # Freq. list for good power level bts_list = [] diff --git a/python/trx/radio_if.py b/python/trx/radio_if.py index 49e6788..55c8d92 100644 --- a/python/trx/radio_if.py +++ b/python/trx/radio_if.py @@ -40,7 +40,7 @@ from dict_toggle_sign import dict_toggle_sign -class radio_if(gr.top_block): +class RadioInterface(gr.top_block): # PHY specific variables rx_freq = 935e6 tx_freq = 890e6 diff --git a/python/trx/radio_if_grc.py b/python/trx/radio_if_grc.py index 8a92f6e..fb9b100 100755 --- a/python/trx/radio_if_grc.py +++ b/python/trx/radio_if_grc.py @@ -24,7 +24,7 @@ import time -class radio_if_grc(gr.top_block): +class RadioInterfaceGRC(gr.top_block): def __init__(self, delay_correction=285.616e-6, osr=4, ppm=-0.799427, rx_freq=935e6+36*0.2e6, rx_gain=40, samp_rate=13e6/12.0, timing_advance=0, trx_base_port="5710", trx_remote_addr="127.0.0.1", tx_freq=935e6+36*0.2e6-45e6, tx_gain=40, uplink_shift=-(6.0/1625000*(156.25)*3)): gr.top_block.__init__(self, "Trx radio interface") @@ -255,7 +255,7 @@ return parser -def main(top_block_cls=radio_if_grc, options=None): +def main(top_block_cls=RadioInterfaceGRC, options=None): if options is None: options, _ = argument_parser().parse_args() diff --git a/python/trx/udp_link.py b/python/trx/udp_link.py index ad84e5a..f726751 100644 --- a/python/trx/udp_link.py +++ b/python/trx/udp_link.py @@ -25,7 +25,7 @@ import socket import select -class udp_link: +class UDPLink: def __init__(self, remote_addr, remote_port, bind_addr = '0.0.0.0', bind_port = 0): self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) self.sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) -- To view, visit https://gerrit.osmocom.org/12629 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ica9c56d01191dda38e63b51caba2ec8c63b671c9 Gerrit-Change-Number: 12629 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 12:10:33 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 12:10:33 +0000 Subject: Change in gr-gsm[master]: apps/grgsm_trx: move init code from run() to __init__() In-Reply-To: References: Message-ID: Piotr Krysik has submitted this change and it was merged. ( https://gerrit.osmocom.org/12630 ) Change subject: apps/grgsm_trx: move init code from run() to __init__() ...................................................................... apps/grgsm_trx: move init code from run() to __init__() Change-Id: I1bcc9c8a2d37d156bbec93be3838200f6c4a80c2 --- M apps/grgsm_trx 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, but someone else must approve Piotr Krysik: Looks good to me, approved; Verified diff --git a/apps/grgsm_trx b/apps/grgsm_trx index 23268b8..7eeea50 100755 --- a/apps/grgsm_trx +++ b/apps/grgsm_trx @@ -3,7 +3,7 @@ # GR-GSM based transceiver # -# (C) 2016-2018 by Vadim Yanitskiy +# (C) 2016-2019 by Vadim Yanitskiy # (C) 2017-2018 by Piotr Krysik # # All Rights Reserved @@ -58,7 +58,6 @@ # Set up signal handlers signal.signal(signal.SIGINT, self.sig_handler) - def run(self): # Init Radio interface self.radio = RadioInterface(self.phy_args, self.phy_sample_rate, self.phy_rx_gain, self.phy_tx_gain, self.phy_ppm, @@ -79,6 +78,7 @@ print("[i] Init complete") + def run(self): # Enter main loop while True: self.server.loop() -- To view, visit https://gerrit.osmocom.org/12630 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I1bcc9c8a2d37d156bbec93be3838200f6c4a80c2 Gerrit-Change-Number: 12630 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 12:10:33 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 12:10:33 +0000 Subject: Change in gr-gsm[master]: python/trx: get rid of FakePM class In-Reply-To: References: Message-ID: Piotr Krysik has submitted this change and it was merged. ( https://gerrit.osmocom.org/12631 ) Change subject: python/trx: get rid of FakePM class ...................................................................... python/trx: get rid of FakePM class Change-Id: Ie96eb9735ecaa3329135c7be976ffd277a2f64f4 --- M apps/grgsm_trx M python/trx/CMakeLists.txt M python/trx/__init__.py M python/trx/ctrl_if_bb.py D python/trx/fake_pm.py M python/trx/radio_if.py 6 files changed, 8 insertions(+), 69 deletions(-) Approvals: Harald Welte: Looks good to me, but someone else must approve Piotr Krysik: Looks good to me, approved; Verified diff --git a/apps/grgsm_trx b/apps/grgsm_trx index 7eeea50..c3e83d9 100755 --- a/apps/grgsm_trx +++ b/apps/grgsm_trx @@ -31,7 +31,6 @@ from grgsm.trx import CTRLInterfaceBB from grgsm.trx import RadioInterface -from grgsm.trx import FakePM COPYRIGHT = \ "Copyright (C) 2016-2018 by Vadim Yanitskiy \n" \ @@ -65,16 +64,11 @@ self.phy_freq_offset, self.bind_addr, self.remote_addr, self.base_port) - # Power measurement emulation - # Noise: -120 .. -105 - # BTS: -75 .. -50 - self.pm = FakePM(-120, -105, -75, -50) - # Init TRX CTRL interface self.server = CTRLInterfaceBB( self.remote_addr, self.base_port + 101, self.bind_addr, self.base_port + 1, - self.radio, self.pm) + self.radio) print("[i] Init complete") diff --git a/python/trx/CMakeLists.txt b/python/trx/CMakeLists.txt index ffe5234..4333407 100644 --- a/python/trx/CMakeLists.txt +++ b/python/trx/CMakeLists.txt @@ -23,7 +23,6 @@ udp_link.py ctrl_if.py ctrl_if_bb.py - fake_pm.py radio_if.py radio_if_grc.py dict_toggle_sign.py diff --git a/python/trx/__init__.py b/python/trx/__init__.py index c512262..7b20699 100644 --- a/python/trx/__init__.py +++ b/python/trx/__init__.py @@ -23,7 +23,6 @@ from udp_link import UDPLink from ctrl_if import CTRLInterface from ctrl_if_bb import CTRLInterfaceBB -from fake_pm import FakePM from radio_if_grc import RadioInterfaceGRC from radio_if import RadioInterface diff --git a/python/trx/ctrl_if_bb.py b/python/trx/ctrl_if_bb.py index 781c35c..f9840d4 100644 --- a/python/trx/ctrl_if_bb.py +++ b/python/trx/ctrl_if_bb.py @@ -27,7 +27,7 @@ from ctrl_if import CTRLInterface class CTRLInterfaceBB(CTRLInterface): - def __init__(self, remote_addr, remote_port, bind_addr, bind_port, tb, pm): + def __init__(self, remote_addr, remote_port, bind_addr, bind_port, tb): CTRLInterface.__init__(self, remote_addr, remote_port, bind_addr, bind_port) @@ -35,8 +35,6 @@ # Set link to the follow graph (top block) self.tb = tb - # Power measurement - self.pm = pm def parse_cmd(self, request): # Power control @@ -137,10 +135,7 @@ # TODO: check freq range meas_freq = int(request[1]) * 1000 - - # HACK: send fake low power values - # until actual power measurement is implemented - meas_dbm = str(self.pm.measure(meas_freq)) + meas_dbm = str(self.tb.measure(meas_freq)) return (0, [meas_dbm]) diff --git a/python/trx/fake_pm.py b/python/trx/fake_pm.py deleted file mode 100644 index 1d76916..0000000 --- a/python/trx/fake_pm.py +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/env python2 -# -*- coding: utf-8 -*- - -# Virtual Um-interface (fake transceiver) -# Power measurement emulation for BB -# -# (C) 2017 by Vadim Yanitskiy -# -# All Rights Reserved -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -from random import randint - -class FakePM: - # Freq. list for good power level - bts_list = [] - - def __init__(self, noise_min, noise_max, bts_min, bts_max): - # Save power level ranges - self.noise_min = noise_min - self.noise_max = noise_max - self.bts_min = bts_min - self.bts_max = bts_max - - def measure(self, bts): - if bts in self.bts_list: - return randint(self.bts_min, self.bts_max) - else: - return randint(self.noise_min, self.noise_max) - - def update_bts_list(self, new_list): - self.bts_list = new_list - - def add_bts_list(self, add_list): - self.bts_list += add_list - - def del_bts_list(self, del_list): - for item in del_list: - if item in self.bts_list: - self.bts_list.remove(item) diff --git a/python/trx/radio_if.py b/python/trx/radio_if.py index 55c8d92..32b767a 100644 --- a/python/trx/radio_if.py +++ b/python/trx/radio_if.py @@ -26,6 +26,7 @@ import pmt import time import grgsm +import random from math import pi @@ -290,3 +291,7 @@ print("[i] Setting TA value %d" % ta) advance_time_sec = ta * self.GSM_SYM_PERIOD_uS * 1e-6 self.tx_time_setter.set_timing_advance(advance_time_sec) + + def measure(self, freq): + # HACK: generate a random low RSSI value + return random.randint(-120, -100) -- To view, visit https://gerrit.osmocom.org/12631 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie96eb9735ecaa3329135c7be976ffd277a2f64f4 Gerrit-Change-Number: 12631 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 12:10:34 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 12:10:34 +0000 Subject: Change in gr-gsm[master]: trx/radio_if.py: do not init both rx_freq and tx_freq In-Reply-To: References: Message-ID: Piotr Krysik has submitted this change and it was merged. ( https://gerrit.osmocom.org/12632 ) Change subject: trx/radio_if.py: do not init both rx_freq and tx_freq ...................................................................... trx/radio_if.py: do not init both rx_freq and tx_freq Change-Id: I9f251958ec90141d144fdb027aff20182131a1d1 --- M python/trx/radio_if.py 1 file changed, 11 insertions(+), 10 deletions(-) Approvals: Harald Welte: Looks good to me, but someone else must approve Piotr Krysik: Looks good to me, approved; Verified diff --git a/python/trx/radio_if.py b/python/trx/radio_if.py index 32b767a..93080c4 100644 --- a/python/trx/radio_if.py +++ b/python/trx/radio_if.py @@ -4,7 +4,7 @@ # GR-GSM based transceiver # Follow graph implementation # -# (C) 2016-2018 by Vadim Yanitskiy +# (C) 2016-2019 by Vadim Yanitskiy # (C) 2017 by Piotr Krysik # # All Rights Reserved @@ -43,8 +43,8 @@ class RadioInterface(gr.top_block): # PHY specific variables - rx_freq = 935e6 - tx_freq = 890e6 + rx_freq = None + tx_freq = None osr = 4 # Application state flags @@ -65,6 +65,10 @@ # The current value is measured for USRP B2X0 at 26e6. delay_correction = (285.616 + 2 * GSM_SYM_PERIOD_uS) * 1e-6 + # Dummy freq. value that is used during initialization + # basically, the DL freq. of ARFCN 0 + DUMMY_FREQ = 935e6 + def __init__(self, phy_args, phy_sample_rate, phy_rx_gain, phy_tx_gain, phy_ppm, phy_rx_antenna, phy_tx_antenna, @@ -95,7 +99,6 @@ channels=range(1))) self.phy_src.set_clock_rate(26e6, uhd.ALL_MBOARDS) - self.phy_src.set_center_freq(self.rx_freq, 0) self.phy_src.set_antenna(phy_rx_antenna, 0) self.phy_src.set_samp_rate(phy_sample_rate) self.phy_src.set_bandwidth(650e3, 0) @@ -103,8 +106,7 @@ self.msg_to_tag_src = grgsm.msg_to_tag() - self.rotator_src = grgsm.controlled_rotator_cc( - self.calc_phase_inc(self.rx_freq)) + self.rotator_src = grgsm.controlled_rotator_cc(0.0) self.lpf = filter.fir_filter_ccf(1, firdes.low_pass( 1, phy_sample_rate, 125e3, 5e3, firdes.WIN_HAMMING, 6.76)) @@ -148,7 +150,6 @@ self.phy_sink.set_clock_rate(26e6, uhd.ALL_MBOARDS) self.phy_sink.set_antenna(phy_tx_antenna, 0) self.phy_sink.set_samp_rate(phy_sample_rate) - self.phy_sink.set_center_freq(self.tx_freq, 0) self.phy_sink.set_gain(self.tx_gain) self.tx_time_setter = grgsm.txtime_setter( @@ -169,8 +170,7 @@ self.msg_to_tag_sink = grgsm.msg_to_tag() - self.rotator_sink = grgsm.controlled_rotator_cc( - -self.calc_phase_inc(self.tx_freq)) + self.rotator_sink = grgsm.controlled_rotator_cc(0.0) # Connections self.msg_connect( @@ -225,8 +225,9 @@ # AFC (Automatic Frequency Correction) + # NOTE: dummy frequency is used during init self.gsm_clck_ctrl = grgsm.clock_offset_control( - self.rx_freq, phy_sample_rate, osr = self.osr) + self.DUMMY_FREQ, phy_sample_rate, osr = self.osr) self.dict_toggle_sign = dict_toggle_sign() -- To view, visit https://gerrit.osmocom.org/12632 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I9f251958ec90141d144fdb027aff20182131a1d1 Gerrit-Change-Number: 12632 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 12:10:34 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 12:10:34 +0000 Subject: Change in gr-gsm[master]: trx/radio_if.py: introduce a new @property 'ready' In-Reply-To: References: Message-ID: Piotr Krysik has submitted this change and it was merged. ( https://gerrit.osmocom.org/12633 ) Change subject: trx/radio_if.py: introduce a new @property 'ready' ...................................................................... trx/radio_if.py: introduce a new @property 'ready' Change-Id: I513da0f45c6a608d15fbd0e8eafe14d6af8833d7 --- M python/trx/radio_if.py 1 file changed, 10 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, but someone else must approve Piotr Krysik: Looks good to me, approved; Verified diff --git a/python/trx/radio_if.py b/python/trx/radio_if.py index 93080c4..e15add2 100644 --- a/python/trx/radio_if.py +++ b/python/trx/radio_if.py @@ -259,6 +259,16 @@ self.stop() self.wait() + @property + def ready(self): + # RX / TX frequencies shall be set + if self.rx_freq is None: + return False + if self.tx_freq is None: + return False + + return True + def calc_phase_inc(self, fc): return self.ppm / 1.0e6 * 2 * pi * fc / self.sample_rate -- To view, visit https://gerrit.osmocom.org/12633 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I513da0f45c6a608d15fbd0e8eafe14d6af8833d7 Gerrit-Change-Number: 12633 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 12:10:35 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 12:10:35 +0000 Subject: Change in gr-gsm[master]: trx/ctrl_if_bb.py: reset transceiver on POWEROFF In-Reply-To: References: Message-ID: Piotr Krysik has submitted this change and it was merged. ( https://gerrit.osmocom.org/12634 ) Change subject: trx/ctrl_if_bb.py: reset transceiver on POWEROFF ...................................................................... trx/ctrl_if_bb.py: reset transceiver on POWEROFF Change-Id: I1e7f74c56388a431794a0b32b8a9537c360f5d33 --- M python/trx/ctrl_if_bb.py M python/trx/radio_if.py 2 files changed, 9 insertions(+), 0 deletions(-) Approvals: Piotr Krysik: Looks good to me, approved; Verified diff --git a/python/trx/ctrl_if_bb.py b/python/trx/ctrl_if_bb.py index f9840d4..0e194d0 100644 --- a/python/trx/ctrl_if_bb.py +++ b/python/trx/ctrl_if_bb.py @@ -63,6 +63,9 @@ self.tb.stop() self.tb.wait() + # POWEROFF is also used to reset transceiver + self.tb.reset() + return 0 # Gain control diff --git a/python/trx/radio_if.py b/python/trx/radio_if.py index e15add2..ed5a8de 100644 --- a/python/trx/radio_if.py +++ b/python/trx/radio_if.py @@ -269,6 +269,12 @@ return True + def reset(self): + # TODO: do we need to reset both RX / TX freq.? + # self.rx_freq = None + # self.tx_freq = None + self.set_ta(0) + def calc_phase_inc(self, fc): return self.ppm / 1.0e6 * 2 * pi * fc / self.sample_rate -- To view, visit https://gerrit.osmocom.org/12634 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I1e7f74c56388a431794a0b32b8a9537c360f5d33 Gerrit-Change-Number: 12634 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Piotr Krysik Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 12:10:35 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 12:10:35 +0000 Subject: Change in gr-gsm[master]: python/trx: introduce and use Transceiver class In-Reply-To: References: Message-ID: Piotr Krysik has submitted this change and it was merged. ( https://gerrit.osmocom.org/12635 ) Change subject: python/trx: introduce and use Transceiver class ...................................................................... python/trx: introduce and use Transceiver class Change-Id: I6dc88edbb69a68746cc8e01206dc86f7ea2fa80f --- M apps/grgsm_trx M python/trx/CMakeLists.txt M python/trx/__init__.py M python/trx/ctrl_if_bb.py M python/trx/radio_if.py A python/trx/transceiver.py 6 files changed, 142 insertions(+), 54 deletions(-) Approvals: Harald Welte: Looks good to me, but someone else must approve Piotr Krysik: Looks good to me, approved; Verified diff --git a/apps/grgsm_trx b/apps/grgsm_trx index c3e83d9..5e5e3be 100755 --- a/apps/grgsm_trx +++ b/apps/grgsm_trx @@ -29,8 +29,8 @@ from argparse import ArgumentTypeError from gnuradio import eng_notation -from grgsm.trx import CTRLInterfaceBB from grgsm.trx import RadioInterface +from grgsm.trx import Transceiver COPYRIGHT = \ "Copyright (C) 2016-2018 by Vadim Yanitskiy \n" \ @@ -64,18 +64,17 @@ self.phy_freq_offset, self.bind_addr, self.remote_addr, self.base_port) - # Init TRX CTRL interface - self.server = CTRLInterfaceBB( - self.remote_addr, self.base_port + 101, - self.bind_addr, self.base_port + 1, - self.radio) + # Init Transceiver + self.trx = Transceiver(self.bind_addr, + self.remote_addr, self.base_port, + radio_if = self.radio) print("[i] Init complete") def run(self): # Enter main loop while True: - self.server.loop() + self.trx.ctrl_if.loop() def shutdown(self): print("[i] Shutting down...") diff --git a/python/trx/CMakeLists.txt b/python/trx/CMakeLists.txt index 4333407..11290f3 100644 --- a/python/trx/CMakeLists.txt +++ b/python/trx/CMakeLists.txt @@ -25,6 +25,7 @@ ctrl_if_bb.py radio_if.py radio_if_grc.py + transceiver.py dict_toggle_sign.py DESTINATION ${GR_PYTHON_DIR}/grgsm/trx ) diff --git a/python/trx/__init__.py b/python/trx/__init__.py index 7b20699..00d370b 100644 --- a/python/trx/__init__.py +++ b/python/trx/__init__.py @@ -25,5 +25,6 @@ from ctrl_if_bb import CTRLInterfaceBB from radio_if_grc import RadioInterfaceGRC from radio_if import RadioInterface +from transceiver import Transceiver from dict_toggle_sign import dict_toggle_sign diff --git a/python/trx/ctrl_if_bb.py b/python/trx/ctrl_if_bb.py index 0e194d0..4814263 100644 --- a/python/trx/ctrl_if_bb.py +++ b/python/trx/ctrl_if_bb.py @@ -4,7 +4,7 @@ # GR-GSM based transceiver # CTRL interface for OsmocomBB # -# (C) 2016-2017 by Vadim Yanitskiy +# (C) 2016-2019 by Vadim Yanitskiy # # All Rights Reserved # @@ -22,49 +22,32 @@ # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -import grgsm - from ctrl_if import CTRLInterface class CTRLInterfaceBB(CTRLInterface): - def __init__(self, remote_addr, remote_port, bind_addr, bind_port, tb): - CTRLInterface.__init__(self, remote_addr, remote_port, - bind_addr, bind_port) - + def __init__(self, trx, *ctrl_if_args): + CTRLInterface.__init__(self, *ctrl_if_args) print("[i] Init CTRL interface (%s)" % self.desc_link()) - # Set link to the follow graph (top block) - self.tb = tb + # Transceiver instance we belong to + self.trx = trx def parse_cmd(self, request): # Power control if self.verify_cmd(request, "POWERON", 0): print("[i] Recv POWERON CMD") - # Ensure transceiver isn't working - if self.tb.trx_started: - print("[!] Transceiver already started") + # Start transceiver + if not self.trx.start(): return -1 - print("[i] Starting transceiver...") - self.tb.trx_started = True - self.tb.start() - return 0 elif self.verify_cmd(request, "POWEROFF", 0): print("[i] Recv POWEROFF cmd") - # TODO: flush all buffers between blocks - if self.tb.trx_started: - print("[i] Stopping transceiver...") - self.tb.trx_started = False - self.tb.set_ta(0) - self.tb.stop() - self.tb.wait() - - # POWEROFF is also used to reset transceiver - self.tb.reset() + # Stop transceiver + self.trx.stop() return 0 @@ -74,7 +57,7 @@ # TODO: check gain value gain = int(request[1]) - self.tb.set_rx_gain(gain) + self.trx.radio_if.set_rx_gain(gain) return 0 @@ -83,7 +66,7 @@ # TODO: check gain value gain = int(request[1]) - self.tb.set_tx_gain(gain) + self.trx.radio_if.set_tx_gain(gain) return 0 @@ -93,7 +76,7 @@ # TODO: check freq range freq = int(request[1]) * 1000 - self.tb.set_rx_freq(freq) + self.trx.radio_if.set_rx_freq(freq) return 0 @@ -102,7 +85,7 @@ # TODO: check freq range freq = int(request[1]) * 1000 - self.tb.set_tx_freq(freq) + self.trx.radio_if.set_tx_freq(freq) return 0 @@ -116,19 +99,12 @@ print("[!] TS index should be in range: 0..7") return -1 - # Ignore timeslot type for now + # Channel combination number (see GSM TS 05.02) + # TODO: check this value config = int(request[2]) - print("[i] Configure timeslot filter to: %s" - % ("drop all" if config == 0 else "TS %d" % tn)) - if config == 0: - # Value 0 means 'drop all' - self.tb.ts_filter.set_policy( - grgsm.FILTER_POLICY_DROP_ALL) - else: - self.tb.ts_filter.set_policy( - grgsm.FILTER_POLICY_DEFAULT) - self.tb.ts_filter.set_tn(tn) + # TODO: check return value + self.trx.radio_if.set_slot(tn, config) return 0 @@ -138,9 +114,11 @@ # TODO: check freq range meas_freq = int(request[1]) * 1000 - meas_dbm = str(self.tb.measure(meas_freq)) + meas_dbm = self.trx.measure(meas_freq) + if meas_dbm is None: + return -1 - return (0, [meas_dbm]) + return (0, [str(meas_dbm)]) # Timing Advance control elif self.verify_cmd(request, "SETTA", 1): @@ -152,7 +130,7 @@ print("[!] TA value must be in range: 0..63") return -1 - self.tb.set_ta(ta) + self.trx.radio_if.set_ta(ta) return 0 # Misc diff --git a/python/trx/radio_if.py b/python/trx/radio_if.py index ed5a8de..ec9cd5f 100644 --- a/python/trx/radio_if.py +++ b/python/trx/radio_if.py @@ -47,9 +47,6 @@ tx_freq = None osr = 4 - # Application state flags - trx_started = False - # GSM timings (in microseconds [uS]) # One timeslot duration is 576.9 ?s = 15/26 ms, # or 156.25 symbol periods (a symbol period is 48/13 ?s) @@ -304,6 +301,20 @@ self.phy_sink.set_gain(gain, 0) self.tx_gain = gain + def set_slot(self, slot, config): + print("[i] Configure timeslot filter to: %s" + % ("drop all" if config == 0 else "tn=%d" % slot)) + + if config == 0: + # Value 0 is used for deactivation + self.ts_filter.set_policy(grgsm.FILTER_POLICY_DROP_ALL) + else: + # FIXME: ideally, we should (re)configure the Receiver + # block, but there is no API for that, and hard-coded + # timeslot configuration is used... + self.ts_filter.set_policy(grgsm.FILTER_POLICY_DEFAULT) + self.ts_filter.set_tn(slot) + def set_ta(self, ta): print("[i] Setting TA value %d" % ta) advance_time_sec = ta * self.GSM_SYM_PERIOD_uS * 1e-6 diff --git a/python/trx/transceiver.py b/python/trx/transceiver.py new file mode 100644 index 0000000..837a61f --- /dev/null +++ b/python/trx/transceiver.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python2 +# -*- coding: utf-8 -*- + +# GR-GSM based transceiver +# Transceiver implementation +# +# (C) 2018-2019 by Vadim Yanitskiy +# +# All Rights Reserved +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +from ctrl_if_bb import CTRLInterfaceBB + +class Transceiver: + """ Base transceiver implementation. + + Represents a single transceiver, that can be used as for the BTS side, + as for the MS side. Each individual instance of Transceiver unifies + three basic interfaces built on three independent UDP connections: + + - CLCK (base port + 100/0) - clock indications from TRX to L1, + - CTRL (base port + 101/1) - control interface for L1, + - DATA (base port + 102/2) - bidirectional data interface for bursts. + + A transceiver can be either in active (i.e. working), or in idle mode. + + NOTE: both CLCK and DATA interfaces are handled by the flow-graph, + (see RadioInterface), so we only initialize CTRL interface. + + """ + + def __init__(self, bind_addr, remote_addr, base_port, radio_if): + # Connection info + self.remote_addr = remote_addr + self.bind_addr = bind_addr + self.base_port = base_port + + # Execution state (running or idle) + self.running = False + + # Radio interface (handles both CLCK and DATA interfaces) + self.radio_if = radio_if + + # Init CTRL interface + self.ctrl_if = CTRLInterfaceBB(self, + remote_addr, base_port + 101, + bind_addr, base_port + 1) + + def start(self): + # Check execution state + if self.running: + print("[!] Transceiver is already started") + return False + + # Make sure that Radio interface is ready, i.e. + # all parameters (e.g. RX / RX freq) are set. + if not self.radio_if.ready: + print("[!] RadioInterface is not ready") + return False + + print("[i] Starting transceiver...") + self.radio_if.start() + self.running = True + + return True + + def stop(self): + # POWEROFF is also used to reset transceiver, + # so we should not complain that it isn't running. + if not self.running: + print("[i] Resetting transceiver") + self.radio_if.reset() + return + + print("[i] Stopping transceiver...") + + # TODO: flush all buffers between blocks + self.radio_if.stop() + self.radio_if.wait() + + self.running = False + + def measure(self, freq): + # TODO: transceiver should be in idle mode + return self.radio_if.measure(freq) -- To view, visit https://gerrit.osmocom.org/12635 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I6dc88edbb69a68746cc8e01206dc86f7ea2fa80f Gerrit-Change-Number: 12635 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 12:10:36 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 12:10:36 +0000 Subject: Change in gr-gsm[master]: trx/radio_if.py: do not print anything if freq. shift is 0 In-Reply-To: References: Message-ID: Piotr Krysik has submitted this change and it was merged. ( https://gerrit.osmocom.org/12636 ) Change subject: trx/radio_if.py: do not print anything if freq. shift is 0 ...................................................................... trx/radio_if.py: do not print anything if freq. shift is 0 Change-Id: I100ce2ab8effc00e164e13253894445bdc816f06 --- M python/trx/radio_if.py 1 file changed, 10 insertions(+), 8 deletions(-) Approvals: Harald Welte: Looks good to me, but someone else must approve Piotr Krysik: Looks good to me, approved; Verified diff --git a/python/trx/radio_if.py b/python/trx/radio_if.py index ec9cd5f..4032850 100644 --- a/python/trx/radio_if.py +++ b/python/trx/radio_if.py @@ -276,19 +276,21 @@ return self.ppm / 1.0e6 * 2 * pi * fc / self.sample_rate def set_rx_freq(self, fc): - fc += self.freq_offset - print("[#] Shifting RX freq. to %s (offset is %s)" - % (eng_notation.num_to_str(fc), - eng_notation.num_to_str(self.freq_offset))) + if self.freq_offset != 0: + fc += self.freq_offset + print("[#] Shifting RX freq. to %s (offset is %s)" + % (eng_notation.num_to_str(fc), + eng_notation.num_to_str(self.freq_offset))) self.phy_src.set_center_freq(fc, 0) self.rotator_src.set_phase_inc(self.calc_phase_inc(fc)) self.rx_freq = fc def set_tx_freq(self, fc): - fc += self.freq_offset - print("[#] Shifting TX freq. to %s (offset is %s)" - % (eng_notation.num_to_str(fc), - eng_notation.num_to_str(self.freq_offset))) + if self.freq_offset != 0: + fc += self.freq_offset + print("[#] Shifting TX freq. to %s (offset is %s)" + % (eng_notation.num_to_str(fc), + eng_notation.num_to_str(self.freq_offset))) self.phy_sink.set_center_freq(fc, 0) self.rotator_sink.set_phase_inc(-self.calc_phase_inc(fc)) self.tx_freq = fc -- To view, visit https://gerrit.osmocom.org/12636 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I100ce2ab8effc00e164e13253894445bdc816f06 Gerrit-Change-Number: 12636 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 12:10:37 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 12:10:37 +0000 Subject: Change in gr-gsm[master]: trx/radio_if.py: update clock_offset_control in set_rx_freq() In-Reply-To: References: Message-ID: Piotr Krysik has submitted this change and it was merged. ( https://gerrit.osmocom.org/12637 ) Change subject: trx/radio_if.py: update clock_offset_control in set_rx_freq() ...................................................................... trx/radio_if.py: update clock_offset_control in set_rx_freq() Change-Id: I065bf664f775099c90c123c9ff75f262a73bf1be --- M python/trx/radio_if.py 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, but someone else must approve Piotr Krysik: Looks good to me, approved; Verified diff --git a/python/trx/radio_if.py b/python/trx/radio_if.py index 4032850..4c678e7 100644 --- a/python/trx/radio_if.py +++ b/python/trx/radio_if.py @@ -283,6 +283,7 @@ eng_notation.num_to_str(self.freq_offset))) self.phy_src.set_center_freq(fc, 0) self.rotator_src.set_phase_inc(self.calc_phase_inc(fc)) + self.gsm_clck_ctrl.set_fc(fc) self.rx_freq = fc def set_tx_freq(self, fc): -- To view, visit https://gerrit.osmocom.org/12637 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I065bf664f775099c90c123c9ff75f262a73bf1be Gerrit-Change-Number: 12637 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 12:10:37 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 12:10:37 +0000 Subject: Change in gr-gsm[master]: trx/ctrl_if.py: use relative import for UDPLink In-Reply-To: References: Message-ID: Piotr Krysik has submitted this change and it was merged. ( https://gerrit.osmocom.org/12672 ) Change subject: trx/ctrl_if.py: use relative import for UDPLink ...................................................................... trx/ctrl_if.py: use relative import for UDPLink Change-Id: If4b00f6332461d3c37cde5a1f724906ca3d3a30f --- M python/trx/ctrl_if.py 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Piotr Krysik: Looks good to me, approved; Verified diff --git a/python/trx/ctrl_if.py b/python/trx/ctrl_if.py index fc43b7f..1a7c0c3 100644 --- a/python/trx/ctrl_if.py +++ b/python/trx/ctrl_if.py @@ -22,7 +22,7 @@ # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -from grgsm.trx import UDPLink +from udp_link import UDPLink class CTRLInterface(UDPLink): def handle_rx(self, data, remote): -- To view, visit https://gerrit.osmocom.org/12672 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If4b00f6332461d3c37cde5a1f724906ca3d3a30f Gerrit-Change-Number: 12672 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Piotr Krysik -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 12:10:38 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 12:10:38 +0000 Subject: Change in gr-gsm[master]: python/trx: fork RadioInterfaceUHD from RadioInterface In-Reply-To: References: Message-ID: Piotr Krysik has submitted this change and it was merged. ( https://gerrit.osmocom.org/12673 ) Change subject: python/trx: fork RadioInterfaceUHD from RadioInterface ...................................................................... python/trx: fork RadioInterfaceUHD from RadioInterface Change-Id: I1644a3f6b8da0d5f2a1a133058269e5383948fda --- M apps/grgsm_trx M python/trx/CMakeLists.txt M python/trx/__init__.py M python/trx/radio_if.py A python/trx/radio_if_uhd.py 5 files changed, 97 insertions(+), 36 deletions(-) Approvals: Piotr Krysik: Looks good to me, approved; Verified diff --git a/apps/grgsm_trx b/apps/grgsm_trx index 5e5e3be..b911719 100755 --- a/apps/grgsm_trx +++ b/apps/grgsm_trx @@ -29,6 +29,7 @@ from argparse import ArgumentTypeError from gnuradio import eng_notation +from grgsm.trx import RadioInterfaceUHD from grgsm.trx import RadioInterface from grgsm.trx import Transceiver @@ -58,7 +59,7 @@ signal.signal(signal.SIGINT, self.sig_handler) # Init Radio interface - self.radio = RadioInterface(self.phy_args, self.phy_sample_rate, + self.radio = RadioInterfaceUHD(self.phy_args, self.phy_sample_rate, self.phy_rx_gain, self.phy_tx_gain, self.phy_ppm, self.phy_rx_antenna, self.phy_tx_antenna, self.phy_freq_offset, self.bind_addr, diff --git a/python/trx/CMakeLists.txt b/python/trx/CMakeLists.txt index 11290f3..dbb3daa9 100644 --- a/python/trx/CMakeLists.txt +++ b/python/trx/CMakeLists.txt @@ -24,6 +24,7 @@ ctrl_if.py ctrl_if_bb.py radio_if.py + radio_if_uhd.py radio_if_grc.py transceiver.py dict_toggle_sign.py diff --git a/python/trx/__init__.py b/python/trx/__init__.py index 00d370b..17ff9d7 100644 --- a/python/trx/__init__.py +++ b/python/trx/__init__.py @@ -25,6 +25,7 @@ from ctrl_if_bb import CTRLInterfaceBB from radio_if_grc import RadioInterfaceGRC from radio_if import RadioInterface +from radio_if import RadioInterfaceUHD from transceiver import Transceiver from dict_toggle_sign import dict_toggle_sign diff --git a/python/trx/radio_if.py b/python/trx/radio_if.py index 4c678e7..c4d4bd1 100644 --- a/python/trx/radio_if.py +++ b/python/trx/radio_if.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- # GR-GSM based transceiver -# Follow graph implementation +# Generic (device independent) flow-graph implementation # # (C) 2016-2019 by Vadim Yanitskiy # (C) 2017 by Piotr Krysik @@ -33,7 +33,6 @@ from gnuradio import eng_notation from gnuradio import digital from gnuradio import blocks -from gnuradio import uhd from gnuradio import gr from gnuradio import filter @@ -57,11 +56,6 @@ GSM_SYM_RATE = (1.0 / GSM_SYM_PERIOD_uS) * 1e6 SAMPLE_RATE = GSM_SYM_RATE * osr - # FIXME: shall be measured (automatically?) for - # particular device and particular clock rate. - # The current value is measured for USRP B2X0 at 26e6. - delay_correction = (285.616 + 2 * GSM_SYM_PERIOD_uS) * 1e-6 - # Dummy freq. value that is used during initialization # basically, the DL freq. of ARFCN 0 DUMMY_FREQ = 935e6 @@ -83,6 +77,10 @@ self.ppm = phy_ppm self.freq_offset = phy_freq_offset + self.phy_args = phy_args + self.rx_antenna = phy_rx_antenna + self.tx_antenna = phy_tx_antenna + gr.top_block.__init__(self, "GR-GSM TRX") # TRX Burst Interface @@ -91,15 +89,7 @@ str(trx_base_port)) # RX path definition - self.phy_src = uhd.usrp_source(phy_args, - uhd.stream_args(cpu_format="fc32", - channels=range(1))) - - self.phy_src.set_clock_rate(26e6, uhd.ALL_MBOARDS) - self.phy_src.set_antenna(phy_rx_antenna, 0) - self.phy_src.set_samp_rate(phy_sample_rate) - self.phy_src.set_bandwidth(650e3, 0) - self.phy_src.set_gain(phy_rx_gain) + self.phy_init_source() self.msg_to_tag_src = grgsm.msg_to_tag() @@ -115,7 +105,7 @@ # Connections self.connect( - (self.phy_src, 0), + (self._phy_src, 0), (self.msg_to_tag_src, 0)) self.connect( @@ -140,18 +130,11 @@ # TX Path Definition - self.phy_sink = uhd.usrp_sink(phy_args, - uhd.stream_args(cpu_format="fc32", - channels=range(1)), "packet_len") - - self.phy_sink.set_clock_rate(26e6, uhd.ALL_MBOARDS) - self.phy_sink.set_antenna(phy_tx_antenna, 0) - self.phy_sink.set_samp_rate(phy_sample_rate) - self.phy_sink.set_gain(self.tx_gain) + self.phy_init_sink() self.tx_time_setter = grgsm.txtime_setter( 0xffffffff, 0, 0, 0, 0, 0, - self.delay_correction + self.GSM_UL_DL_SHIFT_uS * 1e-6) + self.phy_proc_delay + self.GSM_UL_DL_SHIFT_uS * 1e-6) self.tx_burst_proc = grgsm.preprocess_tx_burst() @@ -200,7 +183,7 @@ self.connect( (self.rotator_sink, 0), - (self.phy_sink, 0)) + (self._phy_sink, 0)) # RX & TX synchronization @@ -245,11 +228,11 @@ (self.dict_toggle_sign, 'dict_out'), (self.msg_to_tag_sink, 'msg')) + def phy_init_source(self): + raise NotImplementedError - # Some UHD devices (such as UmTRX) do start the clock - # not from 0, so it's required to reset it manually. - # Resetting UHD source will also affect the sink. - self.phy_src.set_time_now(uhd.time_spec(0.0)) + def phy_init_sink(self): + raise NotImplementedError def shutdown(self): print("[i] Shutdown Radio interface") @@ -281,9 +264,10 @@ print("[#] Shifting RX freq. to %s (offset is %s)" % (eng_notation.num_to_str(fc), eng_notation.num_to_str(self.freq_offset))) - self.phy_src.set_center_freq(fc, 0) + self.rotator_src.set_phase_inc(self.calc_phase_inc(fc)) self.gsm_clck_ctrl.set_fc(fc) + self.phy_set_rx_freq(fc) self.rx_freq = fc def set_tx_freq(self, fc): @@ -292,16 +276,17 @@ print("[#] Shifting TX freq. to %s (offset is %s)" % (eng_notation.num_to_str(fc), eng_notation.num_to_str(self.freq_offset))) - self.phy_sink.set_center_freq(fc, 0) + self.rotator_sink.set_phase_inc(-self.calc_phase_inc(fc)) + self.phy_set_tx_freq(fc) self.tx_freq = fc def set_rx_gain(self, gain): - self.phy_src.set_gain(gain, 0) + self.phy_set_rx_gain(gain) self.rx_gain = gain def set_tx_gain(self, gain): - self.phy_sink.set_gain(gain, 0) + self.phy_set_tx_gain(gain) self.tx_gain = gain def set_slot(self, slot, config): diff --git a/python/trx/radio_if_uhd.py b/python/trx/radio_if_uhd.py new file mode 100644 index 0000000..b431fb6 --- /dev/null +++ b/python/trx/radio_if_uhd.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python2 +# -*- coding: utf-8 -*- + +# GR-GSM based transceiver +# Radio interface for UHD devices +# +# (C) 2019 by Vadim Yanitskiy +# +# All Rights Reserved +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +from gnuradio import uhd + +from radio_if import RadioInterface + +class RadioInterfaceUHD(RadioInterface): + @property + def phy_proc_delay(self): + # FIXME: shall be measured (automatically?) for + # particular device and particular clock rate. + # The current value is measured for USRP B2X0 at 26e6. + return (285.616 + 2 * self.GSM_SYM_PERIOD_uS) * 1e-6 + + def phy_init_source(self): + self._phy_src = uhd.usrp_source(self.phy_args, + uhd.stream_args(cpu_format = "fc32", + channels = range(1))) + + self._phy_src.set_clock_rate(26e6, uhd.ALL_MBOARDS) + self._phy_src.set_antenna(self.rx_antenna, 0) + self._phy_src.set_samp_rate(self.sample_rate) + self._phy_src.set_bandwidth(650e3, 0) + self._phy_src.set_gain(self.rx_gain) + + # Some UHD devices (such as UmTRX) do start the clock + # not from 0, so it's required to reset it manually. + # Resetting UHD source will also affect the sink. + self._phy_src.set_time_now(uhd.time_spec(0.0)) + + def phy_init_sink(self): + self._phy_sink = uhd.usrp_sink(self.phy_args, + uhd.stream_args(cpu_format = "fc32", + channels = range(1)), "packet_len") + + self._phy_sink.set_clock_rate(26e6, uhd.ALL_MBOARDS) + self._phy_sink.set_antenna(self.tx_antenna, 0) + self._phy_sink.set_samp_rate(self.sample_rate) + self._phy_sink.set_gain(self.tx_gain) + + def phy_set_rx_freq(self, freq): + self._phy_src.set_center_freq(freq, 0) + + def phy_set_tx_freq(self, freq): + self._phy_sink.set_center_freq(freq, 0) + + def phy_set_rx_gain(self, gain): + self._phy_src.set_gain(gain, 0) + + def phy_set_tx_gain(self, gain): + self._phy_sink.set_gain(gain, 0) -- To view, visit https://gerrit.osmocom.org/12673 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I1644a3f6b8da0d5f2a1a133058269e5383948fda Gerrit-Change-Number: 12673 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Piotr Krysik -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 12:10:57 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 12:10:57 +0000 Subject: Change in gr-gsm[master]: trx/radio_if.py: print type of RadioInterface In-Reply-To: References: Message-ID: Piotr Krysik has submitted this change and it was merged. ( https://gerrit.osmocom.org/12674 ) Change subject: trx/radio_if.py: print type of RadioInterface ...................................................................... trx/radio_if.py: print type of RadioInterface Change-Id: I6c1ba8546caec122cd1ea0ed87656f691abec068 --- M python/trx/radio_if.py M python/trx/radio_if_uhd.py 2 files changed, 10 insertions(+), 2 deletions(-) Approvals: Piotr Krysik: Looks good to me, approved; Verified diff --git a/python/trx/radio_if.py b/python/trx/radio_if.py index c4d4bd1..0d844c0 100644 --- a/python/trx/radio_if.py +++ b/python/trx/radio_if.py @@ -60,14 +60,18 @@ # basically, the DL freq. of ARFCN 0 DUMMY_FREQ = 935e6 + # Human-readable description + def __str__(self): + return "(generic)" + def __init__(self, phy_args, phy_sample_rate, phy_rx_gain, phy_tx_gain, phy_ppm, phy_rx_antenna, phy_tx_antenna, phy_freq_offset, trx_bind_addr, trx_remote_addr, trx_base_port): - print("[i] Init Radio interface (L:%s:%u <-> R:%s:%u)" - % (trx_bind_addr, trx_base_port + 2, + print("[i] Init %s Radio interface (L:%s:%u <-> R:%s:%u)" + % (self, trx_bind_addr, trx_base_port + 2, trx_remote_addr, trx_base_port + 102)) # PHY specific variables diff --git a/python/trx/radio_if_uhd.py b/python/trx/radio_if_uhd.py index b431fb6..ef2e0ed 100644 --- a/python/trx/radio_if_uhd.py +++ b/python/trx/radio_if_uhd.py @@ -27,6 +27,10 @@ from radio_if import RadioInterface class RadioInterfaceUHD(RadioInterface): + # Human-readable description + def __str__(self): + return "UHD" + @property def phy_proc_delay(self): # FIXME: shall be measured (automatically?) for -- To view, visit https://gerrit.osmocom.org/12674 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I6c1ba8546caec122cd1ea0ed87656f691abec068 Gerrit-Change-Number: 12674 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Piotr Krysik -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 12:10:57 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 12:10:57 +0000 Subject: Change in gr-gsm[master]: apps/grgsm_trx: add RadioInterface driver selection argument In-Reply-To: References: Message-ID: Piotr Krysik has submitted this change and it was merged. ( https://gerrit.osmocom.org/12675 ) Change subject: apps/grgsm_trx: add RadioInterface driver selection argument ...................................................................... apps/grgsm_trx: add RadioInterface driver selection argument Change-Id: Ic11f878c176bad16b057f25725ab0cfecc01782f --- M apps/grgsm_trx M python/trx/__init__.py 2 files changed, 10 insertions(+), 4 deletions(-) Approvals: Piotr Krysik: Looks good to me, approved; Verified diff --git a/apps/grgsm_trx b/apps/grgsm_trx index b911719..7da9e06 100755 --- a/apps/grgsm_trx +++ b/apps/grgsm_trx @@ -29,7 +29,6 @@ from argparse import ArgumentTypeError from gnuradio import eng_notation -from grgsm.trx import RadioInterfaceUHD from grgsm.trx import RadioInterface from grgsm.trx import Transceiver @@ -58,8 +57,13 @@ # Set up signal handlers signal.signal(signal.SIGINT, self.sig_handler) + if argv.driver == "uhd": + from grgsm.trx.radio_if_uhd import RadioInterfaceUHD as Radio + else: + raise ValueError("Unknown RadioInterface driver '%s'" % argv.driver) + # Init Radio interface - self.radio = RadioInterfaceUHD(self.phy_args, self.phy_sample_rate, + self.radio = Radio(self.phy_args, self.phy_sample_rate, self.phy_rx_gain, self.phy_tx_gain, self.phy_ppm, self.phy_rx_antenna, self.phy_tx_antenna, self.phy_freq_offset, self.bind_addr, @@ -111,6 +115,10 @@ # PHY specific phy_group = parser.add_argument_group("PHY parameters") + phy_group.add_argument("--driver", + dest = "driver", type = str, default = "uhd", + choices = ["uhd"], + help = "Set device driver (default %(default)s)") phy_group.add_argument("-a", "--args", dest = "args", type = str, default = "", help = "Set device arguments") diff --git a/python/trx/__init__.py b/python/trx/__init__.py index 17ff9d7..c8bddbe 100644 --- a/python/trx/__init__.py +++ b/python/trx/__init__.py @@ -23,9 +23,7 @@ from udp_link import UDPLink from ctrl_if import CTRLInterface from ctrl_if_bb import CTRLInterfaceBB -from radio_if_grc import RadioInterfaceGRC from radio_if import RadioInterface -from radio_if import RadioInterfaceUHD from transceiver import Transceiver from dict_toggle_sign import dict_toggle_sign -- To view, visit https://gerrit.osmocom.org/12675 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic11f878c176bad16b057f25725ab0cfecc01782f Gerrit-Change-Number: 12675 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Piotr Krysik -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 12:10:57 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 12:10:57 +0000 Subject: Change in gr-gsm[master]: apps/grgsm_trx: introduce initial LMS driver support In-Reply-To: References: Message-ID: Piotr Krysik has submitted this change and it was merged. ( https://gerrit.osmocom.org/12676 ) Change subject: apps/grgsm_trx: introduce initial LMS driver support ...................................................................... apps/grgsm_trx: introduce initial LMS driver support Change-Id: Ie983b10d1814906b6e659213f865e58d0f5c08e4 --- M apps/grgsm_trx M python/trx/CMakeLists.txt A python/trx/radio_if_lms.py 3 files changed, 73 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, but someone else must approve Piotr Krysik: Looks good to me, approved; Verified diff --git a/apps/grgsm_trx b/apps/grgsm_trx index 7da9e06..fb5a005 100755 --- a/apps/grgsm_trx +++ b/apps/grgsm_trx @@ -59,6 +59,8 @@ if argv.driver == "uhd": from grgsm.trx.radio_if_uhd import RadioInterfaceUHD as Radio + elif argv.driver == "lms": + from grgsm.trx.radio_if_lms import RadioInterfaceLMS as Radio else: raise ValueError("Unknown RadioInterface driver '%s'" % argv.driver) @@ -117,7 +119,7 @@ phy_group = parser.add_argument_group("PHY parameters") phy_group.add_argument("--driver", dest = "driver", type = str, default = "uhd", - choices = ["uhd"], + choices = ["uhd", "lms"], help = "Set device driver (default %(default)s)") phy_group.add_argument("-a", "--args", dest = "args", type = str, default = "", diff --git a/python/trx/CMakeLists.txt b/python/trx/CMakeLists.txt index dbb3daa9..697687b 100644 --- a/python/trx/CMakeLists.txt +++ b/python/trx/CMakeLists.txt @@ -25,6 +25,7 @@ ctrl_if_bb.py radio_if.py radio_if_uhd.py + radio_if_lms.py radio_if_grc.py transceiver.py dict_toggle_sign.py diff --git a/python/trx/radio_if_lms.py b/python/trx/radio_if_lms.py new file mode 100644 index 0000000..b9d771a --- /dev/null +++ b/python/trx/radio_if_lms.py @@ -0,0 +1,69 @@ +#!/usr/bin/env python2 +# -*- coding: utf-8 -*- + +# GR-GSM based transceiver +# Radio interface for Lime devices +# +# (C) 2019 by Vadim Yanitskiy +# +# All Rights Reserved +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +import limesdr + +from radio_if import RadioInterface + +class RadioInterfaceLMS(RadioInterface): + lms_len_tag_name = "packet_len" + lms_dev_serial = "" + lms_dev_ch_mode = 1 + + # Human-readable description + def __str__(self): + return "LMS" + + @property # Signal processing delay of PHY + def phy_proc_delay(self): + # FIXME: the current value is measured for USRP B2X0 at 26e6, + # we should measure it for LimeSDR separately! + return (285.616 + 2 * self.GSM_SYM_PERIOD_uS) * 1e-6 + + def phy_init_source(self): + self._phy_src = limesdr.source(self.lms_dev_serial, + self.lms_dev_ch_mode, "") + + self._phy_src.set_sample_rate(self.sample_rate) + self._phy_src.set_gain(self.rx_gain, 0) + + def phy_init_sink(self): + self._phy_sink = limesdr.sink(self.lms_dev_serial, + self.lms_dev_ch_mode, "", + self.lms_len_tag_name) + + self._phy_sink.set_sample_rate(self.sample_rate) + self._phy_sink.set_gain(self.tx_gain, 0) + + def phy_set_rx_freq(self, freq): + self._phy_src.set_center_freq(freq, 0) + + def phy_set_tx_freq(self, freq): + self._phy_sink.set_center_freq(freq, 0) + + def phy_set_rx_gain(self, gain): + self._phy_src.set_gain(gain, 0) + + def phy_set_tx_gain(self, gain): + self._phy_sink.set_gain(gain, 0) -- To view, visit https://gerrit.osmocom.org/12676 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie983b10d1814906b6e659213f865e58d0f5c08e4 Gerrit-Change-Number: 12676 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 12:12:24 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 5 Feb 2019 12:12:24 +0000 Subject: Change in libosmo-netif[master]: Stream client: fix disconnection logic In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12760 ) Change subject: Stream client: fix disconnection logic ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If41ed60bd625488c283d1e8a2b078e640f04c78e Gerrit-Change-Number: 12760 Gerrit-PatchSet: 4 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pablo Neira Ayuso Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 05 Feb 2019 12:12:24 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Tue Feb 5 14:22:36 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 5 Feb 2019 14:22:36 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-trx_=C2=BB_--wit?= =?UTF-8?Q?h-sse,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#861?= In-Reply-To: <865512480.89.1549359959315.JavaMail.jenkins@jenkins.osmocom.org> References: <865512480.89.1549359959315.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1358619811.90.1549376556220.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Tue Feb 5 14:28:35 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 14:28:35 +0000 Subject: Change in gr-gsm[master]: MacOS fixes In-Reply-To: References: Message-ID: Piotr Krysik has posted comments on this change. ( https://gerrit.osmocom.org/12692 ) Change subject: MacOS fixes ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I00884962295082cff3eb64fa21e9f73437be0001 Gerrit-Change-Number: 12692 Gerrit-PatchSet: 1 Gerrit-Owner: Vasil Velichkov Gerrit-Reviewer: Piotr Krysik Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: Vasil Velichkov Gerrit-CC: Max Gerrit-Comment-Date: Tue, 05 Feb 2019 14:28:35 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 14:28:37 2019 From: gerrit-no-reply at lists.osmocom.org (Piotr Krysik) Date: Tue, 5 Feb 2019 14:28:37 +0000 Subject: Change in gr-gsm[master]: MacOS fixes In-Reply-To: References: Message-ID: Piotr Krysik has submitted this change and it was merged. ( https://gerrit.osmocom.org/12692 ) Change subject: MacOS fixes ...................................................................... MacOS fixes - Include grgsm/endian.h in tch_h_decoder_impl.cc - Revert 0ed39fbf9340bdfb254bec5e3b94d9f00cf9d151 as linking with boost_thread is needed Fixes GH-444 Change-Id: I00884962295082cff3eb64fa21e9f73437be0001 --- M CMakeLists.txt M lib/decoding/tch_h_decoder_impl.cc 2 files changed, 2 insertions(+), 1 deletion(-) Approvals: Piotr Krysik: Looks good to me, approved; Verified diff --git a/CMakeLists.txt b/CMakeLists.txt index d539b24..27a3df7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -88,7 +88,7 @@ "1.60.0" "1.60" "1.61.0" "1.61" "1.62.0" "1.62" "1.63.0" "1.63" "1.64.0" "1.64" "1.65.0" "1.65" "1.66.0" "1.66" "1.67.0" "1.67" "1.68.0" "1.68" "1.69.0" "1.69" ) -find_package(Boost "1.35" COMPONENTS filesystem system)# thread) +find_package(Boost "1.35" COMPONENTS filesystem system thread) if(NOT Boost_FOUND) message(FATAL_ERROR "Boost required to compile gr-gsm") diff --git a/lib/decoding/tch_h_decoder_impl.cc b/lib/decoding/tch_h_decoder_impl.cc index d2f29c7..11da907 100644 --- a/lib/decoding/tch_h_decoder_impl.cc +++ b/lib/decoding/tch_h_decoder_impl.cc @@ -25,6 +25,7 @@ #endif #include +#include #include "tch_h_decoder_impl.h" extern "C" { -- To view, visit https://gerrit.osmocom.org/12692 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I00884962295082cff3eb64fa21e9f73437be0001 Gerrit-Change-Number: 12692 Gerrit-PatchSet: 2 Gerrit-Owner: Vasil Velichkov Gerrit-Reviewer: Piotr Krysik Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: Vasil Velichkov Gerrit-CC: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 14:33:05 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Feb 2019 14:33:05 +0000 Subject: Change in osmo-bsc[master]: Implement CSFB "Fast Return" Handling at RR RELEASE In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12788 ) Change subject: Implement CSFB "Fast Return" Handling at RR RELEASE ...................................................................... Patch Set 4: (2 comments) https://gerrit.osmocom.org/#/c/12788/4//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/12788/4//COMMIT_MSG at 14 PS4, Line 14: Indocator after release of all TCH and SDCCH" IE in the RR RELEASE Indicator https://gerrit.osmocom.org/#/c/12788/4/src/osmo-bsc/gsm_04_08_rr.c File src/osmo-bsc/gsm_04_08_rr.c: https://gerrit.osmocom.org/#/c/12788/4/src/osmo-bsc/gsm_04_08_rr.c at 247 PS4, Line 247: /* Generate a CSN.1 encoded "Cell Selection Indocator after release of all TCH and SDCCH" Indicator -- To view, visit https://gerrit.osmocom.org/12788 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ibfbb87e2e16b05032ad1cb91c11fad1b2f76d755 Gerrit-Change-Number: 12788 Gerrit-PatchSet: 4 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 05 Feb 2019 14:33:05 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 14:35:18 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Feb 2019 14:35:18 +0000 Subject: Change in osmo-bsc[master]: manual: s/OsmoNITB/OsmoBSC/ in examples; remove E1 based BTSs In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12834 ) Change subject: manual: s/OsmoNITB/OsmoBSC/ in examples; remove E1 based BTSs ...................................................................... Patch Set 2: I would +1, but seems I can only comment -- To view, visit https://gerrit.osmocom.org/12834 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I834d65836731958b6be823a18e35407183398715 Gerrit-Change-Number: 12834 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 05 Feb 2019 14:35:18 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 14:37:08 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Feb 2019 14:37:08 +0000 Subject: Change in osmo-bsc[master]: manual: s/OsmoNITB/OsmoBSC/ in examples; remove E1 based BTSs In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12834 ) Change subject: manual: s/OsmoNITB/OsmoBSC/ in examples; remove E1 based BTSs ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12834 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I834d65836731958b6be823a18e35407183398715 Gerrit-Change-Number: 12834 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 05 Feb 2019 14:37:08 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 14:40:37 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Feb 2019 14:40:37 +0000 Subject: Change in osmo-bsc[master]: manual: It's not "A over SCCP" but "BSSAP over SCCP" In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12831 ) Change subject: manual: It's not "A over SCCP" but "BSSAP over SCCP" ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12831 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ieb0d8f6c71debe1234aff343a994c2096326da1b Gerrit-Change-Number: 12831 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-Comment-Date: Tue, 05 Feb 2019 14:40:37 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 14:42:04 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Feb 2019 14:42:04 +0000 Subject: Change in osmo-bsc[master]: manual: Re-order chapters in more logical order In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12833 ) Change subject: manual: Re-order chapters in more logical order ...................................................................... Patch Set 2: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/12833/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/12833/2//COMMIT_MSG at 11 PS2, Line 11: topics relevant to operators/sysadmins Ashould precede other content should (remove A) -- To view, visit https://gerrit.osmocom.org/12833 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0872d072bbb06f9409a72b93133d136167f03b38 Gerrit-Change-Number: 12833 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-Comment-Date: Tue, 05 Feb 2019 14:42:04 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 14:42:45 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Feb 2019 14:42:45 +0000 Subject: Change in osmo-bsc[master]: manual: Remove bogus "Control interface" sub-section in overview In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12835 ) Change subject: manual: Remove bogus "Control interface" sub-section in overview ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12835 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I062d7eec3b3fc53c31726be3b3a407a2dd3b8b56 Gerrit-Change-Number: 12835 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-Comment-Date: Tue, 05 Feb 2019 14:42:45 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 14:44:25 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 14:44:25 +0000 Subject: Change in osmo-bsc[master]: manual: It's not "A over SCCP" but "BSSAP over SCCP" In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12831 ) Change subject: manual: It's not "A over SCCP" but "BSSAP over SCCP" ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12831 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ieb0d8f6c71debe1234aff343a994c2096326da1b Gerrit-Change-Number: 12831 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-Comment-Date: Tue, 05 Feb 2019 14:44:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 14:44:55 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 14:44:55 +0000 Subject: Change in osmo-bsc[master]: manual: Re-order chapters in more logical order In-Reply-To: References: Message-ID: Hello daniel, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12833 to look at the new patch set (#3). Change subject: manual: Re-order chapters in more logical order ...................................................................... manual: Re-order chapters in more logical order It makes a lot of sense to first describe the VTY interface before going on using it to configure something. Also, configuration related topics relevant to operators/sysadmins should precede other content only relevant to developers, like the details of the CTRL or Abis/IP protocol. Change-Id: I0872d072bbb06f9409a72b93133d136167f03b38 --- M doc/manuals/osmobsc-usermanual.adoc 1 file changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/33/12833/3 -- To view, visit https://gerrit.osmocom.org/12833 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I0872d072bbb06f9409a72b93133d136167f03b38 Gerrit-Change-Number: 12833 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 14:45:00 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 14:45:00 +0000 Subject: Change in osmo-bsc[master]: manual: Re-order chapters in more logical order In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12833 ) Change subject: manual: Re-order chapters in more logical order ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12833 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0872d072bbb06f9409a72b93133d136167f03b38 Gerrit-Change-Number: 12833 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-Comment-Date: Tue, 05 Feb 2019 14:45:00 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 14:45:08 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 14:45:08 +0000 Subject: Change in osmo-bsc[master]: manual: s/OsmoNITB/OsmoBSC/ in examples; remove E1 based BTSs In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12834 ) Change subject: manual: s/OsmoNITB/OsmoBSC/ in examples; remove E1 based BTSs ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12834 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I834d65836731958b6be823a18e35407183398715 Gerrit-Change-Number: 12834 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 05 Feb 2019 14:45:08 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 14:45:12 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 14:45:12 +0000 Subject: Change in osmo-bsc[master]: manual: Remove bogus "Control interface" sub-section in overview In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12835 ) Change subject: manual: Remove bogus "Control interface" sub-section in overview ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12835 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I062d7eec3b3fc53c31726be3b3a407a2dd3b8b56 Gerrit-Change-Number: 12835 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-Comment-Date: Tue, 05 Feb 2019 14:45:12 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 14:45:20 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 14:45:20 +0000 Subject: Change in osmo-bsc[master]: manual: Add sections on 3G/4G neighbor cells In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12832 ) Change subject: manual: Add sections on 3G/4G neighbor cells ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12832 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I81df1a453858b6fca80c8adf234b1d5b8bf5283d Gerrit-Change-Number: 12832 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Tue, 05 Feb 2019 14:45:20 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 14:45:26 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 14:45:26 +0000 Subject: Change in osmo-bsc[master]: manual: It's not "A over SCCP" but "BSSAP over SCCP" In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12831 ) Change subject: manual: It's not "A over SCCP" but "BSSAP over SCCP" ...................................................................... manual: It's not "A over SCCP" but "BSSAP over SCCP" In GSM specs, the entire interface between two elements is designated with some letter, like the A interface between BSC and MSC. The interface uses a variety of protocols stacked on each other. In the specific case of A, there is no "A" on top of SCCP, but there's "BSSAP" on top of SCCP. This is followed somewhat un-orthodox by 3GPP, as "A over IP" is a violation of that principle. It should have been called "A utilizing IP", "A based on IP", "A with IP" or something the like. In any case, at no point do the specs ever claim that "A" is stacked on top of SCCP, so let's fix this. Change-Id: Ieb0d8f6c71debe1234aff343a994c2096326da1b --- M doc/manuals/chapters/overview.adoc 1 file changed, 14 insertions(+), 14 deletions(-) Approvals: Harald Welte: Looks good to me, approved daniel: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/doc/manuals/chapters/overview.adoc b/doc/manuals/chapters/overview.adoc index 9b619fb..d3deb27 100644 --- a/doc/manuals/chapters/overview.adoc +++ b/doc/manuals/chapters/overview.adoc @@ -38,20 +38,20 @@ Osmocom offers two variants of the 'A' interface's protocol stacking: -- 'A/SCCPlite' -- 'A/SCCP/M3UA' +- 'BSSAP/SCCPlite' +- 'BSSAP/SCCP/M3UA' -Traditionally, OsmoBSC only implemented the A/SCCPlite protocol, but since a +Traditionally, OsmoBSC only implemented the BSSAP/SCCPlite protocol, but since a proper M3UA implementation is available from 'libosmo-sigtran' -('libosmo-sccp.git'), the stock OsmoBSC now supports only A/SCCP/M3UA. (The +('libosmo-sccp.git'), the stock OsmoBSC now supports only BSSAP/SCCP/M3UA. (The idea is that SCCPlite support may be added to libosmo-sigtran at some point in the future, after which the new `osmo-bsc` would support both variants of the A interface.) -The difference between an A/SCCPlite and A/SCCP/M3UA is illustrated in +The difference between an BSSAP/SCCPlite and BSSAP/SCCP/M3UA is illustrated in <> and <>. -===== A/SCCPlite +===== BSSAP/SCCPlite Unlike classic A interface implementations for E1 interfacs, `osmo-bsc-sccplite` implements a variant of encapsulating the A interface over @@ -60,12 +60,12 @@ This protocol stacking is sometimes called "SCCPlite". -At the time of writing, if you would like to use the old A/SCCPlite protocol, +At the time of writing, if you would like to use the old BSSAP/SCCPlite protocol, look for binary packages named `osmo-bsc-sccplite`, or compile `osmo-bsc` from the 'openbsc.git' repository. [[fig-sccplite]] -.`osmo-bsc-sccplite` operation using 'A/SCCPlite' +.`osmo-bsc-sccplite` operation using 'BSSAP/SCCPlite' [graphviz] ---- digraph G { @@ -81,24 +81,24 @@ {MS0,MS1}->BTS0 [label="Um"]; {MS2,MS3}->BTS1 [label="Um"]; {BTS0,BTS1}->BSC [label="Abis\nTCP\nIP"]; - BSC->MSC [label="A\nSCCP\nTCP\nIP"]; + BSC->MSC [label="BSSAP\nSCCP\nTCP\nIP"]; } ---- -===== A/SCCP/M3UA +===== BSSAP/SCCP/M3UA The default OsmoBSC's A interface uses the M3UA variant of SIGTRAN protocol stacking: |===== -|A +|BSSAP |SCCP |M3UA |SCTP |IP |===== -To use the now-default A/SCCP/M3UA protocol, look for binary packages named +To use the now-default BSSAP/SCCP/M3UA protocol, look for binary packages named `osmo-bsc`, or compile `osmo-bsc` from the 'osmo-bsc.git' repository. It is recommended to use the M3UA variant, which is required to operate with OsmoMSC. @@ -106,7 +106,7 @@ OsmoSTP is required. [[fig-sccp-m3ua]] -.`osmo-bsc` operation using 'A/SCCP/M3UA' +.`osmo-bsc` operation using 'BSSAP/SCCP/M3UA' [graphviz] ---- digraph G { @@ -123,7 +123,7 @@ {MS0,MS1}->BTS0 [label="Um"]; {MS2,MS3}->BTS1 [label="Um"]; {BTS0,BTS1}->BSC [label="Abis\nTCP\nIP"]; - BSC->STP->MSC [label="A\nSCCP\nM3UA\nSCTP\nIP"]; + BSC->STP->MSC [label="BSSAP\nSCCP\nM3UA\nSCTP\nIP"]; } ---- -- To view, visit https://gerrit.osmocom.org/12831 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ieb0d8f6c71debe1234aff343a994c2096326da1b Gerrit-Change-Number: 12831 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 14:45:28 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 14:45:28 +0000 Subject: Change in osmo-bsc[master]: manual: Add sections on 3G/4G neighbor cells In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12832 ) Change subject: manual: Add sections on 3G/4G neighbor cells ...................................................................... manual: Add sections on 3G/4G neighbor cells This adds some instructions on how to configure 3G/4G neighbor cells within osmo-bsc. I didn't want to add a new top-level chapter but instead chose to add it to the handover section which describes also the configuration of 2G neighbors. Change-Id: I81df1a453858b6fca80c8adf234b1d5b8bf5283d --- M doc/manuals/chapters/handover.adoc 1 file changed, 102 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/doc/manuals/chapters/handover.adoc b/doc/manuals/chapters/handover.adoc index 297eafc..c75b03c 100644 --- a/doc/manuals/chapters/handover.adoc +++ b/doc/manuals/chapters/handover.adoc @@ -19,7 +19,8 @@ OsmoBSC currently supports handover within one BSS and between separate BSS. Whether inter-MSC is supported depends on the MSC implementation (to the BSC, inter-MSC handover looks identical to inter-BSC handover). Inter-RAT handover -is currently not implemented. +is currently not implemented. However, you may still advertise 3G and 4G neighbor cells +in order to facilitate cell/RAT re-selection to those neighbors. At the time of writing, OsmoMSC's inter-BSC handover support is not complete yet, so OsmoBSC can perform handover between separate BSS only in conjunction @@ -575,3 +576,103 @@ - Algorithm 1 has no `min rxlev` setting. - Algorithm 1 does not actually use any information besides the Measurement Reports, and hence can trivially treat all neighbor cells identically. + +=== Advertising 3G/4G neighbors + +Despite osmo-bsc not supporting inter-RAT hand-over at this point, it +still makes sense to advertise neighbor cells of other network +technologies like UMTS/UTRAN (3G) and LTE/EUTRAN (4G). This will help +phones with idle-mode re-selection of the best available radio access +technology (RAT). + +For more information on the inter-RAT cell re-selection algorithm and its +parameters, see 3GPP TS 45.008 - particularly Section 6.6.4 describing +measurements on cells of other (non-GSM) RATs. + +Such neighbors are advertised as part of the SI2quater (System +Information Type 2quater). + +==== UMTS/UTRAN/3G neighbors + +In order to advertise a 3G neighbor cell you have to specify the +following properties: + +* the UARFCN (UTRAN Absolute Radio Channel Number) on which the cell + broadcasts +* the Scrambling Code of the cell +* whether or not the cell uses diversity + + +In the following example, we're configuring a 3G neighbor cell on UARFCN +1234 using the scrambling code 511 with no diversity: + +---- +network + bts 0 + si2quater neighbor-list add uarfcn 1234 511 0 +---- + +3G neighbor cells can be removed using the same command, just replacing +`add` with `del`. + +==== LTE/EUTRAN/4G neighbors + +In order to advertise a 4G neighbor cell you have to specify the +following properties: + +* EARFCN (EUTRAN Absolute Radio Channel Number) on which the cell + broadcasts +* Reselection thresholds towards E-UTRAN cells: +[width="30%"] +|==== +| 0 | 0 dB +| 1 | 2 dB +| 2 | 4 dB +| 3 | 6 dB +| ... | ... +| 31 | 62 dB +|===== +* Priority of E-UTRAN frequency: 0 = lowest priority, ..., 7 = highest priority +* QRXLEVMIN parameter: Minimum required RX level in the UTRAN FDD cell + (dBm), see 3GPP TS 25.304. +[width="30%"] +|==== +| 0 | -140 dBm +| 1 | -138 dBm +| 2 | -136 dBm +| ... | ... +| 31 | -78 dBm +|==== +* Measurement bandwidth in MHz, see 3GPP TS 44.018 and 3GPP TS 44.060. + This field specifies the minimum value of the channel bandwidth of all + valid E-UTRAN cells on the specified EARFCN. It is defined by the + parameter Transmission Bandwidth Configuration, N RB (see 3GPP TS + 36.104). The values indicate the number of resource blocks over which + the mobile station could measure if the mobile station does not + support wideband RSRQ measurements (see 3GPP TS 24.008). A mobile + station supporting wideband RSRQ measurements shall measure over the + indicated number of resource blocks. The field is coded according to + the following table: +[width="30%"] +|==== +| 0 | N_RB = 6 +| 1 | N_RB = 15 +| 2 | N_RB = 25 +| 3 | N_RB = 50 +| 4 | N_RB = 75 +| 5 | N_RB = 100 +|==== + +In the following example we're configuring a 4G neighbor on EARFCN 2342 +with a higher reselection threshold of 40dB, a lower reselection +threshold of 20dB, priority 5, QRXLEVMIN of -140 dBm and a measurement +bandwidth of 100 resource blocks: + +---- +network + bts 0 + si2quater neighbor-list add earfcn 2342 thresh-hi 20 thresh-lo 10 prio 5 qrxlv 0 meas 5 +---- + +4G neighbor cells can be removed using the same command, just replacing +`add` with `del`. -- To view, visit https://gerrit.osmocom.org/12832 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I81df1a453858b6fca80c8adf234b1d5b8bf5283d Gerrit-Change-Number: 12832 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 14:45:28 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 14:45:28 +0000 Subject: Change in osmo-bsc[master]: manual: Re-order chapters in more logical order In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12833 ) Change subject: manual: Re-order chapters in more logical order ...................................................................... manual: Re-order chapters in more logical order It makes a lot of sense to first describe the VTY interface before going on using it to configure something. Also, configuration related topics relevant to operators/sysadmins should precede other content only relevant to developers, like the details of the CTRL or Abis/IP protocol. Change-Id: I0872d072bbb06f9409a72b93133d136167f03b38 --- M doc/manuals/osmobsc-usermanual.adoc 1 file changed, 6 insertions(+), 6 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/doc/manuals/osmobsc-usermanual.adoc b/doc/manuals/osmobsc-usermanual.adoc index eec77d7..275c436 100644 --- a/doc/manuals/osmobsc-usermanual.adoc +++ b/doc/manuals/osmobsc-usermanual.adoc @@ -11,12 +11,6 @@ include::{srcdir}/chapters/running.adoc[] -include::{srcdir}/chapters/control.adoc[] - -include::{srcdir}/chapters/counters.adoc[] - -include::{srcdir}/chapters/handover.adoc[] - include::./common/chapters/vty.adoc[] include::./common/chapters/logging.adoc[] @@ -27,10 +21,16 @@ include::./common/chapters/bsc.adoc[] +include::{srcdir}/chapters/handover.adoc[] + +include::{srcdir}/chapters/counters.adoc[] + include::./common/chapters/abis.adoc[] include::./common/chapters/control_if.adoc[] +include::{srcdir}/chapters/control.adoc[] + include::./common/chapters/cell-broadcast.adoc[] include::./common/chapters/port_numbers.adoc[] -- To view, visit https://gerrit.osmocom.org/12833 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I0872d072bbb06f9409a72b93133d136167f03b38 Gerrit-Change-Number: 12833 Gerrit-PatchSet: 4 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 14:45:30 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 14:45:30 +0000 Subject: Change in osmo-bsc[master]: manual: s/OsmoNITB/OsmoBSC/ in examples; remove E1 based BTSs In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12834 ) Change subject: manual: s/OsmoNITB/OsmoBSC/ in examples; remove E1 based BTSs ...................................................................... manual: s/OsmoNITB/OsmoBSC/ in examples; remove E1 based BTSs We still haven't re-introduced support for E1 based BTSs, so let's remove the relevant chapters from the manuals. Also, make sure we don't call anything OsmoNITB in this manual anymore. Change-Id: I834d65836731958b6be823a18e35407183398715 --- M doc/manuals/chapters/bts-examples.adoc 1 file changed, 6 insertions(+), 99 deletions(-) Approvals: Harald Welte: Looks good to me, approved daniel: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/doc/manuals/chapters/bts-examples.adoc b/doc/manuals/chapters/bts-examples.adoc index b15fb99..e404989 100644 --- a/doc/manuals/chapters/bts-examples.adoc +++ b/doc/manuals/chapters/bts-examples.adoc @@ -1,109 +1,16 @@ [[bts-examples]] -== OsmoNITB example configuration files +== OsmoBSC example configuration files -The `openbsc/doc/examples/osmo-nitb` directory in the OpenBSC source +The `osmo-bsc/doc/examples/osmo-bsc` directory in the OpenBSC source tree contains a collection of example configuration files, sorted by BTS type. This chapter is illustrating some excerpts from those examples -[[bts_example_bs11]] -=== Example configuration for OsmoNITB with one dual-TRX BS-11 - -.OsmoNITB with BS11, 2 TRX, no frequency hopping -==== - ----- -e1_input - e1_line 0 driver misdn -network - network country code 1 - mobile network code 1 - short name OpenBSC - long name OpenBSC - timer t3101 10 - timer t3113 60 - bts 0 - type bs11 <1> - band GSM900 - cell_identity 1 - location_area_code 1 - training_sequence_code 7 - base_station_id_code 63 - oml e1 line 0 timeslot 1 sub-slot full <2> - oml e1 tei 25 <3> - trx 0 - arfcn 121 - max_power_red 0 - rsl e1 line 0 timeslot 1 sub-slot full <4> - rsl e1 tei 1 <5> - timeslot 0 - phys_chan_config CCCH+SDCCH4 - e1 line 0 timeslot 1 sub-slot full - timeslot 1 - phys_chan_config TCH/F - e1 line 0 timeslot 2 sub-slot 1 <6> - timeslot 2 - phys_chan_config TCH/F - e1 line 0 timeslot 2 sub-slot 2 - timeslot 3 - phys_chan_config TCH/F - e1 line 0 timeslot 2 sub-slot 3 - timeslot 4 - phys_chan_config TCH/F - e1 line 0 timeslot 3 sub-slot 0 - timeslot 5 - phys_chan_config TCH/F - e1 line 0 timeslot 3 sub-slot 1 - timeslot 6 - phys_chan_config TCH/F - e1 line 0 timeslot 3 sub-slot 2 - timeslot 7 - phys_chan_config TCH/F - e1 line 0 timeslot 3 sub-slot 3 - trx 1 - arfcn 123 - max_power_red 0 - rsl e1 line 0 timeslot 1 sub-slot full <4> - rsl e1 tei 2 <5> - timeslot 0 - phys_chan_config TCH/F - e1 line 0 timeslot 4 sub-slot 0 <6> - timeslot 1 - phys_chan_config TCH/F - e1 line 0 timeslot 4 sub-slot 1 - timeslot 2 - phys_chan_config TCH/F - e1 line 0 timeslot 4 sub-slot 2 - timeslot 3 - phys_chan_config TCH/F - e1 line 0 timeslot 4 sub-slot 3 - timeslot 4 - phys_chan_config TCH/F - e1 line 0 timeslot 5 sub-slot 0 - timeslot 5 - phys_chan_config TCH/F - e1 line 0 timeslot 5 sub-slot 1 - timeslot 6 - phys_chan_config TCH/F - e1 line 0 timeslot 5 sub-slot 2 - timeslot 7 - phys_chan_config TCH/F - e1 line 0 timeslot 5 sub-slot 3 ----- -==== - -<1> The BTS type must be set to __bs11__ -<2> The OML E1 timeslot needs to be identical with what was on the BTS side using LMT. -<3> The OML TEI value needs to be identical with what was configured on the BTS side using LMT. -<4> The RSL E1 timeslot can be identical for all TRX. -<5> The RSL TEI values __must__ be different if multiple TRX share one E1 signalling timeslot. -<6> The TCH all need to be allocated one 16k sub-slot on the E1 - [[bts_example_nbts]] -=== Example configuration for OsmoNITB with one single-TRX nanoBTS +=== Example configuration for OsmoBSC with one single-TRX nanoBTS -.OsmoNITB with one single-TRX nanoBTS +.OsmoBSC with one single-TRX nanoBTS ==== ---- @@ -185,9 +92,9 @@ [[bts_example_nbts_multi]] -=== Example configuration for OsmoNITB with multi-TRX nanoBTS +=== Example configuration for OsmoBSC with multi-TRX nanoBTS -.OsmoNITB configured for dual-TRX (stacked) nanoBTS +.OsmoBSC configured for dual-TRX (stacked) nanoBTS ==== ---- -- To view, visit https://gerrit.osmocom.org/12834 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I834d65836731958b6be823a18e35407183398715 Gerrit-Change-Number: 12834 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-CC: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 14:45:31 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 14:45:31 +0000 Subject: Change in osmo-bsc[master]: manual: Remove bogus "Control interface" sub-section in overview In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12835 ) Change subject: manual: Remove bogus "Control interface" sub-section in overview ...................................................................... manual: Remove bogus "Control interface" sub-section in overview We meanwhile have chapters about the CTRL interface protocol as well as the auto-generated list of CTRL interface commands/values, so let's remove the somewhat redundant information. Change-Id: I062d7eec3b3fc53c31726be3b3a407a2dd3b8b56 --- M doc/manuals/chapters/overview.adoc 1 file changed, 0 insertions(+), 22 deletions(-) Approvals: Harald Welte: Looks good to me, approved daniel: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/doc/manuals/chapters/overview.adoc b/doc/manuals/chapters/overview.adoc index d3deb27..869bd26 100644 --- a/doc/manuals/chapters/overview.adoc +++ b/doc/manuals/chapters/overview.adoc @@ -150,25 +150,3 @@ with E1 based BTS, OsmoBSC contains a E1 sub-channel de- and re-multiplexer as well as a TRAU mapper that can map uplink to downlink frames and vice versa. - -=== Control interface - -The actual protocol is described in <> section. Here we -describe variables specific to OsmoBSC. - -.Variables available over control interface -[options="header",width="100%",cols="20%,5%,5%,50%,20%"] -|=== -|Name|Access|Trap|Value|Comment -|msc_connection_status|RO|Yes|"connected", "disconnected"|Indicate the status of connection to MSC. -|bts_connection_status|RO|Yes|"connected", "disconnected"|Indicate the status of connection to BTS. -|location|RW|Yes|",(invalid\|fix2d\|fix3d),,,"|Set/Get location data. -|timezone|RW|No|",,", "off"|-19 <= hours <= 19, mins in {0, 15, 30, 45}, and 0 <= dst <= 2 -|notification|WO|Yes|| -|inform-msc-v1|WO|Yes|| -|ussd-notify-v1|WO|Yes|| -|=== - -Some comments. -FIXME: commands defined in src/ctrl/control_if.c? Nodes? Traps? - -- To view, visit https://gerrit.osmocom.org/12835 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I062d7eec3b3fc53c31726be3b3a407a2dd3b8b56 Gerrit-Change-Number: 12835 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 14:49:55 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Feb 2019 14:49:55 +0000 Subject: Change in osmo-bsc[master]: manual: Add sections on 3G/4G neighbor cells In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12832 ) Change subject: manual: Add sections on 3G/4G neighbor cells ...................................................................... Patch Set 3: (2 comments) https://gerrit.osmocom.org/#/c/12832/2/doc/manuals/chapters/handover.adoc File doc/manuals/chapters/handover.adoc: https://gerrit.osmocom.org/#/c/12832/2/doc/manuals/chapters/handover.adoc at 600 PS2, Line 600: * the UARFCN (UTRAN Absolute Radio Channel Number) on which the cell "... Radio [Frequency] Channel Number" https://gerrit.osmocom.org/#/c/12832/2/doc/manuals/chapters/handover.adoc at 623 PS2, Line 623: * EARFCN (EUTRAN Absolute Radio Channel Number) on which the cell ...Radio Frequency... -- To view, visit https://gerrit.osmocom.org/12832 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I81df1a453858b6fca80c8adf234b1d5b8bf5283d Gerrit-Change-Number: 12832 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 05 Feb 2019 14:49:55 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 14:55:06 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Feb 2019 14:55:06 +0000 Subject: Change in libosmo-netif[master]: Stream examples: fix typo in error message In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12825 ) Change subject: Stream examples: fix typo in error message ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12825/1/examples/stream-server.c File examples/stream-server.c: https://gerrit.osmocom.org/#/c/12825/1/examples/stream-server.c at 145 PS1, Line 145: fprintf(stderr, "cannot create client\n"); here as well -- To view, visit https://gerrit.osmocom.org/12825 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I47cc8c7340eb188d85a49d4f41c295bed0e1bee4 Gerrit-Change-Number: 12825 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 05 Feb 2019 14:55:06 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:01:35 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Feb 2019 15:01:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: Don't make invalid assumptions about RR RELEASE In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12818 ) Change subject: BSC_Tests: Don't make invalid assumptions about RR RELEASE ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12818 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4b9d078c9b66f040fe673b5d957cf8e2c6d5892c Gerrit-Change-Number: 12818 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-Comment-Date: Tue, 05 Feb 2019 15:01:35 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:04:41 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 15:04:41 +0000 Subject: Change in osmo-bsc[master]: Implement CSFB "Fast Return" Handling at RR RELEASE In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12788 to look at the new patch set (#5). Change subject: Implement CSFB "Fast Return" Handling at RR RELEASE ...................................................................... Implement CSFB "Fast Return" Handling at RR RELEASE When the MSC sends a BSSMAP CLEAR CMD containing a CSFB Indication IE, it lets us know that the to-be-released connection related to a CSFB call. We as the BSC then subsequently should include the "Cell Selection Indicator after release of all TCH and SDCCH" IE in the RR RELEASE message sent to the MS/UE. This IE contains the LTE neighbor cells that we're configured to broadcast in si2quater. That in turn will make sure the MS/UE can return very quickly to the LTE cell. Closes: OS#3777 Change-Id: Ibfbb87e2e16b05032ad1cb91c11fad1b2f76d755 Requires: libosmocore Id4bd7f7543f5b0f4f6f876e283bd065039c37646 Requires: libosmocore I0e101af316438b56d63d43fc2cb16d7caf563d07 Requires: libosmocore I8980a6b6d1973b67a2d9ad411c878d956fb428d1 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/gsm_04_08_rr.c M src/osmo-bsc/osmo_bsc_bssap.c 4 files changed, 89 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/88/12788/5 -- To view, visit https://gerrit.osmocom.org/12788 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ibfbb87e2e16b05032ad1cb91c11fad1b2f76d755 Gerrit-Change-Number: 12788 Gerrit-PatchSet: 5 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:05:20 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 5 Feb 2019 15:05:20 +0000 Subject: Change in libosmo-netif[master]: Add stream client/server test Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12837 Change subject: Add stream client/server test ...................................................................... Add stream client/server test Previously stream client and server code were only used in examples which means regressions could be easily introduced unnoticed until they trigger bugs in external code which relies on osmo_stream_*() Fix this by adding basic client-server interaction test with single reconnection iteration. Change-Id: I336f79970982ed8e1d73b73d54fa4c27ba8bce8e --- M tests/Makefile.am A tests/stream/stream_test.c A tests/stream/stream_test.ok M tests/testsuite.at 4 files changed, 298 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/37/12837/1 diff --git a/tests/Makefile.am b/tests/Makefile.am index 03a7a3c..c85c103 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,7 +1,7 @@ AM_CFLAGS = -Wall -I$(top_srcdir)/include $(LIBOSMOCORE_CFLAGS) -g AM_LDFLAGS = $(LIBOSMOCORE_LDFLAGS) -check_PROGRAMS = osmux/osmux_test osmux/osmux_test2 jibuf/jibuf_test +check_PROGRAMS = osmux/osmux_test osmux/osmux_test2 stream/stream_test jibuf/jibuf_test check_HEADERS = osmux_osmux_test_SOURCES = osmux/osmux_test.c @@ -10,6 +10,9 @@ osmux_osmux_test2_SOURCES = osmux/osmux_test2.c osmux_osmux_test2_LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS) $(top_builddir)/src/libosmonetif.la +stream_stream_test_SOURCES = stream/stream_test.c +stream_stream_test_LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS) $(top_builddir)/src/libosmonetif.la + jibuf_jibuf_test_SOURCES = jibuf/jibuf_test.c jibuf_jibuf_test_LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS) $(top_builddir)/src/libosmonetif.la diff --git a/tests/stream/stream_test.c b/tests/stream/stream_test.c new file mode 100644 index 0000000..ed3e9ea --- /dev/null +++ b/tests/stream/stream_test.c @@ -0,0 +1,232 @@ +/* + * (C) 2019 by sysmocom - s.f.m.c. GmbH. + * Author: Max Suraev + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + */ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +#define DSTREAMTEST 0 +struct log_info_cat osmo_stream_test_cat[] = { + [DSTREAMTEST] = { + .name = "DSTREAMTEST", + .description = "STREAM test", + .color = "\033[1;35m", + .enabled = 1, .loglevel = LOGL_DEBUG, + }, +}; + +const struct log_info osmo_stream_test_log_info = { + .filter_fn = NULL, + .cat = osmo_stream_test_cat, + .num_cat = ARRAY_SIZE(osmo_stream_test_cat), +}; + +void sighandler(int foo) +{ + LOGP(DSTREAMTEST, LOGL_NOTICE, "Signal received: closing stream.\n"); + exit(EXIT_SUCCESS); +} + +static struct msgb *make_msgb(const char *m) +{ + struct msgb *msg = msgb_alloc(512, "STREAM test"); + if (!msg) { + printf("Unable to allocate message\n"); + return NULL; + } + + if (m) + msgb_printf(msg, "%s", m); + + return msg; +} + +/* client callbacks */ +static int connect_cb_cli(struct osmo_stream_cli *conn) +{ + void *cli_data = osmo_stream_cli_get_data(conn); + printf("\nClient's connect() callback triggered [%s]\n", cli_data ? "OK" : "NA"); + + return 0; +} + +static int read_cb_cli(struct osmo_stream_cli *conn) +{ + int bytes; + void *cli_data = osmo_stream_cli_get_data(conn); + struct msgb *msg = make_msgb(NULL); + if (!msg) + return -ENOMEM; + + printf("Client's read() callback triggered\n"); + + bytes = osmo_stream_cli_recv(conn, msg); + if (bytes < 0) { + printf("Unable to receive message\n"); + return -EINVAL; + } + + if (bytes) + printf("Client received %d(%d) bytes: %s\n", bytes, msg->len, msgb_hexdump(msg)); + else + printf("Client received 0 bytes\n"); + + /* N. B: do not dereference opaque pointer itself as it might be invalid by the time callback is triggered! */ + if (!cli_data) { + /* we reply to trigger server's read() callback */ + printf("Client's initial connection, contacting server\n"); + msgb_reset(msg); + osmo_stream_cli_set_data(conn, msg); + msgb_printf(msg, "%s", "Doh, responding to server :-D"); + printf("Client sent %d bytes message: %s\n", msg->len, msgb_hexdump(msg)); + osmo_stream_cli_send(conn, msg); + } else { + printf("Client's subsequent connection, closing link\n"); + osmo_stream_cli_close(conn); + } + + return 0; +} + +/* server callbacks */ +int read_cb_srv(struct osmo_stream_srv *conn) +{ + int bytes; + struct msgb *msg = make_msgb(NULL); + if (!msg) + return -ENOMEM; + + printf("Server's read() callback triggered\n"); + + bytes = osmo_stream_srv_recv(conn, msg); + if (bytes <= 0) { + if (bytes < 0) + printf("Unable to receive message: %s\n", strerror(-bytes)); + else { + printf("client have already closed connection\n"); + /* if client have already closed the connection, than it must be subsequent (after reconnect) + call - we indicate this to outer loop by clearing opaque pointer */ + osmo_stream_srv_link_set_data(osmo_stream_srv_get_master(conn), NULL); + } + osmo_stream_srv_destroy(conn); + return -EINVAL; + } else + printf("Server received %d(%d) bytes: %s\n", bytes, msg->len, msgb_hexdump(msg)); + + msgb_free(msg); + + printf("Server: force client disconnect\n"); + osmo_stream_srv_destroy(conn); + + return 0; +} + +static int close_cb_srv(struct osmo_stream_srv *ignored) +{ + printf("Server's close() callback triggered\n"); + + return 0; +} + +static int accept_cb_srv(struct osmo_stream_srv_link *srv, int fd) +{ + void *ctx = osmo_stream_srv_link_get_data(srv); + struct msgb *msg = make_msgb("Lol, connection accepted :)"); + struct osmo_stream_srv *conn = osmo_stream_srv_create(ctx, srv, fd, read_cb_srv, close_cb_srv, NULL); + if (!conn) { + printf("error while creating connection\n"); + return -EINVAL; + } + + printf("Server's accept() callback triggered\n"); + + /* we initiate transmission which will trigger client's read() callback */ + if (msg) { + printf("Server sent %d bytes message: %s\n", msg->len, msgb_hexdump(msg)); + osmo_stream_srv_send(conn, msg); + } + + return 0; +} + + +int main(void) +{ + unsigned steps = 16, port = 1111; /* Make sure to use sufficient number of steps */ + struct osmo_stream_srv_link *srv; + struct osmo_stream_cli *cli; + char *host = "127.0.0.11"; + void *tall_test = talloc_named_const(NULL, 1, "osmo_stream_test"); + msgb_talloc_ctx_init(tall_test, 0); + osmo_init_logging2(tall_test, &osmo_stream_test_log_info); + log_set_log_level(osmo_stderr_target, 1); + + printf("Prepare stream client...\n"); + cli = osmo_stream_cli_create(tall_test); + if (!cli) { + printf("Unable to create client\n"); + return EXIT_FAILURE; + } + + osmo_stream_cli_set_addr(cli, host); + osmo_stream_cli_set_port(cli, port); + osmo_stream_cli_set_connect_cb(cli, connect_cb_cli); + osmo_stream_cli_set_read_cb(cli, read_cb_cli); + osmo_stream_cli_set_reconnect_timeout(cli, 2); + + if (osmo_stream_cli_open(cli) < 0) { + printf("Unable to open client\n"); + return EXIT_FAILURE; + } + + printf("Prepare stream server...\n"); + srv = osmo_stream_srv_link_create(tall_test); + if (!srv) { + printf("Unable to create server\n"); + return EXIT_FAILURE; + } + + osmo_stream_srv_link_set_addr(srv, host); + osmo_stream_srv_link_set_port(srv, port); + osmo_stream_srv_link_set_data(srv, tall_test); + osmo_stream_srv_link_set_accept_cb(srv, accept_cb_srv); + + if (osmo_stream_srv_link_open(srv) < 0) { + printf("Unable to open server\n"); + return EXIT_FAILURE; + } + + printf("Entering main test loop...\n"); + + while(steps--) { + osmo_select_main(0); + void *srv_data = osmo_stream_srv_link_get_data(srv); + void *cli_data = osmo_stream_cli_get_data(cli); + printf("\nTest step %u [client %s, server %s]\n", steps, cli_data ? "OK" : "NA", srv_data ? "OK" : "NA"); + if (!srv_data) { + printf("Server requested test termination\n"); + steps = 0; + } + } + + printf("Test finished\n"); + + return EXIT_SUCCESS; +} diff --git a/tests/stream/stream_test.ok b/tests/stream/stream_test.ok new file mode 100644 index 0000000..9c4ba1f --- /dev/null +++ b/tests/stream/stream_test.ok @@ -0,0 +1,56 @@ +Prepare stream client... +Prepare stream server... +Entering main test loop... + +Test step 15 [client NA, server OK] + +Test step 14 [client NA, server OK] +Server's accept() callback triggered +Server sent 27 bytes message: 4c 6f 6c 2c 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 61 63 63 65 70 74 65 64 20 3a 29 + +Client's connect() callback triggered [NA] + +Test step 13 [client NA, server OK] + +Test step 12 [client NA, server OK] +Client's read() callback triggered +Client received 27(27) bytes: 4c 6f 6c 2c 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 61 63 63 65 70 74 65 64 20 3a 29 +Client's initial connection, contacting server +Client sent 29 bytes message: 44 6f 68 2c 20 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 73 65 72 76 65 72 20 3a 2d 44 + +Test step 11 [client OK, server OK] + +Test step 10 [client OK, server OK] +Server's read() callback triggered +Server received 29(29) bytes: 44 6f 68 2c 20 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 73 65 72 76 65 72 20 3a 2d 44 +Server: force client disconnect +Server's close() callback triggered + +Test step 9 [client OK, server OK] +Client's read() callback triggered +Client received 0 bytes +Client's subsequent connection, closing link + +Test step 8 [client OK, server OK] + +Test step 7 [client OK, server OK] +Server's accept() callback triggered +Server sent 27 bytes message: 4c 6f 6c 2c 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 61 63 63 65 70 74 65 64 20 3a 29 + +Client's connect() callback triggered [OK] + +Test step 6 [client OK, server OK] + +Test step 5 [client OK, server OK] +Client's read() callback triggered +Client received 27(27) bytes: 4c 6f 6c 2c 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 61 63 63 65 70 74 65 64 20 3a 29 +Client's subsequent connection, closing link + +Test step 4 [client OK, server OK] +Server's read() callback triggered +client have already closed connection +Server's close() callback triggered + +Test step 3 [client OK, server NA] +Server requested test termination +Test finished diff --git a/tests/testsuite.at b/tests/testsuite.at index 67b91c6..63e2f03 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -7,6 +7,12 @@ AT_CHECK([$abs_top_builddir/tests/osmux/osmux_test], [0], [expout], [ignore]) AT_CLEANUP +AT_SETUP([stream_test]) +AT_KEYWORDS([stream_test]) +cat $abs_srcdir/stream/stream_test.ok > expout +AT_CHECK([$abs_top_builddir/tests/stream/stream_test], [0], [expout], [ignore]) +AT_CLEANUP + AT_SETUP([osmux_test2]) AT_KEYWORDS([osmux_test2]) cat $abs_srcdir/osmux/osmux_test2.ok > expout -- To view, visit https://gerrit.osmocom.org/12837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I336f79970982ed8e1d73b73d54fa4c27ba8bce8e Gerrit-Change-Number: 12837 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:05:24 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 15:05:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: Don't make invalid assumptions about RR RELEASE In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12818 ) Change subject: BSC_Tests: Don't make invalid assumptions about RR RELEASE ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12818 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4b9d078c9b66f040fe673b5d957cf8e2c6d5892c Gerrit-Change-Number: 12818 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-Comment-Date: Tue, 05 Feb 2019 15:05:24 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:05:26 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 15:05:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: BSC_Tests: Don't make invalid assumptions about RR RELEASE In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12818 ) Change subject: BSC_Tests: Don't make invalid assumptions about RR RELEASE ...................................................................... BSC_Tests: Don't make invalid assumptions about RR RELEASE The RR RELEASE message does not always have to be '060D00'O, which constrains it to: * not having any optional IEs * not having a cause value != 00 Let's relax the matching to accept any RR RELEASE message, whatever the cause may be, and whether or not there are any optional IEs at the end. At the same time, also remove some copy+pasting but rather have one template that gets used everywhere. Change-Id: I4b9d078c9b66f040fe673b5d957cf8e2c6d5892c --- M bsc/BSC_Tests.ttcn M bsc/BSC_Tests_LCLS.ttcn 2 files changed, 4 insertions(+), 6 deletions(-) Approvals: Harald Welte: Looks good to me, approved daniel: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index af32b8c..5ac8191 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -62,6 +62,7 @@ const integer NUM_TCHH_PER_BTS := 2; const integer NUM_TCHF_PER_BTS := 4; const integer NUM_SDCCH_PER_BTS := 4; +template octetstring t_l3_rr_chan_rel := '060D??*'O; /* per-BTS state which we keep */ @@ -860,7 +861,6 @@ ) runs on test_CT { var RslLinkId main_dcch := valueof(ts_RslLinkID_DCCH(0)); - var octetstring l3_rr_chan_rel := '060D00'O; var boolean got_deact_sacch := false; var boolean got_rr_chan_rel := false; var boolean got_rll_rel_req := false; @@ -872,7 +872,7 @@ got_deact_sacch := true; repeat; } - [] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_DATA_REQ(rsl_chan_nr, ?, l3_rr_chan_rel))) { + [] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_DATA_REQ(rsl_chan_nr, ?, t_l3_rr_chan_rel))) { got_rr_chan_rel := true; repeat; } @@ -2812,12 +2812,11 @@ * RR should be released and Clear Request should go to the MSC. */ var MgcpCommand mgcp; - var octetstring l3_rr_chan_rel := '060D00'O; interleave { [] RSL.receive(tr_RSL_DEACT_SACCH(g_chan_nr)) { log("Got Deact SACCH"); } - [] RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, l3_rr_chan_rel)) { + [] RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, t_l3_rr_chan_rel)) { log("Got RR Release"); } [] RSL.receive(tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL)) { diff --git a/bsc/BSC_Tests_LCLS.ttcn b/bsc/BSC_Tests_LCLS.ttcn index c401206..0fada93 100644 --- a/bsc/BSC_Tests_LCLS.ttcn +++ b/bsc/BSC_Tests_LCLS.ttcn @@ -700,10 +700,9 @@ /* Perform hard BSSMAP Clear on "A" side, expect no LS on "B" side */ var myBSSMAP_Cause cause_val := GSM0808_CAUSE_CALL_CONTROL; - var octetstring l3_rr_chan_rel := '060D00'O; CONN_A.send(ts_BSSMAP_ClearCommand(enum2int(cause_val))); interleave { - [] CONN_A.receive(tr_RSL_DATA_REQ(?, tr_RslLinkID_DCCH(0), l3_rr_chan_rel)); + [] CONN_A.receive(tr_RSL_DATA_REQ(?, tr_RslLinkID_DCCH(0), t_l3_rr_chan_rel)); [] CONN_A.receive(tr_RSL_DEACT_SACCH(?)); [] CONN_A.receive(tr_RSL_RF_CHAN_REL(?)) -> value rsl { var RSL_IE_Body ieb; -- To view, visit https://gerrit.osmocom.org/12818 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I4b9d078c9b66f040fe673b5d957cf8e2c6d5892c Gerrit-Change-Number: 12818 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:06:57 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 15:06:57 +0000 Subject: Change in libosmo-netif[master]: Stream client: update logging In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12836 ) Change subject: Stream client: update logging ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/#/c/12836/1/src/stream.c File src/stream.c: https://gerrit.osmocom.org/#/c/12836/1/src/stream.c at 52 PS1, Line 52: cli it's customary to put (cli) in such macros, as you don't know how exactly the 'cli' will be specified by the caller. https://gerrit.osmocom.org/#/c/12836/1/src/stream.c at 136 PS1, Line 136: const struct value_string stream_cli_state_names[] = { static? -- To view, visit https://gerrit.osmocom.org/12836 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie22a80dcec95998cce0b25053fdf74f23eab6e53 Gerrit-Change-Number: 12836 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Harald Welte Gerrit-Comment-Date: Tue, 05 Feb 2019 15:06:57 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:07:43 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 15:07:43 +0000 Subject: Change in libosmo-netif[master]: Stream client: fix disconnection logic In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12760 ) Change subject: Stream client: fix disconnection logic ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If41ed60bd625488c283d1e8a2b078e640f04c78e Gerrit-Change-Number: 12760 Gerrit-PatchSet: 4 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pablo Neira Ayuso Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 05 Feb 2019 15:07:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:08:51 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 15:08:51 +0000 Subject: Change in libosmo-netif[master]: Stream examples: print accepted client address In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12826 ) Change subject: Stream examples: print accepted client address ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12826 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5aa6757be79754cf7ffa4a276dae1cfb80fe904e Gerrit-Change-Number: 12826 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Tue, 05 Feb 2019 15:08:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Tue Feb 5 15:10:06 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 5 Feb 2019 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#392?= In-Reply-To: <735182589.76.1549293006651.JavaMail.jenkins@jenkins.osmocom.org> References: <735182589.76.1549293006651.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1087156971.91.1549379406653.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 2.16 KB...] checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 4 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs mkdir .libs mkdir: cannot create directory '.libs': File exists gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:10:14 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 15:10:14 +0000 Subject: Change in libosmo-netif[master]: Add descriptor functions to stream client/server In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12827 ) Change subject: Add descriptor functions to stream client/server ...................................................................... Patch Set 1: when you refer to "description" I initially immediately thought of the kind of description that users can set via the VTY. I'm not sure if "description" is good naming in this context. What about "sockname" instead? -- To view, visit https://gerrit.osmocom.org/12827 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If9a8e211da85956781479862a63c4fc6e53ed6be Gerrit-Change-Number: 12827 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Harald Welte Gerrit-Comment-Date: Tue, 05 Feb 2019 15:10:14 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:11:32 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 5 Feb 2019 15:11:32 +0000 Subject: Change in libosmo-netif[master]: Stream examples: fix typos in error message In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12825 to look at the new patch set (#2). Change subject: Stream examples: fix typos in error message ...................................................................... Stream examples: fix typos in error message Likely a copy-paste error from corresponding client example code. Change-Id: I47cc8c7340eb188d85a49d4f41c295bed0e1bee4 --- M examples/stream-server.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/25/12825/2 -- To view, visit https://gerrit.osmocom.org/12825 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I47cc8c7340eb188d85a49d4f41c295bed0e1bee4 Gerrit-Change-Number: 12825 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:11:34 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 15:11:34 +0000 Subject: Change in libosmocore[master]: gsm0808: Add CSFB indication IE to BSSMAP CLEAR COMMAND In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12829 ) Change subject: gsm0808: Add CSFB indication IE to BSSMAP CLEAR COMMAND ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12829 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id8a75e1da2d5f520064666e4ee413d1c91da6ae3 Gerrit-Change-Number: 12829 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Tue, 05 Feb 2019 15:11:34 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:11:36 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 15:11:36 +0000 Subject: Change in libosmocore[master]: gsm0808: Add CSFB indication IE to BSSMAP CLEAR COMMAND In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12829 ) Change subject: gsm0808: Add CSFB indication IE to BSSMAP CLEAR COMMAND ...................................................................... gsm0808: Add CSFB indication IE to BSSMAP CLEAR COMMAND When a call that was established in a CSFB context ends the CLEAR COMMAND that is send from the BSC to the MSC should contain a CSFB indication IE, which consists of just the IE byte itsslef. This additional IE tells the BSC to include other CSFB related IEs into the RR Release message. Change-Id: Id8a75e1da2d5f520064666e4ee413d1c91da6ae3 Related: OS#3778 --- M include/osmocom/gsm/gsm0808.h M src/gsm/gsm0808.c M src/gsm/libosmogsm.map 3 files changed, 18 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gsm/gsm0808.h b/include/osmocom/gsm/gsm0808.h index 6d14e13..35e7a8e 100644 --- a/include/osmocom/gsm/gsm0808.h +++ b/include/osmocom/gsm/gsm0808.h @@ -49,6 +49,7 @@ struct msgb *gsm0808_create_reset(void); struct msgb *gsm0808_create_reset_ack(void); struct msgb *gsm0808_create_clear_command(uint8_t cause); +struct msgb *gsm0808_create_clear_command2(uint8_t cause, bool csfb_ind); struct msgb *gsm0808_create_clear_complete(void); struct msgb *gsm0808_create_cipher(const struct gsm0808_encrypt_info *ei, const uint8_t *cipher_response_mode); diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index fce8e0a..2907255 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -195,6 +195,22 @@ return msg; } +/*! Create BSSMAP Clear Command message. + * \param[in] cause TS 08.08 cause value. + * \param[in] csfb_ind indicate that the call was established in an CSFB context. + * \returns callee-allocated msgb with BSSMAP Clear Command message. */ +struct msgb *gsm0808_create_clear_command2(uint8_t cause, bool csfb_ind) +{ + struct msgb *msg = gsm0808_create_clear_command(cause); + if (!msg) + return NULL; + + if (csfb_ind) + msgb_v_put(msg, GSM0808_IE_CSFB_INDICATION); + + return msg; +} + /*! Create BSSMAP Cipher Mode Command message * \param[in] ei Mandatory Encryption Information * \param[in] cipher_response_mode optional 1-byte Cipher Response Mode diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 3cfe6a7..602c7a6 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -164,6 +164,7 @@ gsm0808_create_classmark_request; gsm0808_create_classmark_update; gsm0808_create_clear_command; +gsm0808_create_clear_command2; gsm0808_create_clear_complete; gsm0808_create_clear_rqst; gsm0808_create_paging; -- To view, visit https://gerrit.osmocom.org/12829 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Id8a75e1da2d5f520064666e4ee413d1c91da6ae3 Gerrit-Change-Number: 12829 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:12:20 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 15:12:20 +0000 Subject: Change in osmo-bsc[master]: Implement CSFB "Fast Return" Handling at RR RELEASE In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12788 ) Change subject: Implement CSFB "Fast Return" Handling at RR RELEASE ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12788 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ibfbb87e2e16b05032ad1cb91c11fad1b2f76d755 Gerrit-Change-Number: 12788 Gerrit-PatchSet: 5 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 05 Feb 2019 15:12:20 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:12:21 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 15:12:21 +0000 Subject: Change in osmo-bsc[master]: Implement CSFB "Fast Return" Handling at RR RELEASE In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12788 ) Change subject: Implement CSFB "Fast Return" Handling at RR RELEASE ...................................................................... Implement CSFB "Fast Return" Handling at RR RELEASE When the MSC sends a BSSMAP CLEAR CMD containing a CSFB Indication IE, it lets us know that the to-be-released connection related to a CSFB call. We as the BSC then subsequently should include the "Cell Selection Indicator after release of all TCH and SDCCH" IE in the RR RELEASE message sent to the MS/UE. This IE contains the LTE neighbor cells that we're configured to broadcast in si2quater. That in turn will make sure the MS/UE can return very quickly to the LTE cell. Closes: OS#3777 Change-Id: Ibfbb87e2e16b05032ad1cb91c11fad1b2f76d755 Requires: libosmocore Id4bd7f7543f5b0f4f6f876e283bd065039c37646 Requires: libosmocore I0e101af316438b56d63d43fc2cb16d7caf563d07 Requires: libosmocore I8980a6b6d1973b67a2d9ad411c878d956fb428d1 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/bsc_subscr_conn_fsm.c M src/osmo-bsc/gsm_04_08_rr.c M src/osmo-bsc/osmo_bsc_bssap.c 4 files changed, 89 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 9f2f816..a5fe1f1 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -557,6 +557,9 @@ /* If a release event is being handled, ignore other ricocheting release events until that * release handling has concluded. */ bool in_release_handler; + + /* is this release at the end of a CSFB call? */ + bool is_csfb; } release; /* The logical channel type */ diff --git a/src/osmo-bsc/bsc_subscr_conn_fsm.c b/src/osmo-bsc/bsc_subscr_conn_fsm.c index fc34968..13a5730 100644 --- a/src/osmo-bsc/bsc_subscr_conn_fsm.c +++ b/src/osmo-bsc/bsc_subscr_conn_fsm.c @@ -718,6 +718,8 @@ /* Regular allstate event processing */ switch (event) { case GSCON_EV_A_CLEAR_CMD: + if (conn->lchan) + conn->lchan->release.is_csfb = *(bool *)data; /* MSC tells us to cleanly shut down */ if (conn->fi->state != ST_CLEARING) osmo_fsm_inst_state_chg(fi, ST_CLEARING, 60, 999); diff --git a/src/osmo-bsc/gsm_04_08_rr.c b/src/osmo-bsc/gsm_04_08_rr.c index f1061ef..349bfea 100644 --- a/src/osmo-bsc/gsm_04_08_rr.c +++ b/src/osmo-bsc/gsm_04_08_rr.c @@ -28,7 +28,9 @@ #include #include +#include #include +#include #include #include @@ -40,6 +42,8 @@ #include #include #include +#include + /* should ip.access BTS use direct RTP streams between each other (1), * or should OpenBSC always act as RTP relay/proxy in between (0) ? */ @@ -236,6 +240,56 @@ lchan->mr_ms_lv + 1); } + +#define CELL_SEL_IND_AFTER_REL_MAX_BITS (4+MAX_EARFCN_LIST*19) +#define CELL_SEL_IND_AFTER_REL_MAX_BYTES ((CELL_SEL_IND_AFTER_REL_MAX_BITS/8)+1) + +/* Generate a CSN.1 encoded "Cell Selection Indicator after release of all TCH and SDCCH" + * as per TF 44.018 version 15.3.0 Table 10.5.2.1e.1. This only generates the "value" + * part of the IE, not the tag+length wrapper */ +static int generate_cell_sel_ind_after_rel(uint8_t *out, unsigned int out_len, const struct gsm_bts *bts) +{ + struct bitvec bv; + unsigned int i, rc; + + bv.data = out; + bv.data_len = out_len; + bitvec_zero(&bv); + + /* E-UTRAN Description */ + bitvec_set_uint(&bv, 3, 3); + bitvec_set_bit(&bv, 1); + + for (i = 0; i < MAX_EARFCN_LIST; i++) { + const struct osmo_earfcn_si2q *e = &bts->si_common.si2quater_neigh_list; + if (e->arfcn[i] == OSMO_EARFCN_INVALID) + continue; + + if (bitvec_tailroom_bits(&bv) < 19) { + LOGP(DRR, LOGL_NOTICE, "%s: Not enough room to store EARFCN %u in the " + "Cell Selection Indicator IE\n", gsm_bts_name(bts), e->arfcn[i]); + } else { + bitvec_set_uint(&bv, e->arfcn[i], 16); + /* No "Measurement Bandwidth" */ + bitvec_set_bit(&bv, 0); + /* No "Not Allowed Cells" */ + bitvec_set_bit(&bv, 0); + /* No "TARGET_PCID" */ + bitvec_set_bit(&bv, 0); + } + } + + rc = bitvec_used_bytes(&bv); + + if (rc == 1) { + /* only the header was written to the bitvec, no actual EARFCNs were present */ + return 0; + } else { + /* return the number of bytes used */ + return rc; + } +} + /* 7.1.7 and 9.1.7: RR CHANnel RELease */ int gsm48_send_rr_release(struct gsm_lchan *lchan) { @@ -250,6 +304,18 @@ cause = msgb_put(msg, 1); cause[0] = GSM48_RR_CAUSE_NORMAL; + if (lchan->release.is_csfb) { + uint8_t buf[CELL_SEL_IND_AFTER_REL_MAX_BYTES]; + int len; + + len = generate_cell_sel_ind_after_rel(buf, sizeof(buf), lchan->ts->trx->bts); + if (len == 0) { + LOGPLCHAN(lchan, DRR, LOGL_NOTICE, "MSC indicated CSFB Fast Return, but " + "BTS has no EARFCN configured!\n"); + } else + msgb_tlv_put(msg, GSM48_IE_CELL_SEL_IND_AFTER_REL, len, buf); + } + DEBUGP(DRR, "Sending Channel Release: Chan: Number: %d Type: %d\n", lchan->nr, lchan->type); diff --git a/src/osmo-bsc/osmo_bsc_bssap.c b/src/osmo-bsc/osmo_bsc_bssap.c index f2ccf2c..ab7f79c 100644 --- a/src/osmo-bsc/osmo_bsc_bssap.c +++ b/src/osmo-bsc/osmo_bsc_bssap.c @@ -420,6 +420,23 @@ return gsm48_send_rr_ciph_mode(conn->lchan, include_imeisv); } +static int bssmap_handle_clear_cmd(struct gsm_subscriber_connection *conn, + struct msgb *msg, unsigned int length) +{ + struct tlv_parsed tp; + bool is_csfb = false; + + tlv_parse(&tp, gsm0808_att_tlvdef(), msg->l4h + 1, length - 1, 0, 0); + + /* FIXME: Check for mandatory cause IE, and use that in RR RELEASE cause! */ + if (TLVP_PRESENT(&tp, GSM0808_IE_CSFB_INDICATION)) + is_csfb = true; + + osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_A_CLEAR_CMD, &is_csfb); + + return 0; +} + /* * GSM 08.08 ? 3.1.14 cipher mode handling. We will have to pick * the cipher to be used for this. In case we are already using @@ -867,7 +884,7 @@ switch (msg->l4h[0]) { case BSS_MAP_MSG_CLEAR_CMD: - osmo_fsm_inst_dispatch(conn->fi, GSCON_EV_A_CLEAR_CMD, msg); + ret = bssmap_handle_clear_cmd(conn, msg, length); break; case BSS_MAP_MSG_CIPHER_MODE_CMD: ret = bssmap_handle_cipher_mode(conn, msg, length); -- To view, visit https://gerrit.osmocom.org/12788 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ibfbb87e2e16b05032ad1cb91c11fad1b2f76d755 Gerrit-Change-Number: 12788 Gerrit-PatchSet: 5 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:13:04 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 5 Feb 2019 15:13:04 +0000 Subject: Change in libosmo-netif[master]: Stream examples: print accepted client address In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12826 ) Change subject: Stream examples: print accepted client address ...................................................................... Stream examples: print accepted client address Display socket information for accepted client. Change-Id: I5aa6757be79754cf7ffa4a276dae1cfb80fe904e --- M examples/stream-server.c 1 file changed, 6 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/examples/stream-server.c b/examples/stream-server.c index 31487a0..b02eefe 100644 --- a/examples/stream-server.c +++ b/examples/stream-server.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include @@ -77,6 +78,8 @@ static int accept_cb(struct osmo_stream_srv_link *srv, int fd) { + char buf[OSMO_SOCK_NAME_MAXLEN]; + if (conn != NULL) { LOGP(DSTREAMTEST, LOGL_ERROR, "Sorry, this example only " "support one client simultaneously\n"); @@ -91,6 +94,9 @@ return -1; } + osmo_sock_get_name_buf(buf, OSMO_SOCK_NAME_MAXLEN, fd); + LOGP(DSTREAMTEST, LOGL_NOTICE, "accepted client: %s\n", buf); + return 0; } -- To view, visit https://gerrit.osmocom.org/12826 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5aa6757be79754cf7ffa4a276dae1cfb80fe904e Gerrit-Change-Number: 12826 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:18:18 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 5 Feb 2019 15:18:18 +0000 Subject: Change in libosmo-netif[master]: Add stream client/server test In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12837 ) Change subject: Add stream client/server test ...................................................................... Patch Set 2: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/12837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I336f79970982ed8e1d73b73d54fa4c27ba8bce8e Gerrit-Change-Number: 12837 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 05 Feb 2019 15:18:18 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:20:44 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 5 Feb 2019 15:20:44 +0000 Subject: Change in libosmo-netif[master]: Stream client: update logging In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12836 to look at the new patch set (#2). Change subject: Stream client: update logging ...................................................................... Stream client: update logging Introduce logging macro wrapper to properly log current client state and function to aid in debugging. Change-Id: Ie22a80dcec95998cce0b25053fdf74f23eab6e53 --- M src/stream.c 1 file changed, 24 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/36/12836/2 -- To view, visit https://gerrit.osmocom.org/12836 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ie22a80dcec95998cce0b25053fdf74f23eab6e53 Gerrit-Change-Number: 12836 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:24:17 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 5 Feb 2019 15:24:17 +0000 Subject: Change in libosmo-netif[master]: Add socket name functions to stream client/server In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12827 to look at the new patch set (#3). Change subject: Add socket name functions to stream client/server ...................................................................... Add socket name functions to stream client/server Add functions to get the description of a server link or client connection which examine data on corresponding socket. Those functions use static buffers and intended for single use in log/printf statements as illustarted by corresponding example changes. Change-Id: If9a8e211da85956781479862a63c4fc6e53ed6be --- M examples/stream-client.c M examples/stream-server.c M include/osmocom/netif/stream.h M src/stream.c 4 files changed, 35 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/27/12827/3 -- To view, visit https://gerrit.osmocom.org/12827 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: If9a8e211da85956781479862a63c4fc6e53ed6be Gerrit-Change-Number: 12827 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:25:00 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 5 Feb 2019 15:25:00 +0000 Subject: Change in libosmo-netif[master]: Stream examples: fix typos in error message In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12825 ) Change subject: Stream examples: fix typos in error message ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/12825/1/examples/stream-server.c File examples/stream-server.c: https://gerrit.osmocom.org/#/c/12825/1/examples/stream-server.c at 145 PS1, Line 145: fprintf(stderr, "cannot create server link\n"); > here as well Done -- To view, visit https://gerrit.osmocom.org/12825 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I47cc8c7340eb188d85a49d4f41c295bed0e1bee4 Gerrit-Change-Number: 12825 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-CC: Harald Welte Gerrit-CC: daniel Gerrit-CC: osmith Gerrit-Comment-Date: Tue, 05 Feb 2019 15:25:00 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:25:56 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Feb 2019 15:25:56 +0000 Subject: Change in osmo-msc[master]: Move enum definition to header file In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12598 ) Change subject: Move enum definition to header file ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12598/1/src/libmsc/smpp_smsc.h File src/libmsc/smpp_smsc.h: https://gerrit.osmocom.org/#/c/12598/1/src/libmsc/smpp_smsc.h at 22 PS1, Line 22: enum esme_bind { I'd sort of like the osmo_* prefix here, but then it's missing in esme_read_state as well...and it's not part of libosmo* -- To view, visit https://gerrit.osmocom.org/12598 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I71b2512894ec2a71a25f35f07ff4308035d951f9 Gerrit-Change-Number: 12598 Gerrit-PatchSet: 1 Gerrit-Owner: Keith Whyte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 05 Feb 2019 15:25:56 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:29:21 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 5 Feb 2019 15:29:21 +0000 Subject: Change in libosmo-netif[master]: Stream examples: fix typos in error message In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12825 ) Change subject: Stream examples: fix typos in error message ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12825 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I47cc8c7340eb188d85a49d4f41c295bed0e1bee4 Gerrit-Change-Number: 12825 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: osmith Gerrit-CC: Harald Welte Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 05 Feb 2019 15:29:21 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:40:38 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 5 Feb 2019 15:40:38 +0000 Subject: Change in libosmo-netif[master]: Stream client: update logging In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12836 ) Change subject: Stream client: update logging ...................................................................... Patch Set 2: Code-Review-1 (1 comment) https://gerrit.osmocom.org/#/c/12836/2/src/stream.c File src/stream.c: https://gerrit.osmocom.org/#/c/12836/2/src/stream.c at 52 PS2, Line 52: #define LOGSCLI(cli, level, fmt, args...) LOGP(DLINP, level, "[%s] %s(): " fmt, get_value_string(stream_cli_state_names, (cli)->state), __func__, ## args) This line is longer than 120 characters -- To view, visit https://gerrit.osmocom.org/12836 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie22a80dcec95998cce0b25053fdf74f23eab6e53 Gerrit-Change-Number: 12836 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-CC: Harald Welte Gerrit-Comment-Date: Tue, 05 Feb 2019 15:40:38 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:49:26 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 5 Feb 2019 15:49:26 +0000 Subject: Change in libosmo-netif[master]: Add stream client/server test In-Reply-To: References: Message-ID: Hello daniel, Harald Welte, osmith, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12837 to look at the new patch set (#3). Change subject: Add stream client/server test ...................................................................... Add stream client/server test Previously stream client and server code were only used in examples which means regressions could be easily introduced unnoticed until they trigger bugs in external code which relies on osmo_stream_*() Fix this by adding basic client-server interaction test with single reconnection iteration. Change-Id: I336f79970982ed8e1d73b73d54fa4c27ba8bce8e --- M .gitignore M tests/Makefile.am A tests/stream/stream_test.c A tests/stream/stream_test.ok M tests/testsuite.at 5 files changed, 305 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/37/12837/3 -- To view, visit https://gerrit.osmocom.org/12837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I336f79970982ed8e1d73b73d54fa4c27ba8bce8e Gerrit-Change-Number: 12837 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:50:45 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 5 Feb 2019 15:50:45 +0000 Subject: Change in libosmo-netif[master]: Stream client: update logging In-Reply-To: References: Message-ID: Hello daniel, osmith, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12836 to look at the new patch set (#3). Change subject: Stream client: update logging ...................................................................... Stream client: update logging Introduce logging macro wrapper to properly log current client state and function to aid in debugging. Change-Id: Ie22a80dcec95998cce0b25053fdf74f23eab6e53 --- M src/stream.c 1 file changed, 25 insertions(+), 16 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/36/12836/3 -- To view, visit https://gerrit.osmocom.org/12836 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ie22a80dcec95998cce0b25053fdf74f23eab6e53 Gerrit-Change-Number: 12836 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:55:24 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 5 Feb 2019 15:55:24 +0000 Subject: Change in libosmo-netif[master]: Add stream client/server test In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12837 ) Change subject: Add stream client/server test ...................................................................... Patch Set 3: Code-Review-1 (3 comments) https://gerrit.osmocom.org/#/c/12837/2/tests/stream/stream_test.c File tests/stream/stream_test.c: https://gerrit.osmocom.org/#/c/12837/2/tests/stream/stream_test.c at 15 PS2, Line 15: #include Is errno.h used? https://gerrit.osmocom.org/#/c/12837/2/tests/stream/stream_test.c at 175 PS2, Line 175: Should this be 127.0.0.1? If not, please explain. https://gerrit.osmocom.org/#/c/12837/2/tests/stream/stream_test.ok File tests/stream/stream_test.ok: https://gerrit.osmocom.org/#/c/12837/2/tests/stream/stream_test.ok at 54 PS2, Line 54: Test step 3 [client OK, server NA] The step output is a bit weird, because it is counting steps down and then stops at 3. How about the classic step 1, 2, 3, ...? Or what's the advantage of having it implemented like it is now? -- To view, visit https://gerrit.osmocom.org/12837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I336f79970982ed8e1d73b73d54fa4c27ba8bce8e Gerrit-Change-Number: 12837 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 05 Feb 2019 15:55:24 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:56:25 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 5 Feb 2019 15:56:25 +0000 Subject: Change in osmo-msc[master]: VLR tests: use msgb_eq_data_print() for comparison In-Reply-To: References: Message-ID: Hello Stefan Sperling, Neels Hofmeyr, Harald Welte, osmith, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12571 to look at the new patch set (#3). Change subject: VLR tests: use msgb_eq_data_print() for comparison ...................................................................... VLR tests: use msgb_eq_data_print() for comparison This simplifies tests refactoring by showing exact byte where mismatch happened. It also makes code more readable. No changes in expected test output are necessary because the additional logging will be triggered iff the test fails so the result will be visible only during debugging of unit test issues. Change-Id: If9771c973f2bc55580f4c146bdbeeb1609d56786 --- M tests/msc_vlr/msc_vlr_tests.c 1 file changed, 12 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/71/12571/3 -- To view, visit https://gerrit.osmocom.org/12571 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: If9771c973f2bc55580f4c146bdbeeb1609d56786 Gerrit-Change-Number: 12571 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Stefan Sperling Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:56:58 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 5 Feb 2019 15:56:58 +0000 Subject: Change in libosmo-netif[master]: Stream client: update logging In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12836 ) Change subject: Stream client: update logging ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12836 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie22a80dcec95998cce0b25053fdf74f23eab6e53 Gerrit-Change-Number: 12836 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-CC: Harald Welte Gerrit-Comment-Date: Tue, 05 Feb 2019 15:56:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:59:01 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Feb 2019 15:59:01 +0000 Subject: Change in osmo-ci[master]: jobs/osmo-bts: Build osmo-bts-oc2g as well Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/12838 Change subject: jobs/osmo-bts: Build osmo-bts-oc2g as well ...................................................................... jobs/osmo-bts: Build osmo-bts-oc2g as well Build osmo-bts with support for oc2g as well. Uses origin/nrw/oc2g as firmware. Fixes: OS#3745 Change-Id: Iaaeb44b949cf6403601f069800c381fe5eae2f6e --- M jobs/master-builds.yml 1 file changed, 4 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/38/12838/1 diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index 52e3ca7..c908ed9 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -187,9 +187,9 @@ - osmo-bts: a1_name: FIRMWARE_VERSION - a1: !!python/tuple [master, femtobts_v2.7, superfemto_v2.4, superfemto_v3.0.1pre, superfemto_v3.1, superfemto_v5.1, v2017.01, origin/nrw/litecell15] + a1: !!python/tuple [master, femtobts_v2.7, superfemto_v2.4, superfemto_v3.0.1pre, superfemto_v3.1, superfemto_v5.1, v2017.01, origin/nrw/litecell15, origin/nrw/oc2g] a2_name: BTS_MODEL - a2: !!python/tuple [sysmo, oct, trx, oct+trx, lc15] + a2: !!python/tuple [sysmo, oct, trx, oct+trx, lc15, oc2g] a3_name: WITH_MANUALS a3: !!python/tuple ["1", "0"] combination_filter: > @@ -200,7 +200,8 @@ (FIRMWARE_VERSION == "superfemto_v3.1" && BTS_MODEL == "sysmo" && WITH_MANUALS == "0") || (FIRMWARE_VERSION == "superfemto_v5.1" && BTS_MODEL == "sysmo" && WITH_MANUALS == "0") || (FIRMWARE_VERSION == "v2017.01" && BTS_MODEL == "lc15" && WITH_MANUALS == "0") || - (FIRMWARE_VERSION == "origin/nrw/litecell15" && BTS_MODEL == "lc15" && WITH_MANUALS == "0") + (FIRMWARE_VERSION == "origin/nrw/litecell15" && BTS_MODEL == "lc15" && WITH_MANUALS == "0") || + (FIRMWARE_VERSION == "origin/nrw/oc2g" && BTS_MODEL == "oc2g" && WITH_MANUALS == "0") cmd: 'PUBLISH=1 ./contrib/jenkins_bts_model.sh "$BTS_MODEL"' - osmo-ggsn: -- To view, visit https://gerrit.osmocom.org/12838 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iaaeb44b949cf6403601f069800c381fe5eae2f6e Gerrit-Change-Number: 12838 Gerrit-PatchSet: 1 Gerrit-Owner: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 15:59:39 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 5 Feb 2019 15:59:39 +0000 Subject: Change in libosmo-netif[master]: Add stream client/server test In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12837 ) Change subject: Add stream client/server test ...................................................................... Patch Set 3: (2 comments) https://gerrit.osmocom.org/#/c/12837/2/tests/stream/stream_test.c File tests/stream/stream_test.c: https://gerrit.osmocom.org/#/c/12837/2/tests/stream/stream_test.c at 15 PS2, Line 15: #include > Is errno. [?] Yes. See negative error returns below for example. https://gerrit.osmocom.org/#/c/12837/2/tests/stream/stream_test.c at 175 PS2, Line 175: > Should this be 127.0.0.1? If not, please explain. Pretty much any localhost (127.0.0.1/8) address will do so it doesn't matter if it's .1 or .11 or .111 as long as it's the same for server and client. -- To view, visit https://gerrit.osmocom.org/12837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I336f79970982ed8e1d73b73d54fa4c27ba8bce8e Gerrit-Change-Number: 12837 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 05 Feb 2019 15:59:39 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:02:39 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 5 Feb 2019 16:02:39 +0000 Subject: Change in libosmo-abis[master]: Log peer's port in accept callback In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12654 ) Change subject: Log peer's port in accept callback ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12654 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I186974dae1819af8c92f9ea9eeb966ec7c9c9f55 Gerrit-Change-Number: 12654 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith Gerrit-CC: Harald Welte Gerrit-Comment-Date: Tue, 05 Feb 2019 16:02:39 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:02:39 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 5 Feb 2019 16:02:39 +0000 Subject: Change in libosmo-netif[master]: Add stream client/server test In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12837 ) Change subject: Add stream client/server test ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/#/c/12837/2/tests/stream/stream_test.ok File tests/stream/stream_test.ok: https://gerrit.osmocom.org/#/c/12837/2/tests/stream/stream_test.ok at 54 PS2, Line 54: Test step 3 [client OK, server NA] > The step output is a bit weird, because it is counting steps down and then stops at 3. [?] Counting down to 0 guarantees that the test will terminate in no longer than 'steps' iterations regardless of potential issues with callbacks or other functions. Stopping at 3 (pretty arbitrary number actually) ensures that that test terminated as expected vs via safeguard above. -- To view, visit https://gerrit.osmocom.org/12837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I336f79970982ed8e1d73b73d54fa4c27ba8bce8e Gerrit-Change-Number: 12837 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 05 Feb 2019 16:02:39 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:03:21 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 5 Feb 2019 16:03:21 +0000 Subject: Change in libosmo-abis[master]: Log peer's port in accept callback In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12654 ) Change subject: Log peer's port in accept callback ...................................................................... Log peer's port in accept callback * log port from which we accept() the connection in addition to address * use macro helper for logging Change-Id: I186974dae1819af8c92f9ea9eeb966ec7c9c9f55 --- M src/input/ipa.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve osmith: Looks good to me, approved diff --git a/src/input/ipa.c b/src/input/ipa.c index 9853ffa..e41ec42 100644 --- a/src/input/ipa.c +++ b/src/input/ipa.c @@ -266,8 +266,8 @@ link->addr = talloc_strdup(link, ipbuf); } - LOGP(DLINP, LOGL_NOTICE, "accept()ed new link from %s to port %u\n", - inet_ntoa(sa.sin_addr), link->port); + LOGIPA(link, LOGL_NOTICE, "accept()ed new link from %s:%u\n", + inet_ntoa(sa.sin_addr), ntohs(sa.sin_port)); ret = link->accept_cb(link, fd); if (ret < 0) { -- To view, visit https://gerrit.osmocom.org/12654 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-abis Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I186974dae1819af8c92f9ea9eeb966ec7c9c9f55 Gerrit-Change-Number: 12654 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:03:47 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Feb 2019 16:03:47 +0000 Subject: Change in osmo-ci[master]: jobs/osmo-bts: Build osmo-bts-oc2g as well In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12838 ) Change subject: jobs/osmo-bts: Build osmo-bts-oc2g as well ...................................................................... Patch Set 1: Verified+1 Build runs through on jenkins -- To view, visit https://gerrit.osmocom.org/12838 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iaaeb44b949cf6403601f069800c381fe5eae2f6e Gerrit-Change-Number: 12838 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: daniel Gerrit-Comment-Date: Tue, 05 Feb 2019 16:03:47 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:03:59 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 5 Feb 2019 16:03:59 +0000 Subject: Change in libosmo-netif[master]: Stream client: update logging In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12836 ) Change subject: Stream client: update logging ...................................................................... Patch Set 3: (2 comments) https://gerrit.osmocom.org/#/c/12836/1/src/stream.c File src/stream.c: https://gerrit.osmocom.org/#/c/12836/1/src/stream.c at 52 PS1, Line 52: > it's customary to put (cli) in such macros, as you don't know how exactly the 'cli' will be specifie [?] Done https://gerrit.osmocom.org/#/c/12836/1/src/stream.c at 136 PS1, Line 136: > static? Done -- To view, visit https://gerrit.osmocom.org/12836 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie22a80dcec95998cce0b25053fdf74f23eab6e53 Gerrit-Change-Number: 12836 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-CC: Harald Welte Gerrit-Comment-Date: Tue, 05 Feb 2019 16:03:59 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:07:45 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 5 Feb 2019 16:07:45 +0000 Subject: Change in libosmo-netif[master]: Add stream client/server test In-Reply-To: References: Message-ID: Hello daniel, Harald Welte, osmith, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12837 to look at the new patch set (#4). Change subject: Add stream client/server test ...................................................................... Add stream client/server test Previously stream client and server code were only used in examples which means regressions could be easily introduced unnoticed until they trigger bugs in external code which relies on osmo_stream_*() Fix this by adding basic client-server interaction test with single reconnection iteration. Change-Id: I336f79970982ed8e1d73b73d54fa4c27ba8bce8e --- M .gitignore M tests/Makefile.am A tests/stream/stream_test.c A tests/stream/stream_test.ok M tests/testsuite.at 5 files changed, 279 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/37/12837/4 -- To view, visit https://gerrit.osmocom.org/12837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I336f79970982ed8e1d73b73d54fa4c27ba8bce8e Gerrit-Change-Number: 12837 Gerrit-PatchSet: 4 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:07:54 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 5 Feb 2019 16:07:54 +0000 Subject: Change in libosmo-netif[master]: Add stream client/server test In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12837 ) Change subject: Add stream client/server test ...................................................................... Patch Set 3: Code-Review+1 I would still have made the test count upwards, and adjust the safeguard and abort code accordingly, but it isn't really important. So fine with me. Thanks for the explanations! -- To view, visit https://gerrit.osmocom.org/12837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I336f79970982ed8e1d73b73d54fa4c27ba8bce8e Gerrit-Change-Number: 12837 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 05 Feb 2019 16:07:54 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:09:39 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Feb 2019 16:09:39 +0000 Subject: Change in python/osmo-python-tests[master]: osmo-trap2cgi: Fix script installation and dependencies In-Reply-To: References: Message-ID: daniel has submitted this change and it was merged. ( https://gerrit.osmocom.org/12828 ) Change subject: osmo-trap2cgi: Fix script installation and dependencies ...................................................................... osmo-trap2cgi: Fix script installation and dependencies * Install systemd file with debian * Depend on python3-aiohttp in python3-osmopy-utils as it is required for osmo-trap2cgi Related: SYS#4399 Sponsored-by: On-Waves ehf Change-Id: I6add5f37b63dd5fcfdefe0459b539e0050d03897 --- M debian/control A debian/python3-osmopy-utils.osmo-trap2cgi.service 2 files changed, 2 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, but someone else must approve Max: Looks good to me, approved diff --git a/debian/control b/debian/control index 8bea167..52b614c 100644 --- a/debian/control +++ b/debian/control @@ -31,7 +31,7 @@ Package: python3-osmopy-utils Architecture: all -Depends: ${python3:Depends}, ${misc:Depends}, python3-osmopy-libs, python3-twisted, python3-treq +Depends: ${python3:Depends}, ${misc:Depends}, python3-osmopy-libs, python3-twisted, python3-treq, python3-aiohttp Description: Python code (not only) for testing of Osmocom programs . This package contains the Python 3 version of osmopy utils. diff --git a/debian/python3-osmopy-utils.osmo-trap2cgi.service b/debian/python3-osmopy-utils.osmo-trap2cgi.service new file mode 120000 index 0000000..f1cd169 --- /dev/null +++ b/debian/python3-osmopy-utils.osmo-trap2cgi.service @@ -0,0 +1 @@ +../contrib/systemd/osmo-trap2cgi.service \ No newline at end of file -- To view, visit https://gerrit.osmocom.org/12828 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: python/osmo-python-tests Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I6add5f37b63dd5fcfdefe0459b539e0050d03897 Gerrit-Change-Number: 12828 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:09:44 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 5 Feb 2019 16:09:44 +0000 Subject: Change in libosmo-netif[master]: Add stream client/server test In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12837 ) Change subject: Add stream client/server test ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I336f79970982ed8e1d73b73d54fa4c27ba8bce8e Gerrit-Change-Number: 12837 Gerrit-PatchSet: 4 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 05 Feb 2019 16:09:44 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:14:24 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 5 Feb 2019 16:14:24 +0000 Subject: Change in osmo-ci[master]: jobs/osmo-bts: Build osmo-bts-oc2g as well In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12838 ) Change subject: jobs/osmo-bts: Build osmo-bts-oc2g as well ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12838/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/12838/1//COMMIT_MSG at 7 PS1, Line 7: jobs/osmo-bts: Build osmo-bts-oc2g as well jobs/master-builds.yml? -- To view, visit https://gerrit.osmocom.org/12838 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iaaeb44b949cf6403601f069800c381fe5eae2f6e Gerrit-Change-Number: 12838 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 05 Feb 2019 16:14:24 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:20:31 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 16:20:31 +0000 Subject: Change in osmo-ci[master]: jobs/osmo-bts: Build osmo-bts-oc2g as well In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12838 ) Change subject: jobs/osmo-bts: Build osmo-bts-oc2g as well ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12838 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iaaeb44b949cf6403601f069800c381fe5eae2f6e Gerrit-Change-Number: 12838 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 05 Feb 2019 16:20:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:21:24 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 16:21:24 +0000 Subject: Change in libosmo-netif[master]: Stream client: update logging In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12836 ) Change subject: Stream client: update logging ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12836 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie22a80dcec95998cce0b25053fdf74f23eab6e53 Gerrit-Change-Number: 12836 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 05 Feb 2019 16:21:24 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:21:26 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 16:21:26 +0000 Subject: Change in libosmo-netif[master]: Stream client: update logging In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12836 ) Change subject: Stream client: update logging ...................................................................... Stream client: update logging Introduce logging macro wrapper to properly log current client state and function to aid in debugging. Change-Id: Ie22a80dcec95998cce0b25053fdf74f23eab6e53 --- M src/stream.c 1 file changed, 25 insertions(+), 16 deletions(-) Approvals: Harald Welte: Looks good to me, approved osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/stream.c b/src/stream.c index dbbaa9c..f1d87d4 100644 --- a/src/stream.c +++ b/src/stream.c @@ -49,6 +49,9 @@ #include #endif +#define LOGSCLI(cli, level, fmt, args...) \ + LOGP(DLINP, level, "[%s] %s(): " fmt, get_value_string(stream_cli_state_names, (cli)->state), __func__, ## args) + /*! \addtogroup stream Osmocom Stream Socket * @{ * @@ -131,6 +134,13 @@ STREAM_CLI_STATE_MAX }; +static const struct value_string stream_cli_state_names[] = { + { STREAM_CLI_STATE_NONE, " NONE" }, + { STREAM_CLI_STATE_CONNECTING, "CONNECTING" }, + { STREAM_CLI_STATE_CONNECTED, " CONNECTED" }, + { 0, NULL } +}; + #define OSMO_STREAM_CLI_F_RECONF (1 << 0) #define OSMO_STREAM_CLI_F_NODELAY (1 << 1) @@ -160,12 +170,12 @@ void osmo_stream_cli_reconnect(struct osmo_stream_cli *cli) { if (cli->reconnect_timeout < 0) { - LOGP(DLINP, LOGL_DEBUG, "not reconnecting, disabled.\n"); + LOGSCLI(cli, LOGL_DEBUG, "not reconnecting, disabled.\n"); return; } - LOGP(DLINP, LOGL_DEBUG, "connection closed\n"); + LOGSCLI(cli, LOGL_DEBUG, "connection closed\n"); osmo_stream_cli_close(cli); - LOGP(DLINP, LOGL_DEBUG, "retrying in %d seconds...\n", + LOGSCLI(cli, LOGL_DEBUG, "retrying in %d seconds...\n", cli->reconnect_timeout); osmo_timer_schedule(&cli->timer, cli->reconnect_timeout, 0); cli->state = STREAM_CLI_STATE_CONNECTING; @@ -186,7 +196,7 @@ static void osmo_stream_cli_read(struct osmo_stream_cli *cli) { - LOGP(DLINP, LOGL_DEBUG, "message received\n"); + LOGSCLI(cli, LOGL_DEBUG, "message received\n"); if (cli->read_cb) cli->read_cb(cli); @@ -201,7 +211,7 @@ struct llist_head *lh; int ret; - LOGP(DLINP, LOGL_DEBUG, "sending data\n"); + LOGSCLI(cli, LOGL_DEBUG, "sending data\n"); if (llist_empty(&cli->tx_queue)) { cli->ofd.when &= ~BSC_FD_WRITE; @@ -212,7 +222,7 @@ msg = llist_entry(lh, struct msgb, list); if (cli->state == STREAM_CLI_STATE_CONNECTING) { - LOGP(DLINP, LOGL_ERROR, "not connected, dropping data!\n"); + LOGSCLI(cli, LOGL_ERROR, "not connected, dropping data!\n"); return 0; } @@ -235,7 +245,7 @@ if (errno == EPIPE || errno == ENOTCONN) { osmo_stream_cli_reconnect(cli); } - LOGP(DLINP, LOGL_ERROR, "error to send\n"); + LOGSCLI(cli, LOGL_ERROR, "error to send\n"); } msgb_free(msg); return 0; @@ -255,7 +265,7 @@ return 0; } ofd->when &= ~BSC_FD_WRITE; - LOGP(DLINP, LOGL_DEBUG, "connection done.\n"); + LOGSCLI(cli, LOGL_DEBUG, "connection done.\n"); cli->state = STREAM_CLI_STATE_CONNECTED; if (cli->proto == IPPROTO_SCTP) { #ifdef SO_NOSIGPIPE @@ -263,7 +273,7 @@ ret = setsockopt(ofd->fd, SOL_SOCKET, SO_NOSIGPIPE, (void*)&val, sizeof(val)); if (ret < 0) - LOGP(DLINP, LOGL_DEBUG, "Failed setting SO_NOSIGPIPE: %s\n", strerror(errno)); + LOGSCLI(cli, LOGL_DEBUG, "Failed setting SO_NOSIGPIPE: %s\n", strerror(errno)); #endif sctp_sock_activate_events(ofd->fd); } @@ -272,11 +282,11 @@ break; case STREAM_CLI_STATE_CONNECTED: if (what & BSC_FD_READ) { - LOGP(DLINP, LOGL_DEBUG, "connected read\n"); + LOGSCLI(cli, LOGL_DEBUG, "connected read\n"); osmo_stream_cli_read(cli); } if (what & BSC_FD_WRITE) { - LOGP(DLINP, LOGL_DEBUG, "connected write\n"); + LOGSCLI(cli, LOGL_DEBUG, "connected write\n"); osmo_stream_cli_write(cli); } break; @@ -503,7 +513,7 @@ { struct osmo_stream_cli *cli = data; - LOGP(DLINP, LOGL_DEBUG, "reconnecting.\n"); + LOGSCLI(cli, LOGL_DEBUG, "reconnecting.\n"); switch(cli->state) { case STREAM_CLI_STATE_CONNECTING: @@ -535,18 +545,17 @@ ret = recv(cli->ofd.fd, msg->data, msg->data_len, 0); if (ret < 0) { if (errno == EPIPE || errno == ECONNRESET) { - LOGP(DLINP, LOGL_ERROR, - "lost connection with srv\n"); + LOGSCLI(cli, LOGL_ERROR, "lost connection with srv\n"); } osmo_stream_cli_reconnect(cli); return ret; } else if (ret == 0) { - LOGP(DLINP, LOGL_ERROR, "connection closed with srv\n"); + LOGSCLI(cli, LOGL_ERROR, "connection closed with srv\n"); osmo_stream_cli_reconnect(cli); return ret; } msgb_put(msg, ret); - LOGP(DLINP, LOGL_DEBUG, "received %d bytes from srv\n", ret); + LOGSCLI(cli, LOGL_DEBUG, "received %d bytes from srv\n", ret); return ret; } -- To view, visit https://gerrit.osmocom.org/12836 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie22a80dcec95998cce0b25053fdf74f23eab6e53 Gerrit-Change-Number: 12836 Gerrit-PatchSet: 4 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:22:22 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 16:22:22 +0000 Subject: Change in osmo-msc[master]: VLR tests: use msgb_eq_data_print() for comparison In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12571 ) Change subject: VLR tests: use msgb_eq_data_print() for comparison ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12571 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If9771c973f2bc55580f4c146bdbeeb1609d56786 Gerrit-Change-Number: 12571 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Stefan Sperling Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 05 Feb 2019 16:22:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:22:44 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 16:22:44 +0000 Subject: Change in libosmo-netif[master]: Add socket name functions to stream client/server In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12827 ) Change subject: Add socket name functions to stream client/server ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12827 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If9a8e211da85956781479862a63c4fc6e53ed6be Gerrit-Change-Number: 12827 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Tue, 05 Feb 2019 16:22:44 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:23:22 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Tue, 5 Feb 2019 16:23:22 +0000 Subject: Change in osmo-ci[master]: jobs/osmo-bts: Build osmo-bts-oc2g as well In-Reply-To: References: Message-ID: daniel has submitted this change and it was merged. ( https://gerrit.osmocom.org/12838 ) Change subject: jobs/osmo-bts: Build osmo-bts-oc2g as well ...................................................................... jobs/osmo-bts: Build osmo-bts-oc2g as well Build osmo-bts with support for oc2g as well. Uses origin/nrw/oc2g as firmware. Fixes: OS#3745 Change-Id: Iaaeb44b949cf6403601f069800c381fe5eae2f6e --- M jobs/master-builds.yml 1 file changed, 4 insertions(+), 3 deletions(-) Approvals: daniel: Verified Harald Welte: Looks good to me, approved diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index 52e3ca7..c908ed9 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -187,9 +187,9 @@ - osmo-bts: a1_name: FIRMWARE_VERSION - a1: !!python/tuple [master, femtobts_v2.7, superfemto_v2.4, superfemto_v3.0.1pre, superfemto_v3.1, superfemto_v5.1, v2017.01, origin/nrw/litecell15] + a1: !!python/tuple [master, femtobts_v2.7, superfemto_v2.4, superfemto_v3.0.1pre, superfemto_v3.1, superfemto_v5.1, v2017.01, origin/nrw/litecell15, origin/nrw/oc2g] a2_name: BTS_MODEL - a2: !!python/tuple [sysmo, oct, trx, oct+trx, lc15] + a2: !!python/tuple [sysmo, oct, trx, oct+trx, lc15, oc2g] a3_name: WITH_MANUALS a3: !!python/tuple ["1", "0"] combination_filter: > @@ -200,7 +200,8 @@ (FIRMWARE_VERSION == "superfemto_v3.1" && BTS_MODEL == "sysmo" && WITH_MANUALS == "0") || (FIRMWARE_VERSION == "superfemto_v5.1" && BTS_MODEL == "sysmo" && WITH_MANUALS == "0") || (FIRMWARE_VERSION == "v2017.01" && BTS_MODEL == "lc15" && WITH_MANUALS == "0") || - (FIRMWARE_VERSION == "origin/nrw/litecell15" && BTS_MODEL == "lc15" && WITH_MANUALS == "0") + (FIRMWARE_VERSION == "origin/nrw/litecell15" && BTS_MODEL == "lc15" && WITH_MANUALS == "0") || + (FIRMWARE_VERSION == "origin/nrw/oc2g" && BTS_MODEL == "oc2g" && WITH_MANUALS == "0") cmd: 'PUBLISH=1 ./contrib/jenkins_bts_model.sh "$BTS_MODEL"' - osmo-ggsn: -- To view, visit https://gerrit.osmocom.org/12838 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iaaeb44b949cf6403601f069800c381fe5eae2f6e Gerrit-Change-Number: 12838 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:24:29 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 5 Feb 2019 16:24:29 +0000 Subject: Change in osmo-msc[master]: Move enum definition to header file In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12598 ) Change subject: Move enum definition to header file ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/#/c/12598/1/src/libmsc/smpp_smsc.h File src/libmsc/smpp_smsc.h: https://gerrit.osmocom.org/#/c/12598/1/src/libmsc/smpp_smsc.h at 22 PS1, Line 22: enum esme_bind { > I'd sort of like the osmo_* prefix here, but then it's missing in esme_read_state as well... [?] we never put osmo_ prefixes into any symbols/type-names unless they're part of an installed library. libmsc.a is never installed and as such an internal part of osmo-msc. Therefore an osmo* prefix would actually be wrong. -- To view, visit https://gerrit.osmocom.org/12598 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I71b2512894ec2a71a25f35f07ff4308035d951f9 Gerrit-Change-Number: 12598 Gerrit-PatchSet: 1 Gerrit-Owner: Keith Whyte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: daniel Gerrit-Comment-Date: Tue, 05 Feb 2019 16:24:29 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:25:03 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 5 Feb 2019 16:25:03 +0000 Subject: Change in osmo-msc[master]: VLR tests: use msgb_eq_data_print() for comparison In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12571 ) Change subject: VLR tests: use msgb_eq_data_print() for comparison ...................................................................... VLR tests: use msgb_eq_data_print() for comparison This simplifies tests refactoring by showing exact byte where mismatch happened. It also makes code more readable. No changes in expected test output are necessary because the additional logging will be triggered iff the test fails so the result will be visible only during debugging of unit test issues. Change-Id: If9771c973f2bc55580f4c146bdbeeb1609d56786 --- M tests/msc_vlr/msc_vlr_tests.c 1 file changed, 12 insertions(+), 11 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/tests/msc_vlr/msc_vlr_tests.c b/tests/msc_vlr/msc_vlr_tests.c index 296f055..eb6df09 100644 --- a/tests/msc_vlr/msc_vlr_tests.c +++ b/tests/msc_vlr/msc_vlr_tests.c @@ -570,15 +570,21 @@ int __real_osmo_gsup_client_send(struct osmo_gsup_client *gsupc, struct msgb *msg); int __wrap_osmo_gsup_client_send(struct osmo_gsup_client *gsupc, struct msgb *msg) { - const char *is = osmo_hexdump_nospc(msg->data, msg->len); + uint8_t buf[512]; + int len; + fprintf(stderr, "GSUP --> HLR: %s: %s\n", - osmo_gsup_message_type_name(msg->data[0]), is); + osmo_gsup_message_type_name(msg->data[0]), osmo_hexdump_nospc(msg->data, msg->len)); OSMO_ASSERT(gsup_tx_expected); - if (strcmp(gsup_tx_expected, is)) { - fprintf(stderr, "Mismatch! Expected:\n%s\n", gsup_tx_expected); + OSMO_ASSERT(strlen(gsup_tx_expected) <= (sizeof(buf) * 2)); + + len = osmo_hexparse(gsup_tx_expected, buf, sizeof(buf)); + if (len < 1) abort(); - } + + if (!msgb_eq_data_print(msg, buf, len)) + abort(); talloc_free(msg); gsup_tx_confirmed = true; @@ -596,13 +602,8 @@ /* Mask the sequence number out before comparing */ msg->data[1] &= 0x3f; - if (msg->len != dtap_tx_expected->len - || memcmp(msg->data, dtap_tx_expected->data, msg->len)) { - fprintf(stderr, "Mismatch! Expected:\n%s\n", - osmo_hexdump_nospc(dtap_tx_expected->data, - dtap_tx_expected->len)); + if (!msgb_eq_data_print(msg, dtap_tx_expected->data, dtap_tx_expected->len)) abort(); - } btw("DTAP matches expected message"); -- To view, visit https://gerrit.osmocom.org/12571 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If9771c973f2bc55580f4c146bdbeeb1609d56786 Gerrit-Change-Number: 12571 Gerrit-PatchSet: 4 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Stefan Sperling Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:25:20 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 5 Feb 2019 16:25:20 +0000 Subject: Change in libosmo-netif[master]: Add socket name functions to stream client/server In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12827 ) Change subject: Add socket name functions to stream client/server ...................................................................... Add socket name functions to stream client/server Add functions to get the description of a server link or client connection which examine data on corresponding socket. Those functions use static buffers and intended for single use in log/printf statements as illustarted by corresponding example changes. Change-Id: If9a8e211da85956781479862a63c4fc6e53ed6be --- M examples/stream-client.c M examples/stream-server.c M include/osmocom/netif/stream.h M src/stream.c 4 files changed, 35 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/examples/stream-client.c b/examples/stream-client.c index 6178dcd..e2fb901 100644 --- a/examples/stream-client.c +++ b/examples/stream-client.c @@ -39,7 +39,7 @@ static int connect_cb(struct osmo_stream_cli *conn) { - LOGP(DSTREAMTEST, LOGL_NOTICE, "connected\n"); + LOGP(DSTREAMTEST, LOGL_NOTICE, "connected: %s\n", osmo_stream_cli_get_sockname(conn)); return 0; } diff --git a/examples/stream-server.c b/examples/stream-server.c index b02eefe..c1086ec 100644 --- a/examples/stream-server.c +++ b/examples/stream-server.c @@ -171,7 +171,7 @@ kbd_ofd->cb = kbd_cb; osmo_fd_register(kbd_ofd); - LOGP(DSTREAMTEST, LOGL_NOTICE, "Entering main loop\n"); + LOGP(DSTREAMTEST, LOGL_NOTICE, "Entering main loop on %s\n", osmo_stream_srv_link_get_sockname(srv)); while(1) { osmo_select_main(0); diff --git a/include/osmocom/netif/stream.h b/include/osmocom/netif/stream.h index 969d42f..3044511 100644 --- a/include/osmocom/netif/stream.h +++ b/include/osmocom/netif/stream.h @@ -27,6 +27,7 @@ void osmo_stream_srv_link_set_accept_cb(struct osmo_stream_srv_link *link, int (*accept_cb)(struct osmo_stream_srv_link *link, int fd)); void osmo_stream_srv_link_set_data(struct osmo_stream_srv_link *link, void *data); void *osmo_stream_srv_link_get_data(struct osmo_stream_srv_link *link); +char *osmo_stream_srv_link_get_sockname(const struct osmo_stream_srv_link *link); struct osmo_fd *osmo_stream_srv_link_get_ofd(struct osmo_stream_srv_link *link); int osmo_stream_srv_link_open(struct osmo_stream_srv_link *link); @@ -60,6 +61,7 @@ void osmo_stream_cli_set_data(struct osmo_stream_cli *cli, void *data); void osmo_stream_cli_set_reconnect_timeout(struct osmo_stream_cli *cli, int timeout); void *osmo_stream_cli_get_data(struct osmo_stream_cli *cli); +char *osmo_stream_cli_get_sockname(const struct osmo_stream_cli *cli); struct osmo_fd *osmo_stream_cli_get_ofd(struct osmo_stream_cli *cli); void osmo_stream_cli_set_connect_cb(struct osmo_stream_cli *cli, int (*connect_cb)(struct osmo_stream_cli *cli)); void osmo_stream_cli_set_read_cb(struct osmo_stream_cli *cli, int (*read_cb)(struct osmo_stream_cli *cli)); diff --git a/src/stream.c b/src/stream.c index f1d87d4..7cc77c9 100644 --- a/src/stream.c +++ b/src/stream.c @@ -405,6 +405,18 @@ return cli->data; } +/*! \brief Get the stream client socket description. + * \param[in] cli Stream Client to examine + * \returns Socket description or NULL in case of error */ +char *osmo_stream_cli_get_sockname(const struct osmo_stream_cli *cli) +{ + static char buf[OSMO_SOCK_NAME_MAXLEN]; + + osmo_sock_get_name_buf(buf, OSMO_SOCK_NAME_MAXLEN, cli->ofd.fd); + + return buf; +} + /*! \brief Get Osmocom File Descriptor of the stream client socket * \param[in] cli Stream Client to modify * \returns Pointer to \ref osmo_fd */ @@ -711,6 +723,25 @@ return link->data; } +/*! \brief Get description of the stream server link e. g. 127.0.0.1:1234 + * \param[in] link Stream Server Link to examine + * \returns Link description or NULL in case of error */ +char *osmo_stream_srv_link_get_sockname(const struct osmo_stream_srv_link *link) +{ + static char buf[INET6_ADDRSTRLEN + 6]; + int rc = osmo_sock_get_local_ip(link->ofd.fd, buf, INET6_ADDRSTRLEN); + if (rc < 0) + return NULL; + + buf[strnlen(buf, INET6_ADDRSTRLEN + 6)] = ':'; + + rc = osmo_sock_get_local_ip_port(link->ofd.fd, buf + strnlen(buf, INET6_ADDRSTRLEN + 6), 6); + if (rc < 0) + return NULL; + + return buf; +} + /*! \brief Get Osmocom File Descriptor of the stream server link * \param[in] link Stream Server Link * \returns Pointer to \ref osmo_fd */ -- To view, visit https://gerrit.osmocom.org/12827 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If9a8e211da85956781479862a63c4fc6e53ed6be Gerrit-Change-Number: 12827 Gerrit-PatchSet: 4 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:25:31 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 5 Feb 2019 16:25:31 +0000 Subject: Change in libosmo-netif[master]: Add stream client/server test In-Reply-To: References: Message-ID: Hello daniel, Harald Welte, osmith, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12837 to look at the new patch set (#5). Change subject: Add stream client/server test ...................................................................... Add stream client/server test Previously stream client and server code were only used in examples which means regressions could be easily introduced unnoticed until they trigger bugs in external code which relies on osmo_stream_*() Fix this by adding basic client-server interaction test with single reconnection iteration. Change-Id: I336f79970982ed8e1d73b73d54fa4c27ba8bce8e --- M .gitignore M tests/Makefile.am A tests/stream/stream_test.c A tests/stream/stream_test.ok M tests/testsuite.at 5 files changed, 289 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/37/12837/5 -- To view, visit https://gerrit.osmocom.org/12837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I336f79970982ed8e1d73b73d54fa4c27ba8bce8e Gerrit-Change-Number: 12837 Gerrit-PatchSet: 5 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:26:21 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 5 Feb 2019 16:26:21 +0000 Subject: Change in libosmo-netif[master]: Stream client: fix disconnection logic In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12760 ) Change subject: Stream client: fix disconnection logic ...................................................................... Patch Set 4: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/12760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If41ed60bd625488c283d1e8a2b078e640f04c78e Gerrit-Change-Number: 12760 Gerrit-PatchSet: 4 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pablo Neira Ayuso Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 05 Feb 2019 16:26:21 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:31:16 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 5 Feb 2019 16:31:16 +0000 Subject: Change in osmo-mgw[master]: Inactive connection cleanup (disabled by default) In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12730 ) Change subject: Inactive connection cleanup (disabled by default) ...................................................................... Patch Set 5: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/12730/5/src/libosmo-mgcp/mgcp_conn.c File src/libosmo-mgcp/mgcp_conn.c: https://gerrit.osmocom.org/#/c/12730/5/src/libosmo-mgcp/mgcp_conn.c at 138 PS5, Line 138: long In 'mgcp.h' you're using 'unsigned int', so why it is 'long' here? Also, osmo_timer_schedule() is using 'int'. -- To view, visit https://gerrit.osmocom.org/12730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I18886052e090466f73829133c24f011806cc1fe0 Gerrit-Change-Number: 12730 Gerrit-PatchSet: 5 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 05 Feb 2019 16:31:16 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:43:39 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 5 Feb 2019 16:43:39 +0000 Subject: Change in libosmo-netif[master]: Stream client: fix disconnection logic In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12760 ) Change subject: Stream client: fix disconnection logic ...................................................................... Stream client: fix disconnection logic Previously closing the client did not alter its state, so we might end-up with a client without any file descriptors, but being in state STREAM_CLI_STATE_CONNECTED. Fix this inconsistency by setting appropriate state. Related issue is that reconnect function, which is always (at least in the library and examples) called when some problem with the connection is detected, closed the connection only after checking whether reconnection is enabled. This might result in another inconsistency fixed in this patch by moving the check below connection cleanup. While at it, also move connection close logging to appropriate place: it's confusing to see logs about connection being closed while in reality it wasn't even established. Change-Id: If41ed60bd625488c283d1e8a2b078e640f04c78e --- M src/stream.c 1 file changed, 8 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/stream.c b/src/stream.c index 7cc77c9..7b97d2a 100644 --- a/src/stream.c +++ b/src/stream.c @@ -169,12 +169,13 @@ * connection (if any) and schedule a re-connect timer */ void osmo_stream_cli_reconnect(struct osmo_stream_cli *cli) { + osmo_stream_cli_close(cli); + if (cli->reconnect_timeout < 0) { LOGSCLI(cli, LOGL_DEBUG, "not reconnecting, disabled.\n"); return; } - LOGSCLI(cli, LOGL_DEBUG, "connection closed\n"); - osmo_stream_cli_close(cli); + LOGSCLI(cli, LOGL_DEBUG, "retrying in %d seconds...\n", cli->reconnect_timeout); osmo_timer_schedule(&cli->timer, cli->reconnect_timeout, 0); @@ -192,6 +193,11 @@ osmo_fd_unregister(&cli->ofd); close(cli->ofd.fd); cli->ofd.fd = -1; + + if (cli->state == STREAM_CLI_STATE_CONNECTED) + LOGSCLI(cli, LOGL_DEBUG, "connection closed\n"); + + cli->state = STREAM_CLI_STATE_NONE; } static void osmo_stream_cli_read(struct osmo_stream_cli *cli) -- To view, visit https://gerrit.osmocom.org/12760 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If41ed60bd625488c283d1e8a2b078e640f04c78e Gerrit-Change-Number: 12760 Gerrit-PatchSet: 5 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pablo Neira Ayuso Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:50:26 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 5 Feb 2019 16:50:26 +0000 Subject: Change in osmo-mgw[master]: Inactive connection cleanup (disabled by default) In-Reply-To: References: Message-ID: Hello Vadim Yanitskiy, daniel, Max, Neels Hofmeyr, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12730 to look at the new patch set (#6). Change subject: Inactive connection cleanup (disabled by default) ...................................................................... Inactive connection cleanup (disabled by default) Add a watchdog timer to connections, and close these connections when the watchdog timer expires. Kick the watchdog whenever RTP messages or the relevant MGCP messages arrive. This feature is disabled by default, as it is incompatible with LCLS (connections in LCLS state appear to be inactive). Enable it with the new "conn-timeout" VTY setting. In general, this feature can be used to work around interoperability problems causing connections to stay open forever, and slowly exhausting all available ports. This happened for various reasons already. MDCX is the only relevant MGCP message: - CRCX creates the conn and timer - DLCX deletes the conn and timer - MDCX is the only remaining supported MGCP message that indicates a CI - Can't easily generically parse a CI for all MGCP messages, parsing is done in handle_modify_con(). Related: OS#3429 Change-Id: I18886052e090466f73829133c24f011806cc1fe0 --- M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_internal.h M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_vty.c M tests/mgcp/mgcp_test.c 7 files changed, 54 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/30/12730/6 -- To view, visit https://gerrit.osmocom.org/12730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I18886052e090466f73829133c24f011806cc1fe0 Gerrit-Change-Number: 12730 Gerrit-PatchSet: 6 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 16:51:44 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 5 Feb 2019 16:51:44 +0000 Subject: Change in osmo-mgw[master]: Inactive connection cleanup (disabled by default) In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12730 ) Change subject: Inactive connection cleanup (disabled by default) ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/#/c/12730/5/src/libosmo-mgcp/mgcp_conn.c File src/libosmo-mgcp/mgcp_conn.c: https://gerrit.osmocom.org/#/c/12730/5/src/libosmo-mgcp/mgcp_conn.c at 138 PS5, Line 138: long > In 'mgcp.h' you're using 'unsigned int', so why it is 'long' here? [?] Good point, changed it to use "int" everywhere to match osmo_timer_schedule(). -- To view, visit https://gerrit.osmocom.org/12730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I18886052e090466f73829133c24f011806cc1fe0 Gerrit-Change-Number: 12730 Gerrit-PatchSet: 5 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 05 Feb 2019 16:51:44 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 17:00:58 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 5 Feb 2019 17:00:58 +0000 Subject: Change in libosmo-netif[master]: Add stream client/server test In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12837 ) Change subject: Add stream client/server test ...................................................................... Patch Set 7: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/12837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I336f79970982ed8e1d73b73d54fa4c27ba8bce8e Gerrit-Change-Number: 12837 Gerrit-PatchSet: 7 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 05 Feb 2019 17:00:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 17:03:53 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 5 Feb 2019 17:03:53 +0000 Subject: Change in osmo-mgw[master]: Inactive connection cleanup (disabled by default) In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12730 ) Change subject: Inactive connection cleanup (disabled by default) ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I18886052e090466f73829133c24f011806cc1fe0 Gerrit-Change-Number: 12730 Gerrit-PatchSet: 6 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 05 Feb 2019 17:03:53 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 17:10:07 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 5 Feb 2019 17:10:07 +0000 Subject: Change in osmo-mgw[master]: Inactive connection cleanup (disabled by default) In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12730 ) Change subject: Inactive connection cleanup (disabled by default) ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I18886052e090466f73829133c24f011806cc1fe0 Gerrit-Change-Number: 12730 Gerrit-PatchSet: 6 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 05 Feb 2019 17:10:07 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 19:40:07 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 5 Feb 2019 19:40:07 +0000 Subject: Change in libosmocore[master]: gsm/gsm0480: introduce gsm0480_create_release_complete[_cause]() API Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/12839 Change subject: gsm/gsm0480: introduce gsm0480_create_release_complete[_cause]() API ...................................................................... gsm/gsm0480: introduce gsm0480_create_release_complete[_cause]() API In OsmoMSC, it's required to be able to specify a particular GSM 04.07 transaction ID for GSM 04.80 Release complete message instead of the hard-coded value, that is used gsm0480_create_ussd_release_complete(). Let's finally deprecate gsm0480_create_ussd_release_complete(), and introduce two new functions without USSD prefix, as this message is also used in other "structured" supplementary services: - gsm0480_create_release_complete, - gsm0480_create_release_complete_cause. The second one can be used to encode optional Cause IE (see 2.5.1). Change-Id: Ie3ac85fcef90a5e532334ba3482804d5305c88d7 --- M include/osmocom/gsm/gsm0480.h M src/gsm/gsm0480.c M src/gsm/libosmogsm.map 3 files changed, 65 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/39/12839/1 diff --git a/include/osmocom/gsm/gsm0480.h b/include/osmocom/gsm/gsm0480.h index 827464e..9d6d67d 100644 --- a/include/osmocom/gsm/gsm0480.h +++ b/include/osmocom/gsm/gsm0480.h @@ -117,7 +117,11 @@ struct msgb *gsm0480_create_unstructuredSS_Notify(int alertPattern, const char *text); struct msgb *gsm0480_create_notifySS(const char *text); struct msgb *gsm0480_create_ussd_notify(int level, const char *text); -struct msgb *gsm0480_create_ussd_release_complete(void); +struct msgb *gsm0480_create_ussd_release_complete(void) + OSMO_DEPRECATED("Use gsm0480_create_release_complete() instead."); +struct msgb *gsm0480_create_release_complete(uint8_t tid); +struct msgb *gsm0480_create_release_complete_cause(uint8_t tid, uint8_t cause_loc, + uint8_t cause_value); int gsm0480_wrap_invoke(struct msgb *msg, int op, int link_id); int gsm0480_wrap_facility(struct msgb *msg); diff --git a/src/gsm/gsm0480.c b/src/gsm/gsm0480.c index b5c9844..e9c148a 100644 --- a/src/gsm/gsm0480.c +++ b/src/gsm/gsm0480.c @@ -921,6 +921,7 @@ return msg; } +/*! Deprecated, use gsm0480_create_release_complete[_cause]() instead. */ struct msgb *gsm0480_create_ussd_release_complete(void) { struct msgb *msg; @@ -936,3 +937,59 @@ return msg; } + +/*! Create a GSM 04.80 Release complete (see 2.5) message, prefixed + * by GSM 04.08 L3 header with a given transaction ID. + * \param[in] tid GSM 04.07 transaction identifier (and TI flag) + * \return message buffer containing the Release complete message + */ +struct msgb *gsm0480_create_release_complete(uint8_t tid) +{ + struct msgb *msg; + + msg = gsm0480_msgb_alloc_name("TS 04.80 USSD REL COMPL"); + if (!msg) + return NULL; + + /* Push the L3 header */ + gsm48_push_l3hdr_tid(msg, GSM48_PDISC_NC_SS, + tid, GSM0480_MTYPE_RELEASE_COMPLETE); + + return msg; +} + +/*! Create a GSM 04.80 Release complete (see 2.5) message, prefixed + * by GSM 04.08 L3 header with a given transaction ID, containing + * additional Cause IE (see 2.5.1), encoded according to GSM 04.80, + * section 10.5.4.11 (without diagnostic info). + * \param[in] tid GSM 04.07 transaction identifier (and TI flag) + * \param[in] cause_loc cause location (see GSM 04.08, table 10.85) + * \param[in] cause_value cause value (see GSM 04.08, table 10.86) + * \return message buffer containing the Release complete message + */ +struct msgb *gsm0480_create_release_complete_cause(uint8_t tid, uint8_t cause_loc, + uint8_t cause_value) +{ + uint8_t *cause_ie; + struct msgb *msg; + + msg = gsm0480_create_release_complete(tid); + if (!msg) + return NULL; + + /* Encode cause IE (see GSM 04.08, section 10.5.4.11) + * with fixed length (2 bytes of TL, 2 bytes of payload). + * NOTE: we don't use gsm48_encode_cause() API because + * it wants gsm_mncc_cause struct from us. */ + cause_ie = msgb_put(msg, 2 + 2); + cause_ie[0] = GSM48_IE_CAUSE; + cause_ie[1] = 2; + + /* Coding standard defined for the GSM PLMNs, + * Location and cause: as given by caller, + * No extension. */ + cause_ie[2] = (1 << 7) | (0x03 << 5) | (cause_loc & 0x0f); + cause_ie[3] = (1 << 7) | cause_value; + + return msg; +} diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 602c7a6..fcf977d 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -89,6 +89,9 @@ gsm0480_create_ussd_resp; gsm0480_create_ussd_notify; gsm0480_create_ussd_release_complete; +gsm0480_create_release_complete; +gsm0480_create_release_complete_cause; + gsm0480_extract_ie_by_tag; gsm0480_parse_facility_ie; gsm0480_decode_ussd_request; -- To view, visit https://gerrit.osmocom.org/12839 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie3ac85fcef90a5e532334ba3482804d5305c88d7 Gerrit-Change-Number: 12839 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 19:41:40 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 5 Feb 2019 19:41:40 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_80.c: HACK: reimplement GSM 04.08 RELEASE COMPLETE In-Reply-To: References: Message-ID: Vadim Yanitskiy has abandoned this change. ( https://gerrit.osmocom.org/11991 ) Change subject: libmsc/gsm_04_80.c: HACK: reimplement GSM 04.08 RELEASE COMPLETE ...................................................................... Abandoned See https://gerrit.osmocom.org/#/c/libosmocore/+/12839/. -- To view, visit https://gerrit.osmocom.org/11991 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: abandon Gerrit-Change-Id: I89727354385b40e18732e8fd1d6c93f4463ade37 Gerrit-Change-Number: 11991 Gerrit-PatchSet: 4 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Stefan Sperling Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Tue Feb 5 19:58:47 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 19:58:47 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5c59eb0da50f_7f84b26600870234@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Debian_9.0/i586 Package network:osmocom:nightly/libosmocore failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 274s] - --> N (configured as T-2147483648 18446744073709551615 s) rc=0; state=N T=-2147483648, 2147483647.000000 s remaining [ 274s] + --> N (configured as T-2147483648 4294967295 s) rc=0; state=N T=-2147483648, 2147483647.000000 s remaining [ 274s] - test T=0: [ 274s] --> O (no timer configured for this state) [ 274s] - test no timer: [ 274s] --> X (no timer configured for this state) [ 274s] - test undefined timer, using default_val arg of osmo_tdef_fsm_inst_state_chg(), here passed as 999: [ 274s] - --> Y (configured as T666 18446744073709551615 -) rc=0; state=Y T=666, 999.000000 s remaining [ 274s] + --> Y (configured as T666 4294967295 -) rc=0; state=Y T=666, 999.000000 s remaining [ 274s] - test disallowed transition: [ 274s] --> Z (no timer configured for this state) [ 274s] --> B (configured as T2 100 ms) rc=0; state=B T=2, 1.000000 s remaining [ 274s] 52. testsuite.at:329: 52. tdef (testsuite.at:329): FAILED (testsuite.at:332) [ 274s] debian/rules:26: recipe for target 'override_dh_auto_test' failed [ 274s] make[1]: *** [override_dh_auto_test] Error 1 [ 274s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 274s] debian/rules:15: recipe for target 'build' failed [ 274s] make: *** [build] Error 2 [ 274s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 274s] [ 274s] lamb16 failed "build libosmocore_1.0.1.31.74c4.dsc" at Tue Feb 5 19:58:34 UTC 2019. [ 274s] [ 274s] ### VM INTERACTION START ### [ 277s] [ 265.675045] sysrq: SysRq : Power Off [ 277s] [ 265.680869] reboot: Power down [ 278s] ### VM INTERACTION END ### [ 278s] [ 278s] lamb16 failed "build libosmocore_1.0.1.31.74c4.dsc" at Tue Feb 5 19:58:38 UTC 2019. [ 278s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 19:59:39 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 19:59:39 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in xUbuntu_17.10/i586 In-Reply-To: References: Message-ID: <5c59eb4a98494_7f84b2660087125f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/xUbuntu_17.10/i586 Package network:osmocom:nightly/libosmocore failed to build in xUbuntu_17.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 289s] + --> N (configured as T-2147483648 4294967295 s) rc=0; state=N T=-2147483648, 2147483647.000000 s remaining [ 289s] - test T=0: [ 289s] --> O (no timer configured for this state) [ 289s] - test no timer: [ 289s] --> X (no timer configured for this state) [ 289s] - test undefined timer, using default_val arg of osmo[ 277.160467] serial8250: too much work for irq4 [ 289s] _tdef_fsm_inst_state_chg(), here passed as 999: [ 289s] - --> Y (configured as T666 18446744073709551615 -) rc=0; state=Y T=666, 999.000000 s remaining [ 289s] + --> Y (configured as T666 4294967295 -) rc=0; state=Y T=666, 999.000000 s remaining [ 289s] - test disallowed transition: [ 289s] --> Z (no timer configured for this state) [ 289s] --> B (configured as T2 100 ms) rc=0; state=B T=2, 1.000000 s remaining [ 289s] 52. testsuite.at:329: 52. tdef (testsuite.at:329): FAILED (testsuite.at:332) [ 289s] debian/rules:26: recipe for target 'override_dh_auto_test' failed [ 289s] make[1]: *** [override_dh_auto_test] Error 1 [ 289s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 289s] debian/rules:15: recipe for target 'build' failed [ 289s] make: *** [build] Error 2 [ 289s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 289s] [ 289s] cumulus2 failed "build libosmocore_1.0.1.31.74c4.dsc" at Tue Feb 5 19:59:20 UTC 2019. [ 289s] [ 289s] ### VM INTERACTION START ### [ 292s] [ 280.308149] sysrq: SysRq : Power Off [ 292s] [ 280.322645] reboot: Power down [ 292s] ### VM INTERACTION END ### [ 292s] [ 292s] cumulus2 failed "build libosmocore_1.0.1.31.74c4.dsc" at Tue Feb 5 19:59:23 UTC 2019. [ 292s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 20:00:13 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 20:00:13 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in xUbuntu_16.04/i586 In-Reply-To: References: Message-ID: <5c59eb63e0e53_7f84b26600871447@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/xUbuntu_16.04/i586 Package network:osmocom:nightly/libosmocore failed to build in xUbuntu_16.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 376s] | This file was extended by libosmocore config.status 1.0.1.31-74c4, which was [ 376s] | generated by GNU Autoconf 2.69. Invocation command line was [ 376s] | [ 376s] | CONFIG_FILES = [ 376s] | CONFIG_HEADERS = [ 376s] | CONFIG_LINKS = [ 376s] | CONFIG_COMMANDS = [ 376s] | $ ./config.status Doxyfile.core [ 376s] | [ 376s] | on build36 [ 376s] | [ 376s] | config.status:1203: creating Doxyfile.core [ 376s] [ 376s] debian/rules:26: recipe for target 'override_dh_auto_test' failed [ 376s] make[1]: *** [override_dh_auto_test] Error 1 [ 376s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 376s] debian/rules:15: recipe for target 'build' failed [ 376s] make: *** [build] Error 2 [ 376s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 376s] [ 376s] build36 failed "build libosmocore_1.0.1.31.74c4.dsc" at Tue Feb 5 20:00:08 UTC 2019. [ 376s] [ 376s] ### VM INTERACTION START ### [ 380s] [ 366.024700] sysrq: SysRq : Power Off [ 380s] [ 366.089564] reboot: Power down [ 380s] ### VM INTERACTION END ### [ 380s] [ 380s] build36 failed "build libosmocore_1.0.1.31.74c4.dsc" at Tue Feb 5 20:00:12 UTC 2019. [ 380s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 20:00:30 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 20:00:30 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in xUbuntu_18.04/i586 In-Reply-To: References: Message-ID: <5c59eb65ed0f7_7f84b266008715b4@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/xUbuntu_18.04/i586 Package network:osmocom:nightly/libosmocore failed to build in xUbuntu_18.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 368s] - --> N (configured as T-2147483648 18446744073709551615 s) rc=0; state=N T=-2147483648, 2147483647.000000 s remaining [ 368s] + --> N (configured as T-2147483648 4294967295 s) rc=0; state=N T=-2147483648, 2147483647.000000 s remaining [ 368s] - test T=0: [ 368s] --> O (no timer configured for this state) [ 368s] - test no timer: [ 368s] --> X (no timer configured for this state) [ 368s] - test undefined timer, using default_val arg of osmo_tdef_fsm_inst_state_chg(), here passed as 999: [ 368s] - --> Y (configured as T666 18446744073709551615 -) rc=0; state=Y T=666, 999.000000 s remaining [ 368s] + --> Y (configured as T666 4294967295 -) rc=0; state=Y T=666, 999.000000 s remaining [ 368s] - test disallowed transition: [ 368s] --> Z (no timer configured for this state) [ 368s] --> B (configured as T2 100 ms) rc=0; state=B T=2, 1.000000 s remaining [ 368s] 52. testsuite.at:329: 52. tdef (testsuite.at:329): FAILED (testsuite.at:332) [ 368s] debian/rules:26: recipe for target 'override_dh_auto_test' failed [ 368s] make[1]: *** [override_dh_auto_test] Error 1 [ 368s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 368s] debian/rules:15: recipe for target 'build' failed [ 368s] make: *** [build] Error 2 [ 368s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 368s] [ 368s] cloud123 failed "build libosmocore_1.0.1.31.74c4.dsc" at Tue Feb 5 20:00:14 UTC 2019. [ 368s] [ 368s] ### VM INTERACTION START ### [ 371s] [ 339.539484] sysrq: SysRq : Power Off [ 371s] [ 339.698608] reboot: Power down [ 372s] ### VM INTERACTION END ### [ 372s] [ 372s] cloud123 failed "build libosmocore_1.0.1.31.74c4.dsc" at Tue Feb 5 20:00:20 UTC 2019. [ 372s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 20:01:56 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 20:01:56 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5c59ebc051bd3_7f84b266008717ec@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Debian_8.0/i586 Package network:osmocom:nightly/libosmocore failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 455s] | This file was extended by libosmocore config.status 1.0.1.31-74c4, which was [ 455s] | generated by GNU Autoconf 2.69. Invocation command line was [ 455s] | [ 455s] | CONFIG_FILES = [ 455s] | CONFIG_HEADERS = [ 455s] | CONFIG_LINKS = [ 455s] | CONFIG_COMMANDS = [ 455s] | $ ./config.status Doxyfile.core [ 455s] | [ 455s] | on cloud117 [ 455s] | [ 455s] | config.status:1199: creating Doxyfile.core [ 455s] [ 455s] debian/rules:26: recipe for target 'override_dh_auto_test' failed [ 455s] make[1]: *** [override_dh_auto_test] Error 1 [ 455s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 455s] debian/rules:15: recipe for target 'build' failed [ 455s] make: *** [build] Error 2 [ 455s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 455s] [ 455s] cloud117 failed "build libosmocore_1.0.1.31.74c4.dsc" at Tue Feb 5 20:01:44 UTC 2019. [ 455s] [ 455s] ### VM INTERACTION START ### [ 456s] Powering off. [ 456s] [ 423.534649] reboot: Power down [ 457s] ### VM INTERACTION END ### [ 457s] [ 457s] cloud117 failed "build libosmocore_1.0.1.31.74c4.dsc" at Tue Feb 5 20:01:48 UTC 2019. [ 457s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 20:02:13 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 20:02:13 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5c59ebe0331ce_7f84b266008718fb@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Debian_9.0/armv7l Package network:osmocom:nightly/libosmocore failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 480s] | config.status:1199: creating Doxyfile.coding [ 480s] | config.status:1199: creating Doxyfile.gb [ 480s] | config.status:1199: creating Doxyfile.ctrl [ 480s] | config.status:1199: creating Makefile [ 480s] | config.status:1199: creating config.h [ 480s] | config.status:1428: executing tests/atconfig commands [ 480s] | config.status:1428: executing depfiles commands [ 480s] | config.status:1428: executing libtool commands [ 480s] | configure:16841: WARNING: unrecognized options: --disable-maintainer-mode [ 480s] | [ 480s] | ## ---------------- ## [ 480s] | ## Cache variables. ## [ 480s] | ## ---------------- ## [ 480s] | [ 480s] | ac_cv_build=arm-unknown-linux-gnueabihf [ 480s] | ac_cv_c_compiler_gnu=yes [ 480s] | ac_cv_env_CC_set= [ 480s] | ac_cv_env_CC_value= [ 480s] | ac_cv_env_CFLAGS_set=set [ 480s] | ac_cv_env_CFLAGS_value='-g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security' [ 480s] | ac_cv_env_CPPFLAGS_set=set [ 480s] | ac_cv_env_CPPFLAGS_value='-Wdate-time -D_FORTIFY_SOURCE=2' [ 480s] | ac_cv_env_CPP_set= [ 482s] | ac_cv_env[ 455.650882] SysRq : Power Off [ 482s] [ 455.662066] reboot: Power down [ 482s] ### VM INTERACTION END ### [ 482s] [ 482s] armbuild02 failed "build libosmocore_1.0.1.31.74c4.dsc" at Tue Feb 5 20:01:57 UTC 2019. [ 482s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 20:05:39 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 20:05:39 +0000 Subject: Build failure of network:osmocom:nightly/libosmocore in Raspbian_9.0/armv7l In-Reply-To: References: Message-ID: <5c59ecb073f0a_7f84b26600872139@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmocore/Raspbian_9.0/armv7l Package network:osmocom:nightly/libosmocore failed to build in Raspbian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libosmocore Last lines of build log: [ 678s] | configure:4063: checking dependency style of gcc [ 678s] | configure:4174: result: none [ 678s] | configure:4219: checking build system type [ 678s] | configure:4233: result: arm-unknown-linux-gnueabihf [ 678s] | configure:4253: checking host system type [ 678s] | configure:4266: result: arm-unknown-linux-gnueabihf [ 678s] | configure:4307: checking how to print strings [ 678s] | configure:4334: result: printf [ 678s] | configure:4355: checking for a sed that does not truncate output [ 678s] | configure:4419: result: /bin/sed [ 678s] | configure:4437: checking for grep that handles long lines and -e [ 678s] | configure:4495: result: /bin/grep [ 678s] | configure:4500: checking for egrep [ 678s] | configure:4562: result: /bin/grep -E [ 678s] | configure:4567: checking for fgrep [ 678s] | configure:4629: result: /bin/grep -F [ 678s] | configure:4664: checking for ld used by gcc [ 678s] | configure:4731: result: /usr/bin/ld [ 678s] | configure:4738: checking if the linker (/usr/bin/ld) is GNU ld [ 678s] | configure:4753: result: yes [ 678s] | configure:4765: checking for BSD- or MS-compatible name lister (nm) [ 678s] | configure:4819: result: /usr/bin/nm -B [ 678s] | configure:4949: checking the name lister (/usr/bin/nm -B) interface [ 680s] | configure:[ 636.480950] SysRq : Power Off [ 680s] [ 636.486333] reboot: Power down [ 680s] ### VM INTERACTION END ### [ 680s] [ 680s] armbuild04 failed "build libosmocore_1.0.1.31.74c4.dsc" at Tue Feb 5 20:05:38 UTC 2019. [ 680s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 20:06:30 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 20:06:30 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-netif in xUbuntu_17.10/i586 In-Reply-To: References: Message-ID: <5c59eccd4cedc_7f84b2660087228f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-netif/xUbuntu_17.10/i586 Package network:osmocom:nightly/libosmo-netif failed to build in xUbuntu_17.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmo-netif Last lines of build log: [ 81s] char buf[OSMO_SOCK_NAME_MAXLEN]; [ 81s] ^ [ 81s] stream-server.c:81:11: note: each undeclared identifier is reported only once for each function it appears in [ 81s] stream-server.c:81:7: warning: unused variable 'buf' [-Wunused-variable] [ 81s] char buf[OSMO_SOCK_NAME_MAXLEN]; [ 81s] ^~~ [ 81s] Makefile:573: recipe for target 'stream-server.o' failed [ 81s] make[3]: *** [stream-server.o] Error 1 [ 81s] make[3]: Leaving directory '/usr/src/packages/BUILD/examples' [ 81s] Makefile:494: recipe for target 'all-recursive' failed [ 81s] make[2]: *** [all-recursive] Error 1 [ 81s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 81s] Makefile:380: recipe for target 'all' failed [ 81s] make[1]: *** [all] Error 2 [ 81s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 81s] dh_auto_build: make -j1 returned exit code 2 [ 81s] debian/rules:13: recipe for target 'build' failed [ 81s] make: *** [build] Error 2 [ 81s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 81s] [ 81s] sheep81 failed "build libosmo-netif_0.4.0.10.827d.dsc" at Tue Feb 5 20:06:25 UTC 2019. [ 81s] [ 81s] ### VM INTERACTION START ### [ 84s] [ 77.214119] sysrq: SysRq : Power Off [ 84s] [ 77.220735] reboot: Power down [ 84s] ### VM INTERACTION END ### [ 84s] [ 84s] sheep81 failed "build libosmo-netif_0.4.0.10.827d.dsc" at Tue Feb 5 20:06:29 UTC 2019. [ 84s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 20:06:30 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 20:06:30 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-netif in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5c59ecce3d82a_7f84b26600872359@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-netif/Debian_9.0/i586 Package network:osmocom:nightly/libosmo-netif failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmo-netif Last lines of build log: [ 78s] char buf[OSMO_SOCK_NAME_MAXLEN]; [ 78s] ^ [ 78s] stream-server.c:81:11: note: each undeclared identifier is reported only once for each function it appears in [ 78s] stream-server.c:81:7: warning: unused variable 'buf' [-Wunused-variable] [ 78s] char buf[OSMO_SOCK_NAME_MAXLEN]; [ 78s] ^~~ [ 78s] Makefile:573: recipe for target 'stream-server.o' failed [ 78s] make[3]: *** [stream-server.o] Error 1 [ 78s] make[3]: Leaving directory '/usr/src/packages/BUILD/examples' [ 78s] Makefile:494: recipe for target 'all-recursive' failed [ 78s] make[2]: *** [all-recursive] Error 1 [ 78s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 78s] Makefile:380: recipe for target 'all' failed [ 78s] make[1]: *** [all] Error 2 [ 78s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 78s] dh_auto_build: make -j1 returned exit code 2 [ 78s] debian/rules:13: recipe for target 'build' failed [ 78s] make: *** [build] Error 2 [ 78s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 78s] [ 78s] sheep84 failed "build libosmo-netif_0.4.0.10.827d.dsc" at Tue Feb 5 20:06:18 UTC 2019. [ 78s] [ 78s] ### VM INTERACTION START ### [ 81s] [ 72.054116] sysrq: SysRq : Power Off [ 81s] [ 72.059839] reboot: Power down [ 81s] ### VM INTERACTION END ### [ 81s] [ 81s] sheep84 failed "build libosmo-netif_0.4.0.10.827d.dsc" at Tue Feb 5 20:06:22 UTC 2019. [ 81s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 20:08:30 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 20:08:30 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-netif in xUbuntu_16.04/i586 In-Reply-To: References: Message-ID: <5c59ed45a3ecb_7f84b26600872770@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-netif/xUbuntu_16.04/i586 Package network:osmocom:nightly/libosmo-netif failed to build in xUbuntu_16.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmo-netif Last lines of build log: [ 193s] char buf[OSMO_SOCK_NAME_MAXLEN]; [ 193s] ^ [ 193s] stream-server.c:81:11: note: each undeclared identifier is reported only once for each function it appears in [ 193s] stream-server.c:81:7: warning: unused variable 'buf' [-Wunused-variable] [ 193s] char buf[OSMO_SOCK_NAME_MAXLEN]; [ 193s] ^ [ 193s] Makefile:573: recipe for target 'stream-server.o' failed [ 193s] make[3]: *** [stream-server.o] Error 1 [ 193s] make[3]: Leaving directory '/usr/src/packages/BUILD/examples' [ 193s] Makefile:494: recipe for target 'all-recursive' failed [ 193s] make[2]: *** [all-recursive] Error 1 [ 193s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 193s] Makefile:380: recipe for target 'all' failed [ 193s] make[1]: *** [all] Error 2 [ 193s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 193s] dh_auto_build: make -j1 returned exit code 2 [ 193s] debian/rules:13: recipe for target 'build' failed [ 193s] make: *** [build] Error 2 [ 193s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 193s] [ 193s] lamb24 failed "build libosmo-netif_0.4.0.10.827d.dsc" at Tue Feb 5 20:08:20 UTC 2019. [ 193s] [ 193s] ### VM INTERACTION START ### [ 197s] [ 182.629859] sysrq: SysRq : Power Off [ 197s] [ 182.656669] reboot: Power down [ 197s] ### VM INTERACTION END ### [ 197s] [ 197s] lamb24 failed "build libosmo-netif_0.4.0.10.827d.dsc" at Tue Feb 5 20:08:24 UTC 2019. [ 197s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 20:10:47 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 20:10:47 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-netif in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5c59eddc8c284_7f84b2660087339@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-netif/Debian_8.0/i586 Package network:osmocom:nightly/libosmo-netif failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmo-netif Last lines of build log: [ 140s] char buf[OSMO_SOCK_NAME_MAXLEN]; [ 140s] ^ [ 140s] stream-server.c:81:11: note: each undeclared identifier is reported only once for each function it appears in [ 140s] stream-server.c:81:7: warning: unused variable 'buf' [-Wunused-variable] [ 140s] char buf[OSMO_SOCK_NAME_MAXLEN]; [ 140s] ^ [ 140s] Makefile:561: recipe for target 'stream-server.o' failed [ 140s] make[3]: *** [stream-server.o] Error 1 [ 140s] make[3]: Leaving directory '/usr/src/packages/BUILD/examples' [ 140s] Makefile:483: recipe for target 'all-recursive' failed [ 140s] make[2]: *** [all-recursive] Error 1 [ 140s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 140s] Makefile:368: recipe for target 'all' failed [ 140s] make[1]: *** [all] Error 2 [ 140s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 140s] dh_auto_build: make -j1 returned exit code 2 [ 140s] debian/rules:13: recipe for target 'build' failed [ 140s] make: *** [build] Error 2 [ 140s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 140s] [ 140s] morla3 failed "build libosmo-netif_0.4.0.10.827d.dsc" at Tue Feb 5 20:10:34 UTC 2019. [ 140s] [ 140s] ### VM INTERACTION START ### [ 141s] Powering off. [ 141s] [ 126.357162] reboot: Power down [ 141s] ### VM INTERACTION END ### [ 141s] [ 141s] morla3 failed "build libosmo-netif_0.4.0.10.827d.dsc" at Tue Feb 5 20:10:36 UTC 2019. [ 141s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 20:11:22 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 20:11:22 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-netif in xUbuntu_18.04/i586 In-Reply-To: References: Message-ID: <5c59edf920ea8_7f84b26600873558@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-netif/xUbuntu_18.04/i586 Package network:osmocom:nightly/libosmo-netif failed to build in xUbuntu_18.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly libosmo-netif Last lines of build log: [ 278s] char buf[OSMO_SOCK_NAME_MAXLEN]; [ 278s] ^ [ 278s] stream-server.c:81:11: note: each undeclared identifier is reported only once for each function it appears in [ 278s] stream-server.c:81:7: warning: unused variable 'buf' [-Wunused-variable] [ 278s] char buf[OSMO_SOCK_NAME_MAXLEN]; [ 278s] ^~~ [ 278s] Makefile:573: recipe for target 'stream-server.o' failed [ 278s] make[3]: *** [stream-server.o] Error 1 [ 278s] make[3]: Leaving directory '/usr/src/packages/BUILD/examples' [ 278s] Makefile:494: recipe for target 'all-recursive' failed [ 278s] make[2]: *** [all-recursive] Error 1 [ 278s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 278s] Makefile:380: recipe for target 'all' failed [ 278s] make[1]: *** [all] Error 2 [ 278s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 278s] dh_auto_build: make -j1 returned exit code 2 [ 278s] debian/rules:13: recipe for target 'build' failed [ 278s] make: *** [build] Error 2 [ 278s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 278s] [ 278s] lamb62 failed "build libosmo-netif_0.4.0.10.827d.dsc" at Tue Feb 5 20:11:14 UTC 2019. [ 278s] [ 278s] ### VM INTERACTION START ### [ 281s] [ 240.367387] sysrq: SysRq : Power Off [ 281s] [ 240.400879] reboot: Power down [ 281s] ### VM INTERACTION END ### [ 281s] [ 281s] lamb62 failed "build libosmo-netif_0.4.0.10.827d.dsc" at Tue Feb 5 20:11:18 UTC 2019. [ 281s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 20:15:56 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 20:15:56 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-netif in Raspbian_9.0/armv7l In-Reply-To: References: Message-ID: <5c59ef0ba645b_7f84b266008743dd@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-netif/Raspbian_9.0/armv7l Package network:osmocom:nightly/libosmo-netif failed to build in Raspbian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libosmo-netif Last lines of build log: [ 203s] char buf[OSMO_SOCK_NAME_MAXLEN]; [ 203s] ^ [ 203s] stream-server.c:81:11: note: each undeclared identifier is reported only once for each function it appears in [ 203s] stream-server.c:81:7: warning: unused variable 'buf' [-Wunused-variable] [ 203s] char buf[OSMO_SOCK_NAME_MAXLEN]; [ 203s] ^~~ [ 203s] Makefile:573: recipe for target 'stream-server.o' failed [ 203s] make[3]: *** [stream-server.o] Error 1 [ 203s] make[3]: Leaving directory '/usr/src/packages/BUILD/examples' [ 203s] Makefile:494: recipe for target 'all-recursive' failed [ 203s] make[2]: *** [all-recursive] Error 1 [ 203s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 203s] Makefile:380: recipe for target 'all' failed [ 203s] make[1]: *** [all] Error 2 [ 203s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 203s] dh_auto_build: make -j1 returned exit code 2 [ 203s] debian/rules:13: recipe for target 'build' failed [ 203s] make: *** [build] Error 2 [ 203s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 203s] [ 203s] armbuild04 failed "build libosmo-netif_0.4.0.10.827d.dsc" at Tue Feb 5 20:15:48 UTC 2019. [ 203s] [ 203s] ### VM INTERACTION START ### [ 206s] [ 183.127955] SysRq : Power Off [ 206s] [ 183.129270] reboot: Power down [ 206s] ### VM INTERACTION END ### [ 206s] [ 206s] armbuild04 failed "build libosmo-netif_0.4.0.10.827d.dsc" at Tue Feb 5 20:15:51 UTC 2019. [ 206s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 20:17:22 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 20:17:22 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-netif in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5c59ef61d3ab9_7f84b266008745ba@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-netif/Debian_9.0/armv7l Package network:osmocom:nightly/libosmo-netif failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libosmo-netif Last lines of build log: [ 207s] char buf[OSMO_SOCK_NAME_MAXLEN]; [ 207s] ^ [ 207s] stream-server.c:81:11: note: each undeclared identifier is reported only once for each function it appears in [ 207s] stream-server.c:81:7: warning: unused variable 'buf' [-Wunused-variable] [ 207s] char buf[OSMO_SOCK_NAME_MAXLEN]; [ 207s] ^~~ [ 207s] Makefile:573: recipe for target 'stream-server.o' failed [ 207s] make[3]: *** [stream-server.o] Error 1 [ 207s] make[3]: Leaving directory '/usr/src/packages/BUILD/examples' [ 207s] Makefile:494: recipe for target 'all-recursive' failed [ 207s] make[2]: *** [all-recursive] Error 1 [ 207s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 207s] Makefile:380: recipe for target 'all' failed [ 207s] make[1]: *** [all] Error 2 [ 207s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 207s] dh_auto_build: make -j1 returned exit code 2 [ 207s] debian/rules:13: recipe for target 'build' failed [ 207s] make: *** [build] Error 2 [ 207s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 207s] [ 207s] armbuild04 failed "build libosmo-netif_0.4.0.10.827d.dsc" at Tue Feb 5 20:17:08 UTC 2019. [ 207s] [ 207s] ### VM INTERACTION START ### [ 210s] [ 173.832722] SysRq : Power Off [ 210s] [ 173.836317] reboot: Power down [ 210s] ### VM INTERACTION END ### [ 210s] [ 210s] armbuild04 failed "build libosmo-netif_0.4.0.10.827d.dsc" at Tue Feb 5 20:17:11 UTC 2019. [ 210s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Tue Feb 5 20:23:08 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 5 Feb 2019 20:23:08 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions In-Reply-To: References: Message-ID: Hello Max, Neels Hofmeyr, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/11992 to look at the new patch set (#8). Change subject: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions ...................................................................... libmsc/gsm_09_11.c: implement guard timer for NCSS sessions It may happen that either the MS or an ESME would become unresponsive during a call independent SS session, e.g. due to a bug, or a dropped message. In such cases, the corresponding transaction would remain unfreed forever. This change introduces a guard timer, that prevents keeping 'stalled' NCSS sessions forever. As soon as it expires, both sides (i.e. MS and ESME) are getting notified, and the transaction is being released. By default, the timer expires after 30 seconds. As soon as either the MS, or an ESME initiates any activity, the watchdog timer is rescheduled. The timeout value can be configured from the VTY: msc ... ! Use 0 to disable this timer ncss guard-timeout 30 This change makes TC_lu_and_ss_session_timeout pass. Change-Id: Icf4d87c45e90324764073e8230e0fb9cb96dd9cb Depends Change-Id: (libosmocore) Ie3ac85fcef90a5e532334ba3482804d5305c88d7 Related Change-Id: (TTCN) I3e1791773d56617172ae27a46889a1ae4d400e2f Related: OS#3655 --- M include/osmocom/msc/gsm_data.h M include/osmocom/msc/transaction.h M src/libmsc/gsm_09_11.c M src/libmsc/msc_vty.c M src/libmsc/osmo_msc.c M tests/test_nodes.vty 6 files changed, 88 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/92/11992/8 -- To view, visit https://gerrit.osmocom.org/11992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Icf4d87c45e90324764073e8230e0fb9cb96dd9cb Gerrit-Change-Number: 11992 Gerrit-PatchSet: 8 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-CC: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 20:23:09 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 5 Feb 2019 20:23:09 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_80.c: use gsm0480_create_release_complete() Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/12840 Change subject: libmsc/gsm_04_80.c: use gsm0480_create_release_complete() ...................................................................... libmsc/gsm_04_80.c: use gsm0480_create_release_complete() The previous implementation of msc_send_ussd_release_complete() was based on gsm0480_create_ussd_release_complete(), that doesn't allow to specify GSM 04.07 transaction identifier. The ability to specify particular transaction identifier is required for handling multiple SS/USSD transactions. Change-Id: Id2975c3383f18e83124ba38927c03980d67ddadb --- M include/osmocom/msc/gsm_04_80.h M src/libmsc/gsm_04_80.c M src/libmsc/msc_vty.c 3 files changed, 8 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/40/12840/1 diff --git a/include/osmocom/msc/gsm_04_80.h b/include/osmocom/msc/gsm_04_80.h index 29b800b..0008c22 100644 --- a/include/osmocom/msc/gsm_04_80.h +++ b/include/osmocom/msc/gsm_04_80.h @@ -10,4 +10,5 @@ int msc_send_ussd_notify(struct ran_conn *conn, int level, const char *text); -int msc_send_ussd_release_complete(struct ran_conn *conn); +int msc_send_ussd_release_complete(struct ran_conn *conn, + uint8_t transaction_id) diff --git a/src/libmsc/gsm_04_80.c b/src/libmsc/gsm_04_80.c index 119f0e1..502848f 100644 --- a/src/libmsc/gsm_04_80.c +++ b/src/libmsc/gsm_04_80.c @@ -78,9 +78,10 @@ return msc_tx_dtap(conn, msg); } -int msc_send_ussd_release_complete(struct ran_conn *conn) +int msc_send_ussd_release_complete(struct ran_conn *conn, + uint8_t transaction_id) { - struct msgb *msg = gsm0480_create_ussd_release_complete(); + struct msgb *msg = gsm0480_create_release_complete(transaction_id); if (!msg) return -1; return msc_tx_dtap(conn, msg); diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c index e1019a2..078b83a 100644 --- a/src/libmsc/msc_vty.c +++ b/src/libmsc/msc_vty.c @@ -1149,7 +1149,9 @@ } msc_send_ussd_notify(conn, level, text); - msc_send_ussd_release_complete(conn); + /* FIXME: since we don't allocate a transaction here, + * we use dummy GSM 04.07 transaction ID. */ + msc_send_ussd_release_complete(conn, 0x00); vlr_subscr_put(vsub); talloc_free(text); -- To view, visit https://gerrit.osmocom.org/12840 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id2975c3383f18e83124ba38927c03980d67ddadb Gerrit-Change-Number: 12840 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 20:29:04 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 5 Feb 2019 20:29:04 +0000 Subject: Change in osmo-msc[master]: libmsc/osmo_msc.c: move connection ref-counting code to 'ran_conn.c' In-Reply-To: References: Message-ID: Hello Max, Neels Hofmeyr, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12698 to look at the new patch set (#2). Change subject: libmsc/osmo_msc.c: move connection ref-counting code to 'ran_conn.c' ...................................................................... libmsc/osmo_msc.c: move connection ref-counting code to 'ran_conn.c' The connection ref-counting implementation is specific to RAN connections, and is not applicable for anything else. Change-Id: I593675d9bf56eaef12afdaf596ee1337b9a44259 --- M src/libmsc/osmo_msc.c M src/libmsc/ran_conn.c 2 files changed, 111 insertions(+), 111 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/98/12698/2 -- To view, visit https://gerrit.osmocom.org/12698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I593675d9bf56eaef12afdaf596ee1337b9a44259 Gerrit-Change-Number: 12698 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 5 20:31:17 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 5 Feb 2019 20:31:17 +0000 Subject: Change in osmo-msc[master]: libmsc/osmo_msc.c: move connection ref-counting code to 'ran_conn.c' In-Reply-To: References: Message-ID: Hello Max, Neels Hofmeyr, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12698 to look at the new patch set (#3). Change subject: libmsc/osmo_msc.c: move connection ref-counting code to 'ran_conn.c' ...................................................................... libmsc/osmo_msc.c: move connection ref-counting code to 'ran_conn.c' The connection ref-counting implementation is specific to RAN connections, and is not applicable for anything else. Moreover, the API of this code is declared in 'ran_conn.h', so let's move the code to a more logical place. Change-Id: I593675d9bf56eaef12afdaf596ee1337b9a44259 --- M src/libmsc/osmo_msc.c M src/libmsc/ran_conn.c 2 files changed, 111 insertions(+), 111 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/98/12698/3 -- To view, visit https://gerrit.osmocom.org/12698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I593675d9bf56eaef12afdaf596ee1337b9a44259 Gerrit-Change-Number: 12698 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Tue Feb 5 20:47:56 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 20:47:56 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bsc in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5c59f68b2f93c_7f84b26600882879@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-bsc/Debian_8.0/i586 Package network:osmocom:nightly/osmo-bsc failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-bsc Last lines of build log: [ 177s] ^ [ 177s] gsm_04_08_rr.c:316:22: note: each undeclared identifier is reported only once for each function it appears in [ 177s] cc1: some warnings being treated as errors [ 177s] Makefile:616: recipe for target 'gsm_04_08_rr.o' failed [ 177s] make[4]: *** [gsm_04_08_rr.o] Error 1 [ 177s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/osmo-bsc' [ 177s] Makefile:397: recipe for target 'all-recursive' failed [ 177s] make[3]: *** [all-recursive] Error 1 [ 177s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 177s] Makefile:435: recipe for target 'all-recursive' failed [ 177s] make[2]: *** [all-recursive] Error 1 [ 177s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 177s] Makefile:366: recipe for target 'all' failed [ 177s] make[1]: *** [all] Error 2 [ 177s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 177s] dh_auto_build: make -j1 returned exit code 2 [ 177s] debian/rules:45: recipe for target 'build' failed [ 177s] make: *** [build] Error 2 [ 177s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 177s] [ 177s] lamb62 failed "build osmo-bsc_1.4.0.13.96376.dsc" at Tue Feb 5 20:47:51 UTC 2019. [ 177s] [ 177s] ### VM INTERACTION START ### [ 179s] Powering off. [ 179s] [ 156.535810] reboot: Power down [ 179s] ### VM INTERACTION END ### [ 179s] [ 179s] lamb62 failed "build osmo-bsc_1.4.0.13.96376.dsc" at Tue Feb 5 20:47:53 UTC 2019. [ 179s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 20:52:30 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 20:52:30 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5c59f797e428e_7f84b26600884348@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_8.0/i586 Package network:osmocom:nightly/osmo-msc failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 133s] #include [ 133s] ^ [ 133s] compilation terminated. [ 134s] Makefile:506: recipe for target 'sgs_server.o' failed [ 134s] make[4]: *** [sgs_server.o] Error 1 [ 134s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/libmsc' [ 134s] Makefile:412: recipe for target 'all-recursive' failed [ 134s] make[3]: *** [all-recursive] Error 1 [ 134s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 134s] Makefile:452: recipe for target 'all-recursive' failed [ 134s] make[2]: *** [all-recursive] Error 1 [ 134s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 134s] Makefile:383: recipe for target 'all' failed [ 134s] make[1]: *** [all] Error 2 [ 134s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 134s] dh_auto_build: make -j1 returned exit code 2 [ 134s] debian/rules:45: recipe for target 'build' failed [ 134s] make: *** [build] Error 2 [ 134s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 134s] [ 134s] lamb54 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 20:52:22 UTC 2019. [ 134s] [ 134s] ### VM INTERACTION START ### [ 135s] Powering off. [ 135s] [ 123.410437] reboot: Power down [ 135s] ### VM INTERACTION END ### [ 135s] [ 135s] lamb54 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 20:52:24 UTC 2019. [ 135s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 20:55:56 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 20:55:56 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bsc in xUbuntu_16.04/i586 In-Reply-To: References: Message-ID: <5c59f86abd822_7f84b26600885532@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-bsc/xUbuntu_16.04/i586 Package network:osmocom:nightly/osmo-bsc failed to build in xUbuntu_16.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-bsc Last lines of build log: [ 60s] ^ [ 60s] gsm_04_08_rr.c:316:22: note: each undeclared identifier is reported only once for each function it appears in [ 60s] cc1: some warnings being treated as errors [ 60s] Makefile:627: recipe for target 'gsm_04_08_rr.o' failed [ 60s] make[4]: *** [gsm_04_08_rr.o] Error 1 [ 60s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/osmo-bsc' [ 60s] Makefile:409: recipe for target 'all-recursive' failed [ 60s] make[3]: *** [all-recursive] Error 1 [ 60s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 60s] Makefile:447: recipe for target 'all-recursive' failed [ 60s] make[2]: *** [all-recursive] Error 1 [ 60s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 60s] Makefile:379: recipe for target 'all' failed [ 60s] make[1]: *** [all] Error 2 [ 60s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 60s] dh_auto_build: make -j1 returned exit code 2 [ 60s] debian/rules:45: recipe for target 'build' failed [ 60s] make: *** [build] Error 2 [ 60s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 60s] [ 60s] build79 failed "build osmo-bsc_1.4.0.13.96376.dsc" at Tue Feb 5 20:55:40 UTC 2019. [ 60s] [ 60s] ### VM INTERACTION START ### [ 63s] [ 56.509314] sysrq: SysRq : Power Off [ 63s] [ 56.511408] reboot: Power down [ 63s] ### VM INTERACTION END ### [ 63s] [ 63s] build79 failed "build osmo-bsc_1.4.0.13.96376.dsc" at Tue Feb 5 20:55:44 UTC 2019. [ 63s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 20:57:56 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 20:57:56 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bsc in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5c59f8e22e2e6_7f84b2660088564f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-bsc/Debian_9.0/armv7l Package network:osmocom:nightly/osmo-bsc failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-bsc Last lines of build log: [ 135s] ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 135s] gsm_04_08_rr.c:316:22: note: each undeclared identifier is reported only once for each function it appears in [ 135s] cc1: some warnings being treated as errors [ 135s] Makefile:627: recipe for target 'gsm_04_08_rr.o' failed [ 135s] make[4]: *** [gsm_04_08_rr.o] Error 1 [ 135s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/osmo-bsc' [ 135s] Makefile:409: recipe for target 'all-recursive' failed [ 135s] make[3]: *** [all-recursive] Error 1 [ 135s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 135s] Makefile:447: recipe for target 'all-recursive' failed [ 135s] make[2]: *** [all-recursive] Error 1 [ 135s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 135s] Makefile:379: recipe for target 'all' failed [ 135s] make[1]: *** [all] Error 2 [ 135s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 135s] dh_auto_build: make -j1 returned exit code 2 [ 135s] debian/rules:45: recipe for target 'build' failed [ 135s] make: *** [build] Error 2 [ 135s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 135s] [ 135s] armbuild02 failed "build osmo-bsc_1.4.0.13.96376.dsc" at Tue Feb 5 20:57:38 UTC 2019. [ 135s] [ 135s] ### VM INTERACTION START ### [ 138s] [ 116.325585] SysRq : Power Off [ 138s] [ 116.326758] reboot: Power down [ 138s] ### VM INTERACTION END ### [ 138s] [ 138s] armbuild02 failed "build osmo-bsc_1.4.0.13.96376.dsc" at Tue Feb 5 20:57:41 UTC 2019. [ 138s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 20:58:13 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 20:58:13 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bsc in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5c59f8fbee126_7f84b266008857c5@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-bsc/Debian_9.0/i586 Package network:osmocom:nightly/osmo-bsc failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-bsc Last lines of build log: [ 191s] ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 191s] gsm_04_08_rr.c:316:22: note: each undeclared identifier is reported only once for each function it appears in [ 191s] cc1: some warnings being treated as errors [ 191s] Makefile:627: recipe for target 'gsm_04_08_rr.o' failed [ 191s] make[4]: *** [gsm_04_08_rr.o] Error 1 [ 191s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/osmo-bsc' [ 191s] Makefile:409: recipe for target 'all-recursive' failed [ 191s] make[3]: *** [all-recursive] Error 1 [ 191s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 191s] Makefile:447: recipe for target 'all-recursive' failed [ 191s] make[2]: *** [all-recursive] Error 1 [ 191s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 191s] Makefile:379: recipe for target 'all' failed [ 191s] make[1]: *** [all] Error 2 [ 191s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 191s] dh_auto_build: make -j1 returned exit code 2 [ 191s] debian/rules:45: recipe for target 'build' failed [ 191s] make: *** [build] Error 2 [ 191s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 191s] [ 191s] lamb23 failed "build osmo-bsc_1.4.0.13.96376.dsc" at Tue Feb 5 20:58:02 UTC 2019. [ 191s] [ 191s] ### VM INTERACTION START ### [ 194s] [ 174.963199] sysrq: SysRq : Power Off [ 194s] [ 174.998186] reboot: Power down [ 194s] ### VM INTERACTION END ### [ 194s] [ 194s] lamb23 failed "build osmo-bsc_1.4.0.13.96376.dsc" at Tue Feb 5 20:58:06 UTC 2019. [ 194s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 21:00:30 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 21:00:30 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5c59f9759b494_7f84b2660088615d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_9.0/i586 Package network:osmocom:nightly/osmo-msc failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 141s] #include [ 141s] ^ [ 141s] compilation terminated. [ 141s] Makefile:518: recipe for target 'sgs_server.o' failed [ 141s] make[4]: *** [sgs_server.o] Error 1 [ 141s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/libmsc' [ 141s] Makefile:424: recipe for target 'all-recursive' failed [ 141s] make[3]: *** [all-recursive] Error 1 [ 141s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 141s] Makefile:464: recipe for target 'all-recursive' failed [ 141s] make[2]: *** [all-recursive] Error 1 [ 141s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 141s] Makefile:396: recipe for target 'all' failed [ 141s] make[1]: *** [all] Error 2 [ 141s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 141s] dh_auto_build: make -j1 returned exit code 2 [ 141s] debian/rules:45: recipe for target 'build' failed [ 141s] make: *** [build] Error 2 [ 141s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 141s] [ 141s] wildcard2 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 21:00:16 UTC 2019. [ 141s] [ 141s] ### VM INTERACTION START ### [ 144s] [ 122.157619] sysrq: SysRq : Power Off [ 144s] [ 122.160806] reboot: Power down [ 145s] ### VM INTERACTION END ### [ 145s] [ 145s] wildcard2 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 21:00:21 UTC 2019. [ 145s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 21:01:39 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 21:01:39 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_16.04/i586 In-Reply-To: References: Message-ID: <5c59f9d240db0_7f84b2660088639d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_16.04/i586 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_16.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 195s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o sgs_server.o sgs_server.c [ 195s] sgs_server.c:28:26: fatal error: netinet/sctp.h: No such file or directory [ 195s] compilation terminated. [ 195s] Makefile:518: recipe for target 'sgs_server.o' failed [ 195s] make[4]: *** [sgs_server.o] Error 1 [ 195s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/libmsc' [ 195s] Makefile:424: recipe for target 'all-recursive' failed [ 195s] make[3]: *** [all-recursive] Error 1 [ 195s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 195s] Makefile:464: recipe for target 'all-recursive' failed [ 195s] make[2]: *** [all-recursive] Error 1 [ 195s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 195s] Makefile:396: recipe for target 'all' failed [ 195s] make[1]: *** [all] Error 2 [ 195s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 195s] dh_auto_build: make -j1 returned exit code 2 [ 195s] debian/rules:45: recipe for target 'build' failed [ 195s] make: *** [build] Error 2 [ 195s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 196s] [ 196s] lamb09 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 21:01:30 UTC 2019. [ 196s] [ 196s] ### VM INTERACTION START ### [ 199s] [ 186.719084] sysrq: SysRq : Power Off [ 199s] [ 186.735045] reboot: Power down [ 199s] ### VM INTERACTION END ### [ 199s] [ 199s] lamb09 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 21:01:34 UTC 2019. [ 199s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 21:01:56 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 21:01:56 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5c59f9d624f90_7f84b266008864e6@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_8.0/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 91s] #include [ 91s] ^ [ 91s] compilation terminated. [ 92s] Makefile:506: recipe for target 'sgs_server.o' failed [ 92s] make[4]: *** [sgs_server.o] Error 1 [ 92s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/libmsc' [ 92s] Makefile:412: recipe for target 'all-recursive' failed [ 92s] make[3]: *** [all-recursive] Error 1 [ 92s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 92s] Makefile:452: recipe for target 'all-recursive' failed [ 92s] make[2]: *** [all-recursive] Error 1 [ 92s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 92s] Makefile:383: recipe for target 'all' failed [ 92s] make[1]: *** [all] Error 2 [ 92s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 92s] dh_auto_build: make -j1 returned exit code 2 [ 92s] debian/rules:45: recipe for target 'build' failed [ 92s] make: *** [build] Error 2 [ 92s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 92s] [ 92s] lamb07 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 21:01:51 UTC 2019. [ 92s] [ 92s] ### VM INTERACTION START ### [ 93s] Powering off. [ 93s] [ 82.066696] reboot: Power down [ 93s] ### VM INTERACTION END ### [ 93s] [ 93s] lamb07 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 21:01:53 UTC 2019. [ 93s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 21:01:56 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 21:01:56 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bsc in xUbuntu_17.10/i586 In-Reply-To: References: Message-ID: <5c59f9d6d70f7_7f84b26600886576@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-bsc/xUbuntu_17.10/i586 Package network:osmocom:nightly/osmo-bsc failed to build in xUbuntu_17.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-bsc Last lines of build log: [ 82s] GSM48_IE_CHDES_2_AFTER [ 82s] gsm_04_08_rr.c:316:22: note: each undeclared identifier is reported only once for each function it appears in [ 82s] cc1: some warnings being treated as errors [ 82s] Makefile:627: recipe for target 'gsm_04_08_rr.o' failed [ 82s] make[4]: *** [gsm_04_08_rr.o] Error 1 [ 82s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/osmo-bsc' [ 82s] Makefile:409: recipe for target 'all-recursive' failed [ 82s] make[3]: *** [all-recursive] Error 1 [ 82s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 82s] Makefile:447: recipe for target 'all-recursive' failed [ 82s] make[2]: *** [all-recursive] Error 1 [ 82s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 82s] Makefile:379: recipe for target 'all' failed [ 82s] make[1]: *** [all] Error 2 [ 82s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 82s] dh_auto_build: make -j1 returned exit code 2 [ 82s] debian/rules:45: recipe for target 'build' failed [ 82s] make: *** [build] Error 2 [ 82s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 82s] [ 82s] sheep81 failed "build osmo-bsc_1.4.0.13.96376.dsc" at Tue Feb 5 21:01:40 UTC 2019. [ 82s] [ 82s] ### VM INTERACTION START ### [ 85s] [ 77.431660] sysrq: SysRq : Power Off [ 85s] [ 77.437403] reboot: Power down [ 85s] ### VM INTERACTION END ### [ 85s] [ 85s] sheep81 failed "build osmo-bsc_1.4.0.13.96376.dsc" at Tue Feb 5 21:01:43 UTC 2019. [ 85s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 21:04:13 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 21:04:13 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_17.10/i586 In-Reply-To: References: Message-ID: <5c59fa65cdfa2_7f84b26600887290@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_17.10/i586 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_17.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 115s] #include [ 115s] ^~~~~~~~~~~~~~~~ [ 115s] compilation terminated. [ 115s] Makefile:518: recipe for target 'sgs_server.o' failed [ 115s] make[4]: *** [sgs_server.o] Error 1 [ 115s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/libmsc' [ 115s] Makefile:424: recipe for target 'all-recursive' failed [ 115s] make[3]: *** [all-recursive] Error 1 [ 115s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 115s] Makefile:464: recipe for target 'all-recursive' failed [ 115s] make[2]: *** [all-recursive] Error 1 [ 115s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 115s] Makefile:396: recipe for target 'all' failed [ 115s] make[1]: *** [all] Error 2 [ 115s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 115s] dh_auto_build: make -j1 returned exit code 2 [ 115s] debian/rules:45: recipe for target 'build' failed [ 115s] make: *** [build] Error 2 [ 115s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 115s] [ 115s] lamb19 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 21:03:52 UTC 2019. [ 115s] [ 115s] ### VM INTERACTION START ### [ 118s] [ 102.676223] sysrq: SysRq : Power Off [ 118s] [ 102.680986] reboot: Power down [ 118s] ### VM INTERACTION END ### [ 118s] [ 118s] lamb19 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 21:03:56 UTC 2019. [ 118s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 21:04:13 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 21:04:13 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bsc in xUbuntu_18.04/i586 In-Reply-To: References: Message-ID: <5c59fa67597a6_7f84b266008874be@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-bsc/xUbuntu_18.04/i586 Package network:osmocom:nightly/osmo-bsc failed to build in xUbuntu_18.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-bsc Last lines of build log: [ 212s] GSM48_IE_CHDES_2_AFTER [ 212s] gsm_04_08_rr.c:316:22: note: each undeclared identifier is reported only once for each function it appears in [ 212s] cc1: some warnings being treated as errors [ 212s] Makefile:627: recipe for target 'gsm_04_08_rr.o' failed [ 212s] make[4]: *** [gsm_04_08_rr.o] Error 1 [ 212s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/osmo-bsc' [ 212s] Makefile:409: recipe for target 'all-recursive' failed [ 212s] make[3]: *** [all-recursive] Error 1 [ 212s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 212s] Makefile:447: recipe for target 'all-recursive' failed [ 212s] make[2]: *** [all-recursive] Error 1 [ 212s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 212s] Makefile:379: recipe for target 'all' failed [ 212s] make[1]: *** [all] Error 2 [ 212s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 212s] dh_auto_build: make -j1 returned exit code 2 [ 212s] debian/rules:45: recipe for target 'build' failed [ 212s] make: *** [build] Error 2 [ 212s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 212s] [ 212s] lamb20 failed "build osmo-bsc_1.4.0.13.96376.dsc" at Tue Feb 5 21:04:02 UTC 2019. [ 212s] [ 212s] ### VM INTERACTION START ### [ 216s] [ 203.412218] sysrq: SysRq : Power Off [ 216s] [ 203.429826] reboot: Power down [ 216s] ### VM INTERACTION END ### [ 216s] [ 216s] lamb20 failed "build osmo-bsc_1.4.0.13.96376.dsc" at Tue Feb 5 21:04:07 UTC 2019. [ 216s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 21:04:30 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 21:04:30 +0000 Subject: Build failure of network:osmocom:nightly/osmo-bsc in Raspbian_9.0/armv7l In-Reply-To: References: Message-ID: <5c59fa688a688_7f84b266008875cc@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-bsc/Raspbian_9.0/armv7l Package network:osmocom:nightly/osmo-bsc failed to build in Raspbian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-bsc Last lines of build log: [ 159s] ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 159s] gsm_04_08_rr.c:316:22: note: each undeclared identifier is reported only once for each function it appears in [ 159s] cc1: some warnings being treated as errors [ 159s] Makefile:627: recipe for target 'gsm_04_08_rr.o' failed [ 159s] make[4]: *** [gsm_04_08_rr.o] Error 1 [ 159s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/osmo-bsc' [ 159s] Makefile:409: recipe for target 'all-recursive' failed [ 159s] make[3]: *** [all-recursive] Error 1 [ 159s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 159s] Makefile:447: recipe for target 'all-recursive' failed [ 159s] make[2]: *** [all-recursive] Error 1 [ 159s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 159s] Makefile:379: recipe for target 'all' failed [ 159s] make[1]: *** [all] Error 2 [ 159s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 159s] dh_auto_build: make -j1 returned exit code 2 [ 159s] debian/rules:45: recipe for target 'build' failed [ 159s] make: *** [build] Error 2 [ 159s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 159s] [ 159s] armbuild04 failed "build osmo-bsc_1.4.0.13.96376.dsc" at Tue Feb 5 21:04:16 UTC 2019. [ 159s] [ 159s] ### VM INTERACTION START ### [ 162s] [ 137.332655] SysRq : Power Off [ 162s] [ 137.343692] reboot: Power down [ 162s] ### VM INTERACTION END ### [ 162s] [ 162s] armbuild04 failed "build osmo-bsc_1.4.0.13.96376.dsc" at Tue Feb 5 21:04:19 UTC 2019. [ 162s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 21:06:13 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 21:06:13 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Raspbian_9.0/armv7l In-Reply-To: References: Message-ID: <5c59fadfd5bb9_7f84b2660088807d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Raspbian_9.0/armv7l Package network:osmocom:nightly/osmo-msc failed to build in Raspbian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 139s] #include [ 139s] ^ [ 139s] compilation terminated. [ 139s] Makefile:518: recipe for target 'sgs_server.o' failed [ 139s] make[4]: *** [sgs_server.o] Error 1 [ 139s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/libmsc' [ 139s] Makefile:424: recipe for target 'all-recursive' failed [ 139s] make[3]: *** [all-recursive] Error 1 [ 139s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 139s] Makefile:464: recipe for target 'all-recursive' failed [ 139s] make[2]: *** [all-recursive] Error 1 [ 139s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 139s] Makefile:396: recipe for target 'all' failed [ 139s] make[1]: *** [all] Error 2 [ 139s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 139s] dh_auto_build: make -j1 returned exit code 2 [ 139s] debian/rules:45: recipe for target 'build' failed [ 139s] make: *** [build] Error 2 [ 139s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 139s] [ 139s] armbuild01 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 21:06:02 UTC 2019. [ 139s] [ 139s] ### VM INTERACTION START ### [ 142s] [ 117.450051] SysRq : Power Off [ 142s] [ 117.451685] reboot: Power down [ 142s] ### VM INTERACTION END ### [ 142s] [ 142s] armbuild01 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 21:06:05 UTC 2019. [ 142s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 21:06:13 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 21:06:13 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_18.04/i586 In-Reply-To: References: Message-ID: <5c59fae1143e_7f84b2660088818@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_18.04/i586 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_18.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 169s] #include [ 169s] ^~~~~~~~~~~~~~~~ [ 169s] compilation terminated. [ 169s] Makefile:518: recipe for target 'sgs_server.o' failed [ 169s] make[4]: *** [sgs_server.o] Error 1 [ 169s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/libmsc' [ 169s] Makefile:424: recipe for target 'all-recursive' failed [ 169s] make[3]: *** [all-recursive] Error 1 [ 169s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 169s] Makefile:464: recipe for target 'all-recursive' failed [ 169s] make[2]: *** [all-recursive] Error 1 [ 169s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 169s] Makefile:396: recipe for target 'all' failed [ 169s] make[1]: *** [all] Error 2 [ 169s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 169s] dh_auto_build: make -j1 returned exit code 2 [ 169s] debian/rules:45: recipe for target 'build' failed [ 169s] make: *** [build] Error 2 [ 169s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 169s] [ 169s] cloud111 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 21:06:06 UTC 2019. [ 169s] [ 169s] ### VM INTERACTION START ### [ 172s] [ 151.985503] sysrq: SysRq : Power Off [ 172s] [ 151.998789] reboot: Power down [ 174s] ### VM INTERACTION END ### [ 174s] [ 174s] cloud111 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 21:06:11 UTC 2019. [ 174s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 21:06:30 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 21:06:30 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5c59fae1e4743_7f84b26600888266@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_9.0/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 113s] #include [ 113s] ^ [ 113s] compilation terminated. [ 113s] Makefile:518: recipe for target 'sgs_server.o' failed [ 113s] make[4]: *** [sgs_server.o] Error 1 [ 113s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/libmsc' [ 113s] Makefile:424: recipe for target 'all-recursive' failed [ 113s] make[3]: *** [all-recursive] Error 1 [ 113s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 113s] Makefile:464: recipe for target 'all-recursive' failed [ 113s] make[2]: *** [all-recursive] Error 1 [ 113s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 113s] Makefile:396: recipe for target 'all' failed [ 113s] make[1]: *** [all] Error 2 [ 113s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 113s] dh_auto_build: make -j1 returned exit code 2 [ 113s] debian/rules:45: recipe for target 'build' failed [ 113s] make: *** [build] Error 2 [ 113s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 113s] [ 113s] morla5 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 21:06:11 UTC 2019. [ 113s] [ 113s] ### VM INTERACTION START ### [ 116s] [ 102.357955] sysrq: SysRq : Power Off [ 116s] [ 102.406231] reboot: Power down [ 117s] ### VM INTERACTION END ### [ 117s] [ 117s] morla5 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 21:06:16 UTC 2019. [ 117s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 21:08:30 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 21:08:30 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5c59fb54c2161_7f84b266008886f9@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_9.0/armv7l Package network:osmocom:nightly/osmo-msc failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 155s] #include [ 155s] ^ [ 155s] compilation terminated. [ 155s] Makefile:518: recipe for target 'sgs_server.o' failed [ 155s] make[4]: *** [sgs_server.o] Error 1 [ 155s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/libmsc' [ 155s] Makefile:424: recipe for target 'all-recursive' failed [ 155s] make[3]: *** [all-recursive] Error 1 [ 155s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 155s] Makefile:464: recipe for target 'all-recursive' failed [ 155s] make[2]: *** [all-recursive] Error 1 [ 155s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 155s] Makefile:396: recipe for target 'all' failed [ 155s] make[1]: *** [all] Error 2 [ 155s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 155s] dh_auto_build: make -j1 returned exit code 2 [ 155s] debian/rules:45: recipe for target 'build' failed [ 155s] make: *** [build] Error 2 [ 155s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 155s] [ 155s] armbuild02 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 21:08:16 UTC 2019. [ 155s] [ 155s] ### VM INTERACTION START ### [ 158s] [ 130.787800] SysRq : Power Off [ 158s] [ 130.789521] reboot: Power down [ 158s] ### VM INTERACTION END ### [ 158s] [ 158s] armbuild02 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 21:08:20 UTC 2019. [ 158s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 21:09:56 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 21:09:56 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_16.04/x86_64 In-Reply-To: References: Message-ID: <5c59fbb160c06_7f84b2660088906e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_16.04/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_16.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 97s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o sgs_server.o sgs_server.c [ 97s] sgs_server.c:28:26: fatal error: netinet/sctp.h: No such file or directory [ 97s] compilation terminated. [ 97s] Makefile:518: recipe for target 'sgs_server.o' failed [ 97s] make[4]: *** [sgs_server.o] Error 1 [ 97s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/libmsc' [ 97s] Makefile:424: recipe for target 'all-recursive' failed [ 97s] make[3]: *** [all-recursive] Error 1 [ 97s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 97s] Makefile:464: recipe for target 'all-recursive' failed [ 97s] make[2]: *** [all-recursive] Error 1 [ 97s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 97s] Makefile:396: recipe for target 'all' failed [ 97s] make[1]: *** [all] Error 2 [ 97s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 97s] dh_auto_build: make -j1 returned exit code 2 [ 97s] debian/rules:45: recipe for target 'build' failed [ 97s] make: *** [build] Error 2 [ 97s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 97s] [ 97s] lamb04 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 21:09:51 UTC 2019. [ 97s] [ 97s] ### VM INTERACTION START ### [ 100s] [ 89.408145] sysrq: SysRq : Power Off [ 100s] [ 89.413687] reboot: Power down [ 100s] ### VM INTERACTION END ### [ 100s] [ 100s] lamb04 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 21:09:55 UTC 2019. [ 100s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 21:11:39 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 21:11:39 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_17.10/x86_64 In-Reply-To: References: Message-ID: <5c59fc292f915_7f84b266008894b2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_17.10/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_17.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 188s] #include [ 188s] ^~~~~~~~~~~~~~~~ [ 188s] compilation terminated. [ 188s] Makefile:518: recipe for target 'sgs_server.o' failed [ 188s] make[4]: *** [sgs_server.o] Error 1 [ 188s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/libmsc' [ 188s] Makefile:424: recipe for target 'all-recursive' failed [ 188s] make[3]: *** [all-recursive] Error 1 [ 188s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 188s] Makefile:464: recipe for target 'all-recursive' failed [ 188s] make[2]: *** [all-recursive] Error 1 [ 188s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 188s] Makefile:396: recipe for target 'all' failed [ 188s] make[1]: *** [all] Error 2 [ 188s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 188s] dh_auto_build: make -j1 returned exit code 2 [ 188s] debian/rules:45: recipe for target 'build' failed [ 188s] make: *** [build] Error 2 [ 188s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 188s] [ 188s] lamb24 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 21:11:31 UTC 2019. [ 188s] [ 188s] ### VM INTERACTION START ### [ 192s] [ 176.889964] sysrq: SysRq : Power Off [ 192s] [ 176.932708] reboot: Power down [ 192s] ### VM INTERACTION END ### [ 192s] [ 192s] lamb24 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 21:11:36 UTC 2019. [ 192s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 21:20:30 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 21:20:30 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_18.10/x86_64 In-Reply-To: References: Message-ID: <5c59fe25ccac4_7f84b2660089043c@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_18.10/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_18.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 134s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=null-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o osmo_msc.o osmo_msc.c [ 134s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=null-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o ctrl_commands.o ctrl_commands.c [ 134s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=null-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o sgs_iface.o sgs_iface.c [ 135s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=null-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o sgs_server.o sgs_server.c [ 135s] sgs_server.c:28:10: fatal error: netinet/sctp.h: No such file or directory [ 135s] #include [ 135s] ^~~~~~~~~~~~~~~~ [ 135s] compilation terminated. [ 135s] make[4]: *** [Makefile:542: sgs_server.o] Error 1 [ 135s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/libmsc' [ 135s] make[3]: *** [Makefile:424: all-recursive] Error 1 [ 135s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 135s] make[2]: *** [Makefile:464: all-recursive] Error 1 [ 135s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 135s] make[1]: *** [Makefile:396: all] Error 2 [ 135s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 135s] dh_auto_build: make -j1 returned exit code 2 [ 135s] make: *** [debian/rules:45: build] Error 2 [ 135s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 135s] [ 135s] lamb11 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 21:20:23 UTC 2019. [ 135s] [ 135s] ### VM INTERACTION START ### [ 138s] [ 125.523110] sysrq: SysRq : Power Off [ 138s] [ 125.532726] reboot: Power down [ 138s] ### VM INTERACTION END ### [ 138s] [ 138s] lamb11 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 21:20:27 UTC 2019. [ 138s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 5 21:24:13 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 05 Feb 2019 21:24:13 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <5c59ff184e8b7_7f84b266008911b8@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_18.04/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 357s] #include [ 357s] ^~~~~~~~~~~~~~~~ [ 357s] compilation terminated. [ 357s] Makefile:518: recipe for target 'sgs_server.o' failed [ 357s] make[4]: *** [sgs_server.o] Error 1 [ 357s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/libmsc' [ 357s] Makefile:424: recipe for target 'all-recursive' failed [ 357s] make[3]: *** [all-recursive] Error 1 [ 357s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 357s] Makefile:464: recipe for target 'all-recursive' failed [ 357s] make[2]: *** [all-recursive] Error 1 [ 357s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 357s] Makefile:396: recipe for target 'all' failed [ 357s] make[1]: *** [all] Error 2 [ 357s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 357s] dh_auto_build: make -j1 returned exit code 2 [ 357s] debian/rules:45: recipe for target 'build' failed [ 357s] make: *** [build] Error 2 [ 357s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 357s] [ 357s] lamb62 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 21:24:07 UTC 2019. [ 357s] [ 357s] ### VM INTERACTION START ### [ 360s] [ 336.842064] sysrq: SysRq : Power Off [ 360s] [ 336.848483] reboot: Power down [ 360s] ### VM INTERACTION END ### [ 360s] [ 360s] lamb62 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Tue Feb 5 21:24:11 UTC 2019. [ 360s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Wed Feb 6 00:17:50 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Wed, 6 Feb 2019 00:17:50 +0000 Subject: Change in libosmocore[master]: platform independence fix: tdef range tests Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/12841 Change subject: platform independence fix: tdef range tests ...................................................................... platform independence fix: tdef range tests Run INT_MAX and ULONG_MAX related tests only manually, remove from automatic testing. This will hopefully fix recent build failures on various platforms. Add a 64 bit output example for expected results when invoking `./tdef_test range'. This is not checked automatically and merely serves for manual reference. Change-Id: I6242243bde1d7ddebb858512a1f0b07f4ec3e5c2 --- M tests/Makefile.am M tests/tdef/tdef_test.c M tests/tdef/tdef_test.ok A tests/tdef/tdef_test_range_64bit.ok 4 files changed, 457 insertions(+), 100 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/41/12841/1 diff --git a/tests/Makefile.am b/tests/Makefile.am index 54fb11f..63f3959 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -300,6 +300,7 @@ oap/oap_client_test.ok oap/oap_client_test.err \ vty/vty_transcript_test.vty \ tdef/tdef_test.ok \ + tdef/tdef_test_range_64bit.ok \ tdef/tdef_vty_test_config_root.vty \ tdef/tdef_vty_test_config_subnode.vty \ tdef/tdef_vty_test_dynamic.vty \ diff --git a/tests/tdef/tdef_test.c b/tests/tdef/tdef_test.c index 682c7ac..c08a158 100644 --- a/tests/tdef/tdef_test.c +++ b/tests/tdef/tdef_test.c @@ -49,21 +49,12 @@ /* test conversions */ { .T=1000, .default_val=2*1000, .unit=OSMO_TDEF_MS, .desc="two seconds from ms" }, { .T=1001, .default_val=60*1000, .unit=OSMO_TDEF_MS, .desc="one minute from ms" }, - { .T=1002, .default_val=(ULONG_MAX/60), .unit=OSMO_TDEF_M, .desc="almost too many seconds" }, - { .T=1003, .default_val=ULONG_MAX, .unit=OSMO_TDEF_M, .desc="too many seconds" }, { .T=1004, .default_val=1, .unit=OSMO_TDEF_MS, .desc="one ms" }, { .T=1005, .default_val=0, .unit=OSMO_TDEF_MS, .desc="zero ms" }, { .T=1006, .default_val=0, .unit=OSMO_TDEF_S, .desc="zero s" }, { .T=1007, .default_val=0, .unit=OSMO_TDEF_M, .desc="zero m" }, { .T=1008, .default_val=0, .unit=OSMO_TDEF_CUSTOM, .desc="zero" }, - /* test range */ - { .T=INT_MAX, .default_val=ULONG_MAX, .unit=OSMO_TDEF_S, .desc="very large" }, - { .T=INT_MAX-1, .default_val=ULONG_MAX-1, .unit=OSMO_TDEF_S, .desc="very large" }, - { .T=INT_MAX-2, .default_val=LONG_MAX, .unit=OSMO_TDEF_S, .desc="very large" }, - { .T=INT_MAX-3, .default_val=ULONG_MAX, .unit=OSMO_TDEF_M, .desc="very large in minutes" }, - { .T=INT_MIN, .default_val=ULONG_MAX, .unit=OSMO_TDEF_S, .desc="negative" }, - { .T=0, .default_val=1, .unit=OSMO_TDEF_CUSTOM, .desc="zero" }, /* no desc */ @@ -72,13 +63,26 @@ {} // <-- important! last entry shall be zero }; -#define print_tdef_get(T, AS_UNIT) do { \ - unsigned long val = osmo_tdef_get(tdefs, T, AS_UNIT, 999); \ +static struct osmo_tdef tdefs_range[] = { + { .T=1002, .default_val=(ULONG_MAX/60), .unit=OSMO_TDEF_M, .desc="almost too many seconds" }, + { .T=1003, .default_val=ULONG_MAX, .unit=OSMO_TDEF_M, .desc="too many seconds" }, + + { .T=INT_MAX, .default_val=ULONG_MAX, .unit=OSMO_TDEF_S, .desc="very large" }, + { .T=INT_MAX-1, .default_val=ULONG_MAX-1, .unit=OSMO_TDEF_S, .desc="very large" }, + { .T=INT_MAX-2, .default_val=LONG_MAX, .unit=OSMO_TDEF_S, .desc="very large" }, + { .T=INT_MAX-3, .default_val=ULONG_MAX, .unit=OSMO_TDEF_M, .desc="very large in minutes" }, + { .T=INT_MIN, .default_val=ULONG_MAX, .unit=OSMO_TDEF_S, .desc="negative" }, + + {} +}; + +#define print_tdef_get(TDEFS, T, AS_UNIT) do { \ + unsigned long val = osmo_tdef_get(TDEFS, T, AS_UNIT, 999); \ printf("osmo_tdef_get(tdefs, %d, %s, 999)\t= %lu\n", T, osmo_tdef_unit_name(AS_UNIT), val); \ } while (0) -#define print_tdef_get_short(T, AS_UNIT) do { \ - unsigned long val = osmo_tdef_get(tdefs, T, AS_UNIT, 999); \ +#define print_tdef_get_short(TDEFS, T, AS_UNIT) do { \ + unsigned long val = osmo_tdef_get(TDEFS, T, AS_UNIT, 999); \ printf("osmo_tdef_get(%d, %s)\t= %lu\n", T, osmo_tdef_unit_name(AS_UNIT), val); \ } while (0) @@ -95,7 +99,7 @@ printf("\n"); } -static void test_tdef_get() +static void test_tdef_get(bool test_range) { int i; enum osmo_tdef_unit as_unit; @@ -108,7 +112,18 @@ unsigned int T = tdefs[i].T; print_tdef_info(T); for (as_unit = OSMO_TDEF_S; as_unit <= OSMO_TDEF_CUSTOM; as_unit++) { - print_tdef_get_short(T, as_unit); + print_tdef_get_short(tdefs, T, as_unit); + } + } + + if (!test_range) + return; + + for (i = 0; i < ARRAY_SIZE(tdefs_range)-1; i++) { + unsigned int T = tdefs_range[i].T; + print_tdef_info(T); + for (as_unit = OSMO_TDEF_S; as_unit <= OSMO_TDEF_CUSTOM; as_unit++) { + print_tdef_get_short(tdefs_range, T, as_unit); } } } @@ -117,10 +132,10 @@ { printf("\n%s()\n", __func__); - print_tdef_get(5, OSMO_TDEF_S); - print_tdef_get(5, OSMO_TDEF_MS); - print_tdef_get(5, OSMO_TDEF_M); - print_tdef_get(5, OSMO_TDEF_CUSTOM); + print_tdef_get(tdefs, 5, OSMO_TDEF_S); + print_tdef_get(tdefs, 5, OSMO_TDEF_MS); + print_tdef_get(tdefs, 5, OSMO_TDEF_M); + print_tdef_get(tdefs, 5, OSMO_TDEF_CUSTOM); } static void test_tdef_set_and_get() @@ -132,23 +147,23 @@ printf("setting 7 = 42\n"); t->val = 42; print_tdef_info(7); - print_tdef_get_short(7, OSMO_TDEF_MS); - print_tdef_get_short(7, OSMO_TDEF_S); - print_tdef_get_short(7, OSMO_TDEF_M); - print_tdef_get_short(7, OSMO_TDEF_CUSTOM); + print_tdef_get_short(tdefs, 7, OSMO_TDEF_MS); + print_tdef_get_short(tdefs, 7, OSMO_TDEF_S); + print_tdef_get_short(tdefs, 7, OSMO_TDEF_M); + print_tdef_get_short(tdefs, 7, OSMO_TDEF_CUSTOM); printf("setting 7 = 420\n"); t->val = 420; print_tdef_info(7); - print_tdef_get_short(7, OSMO_TDEF_MS); - print_tdef_get_short(7, OSMO_TDEF_S); - print_tdef_get_short(7, OSMO_TDEF_M); - print_tdef_get_short(7, OSMO_TDEF_CUSTOM); + print_tdef_get_short(tdefs, 7, OSMO_TDEF_MS); + print_tdef_get_short(tdefs, 7, OSMO_TDEF_S); + print_tdef_get_short(tdefs, 7, OSMO_TDEF_M); + print_tdef_get_short(tdefs, 7, OSMO_TDEF_CUSTOM); printf("resetting\n"); osmo_tdefs_reset(tdefs); print_tdef_info(7); - print_tdef_get_short(7, OSMO_TDEF_S); + print_tdef_get_short(tdefs, 7, OSMO_TDEF_S); } enum test_tdef_fsm_states { @@ -306,7 +321,7 @@ } -#define test_tdef_fsm_state_chg(NEXT_STATE) do { \ +#define test_tdef_fsm_state_chg(tdefs, NEXT_STATE) do { \ const struct osmo_tdef_state_timeout *st = osmo_tdef_get_state_timeout(NEXT_STATE, \ test_tdef_state_timeouts); \ if (!st) { \ @@ -329,7 +344,6 @@ static void test_tdef_state_timeout(bool test_range) { struct osmo_fsm_inst *fi; - struct osmo_tdef *m = osmo_tdef_get_entry(tdefs, INT_MAX); unsigned long m_secs; printf("\n%s()\n", __func__); @@ -341,51 +355,57 @@ OSMO_ASSERT(fi); print_fsm_state(fi); - test_tdef_fsm_state_chg(S_A); - test_tdef_fsm_state_chg(S_B); - test_tdef_fsm_state_chg(S_C); - test_tdef_fsm_state_chg(S_D); + test_tdef_fsm_state_chg(tdefs, S_A); + test_tdef_fsm_state_chg(tdefs, S_B); + test_tdef_fsm_state_chg(tdefs, S_C); + test_tdef_fsm_state_chg(tdefs, S_D); - test_tdef_fsm_state_chg(S_G); - test_tdef_fsm_state_chg(S_H); - test_tdef_fsm_state_chg(S_I); - test_tdef_fsm_state_chg(S_J); + test_tdef_fsm_state_chg(tdefs, S_G); + test_tdef_fsm_state_chg(tdefs, S_H); + test_tdef_fsm_state_chg(tdefs, S_I); + test_tdef_fsm_state_chg(tdefs, S_J); printf("- test keep_timer:\n"); fake_time_passes(123, 45678); print_fsm_state(fi); - test_tdef_fsm_state_chg(S_K); - test_tdef_fsm_state_chg(S_A); + test_tdef_fsm_state_chg(tdefs, S_K); + test_tdef_fsm_state_chg(tdefs, S_A); fake_time_passes(23, 45678); print_fsm_state(fi); - test_tdef_fsm_state_chg(S_K); + test_tdef_fsm_state_chg(tdefs, S_K); - test_tdef_fsm_state_chg(S_A); + test_tdef_fsm_state_chg(tdefs, S_A); fake_time_passes(23, 45678); print_fsm_state(fi); - test_tdef_fsm_state_chg(S_L); - - printf("- test large T:\n"); - test_tdef_fsm_state_chg(S_M); - - printf("- test T<0:\n"); - test_tdef_fsm_state_chg(S_N); + test_tdef_fsm_state_chg(tdefs, S_L); printf("- test T=0:\n"); - test_tdef_fsm_state_chg(S_O); + test_tdef_fsm_state_chg(tdefs, S_O); printf("- test no timer:\n"); - test_tdef_fsm_state_chg(S_X); + test_tdef_fsm_state_chg(tdefs, S_X); printf("- test undefined timer, using default_val arg of osmo_tdef_fsm_inst_state_chg(), here passed as 999:\n"); - test_tdef_fsm_state_chg(S_Y); + test_tdef_fsm_state_chg(tdefs, S_Y); /* the range of unsigned long is architecture dependent. This test can be invoked manually to see whether * clamping the timeout values works, but the output will be of varying lengths depending on the system's * unsigned long range, and would cause differences in expected output. */ if (test_range) { + struct osmo_tdef *m; + + printf("- test large T:\n"); + test_tdef_fsm_state_chg(tdefs_range, S_M); + + printf("- test T<0:\n"); + test_tdef_fsm_state_chg(tdefs_range, S_N); + printf("- test range:\n"); - test_tdef_fsm_state_chg(S_M); + test_tdef_fsm_state_chg(tdefs_range, S_M); + + m = osmo_tdef_get_entry(tdefs_range, INT_MAX); + OSMO_ASSERT(m); + /* sweep through all the bits, shifting in 0xfffff.. from the right. */ m_secs = 0; do { @@ -408,19 +428,19 @@ } m->val = m_secs - 1; - test_tdef_fsm_state_chg(S_M); + test_tdef_fsm_state_chg(tdefs_range, S_M); m->val = m_secs; - test_tdef_fsm_state_chg(S_M); + test_tdef_fsm_state_chg(tdefs_range, S_M); m->val = m_secs + 1; - test_tdef_fsm_state_chg(S_M); + test_tdef_fsm_state_chg(tdefs_range, S_M); } while (m_secs < ULONG_MAX); } printf("- test disallowed transition:\n"); - test_tdef_fsm_state_chg(S_Z); - test_tdef_fsm_state_chg(S_B); - test_tdef_fsm_state_chg(S_C); - test_tdef_fsm_state_chg(S_D); + test_tdef_fsm_state_chg(tdefs, S_Z); + test_tdef_fsm_state_chg(tdefs, S_B); + test_tdef_fsm_state_chg(tdefs, S_C); + test_tdef_fsm_state_chg(tdefs, S_D); } int main(int argc, char **argv) @@ -434,7 +454,7 @@ osmo_fsm_register(&test_tdef_fsm); - test_tdef_get(); + test_tdef_get(argc > 1); test_tdef_get_nonexisting(); test_tdef_set_and_get(); /* Run range test iff any argument is passed on the cmdline. For the rationale, see the comment in diff --git a/tests/tdef/tdef_test.ok b/tests/tdef/tdef_test.ok index cf4b77f..be355d7 100644 --- a/tests/tdef/tdef_test.ok +++ b/tests/tdef/tdef_test.ok @@ -50,16 +50,6 @@ osmo_tdef_get(1001, ms) = 60000 osmo_tdef_get(1001, m) = 1 osmo_tdef_get(1001, custom-unit) = 60000 -T1002=307445734561825860m -osmo_tdef_get(1002, s) = 18446744073709551600 -osmo_tdef_get(1002, ms) = 18446744073709551615 -osmo_tdef_get(1002, m) = 307445734561825860 -osmo_tdef_get(1002, custom-unit) = 307445734561825860 -T1003=18446744073709551615m -osmo_tdef_get(1003, s) = 18446744073709551615 -osmo_tdef_get(1003, ms) = 18446744073709551615 -osmo_tdef_get(1003, m) = 18446744073709551615 -osmo_tdef_get(1003, custom-unit) = 18446744073709551615 T1004=1ms osmo_tdef_get(1004, s) = 1 osmo_tdef_get(1004, ms) = 1 @@ -85,31 +75,6 @@ osmo_tdef_get(1008, ms) = 0 osmo_tdef_get(1008, m) = 0 osmo_tdef_get(1008, custom-unit) = 0 -T2147483647=18446744073709551615s -osmo_tdef_get(2147483647, s) = 18446744073709551615 -osmo_tdef_get(2147483647, ms) = 18446744073709551615 -osmo_tdef_get(2147483647, m) = 307445734561825861 -osmo_tdef_get(2147483647, custom-unit) = 18446744073709551615 -T2147483646=18446744073709551614s -osmo_tdef_get(2147483646, s) = 18446744073709551614 -osmo_tdef_get(2147483646, ms) = 18446744073709551615 -osmo_tdef_get(2147483646, m) = 307445734561825861 -osmo_tdef_get(2147483646, custom-unit) = 18446744073709551614 -T2147483645=9223372036854775807s -osmo_tdef_get(2147483645, s) = 9223372036854775807 -osmo_tdef_get(2147483645, ms) = 18446744073709551615 -osmo_tdef_get(2147483645, m) = 153722867280912931 -osmo_tdef_get(2147483645, custom-unit) = 9223372036854775807 -T2147483644=18446744073709551615m -osmo_tdef_get(2147483644, s) = 18446744073709551615 -osmo_tdef_get(2147483644, ms) = 18446744073709551615 -osmo_tdef_get(2147483644, m) = 18446744073709551615 -osmo_tdef_get(2147483644, custom-unit) = 18446744073709551615 -T-2147483648=18446744073709551615s -osmo_tdef_get(-2147483648, s) = 18446744073709551615 -osmo_tdef_get(-2147483648, ms) = 18446744073709551615 -osmo_tdef_get(-2147483648, m) = 307445734561825861 -osmo_tdef_get(-2147483648, custom-unit) = 18446744073709551615 T0=1custom-unit osmo_tdef_get(0, s) = 1 osmo_tdef_get(0, ms) = 1 @@ -167,10 +132,6 @@ Total time passed: 169.137034 s state=A T=1, 76.954322 s remaining --> L (configured as T123(keep_timer) 1 s) rc=0; state=L T=123, 76.954322 s remaining -- test large T: - --> M (configured as T2147483647 18446744073709551615 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining -- test T<0: - --> N (configured as T-2147483648 18446744073709551615 s) rc=0; state=N T=-2147483648, 2147483647.000000 s remaining - test T=0: --> O (no timer configured for this state) - test no timer: diff --git a/tests/tdef/tdef_test_range_64bit.ok b/tests/tdef/tdef_test_range_64bit.ok new file mode 100644 index 0000000..bd104b6 --- /dev/null +++ b/tests/tdef/tdef_test_range_64bit.ok @@ -0,0 +1,375 @@ + +test_tdef_get() +T1=100s +osmo_tdef_get(1, s) = 100 +osmo_tdef_get(1, ms) = 100000 +osmo_tdef_get(1, m) = 2 +osmo_tdef_get(1, custom-unit) = 100 +T2=100ms +osmo_tdef_get(2, s) = 1 +osmo_tdef_get(2, ms) = 100 +osmo_tdef_get(2, m) = 1 +osmo_tdef_get(2, custom-unit) = 100 +T3=100m +osmo_tdef_get(3, s) = 6000 +osmo_tdef_get(3, ms) = 6000000 +osmo_tdef_get(3, m) = 100 +osmo_tdef_get(3, custom-unit) = 100 +T4=100custom-unit +osmo_tdef_get(4, s) = 100 +osmo_tdef_get(4, ms) = 100 +osmo_tdef_get(4, m) = 100 +osmo_tdef_get(4, custom-unit) = 100 +T7=50s +osmo_tdef_get(7, s) = 50 +osmo_tdef_get(7, ms) = 50000 +osmo_tdef_get(7, m) = 1 +osmo_tdef_get(7, custom-unit) = 50 +T8=300s +osmo_tdef_get(8, s) = 300 +osmo_tdef_get(8, ms) = 300000 +osmo_tdef_get(8, m) = 5 +osmo_tdef_get(8, custom-unit) = 300 +T9=5m +osmo_tdef_get(9, s) = 300 +osmo_tdef_get(9, ms) = 300000 +osmo_tdef_get(9, m) = 5 +osmo_tdef_get(9, custom-unit) = 5 +T10=20m +osmo_tdef_get(10, s) = 1200 +osmo_tdef_get(10, ms) = 1200000 +osmo_tdef_get(10, m) = 20 +osmo_tdef_get(10, custom-unit) = 20 +T1000=2000ms +osmo_tdef_get(1000, s) = 2 +osmo_tdef_get(1000, ms) = 2000 +osmo_tdef_get(1000, m) = 1 +osmo_tdef_get(1000, custom-unit) = 2000 +T1001=60000ms +osmo_tdef_get(1001, s) = 60 +osmo_tdef_get(1001, ms) = 60000 +osmo_tdef_get(1001, m) = 1 +osmo_tdef_get(1001, custom-unit) = 60000 +T1004=1ms +osmo_tdef_get(1004, s) = 1 +osmo_tdef_get(1004, ms) = 1 +osmo_tdef_get(1004, m) = 1 +osmo_tdef_get(1004, custom-unit) = 1 +T1005=0ms +osmo_tdef_get(1005, s) = 0 +osmo_tdef_get(1005, ms) = 0 +osmo_tdef_get(1005, m) = 0 +osmo_tdef_get(1005, custom-unit) = 0 +T1006=0s +osmo_tdef_get(1006, s) = 0 +osmo_tdef_get(1006, ms) = 0 +osmo_tdef_get(1006, m) = 0 +osmo_tdef_get(1006, custom-unit) = 0 +T1007=0m +osmo_tdef_get(1007, s) = 0 +osmo_tdef_get(1007, ms) = 0 +osmo_tdef_get(1007, m) = 0 +osmo_tdef_get(1007, custom-unit) = 0 +T1008=0custom-unit +osmo_tdef_get(1008, s) = 0 +osmo_tdef_get(1008, ms) = 0 +osmo_tdef_get(1008, m) = 0 +osmo_tdef_get(1008, custom-unit) = 0 +T0=1custom-unit +osmo_tdef_get(0, s) = 1 +osmo_tdef_get(0, ms) = 1 +osmo_tdef_get(0, m) = 1 +osmo_tdef_get(0, custom-unit) = 1 +T123=1s +osmo_tdef_get(123, s) = 1 +osmo_tdef_get(123, ms) = 1000 +osmo_tdef_get(123, m) = 1 +osmo_tdef_get(123, custom-unit) = 1 +T1002=NULLosmo_tdef_get(1002, s) = 0 +osmo_tdef_get(1002, ms) = 0 +osmo_tdef_get(1002, m) = 0 +osmo_tdef_get(1002, custom-unit) = 0 +T1003=NULLosmo_tdef_get(1003, s) = 0 +osmo_tdef_get(1003, ms) = 0 +osmo_tdef_get(1003, m) = 0 +osmo_tdef_get(1003, custom-unit) = 0 +T2147483647=NULLosmo_tdef_get(2147483647, s) = 0 +osmo_tdef_get(2147483647, ms) = 0 +osmo_tdef_get(2147483647, m) = 0 +osmo_tdef_get(2147483647, custom-unit) = 0 +T2147483646=NULLosmo_tdef_get(2147483646, s) = 0 +osmo_tdef_get(2147483646, ms) = 0 +osmo_tdef_get(2147483646, m) = 0 +osmo_tdef_get(2147483646, custom-unit) = 0 +T2147483645=NULLosmo_tdef_get(2147483645, s) = 0 +osmo_tdef_get(2147483645, ms) = 0 +osmo_tdef_get(2147483645, m) = 0 +osmo_tdef_get(2147483645, custom-unit) = 0 +T2147483644=NULLosmo_tdef_get(2147483644, s) = 0 +osmo_tdef_get(2147483644, ms) = 0 +osmo_tdef_get(2147483644, m) = 0 +osmo_tdef_get(2147483644, custom-unit) = 0 +T-2147483648=NULLosmo_tdef_get(-2147483648, s) = 0 +osmo_tdef_get(-2147483648, ms) = 0 +osmo_tdef_get(-2147483648, m) = 0 +osmo_tdef_get(-2147483648, custom-unit) = 0 + +test_tdef_get_nonexisting() +osmo_tdef_get(tdefs, 5, s, 999) = 999 +osmo_tdef_get(tdefs, 5, ms, 999) = 999 +osmo_tdef_get(tdefs, 5, m, 999) = 999 +osmo_tdef_get(tdefs, 5, custom-unit, 999) = 999 + +test_tdef_set_and_get() +setting 7 = 42 +T7=42s(def=50) +osmo_tdef_get(7, ms) = 42000 +osmo_tdef_get(7, s) = 42 +osmo_tdef_get(7, m) = 1 +osmo_tdef_get(7, custom-unit) = 42 +setting 7 = 420 +T7=420s(def=50) +osmo_tdef_get(7, ms) = 420000 +osmo_tdef_get(7, s) = 420 +osmo_tdef_get(7, m) = 7 +osmo_tdef_get(7, custom-unit) = 420 +resetting +T7=50s +osmo_tdef_get(7, s) = 50 + +test_tdef_state_timeout() +Total time passed: 0.000000 s +state=A T=0, no timeout + --> A (configured as T1 100 s) rc=0; state=A T=1, 100.000000 s remaining + --> B (configured as T2 100 ms) rc=0; state=B T=2, 1.000000 s remaining + --> C (configured as T3 100 m) rc=0; state=C T=3, 6000.000000 s remaining + --> D (configured as T4 100 custom-unit) rc=0; state=D T=4, 100.000000 s remaining + --> G (configured as T7 50 s) rc=0; state=G T=7, 50.000000 s remaining + --> H (configured as T8 300 s) rc=0; state=H T=8, 300.000000 s remaining + --> I (configured as T9 5 m) rc=0; state=I T=9, 300.000000 s remaining + --> J (configured as T10 20 m) rc=0; state=J T=10, 1200.000000 s remaining +- test keep_timer: +Total time passed: 123.045678 s +state=J T=10, 1076.954322 s remaining + --> K (configured as T0(keep_timer) 1 custom-unit) rc=0; state=K T=10, 1076.954322 s remaining + --> A (configured as T1 100 s) rc=0; state=A T=1, 100.000000 s remaining +Total time passed: 146.091356 s +state=A T=1, 76.954322 s remaining + --> K (configured as T0(keep_timer) 1 custom-unit) rc=0; state=K T=1, 76.954322 s remaining + --> A (configured as T1 100 s) rc=0; state=A T=1, 100.000000 s remaining +Total time passed: 169.137034 s +state=A T=1, 76.954322 s remaining + --> L (configured as T123(keep_timer) 1 s) rc=0; state=L T=123, 76.954322 s remaining +- test T=0: + --> O (no timer configured for this state) +- test no timer: + --> X (no timer configured for this state) +- test undefined timer, using default_val arg of osmo_tdef_fsm_inst_state_chg(), here passed as 999: + --> Y (configured as T666 18446744073709551615 -) rc=0; state=Y T=666, 999.000000 s remaining +- test large T: + --> M (configured as T2147483647 0 s) rc=0; state=M T=2147483647, no timeout +- test T<0: + --> N (configured as T-2147483648 0 s) rc=0; state=N T=-2147483648, no timeout +- test range: + --> M (configured as T2147483647 0 s) rc=0; state=M T=2147483647, no timeout + --> M (configured as T2147483647 0 s) rc=0; state=M T=2147483647, no timeout + --> M (configured as T2147483647 1 s) rc=0; state=M T=2147483647, 1.000000 s remaining + --> M (configured as T2147483647 2 s) rc=0; state=M T=2147483647, 2.000000 s remaining + --> M (configured as T2147483647 2 s) rc=0; state=M T=2147483647, 2.000000 s remaining + --> M (configured as T2147483647 3 s) rc=0; state=M T=2147483647, 3.000000 s remaining + --> M (configured as T2147483647 4 s) rc=0; state=M T=2147483647, 4.000000 s remaining + --> M (configured as T2147483647 6 s) rc=0; state=M T=2147483647, 6.000000 s remaining + --> M (configured as T2147483647 7 s) rc=0; state=M T=2147483647, 7.000000 s remaining + --> M (configured as T2147483647 8 s) rc=0; state=M T=2147483647, 8.000000 s remaining + --> M (configured as T2147483647 14 s) rc=0; state=M T=2147483647, 14.000000 s remaining + --> M (configured as T2147483647 15 s) rc=0; state=M T=2147483647, 15.000000 s remaining + --> M (configured as T2147483647 16 s) rc=0; state=M T=2147483647, 16.000000 s remaining + --> M (configured as T2147483647 30 s) rc=0; state=M T=2147483647, 30.000000 s remaining + --> M (configured as T2147483647 31 s) rc=0; state=M T=2147483647, 31.000000 s remaining + --> M (configured as T2147483647 32 s) rc=0; state=M T=2147483647, 32.000000 s remaining + --> M (configured as T2147483647 62 s) rc=0; state=M T=2147483647, 62.000000 s remaining + --> M (configured as T2147483647 63 s) rc=0; state=M T=2147483647, 63.000000 s remaining + --> M (configured as T2147483647 64 s) rc=0; state=M T=2147483647, 64.000000 s remaining + --> M (configured as T2147483647 126 s) rc=0; state=M T=2147483647, 126.000000 s remaining + --> M (configured as T2147483647 127 s) rc=0; state=M T=2147483647, 127.000000 s remaining + --> M (configured as T2147483647 128 s) rc=0; state=M T=2147483647, 128.000000 s remaining + --> M (configured as T2147483647 254 s) rc=0; state=M T=2147483647, 254.000000 s remaining + --> M (configured as T2147483647 255 s) rc=0; state=M T=2147483647, 255.000000 s remaining + --> M (configured as T2147483647 256 s) rc=0; state=M T=2147483647, 256.000000 s remaining + --> M (configured as T2147483647 510 s) rc=0; state=M T=2147483647, 510.000000 s remaining + --> M (configured as T2147483647 511 s) rc=0; state=M T=2147483647, 511.000000 s remaining + --> M (configured as T2147483647 512 s) rc=0; state=M T=2147483647, 512.000000 s remaining + --> M (configured as T2147483647 1022 s) rc=0; state=M T=2147483647, 1022.000000 s remaining + --> M (configured as T2147483647 1023 s) rc=0; state=M T=2147483647, 1023.000000 s remaining + --> M (configured as T2147483647 1024 s) rc=0; state=M T=2147483647, 1024.000000 s remaining + --> M (configured as T2147483647 2046 s) rc=0; state=M T=2147483647, 2046.000000 s remaining + --> M (configured as T2147483647 2047 s) rc=0; state=M T=2147483647, 2047.000000 s remaining + --> M (configured as T2147483647 2048 s) rc=0; state=M T=2147483647, 2048.000000 s remaining + --> M (configured as T2147483647 4094 s) rc=0; state=M T=2147483647, 4094.000000 s remaining + --> M (configured as T2147483647 4095 s) rc=0; state=M T=2147483647, 4095.000000 s remaining + --> M (configured as T2147483647 4096 s) rc=0; state=M T=2147483647, 4096.000000 s remaining + --> M (configured as T2147483647 8190 s) rc=0; state=M T=2147483647, 8190.000000 s remaining + --> M (configured as T2147483647 8191 s) rc=0; state=M T=2147483647, 8191.000000 s remaining + --> M (configured as T2147483647 8192 s) rc=0; state=M T=2147483647, 8192.000000 s remaining + --> M (configured as T2147483647 16382 s) rc=0; state=M T=2147483647, 16382.000000 s remaining + --> M (configured as T2147483647 16383 s) rc=0; state=M T=2147483647, 16383.000000 s remaining + --> M (configured as T2147483647 16384 s) rc=0; state=M T=2147483647, 16384.000000 s remaining +--- int32_t max --- + --> M (configured as T2147483647 32766 s) rc=0; state=M T=2147483647, 32766.000000 s remaining + --> M (configured as T2147483647 32767 s) rc=0; state=M T=2147483647, 32767.000000 s remaining + --> M (configured as T2147483647 32768 s) rc=0; state=M T=2147483647, 32768.000000 s remaining +--- uint32_t max --- + --> M (configured as T2147483647 65534 s) rc=0; state=M T=2147483647, 65534.000000 s remaining + --> M (configured as T2147483647 65535 s) rc=0; state=M T=2147483647, 65535.000000 s remaining + --> M (configured as T2147483647 65536 s) rc=0; state=M T=2147483647, 65536.000000 s remaining + --> M (configured as T2147483647 131070 s) rc=0; state=M T=2147483647, 131070.000000 s remaining + --> M (configured as T2147483647 131071 s) rc=0; state=M T=2147483647, 131071.000000 s remaining + --> M (configured as T2147483647 131072 s) rc=0; state=M T=2147483647, 131072.000000 s remaining + --> M (configured as T2147483647 262142 s) rc=0; state=M T=2147483647, 262142.000000 s remaining + --> M (configured as T2147483647 262143 s) rc=0; state=M T=2147483647, 262143.000000 s remaining + --> M (configured as T2147483647 262144 s) rc=0; state=M T=2147483647, 262144.000000 s remaining + --> M (configured as T2147483647 524286 s) rc=0; state=M T=2147483647, 524286.000000 s remaining + --> M (configured as T2147483647 524287 s) rc=0; state=M T=2147483647, 524287.000000 s remaining + --> M (configured as T2147483647 524288 s) rc=0; state=M T=2147483647, 524288.000000 s remaining + --> M (configured as T2147483647 1048574 s) rc=0; state=M T=2147483647, 1048574.000000 s remaining + --> M (configured as T2147483647 1048575 s) rc=0; state=M T=2147483647, 1048575.000000 s remaining + --> M (configured as T2147483647 1048576 s) rc=0; state=M T=2147483647, 1048576.000000 s remaining + --> M (configured as T2147483647 2097150 s) rc=0; state=M T=2147483647, 2097150.000000 s remaining + --> M (configured as T2147483647 2097151 s) rc=0; state=M T=2147483647, 2097151.000000 s remaining + --> M (configured as T2147483647 2097152 s) rc=0; state=M T=2147483647, 2097152.000000 s remaining + --> M (configured as T2147483647 4194302 s) rc=0; state=M T=2147483647, 4194302.000000 s remaining + --> M (configured as T2147483647 4194303 s) rc=0; state=M T=2147483647, 4194303.000000 s remaining + --> M (configured as T2147483647 4194304 s) rc=0; state=M T=2147483647, 4194304.000000 s remaining + --> M (configured as T2147483647 8388606 s) rc=0; state=M T=2147483647, 8388606.000000 s remaining + --> M (configured as T2147483647 8388607 s) rc=0; state=M T=2147483647, 8388607.000000 s remaining + --> M (configured as T2147483647 8388608 s) rc=0; state=M T=2147483647, 8388608.000000 s remaining + --> M (configured as T2147483647 16777214 s) rc=0; state=M T=2147483647, 16777214.000000 s remaining + --> M (configured as T2147483647 16777215 s) rc=0; state=M T=2147483647, 16777215.000000 s remaining + --> M (configured as T2147483647 16777216 s) rc=0; state=M T=2147483647, 16777216.000000 s remaining + --> M (configured as T2147483647 33554430 s) rc=0; state=M T=2147483647, 33554430.000000 s remaining + --> M (configured as T2147483647 33554431 s) rc=0; state=M T=2147483647, 33554431.000000 s remaining + --> M (configured as T2147483647 33554432 s) rc=0; state=M T=2147483647, 33554432.000000 s remaining + --> M (configured as T2147483647 67108862 s) rc=0; state=M T=2147483647, 67108862.000000 s remaining + --> M (configured as T2147483647 67108863 s) rc=0; state=M T=2147483647, 67108863.000000 s remaining + --> M (configured as T2147483647 67108864 s) rc=0; state=M T=2147483647, 67108864.000000 s remaining + --> M (configured as T2147483647 134217726 s) rc=0; state=M T=2147483647, 134217726.000000 s remaining + --> M (configured as T2147483647 134217727 s) rc=0; state=M T=2147483647, 134217727.000000 s remaining + --> M (configured as T2147483647 134217728 s) rc=0; state=M T=2147483647, 134217728.000000 s remaining + --> M (configured as T2147483647 268435454 s) rc=0; state=M T=2147483647, 268435454.000000 s remaining + --> M (configured as T2147483647 268435455 s) rc=0; state=M T=2147483647, 268435455.000000 s remaining + --> M (configured as T2147483647 268435456 s) rc=0; state=M T=2147483647, 268435456.000000 s remaining + --> M (configured as T2147483647 536870910 s) rc=0; state=M T=2147483647, 536870910.000000 s remaining + --> M (configured as T2147483647 536870911 s) rc=0; state=M T=2147483647, 536870911.000000 s remaining + --> M (configured as T2147483647 536870912 s) rc=0; state=M T=2147483647, 536870912.000000 s remaining + --> M (configured as T2147483647 1073741822 s) rc=0; state=M T=2147483647, 1073741822.000000 s remaining + --> M (configured as T2147483647 1073741823 s) rc=0; state=M T=2147483647, 1073741823.000000 s remaining + --> M (configured as T2147483647 1073741824 s) rc=0; state=M T=2147483647, 1073741824.000000 s remaining +--- int64_t max --- + --> M (configured as T2147483647 2147483646 s) rc=0; state=M T=2147483647, 2147483646.000000 s remaining + --> M (configured as T2147483647 2147483647 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 2147483648 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining +--- uint64_t max --- + --> M (configured as T2147483647 4294967294 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 4294967295 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 4294967296 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 8589934590 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 8589934591 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 8589934592 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 17179869182 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 17179869183 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 17179869184 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 34359738366 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 34359738367 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 34359738368 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 68719476734 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 68719476735 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 68719476736 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 137438953470 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 137438953471 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 137438953472 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 274877906942 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 274877906943 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 274877906944 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 549755813886 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 549755813887 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 549755813888 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 1099511627774 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 1099511627775 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 1099511627776 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 2199023255550 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 2199023255551 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 2199023255552 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 4398046511102 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 4398046511103 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 4398046511104 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 8796093022206 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 8796093022207 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 8796093022208 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 17592186044414 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 17592186044415 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 17592186044416 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 35184372088830 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 35184372088831 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 35184372088832 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 70368744177662 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 70368744177663 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 70368744177664 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 140737488355326 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 140737488355327 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 140737488355328 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 281474976710654 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 281474976710655 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 281474976710656 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 562949953421310 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 562949953421311 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 562949953421312 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 1125899906842622 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 1125899906842623 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 1125899906842624 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 2251799813685246 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 2251799813685247 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 2251799813685248 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 4503599627370494 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 4503599627370495 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 4503599627370496 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 9007199254740990 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 9007199254740991 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 9007199254740992 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 18014398509481982 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 18014398509481983 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 18014398509481984 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 36028797018963966 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 36028797018963967 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 36028797018963968 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 72057594037927934 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 72057594037927935 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 72057594037927936 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 144115188075855870 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 144115188075855871 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 144115188075855872 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 288230376151711742 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 288230376151711743 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 288230376151711744 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 576460752303423486 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 576460752303423487 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 576460752303423488 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 1152921504606846974 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 1152921504606846975 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 1152921504606846976 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 2305843009213693950 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 2305843009213693951 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 2305843009213693952 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 4611686018427387902 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 4611686018427387903 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 4611686018427387904 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 9223372036854775806 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 9223372036854775807 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 9223372036854775808 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 18446744073709551614 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 18446744073709551615 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 0 s) rc=0; state=M T=2147483647, no timeout +- test disallowed transition: + --> Z (no timer configured for this state) + --> B (configured as T2 100 ms) rc=0; state=B T=2, 1.000000 s remaining + --> C (configured as T3 100 m) rc=0; state=C T=3, 6000.000000 s remaining + --> D (configured as T4 100 custom-unit) rc=0; state=D T=4, 100.000000 s remaining -- To view, visit https://gerrit.osmocom.org/12841 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6242243bde1d7ddebb858512a1f0b07f4ec3e5c2 Gerrit-Change-Number: 12841 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 00:31:22 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Wed, 6 Feb 2019 00:31:22 +0000 Subject: Change in osmo-bsc[master]: comments: clarify usage of conn.assignment and .handover scopes Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/12842 Change subject: comments: clarify usage of conn.assignment and .handover scopes ...................................................................... comments: clarify usage of conn.assignment and .handover scopes Change-Id: I7ef602c3ce086aecbc3ae3ae6d3fd33ad2b9f85c --- M include/osmocom/bsc/gsm_data.h 1 file changed, 13 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/42/12842/1 diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 867a46c..389f9a5 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -99,6 +99,9 @@ SUBSCR_SCCP_ST_CONNECTED }; +/* Information retrieved during an Assignment Request from the MSC. This used as storage of the Assignment instructions + * parsed from the Assignment Request message, to pass on until the gscon and assignment FSMs have decided whether an + * Assignment is actually going to be carried out. Must remain unchanged after initial decoding. */ struct assignment_request { bool aoip; @@ -112,6 +115,9 @@ uint16_t s15_s0; }; +/* State of an ongoing Assignment, while the assignment_fsm is still busy. This serves as state separation to keep the + * currently used lchan and gscon unmodified until the outcome of an Assignment is known. If the Assignment fails, this + * state is simply discarded, and the gscon carries on with the original lchan remaining unchanged. */ struct assignment_fsm_data { struct assignment_request req; bool requires_voice_stream; @@ -204,12 +210,17 @@ /* back pointers */ struct gsm_network *network; - /* the primary / currently active lchan to the BTS/subscriber */ + /* the primary / currently active lchan to the BTS/subscriber. During Assignment and Handover, separate lchans + * are kept in the .assignment or .handover sub-structs, respectively, so that this lchan remains unaffected + * until Assignment or Handover have actually succeeded. */ struct gsm_lchan *lchan; + /* Only valid during an ongoing Assignment; might be overwritten at any time by a failed Assignment attempt. + * Once an Assignment was successful, all relevant state must be copied out of this sub-struct. */ struct assignment_fsm_data assignment; - /* handover information, if a handover is pending for this conn. */ + /* handover information, if a handover is pending for this conn. Valid only during an ongoing Handover + * operation. If a Handover was successful, all relevant state must be copied out of this sub-struct. */ struct handover ho; /* buffer/cache for classmark of the ME of the subscriber */ -- To view, visit https://gerrit.osmocom.org/12842 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I7ef602c3ce086aecbc3ae3ae6d3fd33ad2b9f85c Gerrit-Change-Number: 12842 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 00:31:48 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Wed, 6 Feb 2019 00:31:48 +0000 Subject: Change in osmo-bsc[master]: handover_fsm: do not access conn->assignment.req, it may be outdated In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/12734 ) Change subject: handover_fsm: do not access conn->assignment.req, it may be outdated ...................................................................... Patch Set 2: > Patch Set 1: > > >conn->assignment.* values are only valid during an ongoing assignment > > Maybe add clarifying comment next to them to make sure this mistake won't happen again? ack, i've now added https://gerrit.osmocom.org/#/c/osmo-bsc/+/12842 -- To view, visit https://gerrit.osmocom.org/12734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id8018fd9d56421f2ab7be91703018f6d6f21c929 Gerrit-Change-Number: 12734 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Max Gerrit-Comment-Date: Wed, 06 Feb 2019 00:31:48 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 00:39:01 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Wed, 6 Feb 2019 00:39:01 +0000 Subject: Change in libosmocore[master]: platform independence fix: tdef range tests In-Reply-To: References: Message-ID: Neels Hofmeyr has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/12841 ) Change subject: platform independence fix: tdef range tests ...................................................................... platform independence fix: tdef range tests Run INT_MAX and ULONG_MAX related tests only manually, remove from automatic testing. This will hopefully fix recent build failures on various platforms. Add a 64 bit output example for expected results when invoking `./tdef_test range'. This is not checked automatically and merely serves for manual reference. For vty tests, use 32bit max values instead of INT_MAX and ULONG_MAX. Change-Id: I6242243bde1d7ddebb858512a1f0b07f4ec3e5c2 --- M tests/Makefile.am M tests/tdef/tdef_test.c M tests/tdef/tdef_test.ok A tests/tdef/tdef_test_range_64bit.ok M tests/tdef/tdef_vty_test_config_root.c M tests/tdef/tdef_vty_test_config_root.vty M tests/tdef/tdef_vty_test_config_subnode.c M tests/tdef/tdef_vty_test_config_subnode.vty 8 files changed, 471 insertions(+), 114 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/41/12841/2 -- To view, visit https://gerrit.osmocom.org/12841 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I6242243bde1d7ddebb858512a1f0b07f4ec3e5c2 Gerrit-Change-Number: 12841 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-CC: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 00:48:58 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Wed, 6 Feb 2019 00:48:58 +0000 Subject: Change in libosmocore[master]: platform independence fix: tdef range tests In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12841 to look at the new patch set (#3). Change subject: platform independence fix: tdef range tests ...................................................................... platform independence fix: tdef range tests Run INT_MAX and ULONG_MAX related tests only manually, remove from automatic testing. This will hopefully fix recent build failures on various platforms. Add a 64 bit output example for expected results when invoking `./tdef_test range'. This is not checked automatically and merely serves for manual reference. For vty tests, use 32bit max values instead of INT_MAX and ULONG_MAX. Change-Id: I6242243bde1d7ddebb858512a1f0b07f4ec3e5c2 --- M tests/Makefile.am M tests/tdef/tdef_test.c M tests/tdef/tdef_test.ok A tests/tdef/tdef_test_range_64bit.ok M tests/tdef/tdef_vty_test_config_root.c M tests/tdef/tdef_vty_test_config_root.vty M tests/tdef/tdef_vty_test_config_subnode.c M tests/tdef/tdef_vty_test_config_subnode.vty 8 files changed, 488 insertions(+), 131 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/41/12841/3 -- To view, visit https://gerrit.osmocom.org/12841 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I6242243bde1d7ddebb858512a1f0b07f4ec3e5c2 Gerrit-Change-Number: 12841 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 00:57:02 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Wed, 6 Feb 2019 00:57:02 +0000 Subject: Change in libosmocore[master]: platform independence fix: tdef range tests In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12841 to look at the new patch set (#4). Change subject: platform independence fix: tdef range tests ...................................................................... platform independence fix: tdef range tests Run INT_MAX and ULONG_MAX related tests only manually, remove from automatic testing. This will hopefully fix recent build failures on various platforms. Add a 64 bit output example for expected results when invoking `./tdef_test range'. This is not checked automatically and merely serves for manual reference. For vty tests, use 32bit max values instead of INT_MAX and ULONG_MAX. Change-Id: I6242243bde1d7ddebb858512a1f0b07f4ec3e5c2 --- M tests/Makefile.am M tests/tdef/tdef_test.c M tests/tdef/tdef_test.ok A tests/tdef/tdef_test_range_64bit.ok M tests/tdef/tdef_vty_test_config_root.c M tests/tdef/tdef_vty_test_config_root.vty M tests/tdef/tdef_vty_test_config_subnode.c M tests/tdef/tdef_vty_test_config_subnode.vty 8 files changed, 490 insertions(+), 133 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/41/12841/4 -- To view, visit https://gerrit.osmocom.org/12841 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I6242243bde1d7ddebb858512a1f0b07f4ec3e5c2 Gerrit-Change-Number: 12841 Gerrit-PatchSet: 4 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 01:05:34 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Wed, 6 Feb 2019 01:05:34 +0000 Subject: Change in libosmocore[master]: platform independence fix: tdef range tests In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/12841 ) Change subject: platform independence fix: tdef range tests ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12841 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6242243bde1d7ddebb858512a1f0b07f4ec3e5c2 Gerrit-Change-Number: 12841 Gerrit-PatchSet: 4 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Wed, 06 Feb 2019 01:05:34 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 01:05:38 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Wed, 6 Feb 2019 01:05:38 +0000 Subject: Change in libosmocore[master]: platform independence fix: tdef range tests In-Reply-To: References: Message-ID: Neels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/12841 ) Change subject: platform independence fix: tdef range tests ...................................................................... platform independence fix: tdef range tests Run INT_MAX and ULONG_MAX related tests only manually, remove from automatic testing. This will hopefully fix recent build failures on various platforms. Add a 64 bit output example for expected results when invoking `./tdef_test range'. This is not checked automatically and merely serves for manual reference. For vty tests, use 32bit max values instead of INT_MAX and ULONG_MAX. Change-Id: I6242243bde1d7ddebb858512a1f0b07f4ec3e5c2 --- M tests/Makefile.am M tests/tdef/tdef_test.c M tests/tdef/tdef_test.ok A tests/tdef/tdef_test_range_64bit.ok M tests/tdef/tdef_vty_test_config_root.c M tests/tdef/tdef_vty_test_config_root.vty M tests/tdef/tdef_vty_test_config_subnode.c M tests/tdef/tdef_vty_test_config_subnode.vty 8 files changed, 490 insertions(+), 133 deletions(-) Approvals: Neels Hofmeyr: Looks good to me, approved Jenkins Builder: Verified diff --git a/tests/Makefile.am b/tests/Makefile.am index 54fb11f..63f3959 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -300,6 +300,7 @@ oap/oap_client_test.ok oap/oap_client_test.err \ vty/vty_transcript_test.vty \ tdef/tdef_test.ok \ + tdef/tdef_test_range_64bit.ok \ tdef/tdef_vty_test_config_root.vty \ tdef/tdef_vty_test_config_subnode.vty \ tdef/tdef_vty_test_dynamic.vty \ diff --git a/tests/tdef/tdef_test.c b/tests/tdef/tdef_test.c index 682c7ac..f5b6413 100644 --- a/tests/tdef/tdef_test.c +++ b/tests/tdef/tdef_test.c @@ -49,21 +49,12 @@ /* test conversions */ { .T=1000, .default_val=2*1000, .unit=OSMO_TDEF_MS, .desc="two seconds from ms" }, { .T=1001, .default_val=60*1000, .unit=OSMO_TDEF_MS, .desc="one minute from ms" }, - { .T=1002, .default_val=(ULONG_MAX/60), .unit=OSMO_TDEF_M, .desc="almost too many seconds" }, - { .T=1003, .default_val=ULONG_MAX, .unit=OSMO_TDEF_M, .desc="too many seconds" }, { .T=1004, .default_val=1, .unit=OSMO_TDEF_MS, .desc="one ms" }, { .T=1005, .default_val=0, .unit=OSMO_TDEF_MS, .desc="zero ms" }, { .T=1006, .default_val=0, .unit=OSMO_TDEF_S, .desc="zero s" }, { .T=1007, .default_val=0, .unit=OSMO_TDEF_M, .desc="zero m" }, { .T=1008, .default_val=0, .unit=OSMO_TDEF_CUSTOM, .desc="zero" }, - /* test range */ - { .T=INT_MAX, .default_val=ULONG_MAX, .unit=OSMO_TDEF_S, .desc="very large" }, - { .T=INT_MAX-1, .default_val=ULONG_MAX-1, .unit=OSMO_TDEF_S, .desc="very large" }, - { .T=INT_MAX-2, .default_val=LONG_MAX, .unit=OSMO_TDEF_S, .desc="very large" }, - { .T=INT_MAX-3, .default_val=ULONG_MAX, .unit=OSMO_TDEF_M, .desc="very large in minutes" }, - { .T=INT_MIN, .default_val=ULONG_MAX, .unit=OSMO_TDEF_S, .desc="negative" }, - { .T=0, .default_val=1, .unit=OSMO_TDEF_CUSTOM, .desc="zero" }, /* no desc */ @@ -72,13 +63,26 @@ {} // <-- important! last entry shall be zero }; -#define print_tdef_get(T, AS_UNIT) do { \ - unsigned long val = osmo_tdef_get(tdefs, T, AS_UNIT, 999); \ +static struct osmo_tdef tdefs_range[] = { + { .T=1002, .default_val=(ULONG_MAX/60), .unit=OSMO_TDEF_M, .desc="almost too many seconds" }, + { .T=1003, .default_val=ULONG_MAX, .unit=OSMO_TDEF_M, .desc="too many seconds" }, + + { .T=INT_MAX, .default_val=ULONG_MAX, .unit=OSMO_TDEF_S, .desc="very large" }, + { .T=INT_MAX-1, .default_val=ULONG_MAX-1, .unit=OSMO_TDEF_S, .desc="very large" }, + { .T=INT_MAX-2, .default_val=LONG_MAX, .unit=OSMO_TDEF_S, .desc="very large" }, + { .T=INT_MAX-3, .default_val=ULONG_MAX, .unit=OSMO_TDEF_M, .desc="very large in minutes" }, + { .T=INT_MIN, .default_val=ULONG_MAX, .unit=OSMO_TDEF_S, .desc="negative" }, + + {} +}; + +#define print_tdef_get(TDEFS, T, AS_UNIT) do { \ + unsigned long val = osmo_tdef_get(TDEFS, T, AS_UNIT, 999); \ printf("osmo_tdef_get(tdefs, %d, %s, 999)\t= %lu\n", T, osmo_tdef_unit_name(AS_UNIT), val); \ } while (0) -#define print_tdef_get_short(T, AS_UNIT) do { \ - unsigned long val = osmo_tdef_get(tdefs, T, AS_UNIT, 999); \ +#define print_tdef_get_short(TDEFS, T, AS_UNIT) do { \ + unsigned long val = osmo_tdef_get(TDEFS, T, AS_UNIT, 999); \ printf("osmo_tdef_get(%d, %s)\t= %lu\n", T, osmo_tdef_unit_name(AS_UNIT), val); \ } while (0) @@ -95,7 +99,7 @@ printf("\n"); } -static void test_tdef_get() +static void test_tdef_get(bool test_range) { int i; enum osmo_tdef_unit as_unit; @@ -108,7 +112,18 @@ unsigned int T = tdefs[i].T; print_tdef_info(T); for (as_unit = OSMO_TDEF_S; as_unit <= OSMO_TDEF_CUSTOM; as_unit++) { - print_tdef_get_short(T, as_unit); + print_tdef_get_short(tdefs, T, as_unit); + } + } + + if (!test_range) + return; + + for (i = 0; i < ARRAY_SIZE(tdefs_range)-1; i++) { + unsigned int T = tdefs_range[i].T; + print_tdef_info(T); + for (as_unit = OSMO_TDEF_S; as_unit <= OSMO_TDEF_CUSTOM; as_unit++) { + print_tdef_get_short(tdefs_range, T, as_unit); } } } @@ -117,10 +132,10 @@ { printf("\n%s()\n", __func__); - print_tdef_get(5, OSMO_TDEF_S); - print_tdef_get(5, OSMO_TDEF_MS); - print_tdef_get(5, OSMO_TDEF_M); - print_tdef_get(5, OSMO_TDEF_CUSTOM); + print_tdef_get(tdefs, 5, OSMO_TDEF_S); + print_tdef_get(tdefs, 5, OSMO_TDEF_MS); + print_tdef_get(tdefs, 5, OSMO_TDEF_M); + print_tdef_get(tdefs, 5, OSMO_TDEF_CUSTOM); } static void test_tdef_set_and_get() @@ -132,23 +147,23 @@ printf("setting 7 = 42\n"); t->val = 42; print_tdef_info(7); - print_tdef_get_short(7, OSMO_TDEF_MS); - print_tdef_get_short(7, OSMO_TDEF_S); - print_tdef_get_short(7, OSMO_TDEF_M); - print_tdef_get_short(7, OSMO_TDEF_CUSTOM); + print_tdef_get_short(tdefs, 7, OSMO_TDEF_MS); + print_tdef_get_short(tdefs, 7, OSMO_TDEF_S); + print_tdef_get_short(tdefs, 7, OSMO_TDEF_M); + print_tdef_get_short(tdefs, 7, OSMO_TDEF_CUSTOM); printf("setting 7 = 420\n"); t->val = 420; print_tdef_info(7); - print_tdef_get_short(7, OSMO_TDEF_MS); - print_tdef_get_short(7, OSMO_TDEF_S); - print_tdef_get_short(7, OSMO_TDEF_M); - print_tdef_get_short(7, OSMO_TDEF_CUSTOM); + print_tdef_get_short(tdefs, 7, OSMO_TDEF_MS); + print_tdef_get_short(tdefs, 7, OSMO_TDEF_S); + print_tdef_get_short(tdefs, 7, OSMO_TDEF_M); + print_tdef_get_short(tdefs, 7, OSMO_TDEF_CUSTOM); printf("resetting\n"); osmo_tdefs_reset(tdefs); print_tdef_info(7); - print_tdef_get_short(7, OSMO_TDEF_S); + print_tdef_get_short(tdefs, 7, OSMO_TDEF_S); } enum test_tdef_fsm_states { @@ -306,7 +321,7 @@ } -#define test_tdef_fsm_state_chg(NEXT_STATE) do { \ +#define test_tdef_fsm_state_chg(tdefs, NEXT_STATE) do { \ const struct osmo_tdef_state_timeout *st = osmo_tdef_get_state_timeout(NEXT_STATE, \ test_tdef_state_timeouts); \ if (!st) { \ @@ -318,7 +333,7 @@ printf(" --> %s (configured as T%d%s %lu %s) rc=%d;\t", osmo_fsm_state_name(&test_tdef_fsm, \ NEXT_STATE), \ st->T, st->keep_timer ? "(keep_timer)" : "", \ - t? t->val : -1, t? osmo_tdef_unit_name(t->unit) : "-", \ + t? t->val : 0, t? osmo_tdef_unit_name(t->unit) : "-", \ rc); \ print_fsm_state(fi); \ } \ @@ -329,7 +344,6 @@ static void test_tdef_state_timeout(bool test_range) { struct osmo_fsm_inst *fi; - struct osmo_tdef *m = osmo_tdef_get_entry(tdefs, INT_MAX); unsigned long m_secs; printf("\n%s()\n", __func__); @@ -341,51 +355,57 @@ OSMO_ASSERT(fi); print_fsm_state(fi); - test_tdef_fsm_state_chg(S_A); - test_tdef_fsm_state_chg(S_B); - test_tdef_fsm_state_chg(S_C); - test_tdef_fsm_state_chg(S_D); + test_tdef_fsm_state_chg(tdefs, S_A); + test_tdef_fsm_state_chg(tdefs, S_B); + test_tdef_fsm_state_chg(tdefs, S_C); + test_tdef_fsm_state_chg(tdefs, S_D); - test_tdef_fsm_state_chg(S_G); - test_tdef_fsm_state_chg(S_H); - test_tdef_fsm_state_chg(S_I); - test_tdef_fsm_state_chg(S_J); + test_tdef_fsm_state_chg(tdefs, S_G); + test_tdef_fsm_state_chg(tdefs, S_H); + test_tdef_fsm_state_chg(tdefs, S_I); + test_tdef_fsm_state_chg(tdefs, S_J); printf("- test keep_timer:\n"); fake_time_passes(123, 45678); print_fsm_state(fi); - test_tdef_fsm_state_chg(S_K); - test_tdef_fsm_state_chg(S_A); + test_tdef_fsm_state_chg(tdefs, S_K); + test_tdef_fsm_state_chg(tdefs, S_A); fake_time_passes(23, 45678); print_fsm_state(fi); - test_tdef_fsm_state_chg(S_K); + test_tdef_fsm_state_chg(tdefs, S_K); - test_tdef_fsm_state_chg(S_A); + test_tdef_fsm_state_chg(tdefs, S_A); fake_time_passes(23, 45678); print_fsm_state(fi); - test_tdef_fsm_state_chg(S_L); - - printf("- test large T:\n"); - test_tdef_fsm_state_chg(S_M); - - printf("- test T<0:\n"); - test_tdef_fsm_state_chg(S_N); + test_tdef_fsm_state_chg(tdefs, S_L); printf("- test T=0:\n"); - test_tdef_fsm_state_chg(S_O); + test_tdef_fsm_state_chg(tdefs, S_O); printf("- test no timer:\n"); - test_tdef_fsm_state_chg(S_X); + test_tdef_fsm_state_chg(tdefs, S_X); printf("- test undefined timer, using default_val arg of osmo_tdef_fsm_inst_state_chg(), here passed as 999:\n"); - test_tdef_fsm_state_chg(S_Y); + test_tdef_fsm_state_chg(tdefs, S_Y); /* the range of unsigned long is architecture dependent. This test can be invoked manually to see whether * clamping the timeout values works, but the output will be of varying lengths depending on the system's * unsigned long range, and would cause differences in expected output. */ if (test_range) { + struct osmo_tdef *m; + + printf("- test large T:\n"); + test_tdef_fsm_state_chg(tdefs_range, S_M); + + printf("- test T<0:\n"); + test_tdef_fsm_state_chg(tdefs_range, S_N); + printf("- test range:\n"); - test_tdef_fsm_state_chg(S_M); + test_tdef_fsm_state_chg(tdefs_range, S_M); + + m = osmo_tdef_get_entry(tdefs_range, INT_MAX); + OSMO_ASSERT(m); + /* sweep through all the bits, shifting in 0xfffff.. from the right. */ m_secs = 0; do { @@ -408,19 +428,19 @@ } m->val = m_secs - 1; - test_tdef_fsm_state_chg(S_M); + test_tdef_fsm_state_chg(tdefs_range, S_M); m->val = m_secs; - test_tdef_fsm_state_chg(S_M); + test_tdef_fsm_state_chg(tdefs_range, S_M); m->val = m_secs + 1; - test_tdef_fsm_state_chg(S_M); + test_tdef_fsm_state_chg(tdefs_range, S_M); } while (m_secs < ULONG_MAX); } printf("- test disallowed transition:\n"); - test_tdef_fsm_state_chg(S_Z); - test_tdef_fsm_state_chg(S_B); - test_tdef_fsm_state_chg(S_C); - test_tdef_fsm_state_chg(S_D); + test_tdef_fsm_state_chg(tdefs, S_Z); + test_tdef_fsm_state_chg(tdefs, S_B); + test_tdef_fsm_state_chg(tdefs, S_C); + test_tdef_fsm_state_chg(tdefs, S_D); } int main(int argc, char **argv) @@ -434,7 +454,7 @@ osmo_fsm_register(&test_tdef_fsm); - test_tdef_get(); + test_tdef_get(argc > 1); test_tdef_get_nonexisting(); test_tdef_set_and_get(); /* Run range test iff any argument is passed on the cmdline. For the rationale, see the comment in diff --git a/tests/tdef/tdef_test.ok b/tests/tdef/tdef_test.ok index cf4b77f..6e6ba00 100644 --- a/tests/tdef/tdef_test.ok +++ b/tests/tdef/tdef_test.ok @@ -50,16 +50,6 @@ osmo_tdef_get(1001, ms) = 60000 osmo_tdef_get(1001, m) = 1 osmo_tdef_get(1001, custom-unit) = 60000 -T1002=307445734561825860m -osmo_tdef_get(1002, s) = 18446744073709551600 -osmo_tdef_get(1002, ms) = 18446744073709551615 -osmo_tdef_get(1002, m) = 307445734561825860 -osmo_tdef_get(1002, custom-unit) = 307445734561825860 -T1003=18446744073709551615m -osmo_tdef_get(1003, s) = 18446744073709551615 -osmo_tdef_get(1003, ms) = 18446744073709551615 -osmo_tdef_get(1003, m) = 18446744073709551615 -osmo_tdef_get(1003, custom-unit) = 18446744073709551615 T1004=1ms osmo_tdef_get(1004, s) = 1 osmo_tdef_get(1004, ms) = 1 @@ -85,31 +75,6 @@ osmo_tdef_get(1008, ms) = 0 osmo_tdef_get(1008, m) = 0 osmo_tdef_get(1008, custom-unit) = 0 -T2147483647=18446744073709551615s -osmo_tdef_get(2147483647, s) = 18446744073709551615 -osmo_tdef_get(2147483647, ms) = 18446744073709551615 -osmo_tdef_get(2147483647, m) = 307445734561825861 -osmo_tdef_get(2147483647, custom-unit) = 18446744073709551615 -T2147483646=18446744073709551614s -osmo_tdef_get(2147483646, s) = 18446744073709551614 -osmo_tdef_get(2147483646, ms) = 18446744073709551615 -osmo_tdef_get(2147483646, m) = 307445734561825861 -osmo_tdef_get(2147483646, custom-unit) = 18446744073709551614 -T2147483645=9223372036854775807s -osmo_tdef_get(2147483645, s) = 9223372036854775807 -osmo_tdef_get(2147483645, ms) = 18446744073709551615 -osmo_tdef_get(2147483645, m) = 153722867280912931 -osmo_tdef_get(2147483645, custom-unit) = 9223372036854775807 -T2147483644=18446744073709551615m -osmo_tdef_get(2147483644, s) = 18446744073709551615 -osmo_tdef_get(2147483644, ms) = 18446744073709551615 -osmo_tdef_get(2147483644, m) = 18446744073709551615 -osmo_tdef_get(2147483644, custom-unit) = 18446744073709551615 -T-2147483648=18446744073709551615s -osmo_tdef_get(-2147483648, s) = 18446744073709551615 -osmo_tdef_get(-2147483648, ms) = 18446744073709551615 -osmo_tdef_get(-2147483648, m) = 307445734561825861 -osmo_tdef_get(-2147483648, custom-unit) = 18446744073709551615 T0=1custom-unit osmo_tdef_get(0, s) = 1 osmo_tdef_get(0, ms) = 1 @@ -167,16 +132,12 @@ Total time passed: 169.137034 s state=A T=1, 76.954322 s remaining --> L (configured as T123(keep_timer) 1 s) rc=0; state=L T=123, 76.954322 s remaining -- test large T: - --> M (configured as T2147483647 18446744073709551615 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining -- test T<0: - --> N (configured as T-2147483648 18446744073709551615 s) rc=0; state=N T=-2147483648, 2147483647.000000 s remaining - test T=0: --> O (no timer configured for this state) - test no timer: --> X (no timer configured for this state) - test undefined timer, using default_val arg of osmo_tdef_fsm_inst_state_chg(), here passed as 999: - --> Y (configured as T666 18446744073709551615 -) rc=0; state=Y T=666, 999.000000 s remaining + --> Y (configured as T666 0 -) rc=0; state=Y T=666, 999.000000 s remaining - test disallowed transition: --> Z (no timer configured for this state) --> B (configured as T2 100 ms) rc=0; state=B T=2, 1.000000 s remaining diff --git a/tests/tdef/tdef_test_range_64bit.ok b/tests/tdef/tdef_test_range_64bit.ok new file mode 100644 index 0000000..bd104b6 --- /dev/null +++ b/tests/tdef/tdef_test_range_64bit.ok @@ -0,0 +1,375 @@ + +test_tdef_get() +T1=100s +osmo_tdef_get(1, s) = 100 +osmo_tdef_get(1, ms) = 100000 +osmo_tdef_get(1, m) = 2 +osmo_tdef_get(1, custom-unit) = 100 +T2=100ms +osmo_tdef_get(2, s) = 1 +osmo_tdef_get(2, ms) = 100 +osmo_tdef_get(2, m) = 1 +osmo_tdef_get(2, custom-unit) = 100 +T3=100m +osmo_tdef_get(3, s) = 6000 +osmo_tdef_get(3, ms) = 6000000 +osmo_tdef_get(3, m) = 100 +osmo_tdef_get(3, custom-unit) = 100 +T4=100custom-unit +osmo_tdef_get(4, s) = 100 +osmo_tdef_get(4, ms) = 100 +osmo_tdef_get(4, m) = 100 +osmo_tdef_get(4, custom-unit) = 100 +T7=50s +osmo_tdef_get(7, s) = 50 +osmo_tdef_get(7, ms) = 50000 +osmo_tdef_get(7, m) = 1 +osmo_tdef_get(7, custom-unit) = 50 +T8=300s +osmo_tdef_get(8, s) = 300 +osmo_tdef_get(8, ms) = 300000 +osmo_tdef_get(8, m) = 5 +osmo_tdef_get(8, custom-unit) = 300 +T9=5m +osmo_tdef_get(9, s) = 300 +osmo_tdef_get(9, ms) = 300000 +osmo_tdef_get(9, m) = 5 +osmo_tdef_get(9, custom-unit) = 5 +T10=20m +osmo_tdef_get(10, s) = 1200 +osmo_tdef_get(10, ms) = 1200000 +osmo_tdef_get(10, m) = 20 +osmo_tdef_get(10, custom-unit) = 20 +T1000=2000ms +osmo_tdef_get(1000, s) = 2 +osmo_tdef_get(1000, ms) = 2000 +osmo_tdef_get(1000, m) = 1 +osmo_tdef_get(1000, custom-unit) = 2000 +T1001=60000ms +osmo_tdef_get(1001, s) = 60 +osmo_tdef_get(1001, ms) = 60000 +osmo_tdef_get(1001, m) = 1 +osmo_tdef_get(1001, custom-unit) = 60000 +T1004=1ms +osmo_tdef_get(1004, s) = 1 +osmo_tdef_get(1004, ms) = 1 +osmo_tdef_get(1004, m) = 1 +osmo_tdef_get(1004, custom-unit) = 1 +T1005=0ms +osmo_tdef_get(1005, s) = 0 +osmo_tdef_get(1005, ms) = 0 +osmo_tdef_get(1005, m) = 0 +osmo_tdef_get(1005, custom-unit) = 0 +T1006=0s +osmo_tdef_get(1006, s) = 0 +osmo_tdef_get(1006, ms) = 0 +osmo_tdef_get(1006, m) = 0 +osmo_tdef_get(1006, custom-unit) = 0 +T1007=0m +osmo_tdef_get(1007, s) = 0 +osmo_tdef_get(1007, ms) = 0 +osmo_tdef_get(1007, m) = 0 +osmo_tdef_get(1007, custom-unit) = 0 +T1008=0custom-unit +osmo_tdef_get(1008, s) = 0 +osmo_tdef_get(1008, ms) = 0 +osmo_tdef_get(1008, m) = 0 +osmo_tdef_get(1008, custom-unit) = 0 +T0=1custom-unit +osmo_tdef_get(0, s) = 1 +osmo_tdef_get(0, ms) = 1 +osmo_tdef_get(0, m) = 1 +osmo_tdef_get(0, custom-unit) = 1 +T123=1s +osmo_tdef_get(123, s) = 1 +osmo_tdef_get(123, ms) = 1000 +osmo_tdef_get(123, m) = 1 +osmo_tdef_get(123, custom-unit) = 1 +T1002=NULLosmo_tdef_get(1002, s) = 0 +osmo_tdef_get(1002, ms) = 0 +osmo_tdef_get(1002, m) = 0 +osmo_tdef_get(1002, custom-unit) = 0 +T1003=NULLosmo_tdef_get(1003, s) = 0 +osmo_tdef_get(1003, ms) = 0 +osmo_tdef_get(1003, m) = 0 +osmo_tdef_get(1003, custom-unit) = 0 +T2147483647=NULLosmo_tdef_get(2147483647, s) = 0 +osmo_tdef_get(2147483647, ms) = 0 +osmo_tdef_get(2147483647, m) = 0 +osmo_tdef_get(2147483647, custom-unit) = 0 +T2147483646=NULLosmo_tdef_get(2147483646, s) = 0 +osmo_tdef_get(2147483646, ms) = 0 +osmo_tdef_get(2147483646, m) = 0 +osmo_tdef_get(2147483646, custom-unit) = 0 +T2147483645=NULLosmo_tdef_get(2147483645, s) = 0 +osmo_tdef_get(2147483645, ms) = 0 +osmo_tdef_get(2147483645, m) = 0 +osmo_tdef_get(2147483645, custom-unit) = 0 +T2147483644=NULLosmo_tdef_get(2147483644, s) = 0 +osmo_tdef_get(2147483644, ms) = 0 +osmo_tdef_get(2147483644, m) = 0 +osmo_tdef_get(2147483644, custom-unit) = 0 +T-2147483648=NULLosmo_tdef_get(-2147483648, s) = 0 +osmo_tdef_get(-2147483648, ms) = 0 +osmo_tdef_get(-2147483648, m) = 0 +osmo_tdef_get(-2147483648, custom-unit) = 0 + +test_tdef_get_nonexisting() +osmo_tdef_get(tdefs, 5, s, 999) = 999 +osmo_tdef_get(tdefs, 5, ms, 999) = 999 +osmo_tdef_get(tdefs, 5, m, 999) = 999 +osmo_tdef_get(tdefs, 5, custom-unit, 999) = 999 + +test_tdef_set_and_get() +setting 7 = 42 +T7=42s(def=50) +osmo_tdef_get(7, ms) = 42000 +osmo_tdef_get(7, s) = 42 +osmo_tdef_get(7, m) = 1 +osmo_tdef_get(7, custom-unit) = 42 +setting 7 = 420 +T7=420s(def=50) +osmo_tdef_get(7, ms) = 420000 +osmo_tdef_get(7, s) = 420 +osmo_tdef_get(7, m) = 7 +osmo_tdef_get(7, custom-unit) = 420 +resetting +T7=50s +osmo_tdef_get(7, s) = 50 + +test_tdef_state_timeout() +Total time passed: 0.000000 s +state=A T=0, no timeout + --> A (configured as T1 100 s) rc=0; state=A T=1, 100.000000 s remaining + --> B (configured as T2 100 ms) rc=0; state=B T=2, 1.000000 s remaining + --> C (configured as T3 100 m) rc=0; state=C T=3, 6000.000000 s remaining + --> D (configured as T4 100 custom-unit) rc=0; state=D T=4, 100.000000 s remaining + --> G (configured as T7 50 s) rc=0; state=G T=7, 50.000000 s remaining + --> H (configured as T8 300 s) rc=0; state=H T=8, 300.000000 s remaining + --> I (configured as T9 5 m) rc=0; state=I T=9, 300.000000 s remaining + --> J (configured as T10 20 m) rc=0; state=J T=10, 1200.000000 s remaining +- test keep_timer: +Total time passed: 123.045678 s +state=J T=10, 1076.954322 s remaining + --> K (configured as T0(keep_timer) 1 custom-unit) rc=0; state=K T=10, 1076.954322 s remaining + --> A (configured as T1 100 s) rc=0; state=A T=1, 100.000000 s remaining +Total time passed: 146.091356 s +state=A T=1, 76.954322 s remaining + --> K (configured as T0(keep_timer) 1 custom-unit) rc=0; state=K T=1, 76.954322 s remaining + --> A (configured as T1 100 s) rc=0; state=A T=1, 100.000000 s remaining +Total time passed: 169.137034 s +state=A T=1, 76.954322 s remaining + --> L (configured as T123(keep_timer) 1 s) rc=0; state=L T=123, 76.954322 s remaining +- test T=0: + --> O (no timer configured for this state) +- test no timer: + --> X (no timer configured for this state) +- test undefined timer, using default_val arg of osmo_tdef_fsm_inst_state_chg(), here passed as 999: + --> Y (configured as T666 18446744073709551615 -) rc=0; state=Y T=666, 999.000000 s remaining +- test large T: + --> M (configured as T2147483647 0 s) rc=0; state=M T=2147483647, no timeout +- test T<0: + --> N (configured as T-2147483648 0 s) rc=0; state=N T=-2147483648, no timeout +- test range: + --> M (configured as T2147483647 0 s) rc=0; state=M T=2147483647, no timeout + --> M (configured as T2147483647 0 s) rc=0; state=M T=2147483647, no timeout + --> M (configured as T2147483647 1 s) rc=0; state=M T=2147483647, 1.000000 s remaining + --> M (configured as T2147483647 2 s) rc=0; state=M T=2147483647, 2.000000 s remaining + --> M (configured as T2147483647 2 s) rc=0; state=M T=2147483647, 2.000000 s remaining + --> M (configured as T2147483647 3 s) rc=0; state=M T=2147483647, 3.000000 s remaining + --> M (configured as T2147483647 4 s) rc=0; state=M T=2147483647, 4.000000 s remaining + --> M (configured as T2147483647 6 s) rc=0; state=M T=2147483647, 6.000000 s remaining + --> M (configured as T2147483647 7 s) rc=0; state=M T=2147483647, 7.000000 s remaining + --> M (configured as T2147483647 8 s) rc=0; state=M T=2147483647, 8.000000 s remaining + --> M (configured as T2147483647 14 s) rc=0; state=M T=2147483647, 14.000000 s remaining + --> M (configured as T2147483647 15 s) rc=0; state=M T=2147483647, 15.000000 s remaining + --> M (configured as T2147483647 16 s) rc=0; state=M T=2147483647, 16.000000 s remaining + --> M (configured as T2147483647 30 s) rc=0; state=M T=2147483647, 30.000000 s remaining + --> M (configured as T2147483647 31 s) rc=0; state=M T=2147483647, 31.000000 s remaining + --> M (configured as T2147483647 32 s) rc=0; state=M T=2147483647, 32.000000 s remaining + --> M (configured as T2147483647 62 s) rc=0; state=M T=2147483647, 62.000000 s remaining + --> M (configured as T2147483647 63 s) rc=0; state=M T=2147483647, 63.000000 s remaining + --> M (configured as T2147483647 64 s) rc=0; state=M T=2147483647, 64.000000 s remaining + --> M (configured as T2147483647 126 s) rc=0; state=M T=2147483647, 126.000000 s remaining + --> M (configured as T2147483647 127 s) rc=0; state=M T=2147483647, 127.000000 s remaining + --> M (configured as T2147483647 128 s) rc=0; state=M T=2147483647, 128.000000 s remaining + --> M (configured as T2147483647 254 s) rc=0; state=M T=2147483647, 254.000000 s remaining + --> M (configured as T2147483647 255 s) rc=0; state=M T=2147483647, 255.000000 s remaining + --> M (configured as T2147483647 256 s) rc=0; state=M T=2147483647, 256.000000 s remaining + --> M (configured as T2147483647 510 s) rc=0; state=M T=2147483647, 510.000000 s remaining + --> M (configured as T2147483647 511 s) rc=0; state=M T=2147483647, 511.000000 s remaining + --> M (configured as T2147483647 512 s) rc=0; state=M T=2147483647, 512.000000 s remaining + --> M (configured as T2147483647 1022 s) rc=0; state=M T=2147483647, 1022.000000 s remaining + --> M (configured as T2147483647 1023 s) rc=0; state=M T=2147483647, 1023.000000 s remaining + --> M (configured as T2147483647 1024 s) rc=0; state=M T=2147483647, 1024.000000 s remaining + --> M (configured as T2147483647 2046 s) rc=0; state=M T=2147483647, 2046.000000 s remaining + --> M (configured as T2147483647 2047 s) rc=0; state=M T=2147483647, 2047.000000 s remaining + --> M (configured as T2147483647 2048 s) rc=0; state=M T=2147483647, 2048.000000 s remaining + --> M (configured as T2147483647 4094 s) rc=0; state=M T=2147483647, 4094.000000 s remaining + --> M (configured as T2147483647 4095 s) rc=0; state=M T=2147483647, 4095.000000 s remaining + --> M (configured as T2147483647 4096 s) rc=0; state=M T=2147483647, 4096.000000 s remaining + --> M (configured as T2147483647 8190 s) rc=0; state=M T=2147483647, 8190.000000 s remaining + --> M (configured as T2147483647 8191 s) rc=0; state=M T=2147483647, 8191.000000 s remaining + --> M (configured as T2147483647 8192 s) rc=0; state=M T=2147483647, 8192.000000 s remaining + --> M (configured as T2147483647 16382 s) rc=0; state=M T=2147483647, 16382.000000 s remaining + --> M (configured as T2147483647 16383 s) rc=0; state=M T=2147483647, 16383.000000 s remaining + --> M (configured as T2147483647 16384 s) rc=0; state=M T=2147483647, 16384.000000 s remaining +--- int32_t max --- + --> M (configured as T2147483647 32766 s) rc=0; state=M T=2147483647, 32766.000000 s remaining + --> M (configured as T2147483647 32767 s) rc=0; state=M T=2147483647, 32767.000000 s remaining + --> M (configured as T2147483647 32768 s) rc=0; state=M T=2147483647, 32768.000000 s remaining +--- uint32_t max --- + --> M (configured as T2147483647 65534 s) rc=0; state=M T=2147483647, 65534.000000 s remaining + --> M (configured as T2147483647 65535 s) rc=0; state=M T=2147483647, 65535.000000 s remaining + --> M (configured as T2147483647 65536 s) rc=0; state=M T=2147483647, 65536.000000 s remaining + --> M (configured as T2147483647 131070 s) rc=0; state=M T=2147483647, 131070.000000 s remaining + --> M (configured as T2147483647 131071 s) rc=0; state=M T=2147483647, 131071.000000 s remaining + --> M (configured as T2147483647 131072 s) rc=0; state=M T=2147483647, 131072.000000 s remaining + --> M (configured as T2147483647 262142 s) rc=0; state=M T=2147483647, 262142.000000 s remaining + --> M (configured as T2147483647 262143 s) rc=0; state=M T=2147483647, 262143.000000 s remaining + --> M (configured as T2147483647 262144 s) rc=0; state=M T=2147483647, 262144.000000 s remaining + --> M (configured as T2147483647 524286 s) rc=0; state=M T=2147483647, 524286.000000 s remaining + --> M (configured as T2147483647 524287 s) rc=0; state=M T=2147483647, 524287.000000 s remaining + --> M (configured as T2147483647 524288 s) rc=0; state=M T=2147483647, 524288.000000 s remaining + --> M (configured as T2147483647 1048574 s) rc=0; state=M T=2147483647, 1048574.000000 s remaining + --> M (configured as T2147483647 1048575 s) rc=0; state=M T=2147483647, 1048575.000000 s remaining + --> M (configured as T2147483647 1048576 s) rc=0; state=M T=2147483647, 1048576.000000 s remaining + --> M (configured as T2147483647 2097150 s) rc=0; state=M T=2147483647, 2097150.000000 s remaining + --> M (configured as T2147483647 2097151 s) rc=0; state=M T=2147483647, 2097151.000000 s remaining + --> M (configured as T2147483647 2097152 s) rc=0; state=M T=2147483647, 2097152.000000 s remaining + --> M (configured as T2147483647 4194302 s) rc=0; state=M T=2147483647, 4194302.000000 s remaining + --> M (configured as T2147483647 4194303 s) rc=0; state=M T=2147483647, 4194303.000000 s remaining + --> M (configured as T2147483647 4194304 s) rc=0; state=M T=2147483647, 4194304.000000 s remaining + --> M (configured as T2147483647 8388606 s) rc=0; state=M T=2147483647, 8388606.000000 s remaining + --> M (configured as T2147483647 8388607 s) rc=0; state=M T=2147483647, 8388607.000000 s remaining + --> M (configured as T2147483647 8388608 s) rc=0; state=M T=2147483647, 8388608.000000 s remaining + --> M (configured as T2147483647 16777214 s) rc=0; state=M T=2147483647, 16777214.000000 s remaining + --> M (configured as T2147483647 16777215 s) rc=0; state=M T=2147483647, 16777215.000000 s remaining + --> M (configured as T2147483647 16777216 s) rc=0; state=M T=2147483647, 16777216.000000 s remaining + --> M (configured as T2147483647 33554430 s) rc=0; state=M T=2147483647, 33554430.000000 s remaining + --> M (configured as T2147483647 33554431 s) rc=0; state=M T=2147483647, 33554431.000000 s remaining + --> M (configured as T2147483647 33554432 s) rc=0; state=M T=2147483647, 33554432.000000 s remaining + --> M (configured as T2147483647 67108862 s) rc=0; state=M T=2147483647, 67108862.000000 s remaining + --> M (configured as T2147483647 67108863 s) rc=0; state=M T=2147483647, 67108863.000000 s remaining + --> M (configured as T2147483647 67108864 s) rc=0; state=M T=2147483647, 67108864.000000 s remaining + --> M (configured as T2147483647 134217726 s) rc=0; state=M T=2147483647, 134217726.000000 s remaining + --> M (configured as T2147483647 134217727 s) rc=0; state=M T=2147483647, 134217727.000000 s remaining + --> M (configured as T2147483647 134217728 s) rc=0; state=M T=2147483647, 134217728.000000 s remaining + --> M (configured as T2147483647 268435454 s) rc=0; state=M T=2147483647, 268435454.000000 s remaining + --> M (configured as T2147483647 268435455 s) rc=0; state=M T=2147483647, 268435455.000000 s remaining + --> M (configured as T2147483647 268435456 s) rc=0; state=M T=2147483647, 268435456.000000 s remaining + --> M (configured as T2147483647 536870910 s) rc=0; state=M T=2147483647, 536870910.000000 s remaining + --> M (configured as T2147483647 536870911 s) rc=0; state=M T=2147483647, 536870911.000000 s remaining + --> M (configured as T2147483647 536870912 s) rc=0; state=M T=2147483647, 536870912.000000 s remaining + --> M (configured as T2147483647 1073741822 s) rc=0; state=M T=2147483647, 1073741822.000000 s remaining + --> M (configured as T2147483647 1073741823 s) rc=0; state=M T=2147483647, 1073741823.000000 s remaining + --> M (configured as T2147483647 1073741824 s) rc=0; state=M T=2147483647, 1073741824.000000 s remaining +--- int64_t max --- + --> M (configured as T2147483647 2147483646 s) rc=0; state=M T=2147483647, 2147483646.000000 s remaining + --> M (configured as T2147483647 2147483647 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 2147483648 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining +--- uint64_t max --- + --> M (configured as T2147483647 4294967294 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 4294967295 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 4294967296 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 8589934590 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 8589934591 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 8589934592 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 17179869182 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 17179869183 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 17179869184 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 34359738366 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 34359738367 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 34359738368 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 68719476734 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 68719476735 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 68719476736 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 137438953470 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 137438953471 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 137438953472 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 274877906942 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 274877906943 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 274877906944 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 549755813886 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 549755813887 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 549755813888 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 1099511627774 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 1099511627775 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 1099511627776 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 2199023255550 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 2199023255551 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 2199023255552 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 4398046511102 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 4398046511103 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 4398046511104 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 8796093022206 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 8796093022207 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 8796093022208 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 17592186044414 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 17592186044415 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 17592186044416 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 35184372088830 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 35184372088831 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 35184372088832 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 70368744177662 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 70368744177663 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 70368744177664 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 140737488355326 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 140737488355327 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 140737488355328 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 281474976710654 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 281474976710655 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 281474976710656 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 562949953421310 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 562949953421311 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 562949953421312 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 1125899906842622 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 1125899906842623 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 1125899906842624 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 2251799813685246 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 2251799813685247 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 2251799813685248 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 4503599627370494 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 4503599627370495 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 4503599627370496 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 9007199254740990 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 9007199254740991 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 9007199254740992 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 18014398509481982 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 18014398509481983 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 18014398509481984 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 36028797018963966 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 36028797018963967 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 36028797018963968 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 72057594037927934 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 72057594037927935 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 72057594037927936 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 144115188075855870 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 144115188075855871 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 144115188075855872 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 288230376151711742 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 288230376151711743 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 288230376151711744 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 576460752303423486 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 576460752303423487 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 576460752303423488 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 1152921504606846974 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 1152921504606846975 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 1152921504606846976 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 2305843009213693950 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 2305843009213693951 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 2305843009213693952 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 4611686018427387902 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 4611686018427387903 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 4611686018427387904 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 9223372036854775806 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 9223372036854775807 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 9223372036854775808 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 18446744073709551614 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 18446744073709551615 s) rc=0; state=M T=2147483647, 2147483647.000000 s remaining + --> M (configured as T2147483647 0 s) rc=0; state=M T=2147483647, no timeout +- test disallowed transition: + --> Z (no timer configured for this state) + --> B (configured as T2 100 ms) rc=0; state=B T=2, 1.000000 s remaining + --> C (configured as T3 100 m) rc=0; state=C T=3, 6000.000000 s remaining + --> D (configured as T4 100 custom-unit) rc=0; state=D T=4, 100.000000 s remaining diff --git a/tests/tdef/tdef_vty_test_config_root.c b/tests/tdef/tdef_vty_test_config_root.c index 138ac00..d69e028 100644 --- a/tests/tdef/tdef_vty_test_config_root.c +++ b/tests/tdef/tdef_vty_test_config_root.c @@ -53,8 +53,8 @@ { .T=2, .default_val=100, .unit=OSMO_TDEF_MS, .desc="Testing a hundred milliseconds" }, { .T=3, .default_val=100, .unit=OSMO_TDEF_M, .desc="Testing a hundred minutes" }, { .T=4, .default_val=100, .unit=OSMO_TDEF_CUSTOM, .desc="Testing a hundred potatoes" }, - { .T=INT_MAX, .default_val=ULONG_MAX, .unit=OSMO_TDEF_M, .desc="Very large" }, - { .T=-23, .default_val=-15, .desc="Negative T number" }, + { .T=0x7fffffff, .default_val=0xffffffff, .unit=OSMO_TDEF_M, .desc="Very large" }, + { .T=-23, .default_val=239471, .desc="Negative T number" }, {} // <-- important! last entry shall be zero }; diff --git a/tests/tdef/tdef_vty_test_config_root.vty b/tests/tdef/tdef_vty_test_config_root.vty index 12876a6..de2d48f 100644 --- a/tests/tdef/tdef_vty_test_config_root.vty +++ b/tests/tdef/tdef_vty_test_config_root.vty @@ -20,8 +20,8 @@ test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) test: T3 = 100 m Testing a hundred minutes (default: 100 m) test: T4 = 100 Testing a hundred potatoes (default: 100) -test: T2147483647 = 18446744073709551615 m Very large (default: 18446744073709551615 m) -test: T-23 = 18446744073709551601 s Negative T number (default: 18446744073709551601 s) +test: T2147483647 = 4294967295 m Very large (default: 4294967295 m) +test: T-23 = 239471 s Negative T number (default: 239471 s) software: T1 = 30 m Write code (default: 30 m) software: T2 = 20 ms Hit segfault (default: 20 ms) software: T3 = 480 m Fix bugs (default: 480 m) @@ -36,8 +36,8 @@ test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) test: T3 = 100 m Testing a hundred minutes (default: 100 m) test: T4 = 100 Testing a hundred potatoes (default: 100) -test: T2147483647 = 18446744073709551615 m Very large (default: 18446744073709551615 m) -test: T-23 = 18446744073709551601 s Negative T number (default: 18446744073709551601 s) +test: T2147483647 = 4294967295 m Very large (default: 4294967295 m) +test: T-23 = 239471 s Negative T number (default: 239471 s) software: T1 = 30 m Write code (default: 30 m) software: T2 = 20 ms Hit segfault (default: 20 ms) software: T3 = 480 m Fix bugs (default: 480 m) @@ -81,8 +81,8 @@ test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) test: T3 = 100 m Testing a hundred minutes (default: 100 m) test: T4 = 100 Testing a hundred potatoes (default: 100) -test: T2147483647 = 18446744073709551615 m Very large (default: 18446744073709551615 m) -test: T-23 = 18446744073709551601 s Negative T number (default: 18446744073709551601 s) +test: T2147483647 = 4294967295 m Very large (default: 4294967295 m) +test: T-23 = 239471 s Negative T number (default: 239471 s) software: T1 = 30 m Write code (default: 30 m) software: T2 = 20 ms Hit segfault (default: 20 ms) software: T3 = 480 m Fix bugs (default: 480 m) @@ -120,8 +120,8 @@ test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) test: T3 = 100 m Testing a hundred minutes (default: 100 m) test: T4 = 100 Testing a hundred potatoes (default: 100) -test: T2147483647 = 18446744073709551615 m Very large (default: 18446744073709551615 m) -test: T-23 = 18446744073709551601 s Negative T number (default: 18446744073709551601 s) +test: T2147483647 = 4294967295 m Very large (default: 4294967295 m) +test: T-23 = 239471 s Negative T number (default: 239471 s) tdef_vty_test(config)# do show timer te tea: T1 = 50 s Water Boiling Timeout (default: 50 s) @@ -132,8 +132,8 @@ test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) test: T3 = 100 m Testing a hundred minutes (default: 100 m) test: T4 = 100 Testing a hundred potatoes (default: 100) -test: T2147483647 = 18446744073709551615 m Very large (default: 18446744073709551615 m) -test: T-23 = 18446744073709551601 s Negative T number (default: 18446744073709551601 s) +test: T2147483647 = 4294967295 m Very large (default: 4294967295 m) +test: T-23 = 239471 s Negative T number (default: 239471 s) tdef_vty_test(config)# do show timer te T2 tea: T2 = 300 s Tea brewing (default: 300 s) @@ -176,8 +176,8 @@ test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) test: T3 = 100 m Testing a hundred minutes (default: 100 m) test: T4 = 100 Testing a hundred potatoes (default: 100) -test: T2147483647 = 18446744073709551615 m Very large (default: 18446744073709551615 m) -test: T-23 = 18446744073709551601 s Negative T number (default: 18446744073709551601 s) +test: T2147483647 = 4294967295 m Very large (default: 4294967295 m) +test: T-23 = 239471 s Negative T number (default: 239471 s) tdef_vty_test(config)# timer te T2 tea: T2 = 300 s Tea brewing (default: 300 s) @@ -250,8 +250,8 @@ test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) test: T3 = 100 m Testing a hundred minutes (default: 100 m) test: T4 = 100 Testing a hundred potatoes (default: 100) -test: T2147483647 = 18446744073709551615 m Very large (default: 18446744073709551615 m) -test: T-23 = 18446744073709551601 s Negative T number (default: 18446744073709551601 s) +test: T2147483647 = 4294967295 m Very large (default: 4294967295 m) +test: T-23 = 239471 s Negative T number (default: 239471 s) software: T1 = 13 m Write code (default: 30 m) software: T2 = 0 ms Hit segfault (default: 20 ms) software: T3 = 480 m Fix bugs (default: 480 m) @@ -265,8 +265,8 @@ test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) test: T3 = 100 m Testing a hundred minutes (default: 100 m) test: T4 = 100 Testing a hundred potatoes (default: 100) -test: T2147483647 = 18446744073709551615 m Very large (default: 18446744073709551615 m) -test: T-23 = 18446744073709551601 s Negative T number (default: 18446744073709551601 s) +test: T2147483647 = 4294967295 m Very large (default: 4294967295 m) +test: T-23 = 239471 s Negative T number (default: 239471 s) software: T1 = 13 m Write code (default: 30 m) software: T2 = 0 ms Hit segfault (default: 20 ms) software: T3 = 480 m Fix bugs (default: 480 m) diff --git a/tests/tdef/tdef_vty_test_config_subnode.c b/tests/tdef/tdef_vty_test_config_subnode.c index c371c8d..ce851f5 100644 --- a/tests/tdef/tdef_vty_test_config_subnode.c +++ b/tests/tdef/tdef_vty_test_config_subnode.c @@ -54,8 +54,8 @@ { .T=2, .default_val=100, .unit=OSMO_TDEF_MS, .desc="Testing a hundred milliseconds" }, { .T=3, .default_val=100, .unit=OSMO_TDEF_M, .desc="Testing a hundred minutes" }, { .T=4, .default_val=100, .unit=OSMO_TDEF_CUSTOM, .desc="Testing a hundred potatoes" }, - { .T=INT_MAX, .default_val=ULONG_MAX, .unit=OSMO_TDEF_M, .desc="Very large" }, - { .T=-23, .default_val=-15, .desc="Negative T number" }, + { .T=0x7fffffff, .default_val=0xffffffff, .unit=OSMO_TDEF_M, .desc="Very large" }, + { .T=-23, .default_val=239471, .desc="Negative T number" }, {} // <-- important! last entry shall be zero }; diff --git a/tests/tdef/tdef_vty_test_config_subnode.vty b/tests/tdef/tdef_vty_test_config_subnode.vty index 6cfd3bf..50e5f59 100644 --- a/tests/tdef/tdef_vty_test_config_subnode.vty +++ b/tests/tdef/tdef_vty_test_config_subnode.vty @@ -11,8 +11,8 @@ T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) T3 = 100 m Testing a hundred minutes (default: 100 m) T4 = 100 Testing a hundred potatoes (default: 100) -T2147483647 = 18446744073709551615 m Very large (default: 18446744073709551615 m) -T-23 = 18446744073709551601 s Negative T number (default: 18446744073709551601 s) +T2147483647 = 4294967295 m Very large (default: 4294967295 m) +T-23 = 239471 s Negative T number (default: 239471 s) tdef_vty_test> enable tdef_vty_test# show timer @@ -20,8 +20,8 @@ T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) T3 = 100 m Testing a hundred minutes (default: 100 m) T4 = 100 Testing a hundred potatoes (default: 100) -T2147483647 = 18446744073709551615 m Very large (default: 18446744073709551615 m) -T-23 = 18446744073709551601 s Negative T number (default: 18446744073709551601 s) +T2147483647 = 4294967295 m Very large (default: 4294967295 m) +T-23 = 239471 s Negative T number (default: 239471 s) tdef_vty_test# configure terminal tdef_vty_test(config)# show running-config @@ -34,8 +34,8 @@ T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) T3 = 100 m Testing a hundred minutes (default: 100 m) T4 = 100 Testing a hundred potatoes (default: 100) -T2147483647 = 18446744073709551615 m Very large (default: 18446744073709551615 m) -T-23 = 18446744073709551601 s Negative T number (default: 18446744073709551601 s) +T2147483647 = 4294967295 m Very large (default: 4294967295 m) +T-23 = 239471 s Negative T number (default: 239471 s) tdef_vty_test(config-net)# do show timer T3 T3 = 100 m Testing a hundred minutes (default: 100 m) @@ -75,23 +75,23 @@ tdef_vty_test(config-net)# timer T-23 42 tdef_vty_test(config-net)# timer T-23 -T-23 = 42 s Negative T number (default: 18446744073709551601 s) +T-23 = 42 s Negative T number (default: 239471 s) tdef_vty_test(config-net)# timer t-23 43 tdef_vty_test(config-net)# timer T-23 -T-23 = 43 s Negative T number (default: 18446744073709551601 s) +T-23 = 43 s Negative T number (default: 239471 s) tdef_vty_test(config-net)# timer -23 44 tdef_vty_test(config-net)# timer T-23 -T-23 = 44 s Negative T number (default: 18446744073709551601 s) +T-23 = 44 s Negative T number (default: 239471 s) tdef_vty_test(config-net)# do show timer T1 = 9012345 s Testing a hundred seconds (default: 100 s) T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) T3 = 100 m Testing a hundred minutes (default: 100 m) T4 = 100 Testing a hundred potatoes (default: 100) -T2147483647 = 18446744073709551615 m Very large (default: 18446744073709551615 m) -T-23 = 44 s Negative T number (default: 18446744073709551601 s) +T2147483647 = 4294967295 m Very large (default: 4294967295 m) +T-23 = 44 s Negative T number (default: 239471 s) tdef_vty_test(config-net)# show running-config ... !timer -- To view, visit https://gerrit.osmocom.org/12841 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I6242243bde1d7ddebb858512a1f0b07f4ec3e5c2 Gerrit-Change-Number: 12841 Gerrit-PatchSet: 5 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 08:05:13 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 08:05:13 +0000 Subject: Change in osmo-bsc[master]: comments: clarify usage of conn.assignment and .handover scopes In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12842 ) Change subject: comments: clarify usage of conn.assignment and .handover scopes ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12842 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7ef602c3ce086aecbc3ae3ae6d3fd33ad2b9f85c Gerrit-Change-Number: 12842 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Wed, 06 Feb 2019 08:05:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 08:05:16 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 08:05:16 +0000 Subject: Change in osmo-bsc[master]: handover_fsm: do not access conn->assignment.req, it may be outdated In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12734 ) Change subject: handover_fsm: do not access conn->assignment.req, it may be outdated ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id8018fd9d56421f2ab7be91703018f6d6f21c929 Gerrit-Change-Number: 12734 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Max Gerrit-Comment-Date: Wed, 06 Feb 2019 08:05:16 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 08:06:12 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 08:06:12 +0000 Subject: Change in osmo-msc[master]: libmsc/osmo_msc.c: move connection ref-counting code to 'ran_conn.c' In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12698 ) Change subject: libmsc/osmo_msc.c: move connection ref-counting code to 'ran_conn.c' ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I593675d9bf56eaef12afdaf596ee1337b9a44259 Gerrit-Change-Number: 12698 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Wed, 06 Feb 2019 08:06:12 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 08:08:27 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 08:08:27 +0000 Subject: Change in libosmocore[master]: gsm/gsm0480: introduce gsm0480_create_release_complete[_cause]() API In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12839 ) Change subject: gsm/gsm0480: introduce gsm0480_create_release_complete[_cause]() API ...................................................................... Patch Set 1: If you're introducing a new API function, I would consider it "most clean" if one were to pass a "struct release_cause { location; cause; }" kind of struct as a "const *" pointer to a function. If that pointer is NULL, then the optional element is not encoded. If it's non-null the optional element is encoded as per the elements in that struct. It's not critical, I would also merge your patch as-is, if you prefer. -- To view, visit https://gerrit.osmocom.org/12839 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie3ac85fcef90a5e532334ba3482804d5305c88d7 Gerrit-Change-Number: 12839 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Harald Welte Gerrit-Comment-Date: Wed, 06 Feb 2019 08:08:27 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 08:09:39 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 08:09:39 +0000 Subject: Change in libosmo-netif[master]: Ignore test binaries In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12759 ) Change subject: Ignore test binaries ...................................................................... Ignore test binaries Change-Id: Ice6f5aec2f22a97033a555a292a5648090fc5970 --- M .gitignore 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/.gitignore b/.gitignore index 31b7a15..672708d 100644 --- a/.gitignore +++ b/.gitignore @@ -53,3 +53,6 @@ /examples/udp-test-server .*.sw? +jibuf_test +jibuf_tool +osmux_test2 -- To view, visit https://gerrit.osmocom.org/12759 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ice6f5aec2f22a97033a555a292a5648090fc5970 Gerrit-Change-Number: 12759 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pablo Neira Ayuso Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 08:09:26 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 08:09:26 +0000 Subject: Change in libosmo-netif[master]: Stream examples: fix typos in error message In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12825 ) Change subject: Stream examples: fix typos in error message ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12825 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I47cc8c7340eb188d85a49d4f41c295bed0e1bee4 Gerrit-Change-Number: 12825 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: osmith Gerrit-CC: daniel Gerrit-Comment-Date: Wed, 06 Feb 2019 08:09:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 08:09:37 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 08:09:37 +0000 Subject: Change in libosmo-netif[master]: Ignore test binaries In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12759 ) Change subject: Ignore test binaries ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12759 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ice6f5aec2f22a97033a555a292a5648090fc5970 Gerrit-Change-Number: 12759 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pablo Neira Ayuso Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 06 Feb 2019 08:09:37 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 08:09:28 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 08:09:28 +0000 Subject: Change in libosmo-netif[master]: Stream examples: fix typos in error message In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12825 ) Change subject: Stream examples: fix typos in error message ...................................................................... Stream examples: fix typos in error message Likely a copy-paste error from corresponding client example code. Change-Id: I47cc8c7340eb188d85a49d4f41c295bed0e1bee4 --- M examples/stream-server.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/examples/stream-server.c b/examples/stream-server.c index c1086ec..f3ee315 100644 --- a/examples/stream-server.c +++ b/examples/stream-server.c @@ -148,7 +148,7 @@ srv = osmo_stream_srv_link_create(tall_test); if (srv == NULL) { - fprintf(stderr, "cannot create client\n"); + fprintf(stderr, "cannot create server link\n"); exit(EXIT_FAILURE); } osmo_stream_srv_link_set_addr(srv, "127.0.0.1"); @@ -156,7 +156,7 @@ osmo_stream_srv_link_set_accept_cb(srv, accept_cb); if (osmo_stream_srv_link_open(srv) < 0) { - fprintf(stderr, "cannot open client\n"); + fprintf(stderr, "cannot open server link\n"); exit(EXIT_FAILURE); } -- To view, visit https://gerrit.osmocom.org/12825 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I47cc8c7340eb188d85a49d4f41c295bed0e1bee4 Gerrit-Change-Number: 12825 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: osmith Gerrit-CC: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 08:10:13 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 08:10:13 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: replace octet string with decmatch when matching RR RELEASE In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12819 ) Change subject: bsc: replace octet string with decmatch when matching RR RELEASE ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12819 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0a91e067f7e8062bf991fef8b0d4d8da740bfafc Gerrit-Change-Number: 12819 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Wed, 06 Feb 2019 08:10:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 08:10:18 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 08:10:18 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Test CSFB "Fast Return" in new TC_chan_rel_hard_clear_csfb In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12820 ) Change subject: bsc: Test CSFB "Fast Return" in new TC_chan_rel_hard_clear_csfb ...................................................................... bsc: Test CSFB "Fast Return" in new TC_chan_rel_hard_clear_csfb When a MSC releases a connection using the BSSMAP CLEAR CMD, it can specify that this call was part of CSFB. The BSC is then supposed to add a special IE to the RR RELEASE message which will help the phone to switch back to LTE as soon as possible. This commit adds a new test case testing for exactly that behavior. The test does *not* verify if the EARFCN information contained is actually correct, only that the IE is present in the RR RELEASE. Change-Id: I7501fb25578412c882ff92da5d388f3079bbce7f Requires: osmo-bsc Ibfbb87e2e16b05032ad1cb91c11fad1b2f76d755 Related: OS#3777 --- M bsc/BSC_Tests.ttcn M library/BSSMAP_Templates.ttcn M library/L3_Templates.ttcn 3 files changed, 56 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 555aac8..5d8f375 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -856,7 +856,8 @@ boolean expect_deact_sacch := true, boolean expect_rr_chan_rel := true, boolean expect_rll_rel_req := true, - boolean handle_rll_rel := true + boolean handle_rll_rel := true, + boolean is_csfb := false ) runs on test_CT { var RslLinkId main_dcch := valueof(ts_RslLinkID_DCCH(0)); @@ -871,7 +872,11 @@ got_deact_sacch := true; repeat; } - [] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE))) { + [is_csfb] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE_CSFB))) { + got_rr_chan_rel := true; + repeat; + } + [not is_csfb] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE))) { got_rr_chan_rel := true; repeat; } @@ -932,6 +937,29 @@ setverdict(pass); } +/* Test behavior of channel release after Clear Command with CSFB indicator from MSC */ +testcase TC_chan_rel_hard_clear_csfb() runs on test_CT { + var BSSAP_N_DATA_ind rx_di; + var DchanTuple dt; + + f_init(1); + + dt := f_est_dchan('23'O, 23, '00010203040506'O); + + /* Instruct BSC to clear channel */ + var BssmapCause cause := 0; + BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSMAP_ClearCommandCSFB(cause))); + + /* expect Clear Complete from BSC on A */ + BSSAP.receive(tr_BSSAP_DATA_ind(dt.sccp_conn_id, tr_BSSMAP_ClearComplete)) { + /* release the SCCP connection */ + BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0)); + } + + f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false, is_csfb := true); + setverdict(pass); +} + /* Test behavior of channel release after hard RLSD from MSC */ testcase TC_chan_rel_hard_rlsd() runs on test_CT { var DchanTuple dt; @@ -3697,6 +3725,7 @@ execute( TC_chan_rel_rll_rel_ind() ); execute( TC_chan_rel_conn_fail() ); execute( TC_chan_rel_hard_clear() ); + execute( TC_chan_rel_hard_clear_csfb() ); execute( TC_chan_rel_hard_rlsd() ); execute( TC_chan_rel_hard_rlsd_ms_dead() ); execute( TC_chan_rel_a_reset() ); diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index ff151f0..a30b8e7 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -612,6 +612,18 @@ } } } +template (value) PDU_BSSAP ts_BSSMAP_ClearCommandCSFB(BssmapCause cause) +modifies ts_BSSMAP_ClearCommand := { + pdu := { + bssmap := { + clearCommand := { + cSFB_Indication := { + elementIdentifier := '8F'O + } + } + } + } +} template PDU_BSSAP tr_BSSMAP_ClearCommand modifies tr_BSSAP_BSSMAP := { pdu := { diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn index 0b714d3..6099303 100644 --- a/library/L3_Templates.ttcn +++ b/library/L3_Templates.ttcn @@ -692,6 +692,19 @@ } } +template PDU_ML3_NW_MS tr_RRM_RR_RELEASE_CSFB(template OCT1 cause := ?) modifies tr_RRM_RR_RELEASE := { + msgs := { + rrm := { + channelRelease := { + cellSelectionIndicator := { + elementIdentifier := '77'O, + lengthIndicator := ?, + cellSelectionIndicatorValue := ? + } + } + } + } +} template PDU_ML3_MS_NW ts_ML3_MO := { discriminator := '0000'B, -- To view, visit https://gerrit.osmocom.org/12820 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I7501fb25578412c882ff92da5d388f3079bbce7f Gerrit-Change-Number: 12820 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 08:10:14 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 08:10:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: replace octet string with decmatch when matching RR RELEASE In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12819 ) Change subject: bsc: replace octet string with decmatch when matching RR RELEASE ...................................................................... bsc: replace octet string with decmatch when matching RR RELEASE The 'decmatch' keyword allows us to match the decoded version of some octetstring, which is very useful in the situations where we have the L3 message only as octetstring but want to check if it matches some L3 template. Change-Id: I0a91e067f7e8062bf991fef8b0d4d8da740bfafc --- M bsc/BSC_Tests.ttcn M bsc/BSC_Tests_LCLS.ttcn M library/L3_Templates.ttcn 3 files changed, 34 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 5ac8191..555aac8 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -62,7 +62,6 @@ const integer NUM_TCHH_PER_BTS := 2; const integer NUM_TCHF_PER_BTS := 4; const integer NUM_SDCCH_PER_BTS := 4; -template octetstring t_l3_rr_chan_rel := '060D??*'O; /* per-BTS state which we keep */ @@ -872,7 +871,7 @@ got_deact_sacch := true; repeat; } - [] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_DATA_REQ(rsl_chan_nr, ?, t_l3_rr_chan_rel))) { + [] IPA_RSL[bts_nr].receive(tr_ASP_RSL_UD(IPAC_PROTO_RSL_TRX0, tr_RSL_DATA_REQ(rsl_chan_nr, ?, decmatch tr_RRM_RR_RELEASE))) { got_rr_chan_rel := true; repeat; } @@ -2816,7 +2815,7 @@ [] RSL.receive(tr_RSL_DEACT_SACCH(g_chan_nr)) { log("Got Deact SACCH"); } - [] RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, t_l3_rr_chan_rel)) { + [] RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch tr_RRM_RR_RELEASE)) { log("Got RR Release"); } [] RSL.receive(tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL)) { diff --git a/bsc/BSC_Tests_LCLS.ttcn b/bsc/BSC_Tests_LCLS.ttcn index 0fada93..67ccecf 100644 --- a/bsc/BSC_Tests_LCLS.ttcn +++ b/bsc/BSC_Tests_LCLS.ttcn @@ -702,7 +702,7 @@ var myBSSMAP_Cause cause_val := GSM0808_CAUSE_CALL_CONTROL; CONN_A.send(ts_BSSMAP_ClearCommand(enum2int(cause_val))); interleave { - [] CONN_A.receive(tr_RSL_DATA_REQ(?, tr_RslLinkID_DCCH(0), t_l3_rr_chan_rel)); + [] CONN_A.receive(tr_RSL_DATA_REQ(?, tr_RslLinkID_DCCH(0), decmatch tr_RRM_RR_RELEASE)); [] CONN_A.receive(tr_RSL_DEACT_SACCH(?)); [] CONN_A.receive(tr_RSL_RF_CHAN_REL(?)) -> value rsl { var RSL_IE_Body ieb; diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn index 3978498..0b714d3 100644 --- a/library/L3_Templates.ttcn +++ b/library/L3_Templates.ttcn @@ -660,6 +660,37 @@ } } +template PDU_ML3_NW_MS tr_RRM_RR_RELEASE(template OCT1 cause := ?) := { + discriminator := '0110'B, + tiOrSkip := { + skipIndicator := '0000'B + }, + msgs := { + rrm := { + channelRelease := { + messageType := '00001101'B, + rRCause := { + valuePart := cause + }, + bARange := *, + groupChannelDescription := *, + groupCipherKeyNumber := *, + gPRSResumption := *, + bAListPref := *, + uTRANFrequencyList := *, + cellChannelDescr := *, + cellSelectionIndicator := *, + enhanced_DTM_CS_Release_Indication := *, + vGCS_Ciphering_Parameters := *, + group_Channel_Description_2 := *, + talkerIdentity := *, + talkerPriorityStatus := *, + vGCS_AMR_Configuration := *, + individual_Priorities := * + } + } + } +} template PDU_ML3_MS_NW ts_ML3_MO := { -- To view, visit https://gerrit.osmocom.org/12819 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I0a91e067f7e8062bf991fef8b0d4d8da740bfafc Gerrit-Change-Number: 12819 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 08:10:04 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 08:10:04 +0000 Subject: Change in osmo-sysmon[master]: Install signal handlers before processing config In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12758 ) Change subject: Install signal handlers before processing config ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12758 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6dd1ad55a227db08595d844008be86f648fa92c1 Gerrit-Change-Number: 12758 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 06 Feb 2019 08:10:04 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 08:10:05 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 08:10:05 +0000 Subject: Change in osmo-sysmon[master]: Install signal handlers before processing config In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12758 ) Change subject: Install signal handlers before processing config ...................................................................... Install signal handlers before processing config It's easier to troubleshoot vty-related issues when we can send signals to obtain talloc report. Change-Id: I6dd1ad55a227db08595d844008be86f648fa92c1 --- M src/osysmon_main.c 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: Harald Welte: Looks good to me, approved osmith: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osysmon_main.c b/src/osysmon_main.c index eb4f50b..91d5039 100644 --- a/src/osysmon_main.c +++ b/src/osysmon_main.c @@ -210,6 +210,10 @@ ping_init = osysmon_ping_init(); osysmon_file_init(); + signal(SIGUSR1, &signal_handler); + signal(SIGUSR2, &signal_handler); + osmo_init_ignore_signals(); + rc = vty_read_config_file(cmdline_opts.config_file, NULL); if (rc < 0) { fprintf(stderr, "Failed to parse the config file %s\n", @@ -217,10 +221,6 @@ exit(2); } - signal(SIGUSR1, &signal_handler); - signal(SIGUSR2, &signal_handler); - osmo_init_ignore_signals(); - if (cmdline_opts.daemonize) { rc = osmo_daemonize(); if (rc < 0) { -- To view, visit https://gerrit.osmocom.org/12758 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I6dd1ad55a227db08595d844008be86f648fa92c1 Gerrit-Change-Number: 12758 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 08:10:16 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 08:10:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bsc: Test CSFB "Fast Return" in new TC_chan_rel_hard_clear_csfb In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12820 ) Change subject: bsc: Test CSFB "Fast Return" in new TC_chan_rel_hard_clear_csfb ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12820 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7501fb25578412c882ff92da5d388f3079bbce7f Gerrit-Change-Number: 12820 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Wed, 06 Feb 2019 08:10:16 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 08:14:36 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 08:14:36 +0000 Subject: Change in osmo-mgw[master]: Inactive connection cleanup (disabled by default) In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12730 ) Change subject: Inactive connection cleanup (disabled by default) ...................................................................... Patch Set 6: I think this patch is missing to export the currently remaining timeout as part of the "show mgcp [stats]" command. Or did I miss something? -- To view, visit https://gerrit.osmocom.org/12730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I18886052e090466f73829133c24f011806cc1fe0 Gerrit-Change-Number: 12730 Gerrit-PatchSet: 6 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-CC: Harald Welte Gerrit-Comment-Date: Wed, 06 Feb 2019 08:14:36 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 08:15:17 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 08:15:17 +0000 Subject: Change in libosmo-netif[master]: Add stream client/server test In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12837 ) Change subject: Add stream client/server test ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I336f79970982ed8e1d73b73d54fa4c27ba8bce8e Gerrit-Change-Number: 12837 Gerrit-PatchSet: 7 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 06 Feb 2019 08:15:17 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 08:21:41 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 08:21:41 +0000 Subject: Change in libosmocore[master]: VTY: add command show asciidoc ctrl In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12814 ) Change subject: VTY: add command show asciidoc ctrl ...................................................................... Patch Set 2: (3 comments) I agree with Vadim in that there are two separate features merged in one patch which should be separate: 1) exposing the list via CTRL, and 2) adding access modes. I would assume '1' is the less controversial change, and hence it should be first so it can be merged independently of the second. Whether or not we'd want to go this way with extneding the CTRL interface, and whether the proposed implementation complies with the CTRL interface in general is something I put into Daniels' hands, as he created CTRL originally. https://gerrit.osmocom.org/#/c/12814/2/include/osmocom/ctrl/control_cmd.h File include/osmocom/ctrl/control_cmd.h: https://gerrit.osmocom.org/#/c/12814/2/include/osmocom/ctrl/control_cmd.h at 107 PS2, Line 107: enum ctrl_cmd_mode mode; > You're breaking ABI here. To give more context: As per our policy, this would require dding an entry to the TODO-RELEASE file, as it requires us to increment the LIBVERSION at the next version tag to avoid breaking backwards/forwards ABI compatibility. https://gerrit.osmocom.org/#/c/12814/2/include/osmocom/ctrl/control_cmd.h at 152 PS2, Line 152: CTRL_CMD_DEFINE_STRUCT > Since this is a public header, we cannot modify existing symbols nor definitions. this is required to ensure that old code can be built against new libraries. So you cannot change the number/order of arguments to any existing function or macro, but must always introduce a new one while keeping the old one as a compatibility wrapper with reasonable defaults. https://gerrit.osmocom.org/#/c/12814/2/src/ctrl/control_vty.c File src/ctrl/control_vty.c: https://gerrit.osmocom.org/#/c/12814/2/src/ctrl/control_vty.c at 89 PS2, Line 89: switch(cmd_el->mode){ > Missing space, should be 'switch ('. the philosophy of the Linux kernel coding style (which we use) is "if, switch, etc. are no functions, hence a space". -- To view, visit https://gerrit.osmocom.org/12814 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I16f59bfca72a7dd9c268bc64499b26d82a2115d2 Gerrit-Change-Number: 12814 Gerrit-PatchSet: 2 Gerrit-Owner: Omar Ramadan Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 06 Feb 2019 08:21:41 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 08:23:59 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 6 Feb 2019 08:23:59 +0000 Subject: Change in libosmocore[master]: gsm/gsm0480: introduce gsm0480_create_release_complete[_cause]() API In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12839 ) Change subject: gsm/gsm0480: introduce gsm0480_create_release_complete[_cause]() API ...................................................................... Patch Set 1: Hi Harald, > If you're introducing a new API function, I would consider it "most > clean" if one were to pass a "struct release_cause { location; > cause; }" kind of struct as a "const *" pointer to a function. If > that pointer is NULL, then the optional element is not encoded. If > it's non-null the optional element is encoded as per the elements > in that struct. hmm, yes. But since you're suggesting to introduce a new struct, I think we need to introduce the new API for Cause IE. The current gsm48_encode_cause() is mixed up with gsm_mncc_cause struct, and I really don't like this... -- To view, visit https://gerrit.osmocom.org/12839 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie3ac85fcef90a5e532334ba3482804d5305c88d7 Gerrit-Change-Number: 12839 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-CC: Harald Welte Gerrit-Comment-Date: Wed, 06 Feb 2019 08:23:59 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 10:00:26 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Wed, 6 Feb 2019 10:00:26 +0000 Subject: Change in libosmo-netif[master]: Add stream client/server test In-Reply-To: References: Message-ID: Hello daniel, Harald Welte, osmith, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12837 to look at the new patch set (#8). Change subject: Add stream client/server test ...................................................................... Add stream client/server test Previously stream client and server code were only used in examples which means regressions could be easily introduced unnoticed until they trigger bugs in external code which relies on osmo_stream_*() Fix this by adding basic client-server interaction test with single reconnection iteration. Change-Id: I336f79970982ed8e1d73b73d54fa4c27ba8bce8e --- M .gitignore M tests/Makefile.am A tests/stream/stream_test.c A tests/stream/stream_test.ok M tests/testsuite.at 5 files changed, 297 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/37/12837/8 -- To view, visit https://gerrit.osmocom.org/12837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I336f79970982ed8e1d73b73d54fa4c27ba8bce8e Gerrit-Change-Number: 12837 Gerrit-PatchSet: 8 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 10:05:38 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Wed, 6 Feb 2019 10:05:38 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_80.c: use gsm0480_create_release_complete() In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12840 ) Change subject: libmsc/gsm_04_80.c: use gsm0480_create_release_complete() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12840 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id2975c3383f18e83124ba38927c03980d67ddadb Gerrit-Change-Number: 12840 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Wed, 06 Feb 2019 10:05:38 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 10:08:41 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Wed, 6 Feb 2019 10:08:41 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/11992 ) Change subject: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions ...................................................................... Patch Set 8: Code-Review-1 Same comments as before. -- To view, visit https://gerrit.osmocom.org/11992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icf4d87c45e90324764073e8230e0fb9cb96dd9cb Gerrit-Change-Number: 11992 Gerrit-PatchSet: 8 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-CC: Stefan Sperling Gerrit-Comment-Date: Wed, 06 Feb 2019 10:08:41 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 10:30:47 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 6 Feb 2019 10:30:47 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/11992 ) Change subject: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions ...................................................................... Patch Set 8: Hi Max, > Same comments as before. > Patch set 8: Code-Review -1 same opinion as before: not critical. > If that's the only reason than it's better to use uint8_t > (which can be casted to int without any issues) to keep it > consistent with vty code. Your suggestion to use 'uint8_t' wouldn't make it better, as there is no need to use fixed-size type in this particular case. We can extend the VTY later on to allow longer timeout values, so using generic 'unsigned int' would make more sense. Anyway, in general we neither use 'unsigned int' nor fixed-types in the 'for' statements where the counter 'i' is always > 0 - we just use 'int' and leave it up to the compiler. Nobody does complain about this. This patch is consistent with the current code, where we use 'int' for MNCC timeout, as well as with the libosmocore's API, where osmo_timer_schedule() does accept 'int'. The change does what is written in the commit message, and it also has the test case, so I don't see any reason to block it due to such minor issues. Again, if you have enough time and strong desire, feel free to submit a patch that changes both variables to 'unsigned int'. -- To view, visit https://gerrit.osmocom.org/11992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icf4d87c45e90324764073e8230e0fb9cb96dd9cb Gerrit-Change-Number: 11992 Gerrit-PatchSet: 8 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-CC: Stefan Sperling Gerrit-Comment-Date: Wed, 06 Feb 2019 10:30:47 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 10:38:41 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 6 Feb 2019 10:38:41 +0000 Subject: Change in libosmocore[master]: gsm/gsm0480: introduce gsm0480_create_release_complete() In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12839 ) Change subject: gsm/gsm0480: introduce gsm0480_create_release_complete() ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/12839 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie3ac85fcef90a5e532334ba3482804d5305c88d7 Gerrit-Change-Number: 12839 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-CC: Harald Welte Gerrit-Comment-Date: Wed, 06 Feb 2019 10:38:41 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 10:59:56 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 6 Feb 2019 10:59:56 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions In-Reply-To: References: Message-ID: Hello Max, Neels Hofmeyr, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/11992 to look at the new patch set (#9). Change subject: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions ...................................................................... libmsc/gsm_09_11.c: implement guard timer for NCSS sessions It may happen that either the MS or an ESME would become unresponsive during a call independent SS session, e.g. due to a bug, or a dropped message. In such cases, the corresponding transaction would remain unfreed forever. This change introduces a guard timer, that prevents keeping 'stalled' NCSS sessions forever. As soon as it expires, both sides (i.e. MS and ESME) are getting notified, and the transaction is being released. By default, the timer expires after 30 seconds. As soon as either the MS, or an ESME initiates any activity, the watchdog timer is rescheduled. The timeout value can be configured from the VTY: msc ... ! Use 0 to disable this timer ncss guard-timeout 30 This change makes TC_lu_and_ss_session_timeout pass. Change-Id: Icf4d87c45e90324764073e8230e0fb9cb96dd9cb Depends Change-Id: (libosmocore) Ie3ac85fcef90a5e532334ba3482804d5305c88d7 Related Change-Id: (TTCN) I3e1791773d56617172ae27a46889a1ae4d400e2f Related: OS#3655 --- M include/osmocom/msc/gsm_data.h M include/osmocom/msc/transaction.h M src/libmsc/gsm_09_11.c M src/libmsc/msc_vty.c M src/libmsc/osmo_msc.c M tests/test_nodes.vty 6 files changed, 86 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/92/11992/9 -- To view, visit https://gerrit.osmocom.org/11992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Icf4d87c45e90324764073e8230e0fb9cb96dd9cb Gerrit-Change-Number: 11992 Gerrit-PatchSet: 9 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-CC: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 10:59:57 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 6 Feb 2019 10:59:57 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_80.c: add msc_send_ussd_release_complete_cause() Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/12843 Change subject: libmsc/gsm_04_80.c: add msc_send_ussd_release_complete_cause() ...................................................................... libmsc/gsm_04_80.c: add msc_send_ussd_release_complete_cause() According to GSM 04.80, section 2.5.1, Release complete message may have an optional Cause IE. Let's add a new function, that allows to specify cause location and value. This function will be used by the upcoming changes. Change-Id: I3b9e8e4f473d113d5b9e9e5d33f7914202077203 --- M include/osmocom/msc/gsm_04_80.h M src/libmsc/gsm_04_80.c 2 files changed, 31 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/43/12843/1 diff --git a/include/osmocom/msc/gsm_04_80.h b/include/osmocom/msc/gsm_04_80.h index 0008c22..c95ca85 100644 --- a/include/osmocom/msc/gsm_04_80.h +++ b/include/osmocom/msc/gsm_04_80.h @@ -12,3 +12,6 @@ const char *text); int msc_send_ussd_release_complete(struct ran_conn *conn, uint8_t transaction_id) +int msc_send_ussd_release_complete_cause(struct ran_conn *conn, + uint8_t transaction_id, + uint8_t cause_loc, uint8_t cause_val) diff --git a/src/libmsc/gsm_04_80.c b/src/libmsc/gsm_04_80.c index 502848f..e3547f4 100644 --- a/src/libmsc/gsm_04_80.c +++ b/src/libmsc/gsm_04_80.c @@ -86,3 +86,31 @@ return -1; return msc_tx_dtap(conn, msg); } + +int msc_send_ussd_release_complete_cause(struct ran_conn *conn, + uint8_t transaction_id, + uint8_t cause_loc, uint8_t cause_val) +{ + struct msgb *msg; + uint8_t *cause_ie; + + msg = gsm0480_create_release_complete(transaction_id); + if (!msg) + return -1; + + /* Encode cause IE (see GSM 04.08, section 10.5.4.11) + * with fixed length (2 bytes of TL, 2 bytes of payload). + * NOTE: we don't use gsm48_encode_cause() API because + * it wants gsm_mncc_cause struct from us. */ + cause_ie = msgb_put(msg, 2 + 2); + cause_ie[0] = GSM48_IE_CAUSE; + cause_ie[1] = 2; + + /* Coding standard defined for the GSM PLMNs, + * location and cause: as given by caller, + * no extension, no diagnostics. */ + cause_ie[2] = (1 << 7) | (0x03 << 5) | (cause_loc & 0x0f); + cause_ie[3] = (1 << 7) | cause_val; + + return msc_tx_dtap(conn, msg); +} -- To view, visit https://gerrit.osmocom.org/12843 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I3b9e8e4f473d113d5b9e9e5d33f7914202077203 Gerrit-Change-Number: 12843 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 11:02:26 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 6 Feb 2019 11:02:26 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_80.c: use gsm0480_create_release_complete() In-Reply-To: References: Message-ID: Hello Max, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12840 to look at the new patch set (#2). Change subject: libmsc/gsm_04_80.c: use gsm0480_create_release_complete() ...................................................................... libmsc/gsm_04_80.c: use gsm0480_create_release_complete() The previous implementation of msc_send_ussd_release_complete() was based on gsm0480_create_ussd_release_complete(), that doesn't allow to specify GSM 04.07 transaction identifier. The ability to specify particular transaction identifier is required for handling multiple SS/USSD transactions. Change-Id: Id2975c3383f18e83124ba38927c03980d67ddadb Depends Change-Id: (libosmocore) Ie3ac85fcef90a5e532334ba3482804d5305c88d7 --- M include/osmocom/msc/gsm_04_80.h M src/libmsc/gsm_04_80.c M src/libmsc/msc_vty.c 3 files changed, 8 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/40/12840/2 -- To view, visit https://gerrit.osmocom.org/12840 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Id2975c3383f18e83124ba38927c03980d67ddadb Gerrit-Change-Number: 12840 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 11:02:26 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 6 Feb 2019 11:02:26 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_80.c: add msc_send_ussd_release_complete_cause() In-Reply-To: References: Message-ID: Vadim Yanitskiy has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/12843 ) Change subject: libmsc/gsm_04_80.c: add msc_send_ussd_release_complete_cause() ...................................................................... libmsc/gsm_04_80.c: add msc_send_ussd_release_complete_cause() According to GSM 04.80, section 2.5.1, Release complete message may have an optional Cause IE. Let's add a new function, that allows to specify cause location and value. This function will be used by the upcoming changes. Change-Id: I3b9e8e4f473d113d5b9e9e5d33f7914202077203 Depends Change-Id: (libosmocore) Ie3ac85fcef90a5e532334ba3482804d5305c88d7 --- M include/osmocom/msc/gsm_04_80.h M src/libmsc/gsm_04_80.c 2 files changed, 31 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/43/12843/2 -- To view, visit https://gerrit.osmocom.org/12843 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I3b9e8e4f473d113d5b9e9e5d33f7914202077203 Gerrit-Change-Number: 12843 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-CC: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 11:02:26 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 6 Feb 2019 11:02:26 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions In-Reply-To: References: Message-ID: Hello Max, Neels Hofmeyr, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/11992 to look at the new patch set (#10). Change subject: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions ...................................................................... libmsc/gsm_09_11.c: implement guard timer for NCSS sessions It may happen that either the MS or an ESME would become unresponsive during a call independent SS session, e.g. due to a bug, or a dropped message. In such cases, the corresponding transaction would remain unfreed forever. This change introduces a guard timer, that prevents keeping 'stalled' NCSS sessions forever. As soon as it expires, both sides (i.e. MS and ESME) are getting notified, and the transaction is being released. By default, the timer expires after 30 seconds. As soon as either the MS, or an ESME initiates any activity, the watchdog timer is rescheduled. The timeout value can be configured from the VTY: msc ... ! Use 0 to disable this timer ncss guard-timeout 30 This change makes TC_lu_and_ss_session_timeout pass. Change-Id: Icf4d87c45e90324764073e8230e0fb9cb96dd9cb Related Change-Id: (TTCN) I3e1791773d56617172ae27a46889a1ae4d400e2f Related: OS#3655 --- M include/osmocom/msc/gsm_data.h M include/osmocom/msc/transaction.h M src/libmsc/gsm_09_11.c M src/libmsc/msc_vty.c M src/libmsc/osmo_msc.c M tests/test_nodes.vty 6 files changed, 86 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/92/11992/10 -- To view, visit https://gerrit.osmocom.org/11992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Icf4d87c45e90324764073e8230e0fb9cb96dd9cb Gerrit-Change-Number: 11992 Gerrit-PatchSet: 10 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-CC: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 11:02:59 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 6 Feb 2019 11:02:59 +0000 Subject: Change in osmo-mgw[master]: Inactive connection cleanup (disabled by default) In-Reply-To: References: Message-ID: Hello Vadim Yanitskiy, daniel, Max, Neels Hofmeyr, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12730 to look at the new patch set (#7). Change subject: Inactive connection cleanup (disabled by default) ...................................................................... Inactive connection cleanup (disabled by default) Add a watchdog timer to connections, and close these connections when the watchdog timer expires. Kick the watchdog whenever RTP messages or the relevant MGCP messages arrive. Add the currently remaining timeout to "show mgcp stats" in the VTY. This feature is disabled by default, as it is incompatible with LCLS (connections in LCLS state appear to be inactive). Enable it with the new "conn-timeout" VTY setting. In general, this feature can be used to work around interoperability problems causing connections to stay open forever, and slowly exhausting all available ports. This happened for various reasons already. MDCX is the only relevant MGCP message: - CRCX creates the conn and timer - DLCX deletes the conn and timer - MDCX is the only remaining supported MGCP message that indicates a CI - Can't easily generically parse a CI for all MGCP messages, parsing is done in handle_modify_con(). Related: OS#3429 Change-Id: I18886052e090466f73829133c24f011806cc1fe0 --- M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_internal.h M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_vty.c M tests/mgcp/mgcp_test.c 7 files changed, 61 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/30/12730/7 -- To view, visit https://gerrit.osmocom.org/12730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I18886052e090466f73829133c24f011806cc1fe0 Gerrit-Change-Number: 12730 Gerrit-PatchSet: 7 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 11:05:57 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 6 Feb 2019 11:05:57 +0000 Subject: Change in osmo-mgw[master]: Inactive connection cleanup (disabled by default) In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12730 ) Change subject: Inactive connection cleanup (disabled by default) ...................................................................... Patch Set 7: (1 comment) > I think this patch is missing to export the currently remaining timeout as part of the "show mgcp [stats]" command. Or did I miss something? Right, I did not think about displaying the remaining timeout anywhere. It is implemented now, e.g. with "conn-timeout 60": OsmoMGW> show mgcp stats Virtual trunk 0 with 64 endpoints: Virtual trunk 0 endpoint rtpbridge/01: CONN: (138c/rtp, id:0xC4E6CC99, ip:192.168.1.37, rtp:16008 rtcp:16009) Currently remaining timeout (seconds): 59.990917 Packets Sent: 108 (4955 bytes total) Packets Received: 108 (4955 bytes total) ... And it even helped uncover a bug, I had parsed the conn-timeout value as hex number instead of decimal number. It's all fixed now, can you guys take another look? https://gerrit.osmocom.org/#/c/12730/6/src/libosmo-mgcp/mgcp_vty.c File src/libosmo-mgcp/mgcp_vty.c: https://gerrit.osmocom.org/#/c/12730/6/src/libosmo-mgcp/mgcp_vty.c at 1342 PS6, Line 1342: This must be 10! -- To view, visit https://gerrit.osmocom.org/12730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I18886052e090466f73829133c24f011806cc1fe0 Gerrit-Change-Number: 12730 Gerrit-PatchSet: 7 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-CC: Harald Welte Gerrit-Comment-Date: Wed, 06 Feb 2019 11:05:57 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 12:34:44 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 12:34:44 +0000 Subject: Change in libosmocore[master]: platform independence fix: tdef range tests In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12841 ) Change subject: platform independence fix: tdef range tests ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12841 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6242243bde1d7ddebb858512a1f0b07f4ec3e5c2 Gerrit-Change-Number: 12841 Gerrit-PatchSet: 5 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Wed, 06 Feb 2019 12:34:44 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 12:35:25 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 12:35:25 +0000 Subject: Change in osmo-mgw[master]: Inactive connection cleanup (disabled by default) In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12730 ) Change subject: Inactive connection cleanup (disabled by default) ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I18886052e090466f73829133c24f011806cc1fe0 Gerrit-Change-Number: 12730 Gerrit-PatchSet: 7 Gerrit-Owner: osmith Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 06 Feb 2019 12:35:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 12:41:39 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 6 Feb 2019 12:41:39 +0000 Subject: Change in osmo-mgw[master]: Inactive connection cleanup (disabled by default) In-Reply-To: References: Message-ID: osmith has submitted this change and it was merged. ( https://gerrit.osmocom.org/12730 ) Change subject: Inactive connection cleanup (disabled by default) ...................................................................... Inactive connection cleanup (disabled by default) Add a watchdog timer to connections, and close these connections when the watchdog timer expires. Kick the watchdog whenever RTP messages or the relevant MGCP messages arrive. Add the currently remaining timeout to "show mgcp stats" in the VTY. This feature is disabled by default, as it is incompatible with LCLS (connections in LCLS state appear to be inactive). Enable it with the new "conn-timeout" VTY setting. In general, this feature can be used to work around interoperability problems causing connections to stay open forever, and slowly exhausting all available ports. This happened for various reasons already. MDCX is the only relevant MGCP message: - CRCX creates the conn and timer - DLCX deletes the conn and timer - MDCX is the only remaining supported MGCP message that indicates a CI - Can't easily generically parse a CI for all MGCP messages, parsing is done in handle_modify_con(). Related: OS#3429 Change-Id: I18886052e090466f73829133c24f011806cc1fe0 --- M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_internal.h M src/libosmo-mgcp/mgcp_conn.c M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_vty.c M tests/mgcp/mgcp_test.c 7 files changed, 61 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/mgcp/mgcp.h b/include/osmocom/mgcp/mgcp.h index 034a780..7597af8 100644 --- a/include/osmocom/mgcp/mgcp.h +++ b/include/osmocom/mgcp/mgcp.h @@ -274,6 +274,9 @@ uint16_t osmux_dummy; /* domain name of the media gateway */ char domain[255+1]; + + /* time after which inactive connections (CIs) get closed */ + int conn_timeout; }; /* config management */ diff --git a/include/osmocom/mgcp/mgcp_internal.h b/include/osmocom/mgcp/mgcp_internal.h index f75ae8b..14c5f11 100644 --- a/include/osmocom/mgcp/mgcp_internal.h +++ b/include/osmocom/mgcp/mgcp_internal.h @@ -231,6 +231,9 @@ /*! human readable name (vty, logging) */ char name[256]; + /*! activity tracker (for cleaning up inactive connections) */ + struct osmo_timer_list watchdog; + /*! union with connection description */ union { struct mgcp_conn_rtp rtp; @@ -328,3 +331,4 @@ #define PTYPE_UNDEFINED (-1) void mgcp_get_local_addr(char *addr, struct mgcp_conn_rtp *conn); +void mgcp_conn_watchdog_kick(struct mgcp_conn *conn); diff --git a/src/libosmo-mgcp/mgcp_conn.c b/src/libosmo-mgcp/mgcp_conn.c index fce8a78..a8341d6 100644 --- a/src/libosmo-mgcp/mgcp_conn.c +++ b/src/libosmo-mgcp/mgcp_conn.c @@ -29,6 +29,7 @@ #include #include #include +#include #include const static struct rate_ctr_group_desc rate_ctr_group_desc = { @@ -125,6 +126,23 @@ rate_ctr_group_free(conn_rtp->rate_ctr_group); } +void mgcp_conn_watchdog_cb(void *data) +{ + struct mgcp_conn *conn = data; + LOGP(DLMGCP, LOGL_ERROR, "endpoint:0x%x CI:%s connection timed out!\n", ENDPOINT_NUMBER(conn->endp), conn->id); + mgcp_conn_free(conn->endp, conn->id); +} + +void mgcp_conn_watchdog_kick(struct mgcp_conn *conn) +{ + int timeout = conn->endp->cfg->conn_timeout; + if (!timeout) + return; + + LOGP(DLMGCP, LOGL_DEBUG, "endpoint:0x%x CI:%s watchdog kicked\n", ENDPOINT_NUMBER(conn->endp), conn->id); + osmo_timer_schedule(&conn->watchdog, timeout, 0); +} + /*! allocate a new connection list entry. * \param[in] ctx talloc context * \param[in] endp associated endpoint @@ -167,6 +185,9 @@ OSMO_ASSERT(false); } + /* Initialize watchdog */ + osmo_timer_setup(&conn->watchdog, mgcp_conn_watchdog_cb, conn); + mgcp_conn_watchdog_kick(conn); llist_add(&conn->entry, &endp->conns); return conn; @@ -274,6 +295,7 @@ OSMO_ASSERT(false); } + osmo_timer_del(&conn->watchdog); llist_del(&conn->entry); talloc_free(conn); } diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 7af8e71..2c86f8f 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -1246,6 +1246,8 @@ if (len < 0) return -1; + mgcp_conn_watchdog_kick(conn_src->conn); + /* Check if the connection is in loopback mode, if yes, just send the * incoming data back to the origin */ if (conn_src->conn->mode == MGCP_CONN_LOOPBACK) { diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index f141485..9f95ea4 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -1141,6 +1141,8 @@ return create_err_response(endp, 400, "MDCX", p->trans); } + mgcp_conn_watchdog_kick(conn->conn); + if (mode) { if (mgcp_parse_conn_mode(mode, endp, conn->conn) != 0) { rate_ctr_inc(&rate_ctrs->ctr[MGCP_MDCX_FAIL_INVALID_MODE]); diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index 83f845a..ef63b04 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -154,6 +154,10 @@ vty_out(vty, " osmux dummy %s%s", g_cfg->osmux_dummy ? "on" : "off", VTY_NEWLINE); } + + if (g_cfg->conn_timeout) + vty_out(vty, " conn-timeout %u%s", g_cfg->conn_timeout, VTY_NEWLINE); + return CMD_SUCCESS; } @@ -215,6 +219,13 @@ vty_out(vty, " CONN: %s%s", mgcp_conn_dump(conn), VTY_NEWLINE); if (show_stats) { + if (endp->cfg->conn_timeout) { + struct timeval remaining; + osmo_timer_remaining(&conn->watchdog, NULL, &remaining); + vty_out(vty, " Currently remaining timeout (seconds): %d.%06d%s", + (int)remaining.tv_sec, (int)remaining.tv_usec, VTY_NEWLINE); + } + /* FIXME: Also add verbosity for other * connection types (E1) as soon as * the implementation is available */ @@ -1327,6 +1338,18 @@ return CMD_SUCCESS; } +DEFUN(cfg_mgcp_conn_timeout, + cfg_mgcp_conn_timeout_cmd, + "conn-timeout <1-65534>", + "Set a time after which inactive connections (CIs) are closed. This can be used to work around interoperability" + " problems causing connections to stay open forever, and slowly exhausting all available ports. Do not enable" + " when LCLS is used (connections in LCLS state appear to be inactive)!\n" + "Timeout value (sec.)\n") +{ + g_cfg->conn_timeout = strtoul(argv[0], NULL, 10); + return CMD_SUCCESS; +} + int mgcp_vty_init(void) { install_element_ve(&show_mgcp_cmd); @@ -1391,6 +1414,7 @@ install_element(MGCP_NODE, &cfg_mgcp_allow_transcoding_cmd); install_element(MGCP_NODE, &cfg_mgcp_no_allow_transcoding_cmd); install_element(MGCP_NODE, &cfg_mgcp_domain_cmd); + install_element(MGCP_NODE, &cfg_mgcp_conn_timeout_cmd); install_element(MGCP_NODE, &cfg_mgcp_trunk_cmd); install_node(&trunk_node, config_write_trunk); diff --git a/tests/mgcp/mgcp_test.c b/tests/mgcp/mgcp_test.c index a540056..78ddcdc 100644 --- a/tests/mgcp/mgcp_test.c +++ b/tests/mgcp/mgcp_test.c @@ -970,6 +970,7 @@ { int i; struct mgcp_endpoint endp; + struct mgcp_config cfg = {0}; struct mgcp_trunk_config trunk; printf("Testing packet loss calculation.\n"); @@ -977,6 +978,7 @@ memset(&endp, 0, sizeof(endp)); memset(&trunk, 0, sizeof(trunk)); + endp.cfg = &cfg; endp.type = &ep_typeset.rtp; trunk.vty_number_endpoints = 1; trunk.endpoints = &endp; @@ -1197,6 +1199,7 @@ struct mgcp_trunk_config trunk; struct mgcp_endpoint endp; + struct mgcp_config cfg = {0}; struct mgcp_rtp_state state; struct mgcp_rtp_end *rtp; struct sockaddr_in addr = { 0 }; @@ -1224,6 +1227,7 @@ state.in_stream.err_ts_ctr = &test_ctr_in; state.out_stream.err_ts_ctr = &test_ctr_out; + endp.cfg = &cfg; endp.type = &ep_typeset.rtp; trunk.vty_number_endpoints = 1; -- To view, visit https://gerrit.osmocom.org/12730 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I18886052e090466f73829133c24f011806cc1fe0 Gerrit-Change-Number: 12730 Gerrit-PatchSet: 7 Gerrit-Owner: osmith Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 13:10:37 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Wed, 6 Feb 2019 13:10:37 +0000 Subject: Change in osmo-bsc[master]: handover_fsm: do not access conn->assignment.req, it may be outdated In-Reply-To: References: Message-ID: Neels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/12734 ) Change subject: handover_fsm: do not access conn->assignment.req, it may be outdated ...................................................................... handover_fsm: do not access conn->assignment.req, it may be outdated handover_fsm.c accesses conn->assignment.req.s15_s0 to find out the current lchan's AMR configuration. However, conn->assignment.* values are only valid during an ongoing assignment. Those values may be overwritten by any failed Assignment attempt, at any time, and hence do not reflect the currently assigned conn->lchan. Those realms must be kept separate. The assignment.req.s15_s0 get passed to lchan_activate(), so it makes most sense to store these values in struct gsm_lchan once the lchan activation succeeded. Add gsm_lchan.s15_s0, store the s15_s0 received in lchan_activate_info during lchan_activate(). In handover_fsm.c, use conn->lchan->s15_s0 instead of conn->assignment.*. Change-Id: Id8018fd9d56421f2ab7be91703018f6d6f21c929 --- M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/handover_fsm.c M src/osmo-bsc/lchan_fsm.c 3 files changed, 4 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index a5fe1f1..867a46c 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -578,6 +578,8 @@ /* AMR bits */ uint8_t mr_ms_lv[7]; uint8_t mr_bts_lv[7]; + /* AMR bits were based on these rate bits: */ + uint16_t s15_s0; /* Established data link layer services */ uint8_t sapis[8]; diff --git a/src/osmo-bsc/handover_fsm.c b/src/osmo-bsc/handover_fsm.c index 35f2e55..578cff3 100644 --- a/src/osmo-bsc/handover_fsm.c +++ b/src/osmo-bsc/handover_fsm.c @@ -715,7 +715,7 @@ if (gscon_is_aoip(conn)) { /* Extrapolate speech codec from speech mode */ gsm0808_speech_codec_from_chan_type(&sc, ho_perf_params.speech_version_chosen); - sc.cfg = conn->assignment.req.s15_s0; + sc.cfg = conn->lchan->s15_s0; memcpy(&ho_perf_params.speech_codec_chosen, &sc, sizeof(sc)); ho_perf_params.speech_codec_chosen_present = true; } diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index f344cf9..70f7622 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -544,6 +544,7 @@ lchan_fail("Can not generate multirate configuration IE\n"); return; } + lchan->s15_s0 = info->s15_s0; } switch (info->chan_mode) { -- To view, visit https://gerrit.osmocom.org/12734 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Id8018fd9d56421f2ab7be91703018f6d6f21c929 Gerrit-Change-Number: 12734 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 13:10:37 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Wed, 6 Feb 2019 13:10:37 +0000 Subject: Change in osmo-bsc[master]: comments: clarify usage of conn.assignment and .handover scopes In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12842 to look at the new patch set (#2). Change subject: comments: clarify usage of conn.assignment and .handover scopes ...................................................................... comments: clarify usage of conn.assignment and .handover scopes Change-Id: I7ef602c3ce086aecbc3ae3ae6d3fd33ad2b9f85c --- M include/osmocom/bsc/gsm_data.h 1 file changed, 13 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/42/12842/2 -- To view, visit https://gerrit.osmocom.org/12842 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I7ef602c3ce086aecbc3ae3ae6d3fd33ad2b9f85c Gerrit-Change-Number: 12842 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 13:10:41 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Wed, 6 Feb 2019 13:10:41 +0000 Subject: Change in osmo-bsc[master]: comments: clarify usage of conn.assignment and .handover scopes In-Reply-To: References: Message-ID: Neels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/12842 ) Change subject: comments: clarify usage of conn.assignment and .handover scopes ...................................................................... comments: clarify usage of conn.assignment and .handover scopes Change-Id: I7ef602c3ce086aecbc3ae3ae6d3fd33ad2b9f85c --- M include/osmocom/bsc/gsm_data.h 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index 867a46c..f6c5129 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -99,6 +99,9 @@ SUBSCR_SCCP_ST_CONNECTED }; +/* Information retrieved during an Assignment Request from the MSC. This is storage of the Assignment instructions + * parsed from the Assignment Request message, to pass on until the gscon and assignment FSMs have decided whether an + * Assignment is actually going to be carried out. Should remain unchanged after initial decoding. */ struct assignment_request { bool aoip; @@ -112,6 +115,9 @@ uint16_t s15_s0; }; +/* State of an ongoing Assignment, while the assignment_fsm is still busy. This serves as state separation to keep the + * currently used lchan and gscon unmodified until the outcome of an Assignment is known. If the Assignment fails, this + * state is simply discarded, and the gscon carries on with the original lchan remaining unchanged. */ struct assignment_fsm_data { struct assignment_request req; bool requires_voice_stream; @@ -204,12 +210,17 @@ /* back pointers */ struct gsm_network *network; - /* the primary / currently active lchan to the BTS/subscriber */ + /* the primary / currently active lchan to the BTS/subscriber. During Assignment and Handover, separate lchans + * are kept in the .assignment or .handover sub-structs, respectively, so that this lchan remains unaffected + * until Assignment or Handover have actually succeeded. */ struct gsm_lchan *lchan; + /* Only valid during an ongoing Assignment; might be overwritten at any time by a failed Assignment attempt. + * Once an Assignment was successful, all relevant state must be copied out of this sub-struct. */ struct assignment_fsm_data assignment; - /* handover information, if a handover is pending for this conn. */ + /* handover information, if a handover is pending for this conn. Valid only during an ongoing Handover + * operation. If a Handover was successful, all relevant state must be copied out of this sub-struct. */ struct handover ho; /* buffer/cache for classmark of the ME of the subscriber */ -- To view, visit https://gerrit.osmocom.org/12842 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I7ef602c3ce086aecbc3ae3ae6d3fd33ad2b9f85c Gerrit-Change-Number: 12842 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Wed Feb 6 14:18:32 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 6 Feb 2019 14:18:32 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-trx_=C2=BB_--with-ss?= =?UTF-8?Q?e,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#863?= Message-ID: <1971688587.108.1549462712445.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 107.90 KB...] Searching INPUT for files to process... Reading and parsing tag files Parsing files Building group list... Building directory list... Building namespace list... Building file list... Building class list... Associating documentation with classes... Computing nesting relations for classes... Building example list... Searching for enumerations... Searching for documented typedefs... Searching for members imported via using declarations... Searching for included using directives... Searching for documented variables... Building interface member list... Building member list... Searching for friends... Searching for documented defines... Computing class inheritance relations... Computing class usage relations... Flushing cached template relations that have become invalid... Computing class relations... Add enum values to enums... Searching for member function documentation... Creating members for template instances... Building page list... Search for main page... Computing page relations... Determining the scope of groups... Sorting lists... Freeing entry tree Determining which enums are documented Computing member relations... Building full member lists recursively... Adding members to member groups. Computing member references... Inheriting documentation... Generating disk names... Adding source references... Adding xrefitems... Sorting member lists... Computing dependencies between directories... Generating citations page... Counting data structures... Resolving user defined references... Finding anchors and sections in the documentation... Transferring function references... Combining using relations... Adding members to index pages... Generating style sheet... Generating search indices... Generating example documentation... Generating file sources... Generating file documentation... Generating page documentation... Generating group documentation... Generating class documentation... Generating namespace index... Generating graph info page... Generating directory documentation... Generating index page... Generating page index... Generating module index... Generating namespace index... Generating namespace member index... Generating annotated compound index... Generating alphabetical compound index... Generating hierarchical class index... Generating graphical class hierarchy... Generating member index... Generating file index... Generating file member index... Generating example index... finalizing index lists... writing tag file... Running dot... Running dot for graph 1/1 lookup cache used 0/65536 hits=0 misses=0 finished... make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_guide.html /usr/bin/install -c -m 644 ../README ' cp -r html make[5]: Leaving directory ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in firmware make[2]: Entering directory ' Making install in include make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_i2c_addr.h usrp_spi_defs.h fpga_regs_common.h fpga_regs_standard.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' Making install in lib make[3]: Entering directory ' sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c delay.c -o delay.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c fx2utils.c -o fx2utils.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c i2c.c -o i2c.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c isr.c -o isr.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c timer.c -o timer.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c usb_common.c -o usb_common.rel timer.c:45: warning 158: overflow in implicit constant conversion usb_common.c:65: warning 196: pointer target lost const qualifier usb_common.c:66: warning 196: pointer target lost const qualifier usb_common.c:67: warning 196: pointer target lost const qualifier usb_common.c:68: warning 196: pointer target lost const qualifier usb_common.c:71: warning 196: pointer target lost const qualifier usb_common.c:72: warning 196: pointer target lost const qualifier usb_common.c:73: warning 196: pointer target lost const qualifier usb_common.c:74: warning 196: pointer target lost const qualifier isr.c:73: warning 94: comparison is always false due to limited range of data type isr.c:100: warning 94: comparison is always false due to limited range of data type -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'int fixed' to type 'volatile-unsigned-char xdata* xdata' usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:217: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:226: warning 126: unreachable code usb_common.c:184: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG usb_common.c:315: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG rm -f libfx2.lib touch libfx2.lib for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done make[3]: Leaving directory ' Making install in src make[3]: Entering directory ' Making install in common make[4]: Entering directory ' make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory ' make[4]: Leaving directory ' Making install in usrp2 make[4]: Entering directory ' test -f `basename 'eeprom_boot.a51'` || ln -s 'eeprom_boot.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_init.rel `test -f 'eeprom_init.c' || echo './'`eeprom_init.c test -f `basename '_startup.a51'` || ln -s '_startup.a51' . test -f `basename 'vectors.a51'` || ln -s 'vectors.a51' . srcdir=. /usr/bin/python ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_common.rel `test -f 'usrp_common.c' || echo './'`usrp_common.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o board_specific.rel `test -f 'board_specific.c' || echo './'`board_specific.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_load.rel `test -f 'fpga_load.c' || echo './'`fpga_load.c test -f ../common/`basename 'eeprom_boot.a51'` -o \ \! -f `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` \ || ln -s `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` ../common/`basename 'eeprom_boot.a51'` test -f ../common/`basename '_startup.a51'` -o \ \! -f `dirname '_startup.a51'`/../common/`basename '_startup.a51'` \ || ln -s `dirname '_startup.a51'`/../common/`basename '_startup.a51'` ../common/`basename '_startup.a51'` test -f ../common/`basename 'vectors.a51'` -o \ \! -f `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` \ || ln -s `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` ../common/`basename 'vectors.a51'` sdas8051 -plosgff `basename '_startup.a51'` sdas8051 -plosgff `basename 'vectors.a51'` sdas8051 -plosgff `basename 'eeprom_boot.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_rev2.rel `test -f 'fpga_rev2.c' || echo './'`fpga_rev2.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o init_gpif.rel `test -f 'init_gpif.c' || echo './'`init_gpif.c ../common/fpga_load.c:139: warning 85: in function clock_out_config_byte unreferenced function argument : 'bits' srcdir=. /usr/bin/python ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'bits' board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'mask' ../common/fpga_load.c:181: warning 126: unreachable code test -f `basename 'usb_descriptors.a51'` || ln -s 'usb_descriptors.a51' . test -f ../common/`basename 'usb_descriptors.a51'` -o \ \! -f `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` \ || ln -s `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` ../common/`basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o spi.rel `test -f 'spi.c' || echo './'`spi.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_io.rel `test -f 'eeprom_io.c' || echo './'`eeprom_io.c sdas8051 -plosgff `basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o eeprom_boot.ihx eeprom_boot.rel eeprom_init.rel _startup.rel sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_main.rel `test -f 'usrp_main.c' || echo './'`usrp_main.c /usr/bin/python ./../common/build_eeprom.py -p -r2 eeprom_boot.ihx > burn-usrp2-eeprom /usr/bin/python ./../common/build_eeprom.py -p -r4 eeprom_boot.ihx > burn-usrp4-eeprom sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_gpif.rel `test -f 'usrp_gpif.c' || echo './'`usrp_gpif.c usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion chmod +x burn-usrp2-eeprom chmod +x burn-usrp4-eeprom usrp_main.c:223: warning 112: function 'setup_flowstate_common' implicit declaration usrp_main.c:260: warning 112: function 'setup_flowstate_write' implicit declaration usrp_main.c:282: warning 112: function 'setup_flowstate_read' implicit declaration usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o std.ihx vectors.rel usrp_main.rel usrp_common.rel board_specific.rel fpga_load.rel fpga_rev2.rel init_gpif.rel usrp_gpif.rel usb_descriptors.rel spi.rel eeprom_io.rel _startup.rel ?ASlink-Warning-Undefined Global '_setup_flowstate_read' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_write' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_common' referenced by module 'usrp_main' Makefile:688: recipe for target 'std.ihx' failed make[4]: *** [std.ihx] Error 1 make[4]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[3]: *** [install-recursive] Error 1 make[3]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[2]: *** [install-recursive] Error 1 make[2]: Leaving directory ' Makefile:628: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:925: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Wed Feb 6 15:10:06 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 6 Feb 2019 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#393?= In-Reply-To: <1087156971.91.1549379406653.JavaMail.jenkins@jenkins.osmocom.org> References: <1087156971.91.1549379406653.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <359314893.109.1549465806793.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.83 KB...] checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs mkdir .libs mkdir .libs mkdir: cannot create directory '.libs': File exists mkdir: cannot create directory '.libs': File exists gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From admin at opensuse.org Wed Feb 6 15:37:15 2019 From: admin at opensuse.org (OBS Notification) Date: Wed, 06 Feb 2019 15:37:15 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5c5aff4628323_5fca5685ec11538d@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_8.0/i586 Package network:osmocom:nightly/osmo-msc failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 71s] #include [ 71s] ^ [ 71s] compilation terminated. [ 71s] Makefile:506: recipe for target 'sgs_server.o' failed [ 71s] make[4]: *** [sgs_server.o] Error 1 [ 71s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/libmsc' [ 71s] Makefile:412: recipe for target 'all-recursive' failed [ 71s] make[3]: *** [all-recursive] Error 1 [ 71s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 71s] Makefile:452: recipe for target 'all-recursive' failed [ 71s] make[2]: *** [all-recursive] Error 1 [ 71s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 71s] Makefile:383: recipe for target 'all' failed [ 71s] make[1]: *** [all] Error 2 [ 71s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 71s] dh_auto_build: make -j1 returned exit code 2 [ 71s] debian/rules:45: recipe for target 'build' failed [ 71s] make: *** [build] Error 2 [ 71s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 71s] [ 71s] sheep84 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Wed Feb 6 15:37:06 UTC 2019. [ 71s] [ 71s] ### VM INTERACTION START ### [ 72s] Powering off. [ 72s] [ 64.738199] reboot: Power down [ 72s] ### VM INTERACTION END ### [ 72s] [ 72s] sheep84 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Wed Feb 6 15:37:07 UTC 2019. [ 72s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Feb 6 15:53:15 2019 From: admin at opensuse.org (OBS Notification) Date: Wed, 06 Feb 2019 15:53:15 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5c5b0304db104_5fca5685ec1223e5@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_8.0/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 86s] #include [ 86s] ^ [ 86s] compilation terminated. [ 86s] Makefile:506: recipe for target 'sgs_server.o' failed [ 86s] make[4]: *** [sgs_server.o] Error 1 [ 86s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/libmsc' [ 86s] Makefile:412: recipe for target 'all-recursive' failed [ 86s] make[3]: *** [all-recursive] Error 1 [ 86s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 86s] Makefile:452: recipe for target 'all-recursive' failed [ 86s] make[2]: *** [all-recursive] Error 1 [ 86s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 86s] Makefile:383: recipe for target 'all' failed [ 86s] make[1]: *** [all] Error 2 [ 86s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 86s] dh_auto_build: make -j1 returned exit code 2 [ 86s] debian/rules:45: recipe for target 'build' failed [ 86s] make: *** [build] Error 2 [ 86s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 86s] [ 86s] lamb13 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Wed Feb 6 15:53:03 UTC 2019. [ 86s] [ 86s] ### VM INTERACTION START ### [ 87s] Powering off. [ 87s] [ 76.135147] reboot: Power down [ 87s] ### VM INTERACTION END ### [ 87s] [ 87s] lamb13 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Wed Feb 6 15:53:04 UTC 2019. [ 87s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Feb 6 15:56:07 2019 From: admin at opensuse.org (OBS Notification) Date: Wed, 06 Feb 2019 15:56:07 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_16.04/i586 In-Reply-To: References: Message-ID: <5c5b03b6a5817_5fca5685ec1233a6@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_16.04/i586 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_16.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 76s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o sgs_server.o sgs_server.c [ 76s] sgs_server.c:28:26: fatal error: netinet/sctp.h: No such file or directory [ 76s] compilation terminated. [ 76s] Makefile:518: recipe for target 'sgs_server.o' failed [ 76s] make[4]: *** [sgs_server.o] Error 1 [ 76s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/libmsc' [ 76s] Makefile:424: recipe for target 'all-recursive' failed [ 76s] make[3]: *** [all-recursive] Error 1 [ 76s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 76s] Makefile:464: recipe for target 'all-recursive' failed [ 76s] make[2]: *** [all-recursive] Error 1 [ 76s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 76s] Makefile:396: recipe for target 'all' failed [ 76s] make[1]: *** [all] Error 2 [ 76s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 76s] dh_auto_build: make -j1 returned exit code 2 [ 76s] debian/rules:45: recipe for target 'build' failed [ 76s] make: *** [build] Error 2 [ 76s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 76s] [ 76s] sheep83 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Wed Feb 6 15:55:46 UTC 2019. [ 76s] [ 76s] ### VM INTERACTION START ### [ 79s] [ 72.552424] sysrq: SysRq : Power Off [ 79s] [ 72.557106] reboot: Power down [ 79s] ### VM INTERACTION END ### [ 79s] [ 79s] sheep83 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Wed Feb 6 15:55:49 UTC 2019. [ 79s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Feb 6 16:00:58 2019 From: admin at opensuse.org (OBS Notification) Date: Wed, 06 Feb 2019 16:00:58 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_17.10/i586 In-Reply-To: References: Message-ID: <5c5b04c82274d_5fca5685ec1243ec@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_17.10/i586 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_17.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 150s] #include [ 150s] ^~~~~~~~~~~~~~~~ [ 150s] compilation terminated. [ 150s] Makefile:518: recipe for target 'sgs_server.o' failed [ 150s] make[4]: *** [sgs_server.o] Error 1 [ 150s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/libmsc' [ 150s] Makefile:424: recipe for target 'all-recursive' failed [ 150s] make[3]: *** [all-recursive] Error 1 [ 150s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 150s] Makefile:464: recipe for target 'all-recursive' failed [ 150s] make[2]: *** [all-recursive] Error 1 [ 150s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 150s] Makefile:396: recipe for target 'all' failed [ 150s] make[1]: *** [all] Error 2 [ 150s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 150s] dh_auto_build: make -j1 returned exit code 2 [ 150s] debian/rules:45: recipe for target 'build' failed [ 150s] make: *** [build] Error 2 [ 150s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 150s] [ 150s] morla5 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Wed Feb 6 16:00:48 UTC 2019. [ 150s] [ 150s] ### VM INTERACTION START ### [ 153s] [ 140.322514] sysrq: SysRq : Power Off [ 153s] [ 140.332595] reboot: Power down [ 153s] ### VM INTERACTION END ### [ 153s] [ 153s] morla5 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Wed Feb 6 16:00:52 UTC 2019. [ 153s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Feb 6 16:08:08 2019 From: admin at opensuse.org (OBS Notification) Date: Wed, 06 Feb 2019 16:08:08 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5c5b068856bff_5fca5685ec12659b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_9.0/i586 Package network:osmocom:nightly/osmo-msc failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 75s] #include [ 75s] ^ [ 75s] compilation terminated. [ 75s] Makefile:518: recipe for target 'sgs_server.o' failed [ 75s] make[4]: *** [sgs_server.o] Error 1 [ 75s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/libmsc' [ 75s] Makefile:424: recipe for target 'all-recursive' failed [ 75s] make[3]: *** [all-recursive] Error 1 [ 75s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 75s] Makefile:464: recipe for target 'all-recursive' failed [ 75s] make[2]: *** [all-recursive] Error 1 [ 75s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 75s] Makefile:396: recipe for target 'all' failed [ 75s] make[1]: *** [all] Error 2 [ 75s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 75s] dh_auto_build: make -j1 returned exit code 2 [ 75s] debian/rules:45: recipe for target 'build' failed [ 75s] make: *** [build] Error 2 [ 75s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 75s] [ 75s] sheep84 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Wed Feb 6 16:08:00 UTC 2019. [ 75s] [ 75s] ### VM INTERACTION START ### [ 79s] [ 69.851099] sysrq: SysRq : Power Off [ 79s] [ 69.856531] reboot: Power down [ 79s] ### VM INTERACTION END ### [ 79s] [ 79s] sheep84 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Wed Feb 6 16:08:04 UTC 2019. [ 79s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Wed Feb 6 16:08:49 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 16:08:49 +0000 Subject: Change in osmo-msc[master]: debian: depend on libsctp-dev Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12844 Change subject: debian: depend on libsctp-dev ...................................................................... debian: depend on libsctp-dev Since we merged the SGs interface, we include , which is provided by libsctp-dev. This means that the Debian package should depend on this. It is expected that this will un-break the network:osmocom:nightly builds. Change-Id: I092e95ea970763c4008d3c7ff1b7028042574a64 --- M debian/control 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/44/12844/1 diff --git a/debian/control b/debian/control index e607d10..f6e8ace 100644 --- a/debian/control +++ b/debian/control @@ -10,6 +10,7 @@ libtool, pkg-config, libdbi-dev, + libsctp-dev, libtalloc-dev, libsmpp34-dev (>= 1.12), libasn1c-dev (>= 0.9.28), -- To view, visit https://gerrit.osmocom.org/12844 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I092e95ea970763c4008d3c7ff1b7028042574a64 Gerrit-Change-Number: 12844 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Wed Feb 6 16:09:33 2019 From: admin at opensuse.org (OBS Notification) Date: Wed, 06 Feb 2019 16:09:33 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_16.04/x86_64 In-Reply-To: References: Message-ID: <5c5b06c5d4dad_5fca5685ec127094@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_16.04/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_16.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 93s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o sgs_server.o sgs_server.c [ 93s] sgs_server.c:28:26: fatal error: netinet/sctp.h: No such file or directory [ 93s] compilation terminated. [ 93s] Makefile:518: recipe for target 'sgs_server.o' failed [ 93s] make[4]: *** [sgs_server.o] Error 1 [ 93s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/libmsc' [ 93s] Makefile:424: recipe for target 'all-recursive' failed [ 93s] make[3]: *** [all-recursive] Error 1 [ 93s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 93s] Makefile:464: recipe for target 'all-recursive' failed [ 93s] make[2]: *** [all-recursive] Error 1 [ 93s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 93s] Makefile:396: recipe for target 'all' failed [ 93s] make[1]: *** [all] Error 2 [ 93s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 93s] dh_auto_build: make -j1 returned exit code 2 [ 93s] debian/rules:45: recipe for target 'build' failed [ 93s] make: *** [build] Error 2 [ 93s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 93s] [ 93s] lamb11 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Wed Feb 6 16:09:26 UTC 2019. [ 93s] [ 93s] ### VM INTERACTION START ### [ 96s] [ 84.949275] sysrq: SysRq : Power Off [ 96s] [ 84.956178] reboot: Power down [ 96s] ### VM INTERACTION END ### [ 96s] [ 96s] lamb11 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Wed Feb 6 16:09:30 UTC 2019. [ 96s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Feb 6 16:10:24 2019 From: admin at opensuse.org (OBS Notification) Date: Wed, 06 Feb 2019 16:10:24 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5c5b07002b535_5fca5685ec12727f@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/Debian_9.0/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 127s] #include [ 127s] ^ [ 127s] compilation terminated. [ 127s] Makefile:518: recipe for target 'sgs_server.o' failed [ 127s] make[4]: *** [sgs_server.o] Error 1 [ 127s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/libmsc' [ 127s] Makefile:424: recipe for target 'all-recursive' failed [ 127s] make[3]: *** [all-recursive] Error 1 [ 127s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 127s] Makefile:464: recipe for target 'all-recursive' failed [ 127s] make[2]: *** [all-recursive] Error 1 [ 127s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 127s] Makefile:396: recipe for target 'all' failed [ 127s] make[1]: *** [all] Error 2 [ 127s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 127s] dh_auto_build: make -j1 returned exit code 2 [ 127s] debian/rules:45: recipe for target 'build' failed [ 127s] make: *** [build] Error 2 [ 127s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 127s] [ 127s] lamb55 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Wed Feb 6 16:10:03 UTC 2019. [ 127s] [ 127s] ### VM INTERACTION START ### [ 130s] [ 116.509709] sysrq: SysRq : Power Off [ 130s] [ 116.525293] reboot: Power down [ 130s] ### VM INTERACTION END ### [ 130s] [ 130s] lamb55 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Wed Feb 6 16:10:07 UTC 2019. [ 130s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Feb 6 16:19:15 2019 From: admin at opensuse.org (OBS Notification) Date: Wed, 06 Feb 2019 16:19:15 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_18.04/i586 In-Reply-To: References: Message-ID: <5c5b091e7c97c_5fca5685ec130221@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_18.04/i586 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_18.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 121s] #include [ 121s] ^~~~~~~~~~~~~~~~ [ 121s] compilation terminated. [ 121s] Makefile:518: recipe for target 'sgs_server.o' failed [ 121s] make[4]: *** [sgs_server.o] Error 1 [ 121s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/libmsc' [ 121s] Makefile:424: recipe for target 'all-recursive' failed [ 121s] make[3]: *** [all-recursive] Error 1 [ 121s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 121s] Makefile:464: recipe for target 'all-recursive' failed [ 121s] make[2]: *** [all-recursive] Error 1 [ 121s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 121s] Makefile:396: recipe for target 'all' failed [ 121s] make[1]: *** [all] Error 2 [ 121s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 121s] dh_auto_build: make -j1 returned exit code 2 [ 121s] debian/rules:45: recipe for target 'build' failed [ 121s] make: *** [build] Error 2 [ 121s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 121s] [ 121s] lamb20 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Wed Feb 6 16:18:57 UTC 2019. [ 121s] [ 121s] ### VM INTERACTION START ### [ 124s] [ 112.586570] sysrq: SysRq : Power Off [ 124s] [ 112.599477] reboot: Power down [ 124s] ### VM INTERACTION END ### [ 124s] [ 124s] lamb20 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Wed Feb 6 16:19:00 UTC 2019. [ 124s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Feb 6 16:21:49 2019 From: admin at opensuse.org (OBS Notification) Date: Wed, 06 Feb 2019 16:21:49 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_17.10/x86_64 In-Reply-To: References: Message-ID: <5c5b09b12b1b6_5fca5685ec13086@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_17.10/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_17.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 88s] #include [ 88s] ^~~~~~~~~~~~~~~~ [ 88s] compilation terminated. [ 88s] Makefile:518: recipe for target 'sgs_server.o' failed [ 88s] make[4]: *** [sgs_server.o] Error 1 [ 88s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/libmsc' [ 88s] Makefile:424: recipe for target 'all-recursive' failed [ 88s] make[3]: *** [all-recursive] Error 1 [ 88s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 88s] Makefile:464: recipe for target 'all-recursive' failed [ 88s] make[2]: *** [all-recursive] Error 1 [ 88s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 88s] Makefile:396: recipe for target 'all' failed [ 88s] make[1]: *** [all] Error 2 [ 88s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 88s] dh_auto_build: make -j1 returned exit code 2 [ 88s] debian/rules:45: recipe for target 'build' failed [ 88s] make: *** [build] Error 2 [ 88s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 88s] [ 88s] lamb14 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Wed Feb 6 16:21:40 UTC 2019. [ 88s] [ 88s] ### VM INTERACTION START ### [ 91s] [ 80.669861] sysrq: SysRq : Power Off [ 91s] [ 80.679729] reboot: Power down [ 91s] ### VM INTERACTION END ### [ 91s] [ 91s] lamb14 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Wed Feb 6 16:21:44 UTC 2019. [ 91s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Wed Feb 6 16:35:01 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Wed, 6 Feb 2019 16:35:01 +0000 Subject: Change in libosmo-netif[master]: Deprecate osmo_stream_cli_open2() Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12845 Change subject: Deprecate osmo_stream_cli_open2() ...................................................................... Deprecate osmo_stream_cli_open2() This supposed to be variant of osmo_stream_cli_open() with explicit control over reconnection logic but it's plain broken: doxygen docs contradict the code, actual reconnection logic is affected by timeout parameter directly which is set in different function. It seems like we haven't been affected by this so far because we always use it in auto-reconnection mode which is triggered by due to positive reconnection timeout value (5 sec) used in the absense of explicitly set timeout. Looking at commit history, this function already been source of confusion in the past. Instead of trying to fix this mess, let's just deprecate it entirely and properly document use of osmo_stream_cli_set_reconnect_timeout() to control reconnection logic. Change-Id: Id988ed0274b363db049f59cbf6a193727c8c3c8a --- M include/osmocom/netif/stream.h M tests/stream/stream_test.c 2 files changed, 77 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/45/12845/1 diff --git a/include/osmocom/netif/stream.h b/include/osmocom/netif/stream.h index 3044511..f64daf9 100644 --- a/include/osmocom/netif/stream.h +++ b/include/osmocom/netif/stream.h @@ -71,7 +71,7 @@ void osmo_stream_cli_destroy(struct osmo_stream_cli *cli); int osmo_stream_cli_open(struct osmo_stream_cli *cli); -int osmo_stream_cli_open2(struct osmo_stream_cli *cli, int reconnect); +int osmo_stream_cli_open2(struct osmo_stream_cli *cli, int reconnect) OSMO_DEPRECATED("Use osmo_stream_cli_set_reconnect_timeout() or osmo_stream_cli_reconnect() instead"); void osmo_stream_cli_close(struct osmo_stream_cli *cli); void osmo_stream_cli_send(struct osmo_stream_cli *cli, struct msgb *msg); diff --git a/tests/stream/stream_test.c b/tests/stream/stream_test.c index 7a24e21..35d18b5 100644 --- a/tests/stream/stream_test.c +++ b/tests/stream/stream_test.c @@ -127,6 +127,76 @@ return cli; } +/* Without explicit timeout set with osmo_stream_cli_set_reconnect_timeout() default value is used. +static struct osmo_stream_cli *init_client_reconnection_broken1(struct osmo_stream_cli *cli, bool autoreconnect) +{ + if (osmo_stream_cli_open2(cli, autoreconnect) < 0) { + LOGCLI(cli, "unable to open client\n"); + return NULL; + } + + return cli; +} +That's why those those functions result in exact the same output despite inverse use of autoreconnect parameter. +static struct osmo_stream_cli *init_client_reconnection_broken2(struct osmo_stream_cli *cli, bool autoreconnect) +{ + if (osmo_stream_cli_open2(cli, !autoreconnect) < 0) { + LOGCLI(cli, "unable to open client\n"); + return NULL; + } + + return cli; +} + +Variant below are also equivalent to each other. +static struct osmo_stream_cli *init_client_reconnection_broken1(struct osmo_stream_cli *cli, bool autoreconnect) +{ + osmo_stream_cli_set_reconnect_timeout(cli, (!autoreconnect) ? 2 : -1); + if (osmo_stream_cli_open2(cli, autoreconnect) < 0) { + LOGCLI(cli, "unable to open client\n"); + return NULL; + } + + return cli; +} + +static struct osmo_stream_cli *init_client_reconnection_broken2(struct osmo_stream_cli *cli, bool autoreconnect) +{ + osmo_stream_cli_set_reconnect_timeout(cli, (!autoreconnect) ? 2 : -1); + if (osmo_stream_cli_open2(cli, !autoreconnect) < 0) { + LOGCLI(cli, "unable to open client\n"); + return NULL; + } + + return cli; +} +Note: the result differs from normal init_client_reconnection() +*/ + +/* Setting reconnection value explicitly as follows is equivalent to normal init_client_reconnection() +static struct osmo_stream_cli *init_client_reconnection_broken1(struct osmo_stream_cli *cli, bool autoreconnect) +{ + osmo_stream_cli_set_reconnect_timeout(cli, autoreconnect ? 2 : -1); + if (osmo_stream_cli_open2(cli, autoreconnect) < 0) { + LOGCLI(cli, "unable to open client\n"); + return NULL; + } + + return cli; +} + +static struct osmo_stream_cli *init_client_reconnection_broken2(struct osmo_stream_cli *cli, bool autoreconnect) +{ + osmo_stream_cli_set_reconnect_timeout(cli, autoreconnect ? 2 : -1); + if (osmo_stream_cli_open2(cli, !autoreconnect) < 0) { + LOGCLI(cli, "unable to open client\n"); + return NULL; + } + + return cli; +} +*/ + static struct osmo_stream_cli *make_client(void *ctx, const char *host, unsigned port, bool autoreconnect) { struct osmo_stream_cli *cli = osmo_stream_cli_create(ctx); @@ -142,6 +212,12 @@ osmo_stream_cli_set_connect_cb(cli, connect_cb_cli); osmo_stream_cli_set_read_cb(cli, read_cb_cli); + /* using + return init_client_reconnection_broken1(cli, autoreconnect); + or + return init_client_reconnection_broken2(cli, autoreconnect); + will result in exactly the same output which might or might not be the same as with + init_client_reconnection() - see preceeding notes */ return init_client_reconnection(cli, autoreconnect); } -- To view, visit https://gerrit.osmocom.org/12845 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id988ed0274b363db049f59cbf6a193727c8c3c8a Gerrit-Change-Number: 12845 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Wed Feb 6 16:38:58 2019 From: admin at opensuse.org (OBS Notification) Date: Wed, 06 Feb 2019 16:38:58 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_18.10/x86_64 In-Reply-To: References: Message-ID: <5c5b0db04a63b_5fca5685ec1345cb@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_18.10/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_18.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 149s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=null-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o osmo_msc.o osmo_msc.c [ 149s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=null-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o ctrl_commands.o ctrl_commands.c [ 149s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=null-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o sgs_iface.o sgs_iface.c [ 150s] gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../.. -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/asn1c -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -I/usr/include/ -g -O2 -fdebug-prefix-map=/usr/src/packages/BUILD=. -fstack-protector-strong -Wformat -Werror=format-security -Werror=implicit -Werror=maybe-uninitialized -Werror=memset-transposed-args -Werror=null-dereference -Werror=sizeof-array-argument -Werror=sizeof-pointer-memaccess -c -o sgs_server.o sgs_server.c [ 150s] sgs_server.c:28:10: fatal error: netinet/sctp.h: No such file or directory [ 150s] #include [ 150s] ^~~~~~~~~~~~~~~~ [ 150s] compilation terminated. [ 150s] make[4]: *** [Makefile:542: sgs_server.o] Error 1 [ 150s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/libmsc' [ 150s] make[3]: *** [Makefile:424: all-recursive] Error 1 [ 150s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 150s] make[2]: *** [Makefile:464: all-recursive] Error 1 [ 150s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 150s] make[1]: *** [Makefile:396: all] Error 2 [ 150s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 150s] dh_auto_build: make -j1 returned exit code 2 [ 150s] make: *** [debian/rules:45: build] Error 2 [ 150s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 150s] [ 150s] lamb61 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Wed Feb 6 16:38:53 UTC 2019. [ 150s] [ 150s] ### VM INTERACTION START ### [ 153s] [ 141.989992] sysrq: SysRq : Power Off [ 153s] [ 141.994844] reboot: Power down [ 153s] ### VM INTERACTION END ### [ 153s] [ 153s] lamb61 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Wed Feb 6 16:38:56 UTC 2019. [ 153s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Feb 6 16:41:32 2019 From: admin at opensuse.org (OBS Notification) Date: Wed, 06 Feb 2019 16:41:32 +0000 Subject: Build failure of network:osmocom:nightly/osmo-msc in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <5c5b0e46544ba_5fca5685ec135946@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-msc/xUbuntu_18.04/x86_64 Package network:osmocom:nightly/osmo-msc failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-msc Last lines of build log: [ 122s] #include [ 122s] ^~~~~~~~~~~~~~~~ [ 122s] compilation terminated. [ 122s] Makefile:518: recipe for target 'sgs_server.o' failed [ 122s] make[4]: *** [sgs_server.o] Error 1 [ 122s] make[4]: Leaving directory '/usr/src/packages/BUILD/src/libmsc' [ 122s] Makefile:424: recipe for target 'all-recursive' failed [ 122s] make[3]: *** [all-recursive] Error 1 [ 122s] make[3]: Leaving directory '/usr/src/packages/BUILD/src' [ 122s] Makefile:464: recipe for target 'all-recursive' failed [ 122s] make[2]: *** [all-recursive] Error 1 [ 122s] make[2]: Leaving directory '/usr/src/packages/BUILD' [ 122s] Makefile:396: recipe for target 'all' failed [ 122s] make[1]: *** [all] Error 2 [ 122s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 122s] dh_auto_build: make -j1 returned exit code 2 [ 122s] debian/rules:45: recipe for target 'build' failed [ 122s] make: *** [build] Error 2 [ 122s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 122s] [ 122s] lamb28 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Wed Feb 6 16:41:26 UTC 2019. [ 122s] [ 122s] ### VM INTERACTION START ### [ 125s] [ 114.343356] sysrq: SysRq : Power Off [ 125s] [ 114.350924] reboot: Power down [ 126s] ### VM INTERACTION END ### [ 126s] [ 126s] lamb28 failed "build osmo-msc_1.3.1.9.34d30.dsc" at Wed Feb 6 16:41:31 UTC 2019. [ 126s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Wed Feb 6 16:42:52 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 6 Feb 2019 16:42:52 +0000 Subject: Change in osmo-msc[master]: debian: depend on libsctp-dev In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12844 ) Change subject: debian: depend on libsctp-dev ...................................................................... Patch Set 1: Code-Review+1 Too bad osmo-msc 0df904dea9106587f40ec379e9cc05ea251beb7e didn't say in the commit description that a new dependency (libsctp) was added. I see in https://packages.debian.org/buster/amd64/libsctp-dev/filelist that libsctp has a pkgconfig file, but I see in src/osmo-msc/Makefile.am that we directly append "-lsctp". We should use .pc file for that, as well as for CFLAGS. -- To view, visit https://gerrit.osmocom.org/12844 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I092e95ea970763c4008d3c7ff1b7028042574a64 Gerrit-Change-Number: 12844 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 06 Feb 2019 16:42:52 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 16:53:04 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 16:53:04 +0000 Subject: Change in osmo-msc[master]: configure.ac: Check for libsctp Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12846 Change subject: configure.ac: Check for libsctp ...................................................................... configure.ac: Check for libsctp Since we merged the SGs interface, we include , which is provided by libsctp. Change-Id: Id2321e4cb3800929cea56785e5c5bd7480408806 --- M configure.ac 1 file changed, 11 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/46/12846/1 diff --git a/configure.ac b/configure.ac index 17f4b90..f8787cf 100644 --- a/configure.ac +++ b/configure.ac @@ -46,6 +46,17 @@ PKG_CHECK_MODULES(LIBOSMOMGCPCLIENT, libosmo-mgcp-client >= 1.5.0) PKG_CHECK_MODULES(LIBOSMOGSUPCLIENT, libosmo-gsup-client >= 1.0.0) +old_LIBS=$LIBS +AC_SEARCH_LIBS([sctp_send], [sctp], [ + AC_DEFINE(HAVE_LIBSCTP, 1, [Define 1 to enable SCTP support]) + AC_SUBST(HAVE_LIBSCTP, [1]) + if test -n "$ac_lib"; then + AC_SUBST(LIBSCTP_LIBS, [-l$ac_lib]) + fi + ], [ + AC_MSG_ERROR([sctp_send not found in searched libs])]) +LIBS=$old_LIBS + AC_ARG_ENABLE(sanitize, [AS_HELP_STRING( [--enable-sanitize], -- To view, visit https://gerrit.osmocom.org/12846 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id2321e4cb3800929cea56785e5c5bd7480408806 Gerrit-Change-Number: 12846 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 16:53:16 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 16:53:16 +0000 Subject: Change in osmo-msc[master]: configure.ac: Check for libsctp In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12846 ) Change subject: configure.ac: Check for libsctp ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12846 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id2321e4cb3800929cea56785e5c5bd7480408806 Gerrit-Change-Number: 12846 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-CC: Jenkins Builder (1000002) Gerrit-Comment-Date: Wed, 06 Feb 2019 16:53:16 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 16:53:22 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 16:53:22 +0000 Subject: Change in osmo-msc[master]: debian: depend on libsctp-dev In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12844 ) Change subject: debian: depend on libsctp-dev ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12844 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I092e95ea970763c4008d3c7ff1b7028042574a64 Gerrit-Change-Number: 12844 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 06 Feb 2019 16:53:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 17:17:35 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 6 Feb 2019 17:17:35 +0000 Subject: Change in libusrp[master]: build_eeprom.py: Fix build for distros with python3 as default Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/12847 Change subject: build_eeprom.py: Fix build for distros with python3 as default ...................................................................... build_eeprom.py: Fix build for distros with python3 as default The script contains python2-only syntax, so it can only be run with python2. Make sure to explicitly specify it needs to be run with python2 in order to run it fine on distros where python points to python3. Change-Id: Ie695c26f1b2a4f84bdc2b67938fe37a4c50681dd --- M firmware/src/common/build_eeprom.py M firmware/src/usrp2/Makefile.am 2 files changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libusrp refs/changes/47/12847/1 diff --git a/firmware/src/common/build_eeprom.py b/firmware/src/common/build_eeprom.py index 00c2e34..6092d61 100755 --- a/firmware/src/common/build_eeprom.py +++ b/firmware/src/common/build_eeprom.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 # # Copyright 2004,2006 Free Software Foundation, Inc. # diff --git a/firmware/src/usrp2/Makefile.am b/firmware/src/usrp2/Makefile.am index 24ff9b1..a32e20c 100644 --- a/firmware/src/usrp2/Makefile.am +++ b/firmware/src/usrp2/Makefile.am @@ -108,11 +108,11 @@ $(XCC) $(LINKOPTS) -o $@ $(EEPROM_BOOT_OBJS) burn-usrp2-eeprom: eeprom_boot.ihx - $(PYTHON) $(srcdir)/../common/build_eeprom.py -p$(prefix) -r2 eeprom_boot.ihx > $@ + $(srcdir)/../common/build_eeprom.py -p$(prefix) -r2 eeprom_boot.ihx > $@ chmod +x $@ burn-usrp4-eeprom: eeprom_boot.ihx - $(PYTHON) $(srcdir)/../common/build_eeprom.py -p$(prefix) -r4 eeprom_boot.ihx > $@ + $(srcdir)/../common/build_eeprom.py -p$(prefix) -r4 eeprom_boot.ihx > $@ chmod +x $@ -- To view, visit https://gerrit.osmocom.org/12847 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libusrp Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie695c26f1b2a4f84bdc2b67938fe37a4c50681dd Gerrit-Change-Number: 12847 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 17:17:35 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 6 Feb 2019 17:17:35 +0000 Subject: Change in libusrp[master]: edit-gpif: Fix build for distros with python3 as default Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/12848 Change subject: edit-gpif: Fix build for distros with python3 as default ...................................................................... edit-gpif: Fix build for distros with python3 as default Fix the script so it is python2 and python3 compatible, then let the distro decide which python version to use. Change-Id: If805c8167e2cf57ce3d6143dddfd4685ad729142 --- M firmware/src/common/Makefile.am M firmware/src/common/edit-gpif M firmware/src/usrp2/Makefile.am M firmware/src/usrp2/edit-gpif 4 files changed, 4 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libusrp refs/changes/48/12848/1 diff --git a/firmware/src/common/Makefile.am b/firmware/src/common/Makefile.am index 9523232..a98671e 100644 --- a/firmware/src/common/Makefile.am +++ b/firmware/src/common/Makefile.am @@ -39,7 +39,7 @@ all: usrp_gpif.c usrp_gpif.c usrp_gpif_inline.h : gpif.c - srcdir=$(srcdir) $(PYTHON) $(srcdir)/edit-gpif $(srcdir)/gpif.c usrp_gpif.c usrp_gpif_inline.h + srcdir=$(srcdir) $(srcdir)/edit-gpif $(srcdir)/gpif.c usrp_gpif.c usrp_gpif_inline.h CLEANFILES = \ *.ihx *.lnk *.lst *.map *.mem *.rel *.rst *.sym *.asm *.lib \ diff --git a/firmware/src/common/edit-gpif b/firmware/src/common/edit-gpif index 5367b75..87e16eb 100755 --- a/firmware/src/common/edit-gpif +++ b/firmware/src/common/edit-gpif @@ -27,7 +27,6 @@ # uses. import re -import string import sys def check_flow_state (line, flow_state_dict): @@ -93,7 +92,7 @@ while 1: line = input.readline () - line = string.replace (line, '\r','') + line = line.replace ('\r','') line = re.sub (r' *$', r'', line) check_flow_state (line, flow_state_dict) diff --git a/firmware/src/usrp2/Makefile.am b/firmware/src/usrp2/Makefile.am index a32e20c..6d44320 100644 --- a/firmware/src/usrp2/Makefile.am +++ b/firmware/src/usrp2/Makefile.am @@ -159,7 +159,7 @@ all: usrp_gpif.c usrp_gpif.c usrp_gpif_inline.h : gpif.c - srcdir=$(srcdir) $(PYTHON) $(srcdir)/edit-gpif $(srcdir)/gpif.c usrp_gpif.c usrp_gpif_inline.h + srcdir=$(srcdir) $(srcdir)/edit-gpif $(srcdir)/gpif.c usrp_gpif.c usrp_gpif_inline.h # dependencies diff --git a/firmware/src/usrp2/edit-gpif b/firmware/src/usrp2/edit-gpif index 5367b75..87e16eb 100755 --- a/firmware/src/usrp2/edit-gpif +++ b/firmware/src/usrp2/edit-gpif @@ -27,7 +27,6 @@ # uses. import re -import string import sys def check_flow_state (line, flow_state_dict): @@ -93,7 +92,7 @@ while 1: line = input.readline () - line = string.replace (line, '\r','') + line = line.replace ('\r','') line = re.sub (r' *$', r'', line) check_flow_state (line, flow_state_dict) -- To view, visit https://gerrit.osmocom.org/12848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libusrp Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If805c8167e2cf57ce3d6143dddfd4685ad729142 Gerrit-Change-Number: 12848 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 17:18:46 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 6 Feb 2019 17:18:46 +0000 Subject: Change in osmo-msc[master]: configure.ac: Check for libsctp In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12846 ) Change subject: configure.ac: Check for libsctp ...................................................................... Patch Set 1: Code-Review-1 (1 comment) https://gerrit.osmocom.org/#/c/12846/1/configure.ac File configure.ac: https://gerrit.osmocom.org/#/c/12846/1/configure.ac at 50 PS1, Line 50: AC_SEARCH_LIBS([sctp_send], [sctp], [ Why not using PKG_CHECK_MODULES? -- To view, visit https://gerrit.osmocom.org/12846 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id2321e4cb3800929cea56785e5c5bd7480408806 Gerrit-Change-Number: 12846 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 06 Feb 2019 17:18:46 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 17:52:38 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 6 Feb 2019 17:52:38 +0000 Subject: Change in osmo-msc[master]: configure.ac: Check for libsctp In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12846 ) Change subject: configure.ac: Check for libsctp ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12846/1/configure.ac File configure.ac: https://gerrit.osmocom.org/#/c/12846/1/configure.ac at 57 PS1, Line 57: AC_MSG_ERROR And do we really need to make this dependency mandatory? Could we print a warning and disable compilation of SGs interface? -- To view, visit https://gerrit.osmocom.org/12846 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id2321e4cb3800929cea56785e5c5bd7480408806 Gerrit-Change-Number: 12846 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 06 Feb 2019 17:52:38 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 17:55:50 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 17:55:50 +0000 Subject: Change in osmo-msc[master]: configure.ac: Check for libsctp In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12846 ) Change subject: configure.ac: Check for libsctp ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/#/c/12846/1/configure.ac File configure.ac: https://gerrit.osmocom.org/#/c/12846/1/configure.ac at 50 PS1, Line 50: AC_SEARCH_LIBS([sctp_send], [sctp], [ > Why not using PKG_CHECK_MODULES? I'm just doing what libosmo-netif does, which is our existing sctp user. https://gerrit.osmocom.org/#/c/12846/1/configure.ac at 57 PS1, Line 57: AC_MSG_ERROR > And do we really need to make this dependency mandatory? [?] libosmo-netif has the exect same snippet, so you wouldn't be able to build without it. And since the STP/BSC/MSC communicate over M3UA/SCTP, you wouldn't be able to run any working setup anyway (without various hacks). -- To view, visit https://gerrit.osmocom.org/12846 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id2321e4cb3800929cea56785e5c5bd7480408806 Gerrit-Change-Number: 12846 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 06 Feb 2019 17:55:50 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 17:56:04 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 17:56:04 +0000 Subject: Change in osmo-msc[master]: debian: depend on libsctp-dev In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12844 ) Change subject: debian: depend on libsctp-dev ...................................................................... Patch Set 3: Verified+1 -- To view, visit https://gerrit.osmocom.org/12844 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I092e95ea970763c4008d3c7ff1b7028042574a64 Gerrit-Change-Number: 12844 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 06 Feb 2019 17:56:04 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 17:56:05 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 17:56:05 +0000 Subject: Change in osmo-msc[master]: debian: depend on libsctp-dev In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12844 ) Change subject: debian: depend on libsctp-dev ...................................................................... debian: depend on libsctp-dev Since we merged the SGs interface, we include , which is provided by libsctp-dev. This means that the Debian package should depend on this. It is expected that this will un-break the network:osmocom:nightly builds. Change-Id: I092e95ea970763c4008d3c7ff1b7028042574a64 --- M debian/control 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified Pau Espin Pedrol: Looks good to me, but someone else must approve diff --git a/debian/control b/debian/control index e607d10..f6e8ace 100644 --- a/debian/control +++ b/debian/control @@ -10,6 +10,7 @@ libtool, pkg-config, libdbi-dev, + libsctp-dev, libtalloc-dev, libsmpp34-dev (>= 1.12), libasn1c-dev (>= 0.9.28), -- To view, visit https://gerrit.osmocom.org/12844 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I092e95ea970763c4008d3c7ff1b7028042574a64 Gerrit-Change-Number: 12844 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 18:00:38 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 6 Feb 2019 18:00:38 +0000 Subject: Change in osmo-msc[master]: configure.ac: Check for libsctp In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12846 ) Change subject: configure.ac: Check for libsctp ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/12846/1/configure.ac File configure.ac: https://gerrit.osmocom.org/#/c/12846/1/configure.ac at 50 PS1, Line 50: AC_SEARCH_LIBS([sctp_send], [sctp], [ > I'm just doing what libosmo-netif does, which is our existing sctp user. Well we should change libosmo-netif to use PKG_CHECK_MODULES too then, but can be done later on another patch and by someone else too. -- To view, visit https://gerrit.osmocom.org/12846 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id2321e4cb3800929cea56785e5c5bd7480408806 Gerrit-Change-Number: 12846 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 06 Feb 2019 18:00:38 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 18:07:25 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 6 Feb 2019 18:07:25 +0000 Subject: Change in libusrp[master]: build_eeprom.py: Fix build for distros with python3 as default In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12847 ) Change subject: build_eeprom.py: Fix build for distros with python3 as default ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12847 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libusrp Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie695c26f1b2a4f84bdc2b67938fe37a4c50681dd Gerrit-Change-Number: 12847 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 06 Feb 2019 18:07:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 18:08:06 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 18:08:06 +0000 Subject: Change in libusrp[master]: build_eeprom.py: Fix build for distros with python3 as default In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12847 ) Change subject: build_eeprom.py: Fix build for distros with python3 as default ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12847 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libusrp Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie695c26f1b2a4f84bdc2b67938fe37a4c50681dd Gerrit-Change-Number: 12847 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 06 Feb 2019 18:08:06 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 18:08:08 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 18:08:08 +0000 Subject: Change in libusrp[master]: build_eeprom.py: Fix build for distros with python3 as default In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12847 ) Change subject: build_eeprom.py: Fix build for distros with python3 as default ...................................................................... build_eeprom.py: Fix build for distros with python3 as default The script contains python2-only syntax, so it can only be run with python2. Make sure to explicitly specify it needs to be run with python2 in order to run it fine on distros where python points to python3. Change-Id: Ie695c26f1b2a4f84bdc2b67938fe37a4c50681dd --- M firmware/src/common/build_eeprom.py M firmware/src/usrp2/Makefile.am 2 files changed, 3 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/firmware/src/common/build_eeprom.py b/firmware/src/common/build_eeprom.py index 00c2e34..6092d61 100755 --- a/firmware/src/common/build_eeprom.py +++ b/firmware/src/common/build_eeprom.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 # # Copyright 2004,2006 Free Software Foundation, Inc. # diff --git a/firmware/src/usrp2/Makefile.am b/firmware/src/usrp2/Makefile.am index 24ff9b1..a32e20c 100644 --- a/firmware/src/usrp2/Makefile.am +++ b/firmware/src/usrp2/Makefile.am @@ -108,11 +108,11 @@ $(XCC) $(LINKOPTS) -o $@ $(EEPROM_BOOT_OBJS) burn-usrp2-eeprom: eeprom_boot.ihx - $(PYTHON) $(srcdir)/../common/build_eeprom.py -p$(prefix) -r2 eeprom_boot.ihx > $@ + $(srcdir)/../common/build_eeprom.py -p$(prefix) -r2 eeprom_boot.ihx > $@ chmod +x $@ burn-usrp4-eeprom: eeprom_boot.ihx - $(PYTHON) $(srcdir)/../common/build_eeprom.py -p$(prefix) -r4 eeprom_boot.ihx > $@ + $(srcdir)/../common/build_eeprom.py -p$(prefix) -r4 eeprom_boot.ihx > $@ chmod +x $@ -- To view, visit https://gerrit.osmocom.org/12847 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libusrp Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie695c26f1b2a4f84bdc2b67938fe37a4c50681dd Gerrit-Change-Number: 12847 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 18:08:25 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 18:08:25 +0000 Subject: Change in libusrp[master]: edit-gpif: Fix build for distros with python3 as default In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12848 ) Change subject: edit-gpif: Fix build for distros with python3 as default ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libusrp Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If805c8167e2cf57ce3d6143dddfd4685ad729142 Gerrit-Change-Number: 12848 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Wed, 06 Feb 2019 18:08:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 18:08:59 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 6 Feb 2019 18:08:59 +0000 Subject: Change in osmo-msc[master]: configure.ac: Check for libsctp In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12846 ) Change subject: configure.ac: Check for libsctp ...................................................................... configure.ac: Check for libsctp Since we merged the SGs interface, we include , which is provided by libsctp. Change-Id: Id2321e4cb3800929cea56785e5c5bd7480408806 --- M configure.ac 1 file changed, 11 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/configure.ac b/configure.ac index 17f4b90..f8787cf 100644 --- a/configure.ac +++ b/configure.ac @@ -46,6 +46,17 @@ PKG_CHECK_MODULES(LIBOSMOMGCPCLIENT, libosmo-mgcp-client >= 1.5.0) PKG_CHECK_MODULES(LIBOSMOGSUPCLIENT, libosmo-gsup-client >= 1.0.0) +old_LIBS=$LIBS +AC_SEARCH_LIBS([sctp_send], [sctp], [ + AC_DEFINE(HAVE_LIBSCTP, 1, [Define 1 to enable SCTP support]) + AC_SUBST(HAVE_LIBSCTP, [1]) + if test -n "$ac_lib"; then + AC_SUBST(LIBSCTP_LIBS, [-l$ac_lib]) + fi + ], [ + AC_MSG_ERROR([sctp_send not found in searched libs])]) +LIBS=$old_LIBS + AC_ARG_ENABLE(sanitize, [AS_HELP_STRING( [--enable-sanitize], -- To view, visit https://gerrit.osmocom.org/12846 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Id2321e4cb3800929cea56785e5c5bd7480408806 Gerrit-Change-Number: 12846 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-CC: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Wed Feb 6 18:17:48 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 6 Feb 2019 18:17:48 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-trx_=C2=BB_--wit?= =?UTF-8?Q?h-sse,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#864?= In-Reply-To: <1971688587.108.1549462712445.JavaMail.jenkins@jenkins.osmocom.org> References: <1971688587.108.1549462712445.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1186639825.110.1549477068835.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Wed Feb 6 19:40:54 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 6 Feb 2019 19:40:54 +0000 Subject: Change in libusrp[master]: edit-gpif: Fix build for distros with python3 as default In-Reply-To: References: Message-ID: Pau Espin Pedrol has submitted this change and it was merged. ( https://gerrit.osmocom.org/12848 ) Change subject: edit-gpif: Fix build for distros with python3 as default ...................................................................... edit-gpif: Fix build for distros with python3 as default Fix the script so it is python2 and python3 compatible, then let the distro decide which python version to use. Change-Id: If805c8167e2cf57ce3d6143dddfd4685ad729142 --- M firmware/src/common/Makefile.am M firmware/src/common/edit-gpif M firmware/src/usrp2/Makefile.am M firmware/src/usrp2/edit-gpif 4 files changed, 4 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/firmware/src/common/Makefile.am b/firmware/src/common/Makefile.am index 9523232..a98671e 100644 --- a/firmware/src/common/Makefile.am +++ b/firmware/src/common/Makefile.am @@ -39,7 +39,7 @@ all: usrp_gpif.c usrp_gpif.c usrp_gpif_inline.h : gpif.c - srcdir=$(srcdir) $(PYTHON) $(srcdir)/edit-gpif $(srcdir)/gpif.c usrp_gpif.c usrp_gpif_inline.h + srcdir=$(srcdir) $(srcdir)/edit-gpif $(srcdir)/gpif.c usrp_gpif.c usrp_gpif_inline.h CLEANFILES = \ *.ihx *.lnk *.lst *.map *.mem *.rel *.rst *.sym *.asm *.lib \ diff --git a/firmware/src/common/edit-gpif b/firmware/src/common/edit-gpif index 5367b75..87e16eb 100755 --- a/firmware/src/common/edit-gpif +++ b/firmware/src/common/edit-gpif @@ -27,7 +27,6 @@ # uses. import re -import string import sys def check_flow_state (line, flow_state_dict): @@ -93,7 +92,7 @@ while 1: line = input.readline () - line = string.replace (line, '\r','') + line = line.replace ('\r','') line = re.sub (r' *$', r'', line) check_flow_state (line, flow_state_dict) diff --git a/firmware/src/usrp2/Makefile.am b/firmware/src/usrp2/Makefile.am index a32e20c..6d44320 100644 --- a/firmware/src/usrp2/Makefile.am +++ b/firmware/src/usrp2/Makefile.am @@ -159,7 +159,7 @@ all: usrp_gpif.c usrp_gpif.c usrp_gpif_inline.h : gpif.c - srcdir=$(srcdir) $(PYTHON) $(srcdir)/edit-gpif $(srcdir)/gpif.c usrp_gpif.c usrp_gpif_inline.h + srcdir=$(srcdir) $(srcdir)/edit-gpif $(srcdir)/gpif.c usrp_gpif.c usrp_gpif_inline.h # dependencies diff --git a/firmware/src/usrp2/edit-gpif b/firmware/src/usrp2/edit-gpif index 5367b75..87e16eb 100755 --- a/firmware/src/usrp2/edit-gpif +++ b/firmware/src/usrp2/edit-gpif @@ -27,7 +27,6 @@ # uses. import re -import string import sys def check_flow_state (line, flow_state_dict): @@ -93,7 +92,7 @@ while 1: line = input.readline () - line = string.replace (line, '\r','') + line = line.replace ('\r','') line = re.sub (r' *$', r'', line) check_flow_state (line, flow_state_dict) -- To view, visit https://gerrit.osmocom.org/12848 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libusrp Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If805c8167e2cf57ce3d6143dddfd4685ad729142 Gerrit-Change-Number: 12848 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 6 20:36:43 2019 From: gerrit-no-reply at lists.osmocom.org (Alexander Huemer) Date: Wed, 6 Feb 2019 20:36:43 +0000 Subject: Change in libusrp[master]: usrp2: firmware: ignore .lk build artifacts Message-ID: Alexander Huemer has uploaded this change for review. ( https://gerrit.osmocom.org/12849 Change subject: usrp2: firmware: ignore .lk build artifacts ...................................................................... usrp2: firmware: ignore .lk build artifacts Change-Id: I79cbb834f02dc3f804e5a1476724245407f0eade --- M firmware/src/usrp2/.gitignore 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libusrp refs/changes/49/12849/1 diff --git a/firmware/src/usrp2/.gitignore b/firmware/src/usrp2/.gitignore index 54a9e94..d1557f9 100644 --- a/firmware/src/usrp2/.gitignore +++ b/firmware/src/usrp2/.gitignore @@ -6,6 +6,7 @@ /*.rel /*.rst /*.sym +/*.lk /blink_leds.asm /usrp_common.asm /command_loop.asm -- To view, visit https://gerrit.osmocom.org/12849 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libusrp Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I79cbb834f02dc3f804e5a1476724245407f0eade Gerrit-Change-Number: 12849 Gerrit-PatchSet: 1 Gerrit-Owner: Alexander Huemer -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 08:16:42 2019 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Thu, 7 Feb 2019 08:16:42 +0000 Subject: Change in libosmocore[master]: protocol/gsm_04_14: Fix the OPEN LOOP message type Message-ID: tnt has uploaded this change for review. ( https://gerrit.osmocom.org/12850 Change subject: protocol/gsm_04_14: Fix the OPEN LOOP message type ...................................................................... protocol/gsm_04_14: Fix the OPEN LOOP message type Change-Id: Id4350dee4353ebf9de0450dd5dab6e4f2ee7c3a6 Signed-off-by: Sylvain Munaut --- M include/osmocom/gsm/protocol/gsm_04_14.h 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/50/12850/1 diff --git a/include/osmocom/gsm/protocol/gsm_04_14.h b/include/osmocom/gsm/protocol/gsm_04_14.h index 5ef7837..deb474e 100644 --- a/include/osmocom/gsm/protocol/gsm_04_14.h +++ b/include/osmocom/gsm/protocol/gsm_04_14.h @@ -20,7 +20,7 @@ }; #define GSM414_MT_CLOSE_TCH_LOOP_ACK 0x01 /* 8.2 */ -#define GSM414_MT_OPEN_LOOP_CMD 0x02 /* 8.3 */ +#define GSM414_MT_OPEN_LOOP_CMD 0x06 /* 8.3 */ #define GSM414_OPEN_LOOP_ACK_IE 0x81 #define GSM414_MT_CLOSE_MSLOT_LOOP_CMD 0x20 /* 8.4 */ -- To view, visit https://gerrit.osmocom.org/12850 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id4350dee4353ebf9de0450dd5dab6e4f2ee7c3a6 Gerrit-Change-Number: 12850 Gerrit-PatchSet: 1 Gerrit-Owner: tnt -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 09:22:49 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 7 Feb 2019 09:22:49 +0000 Subject: Change in libusrp[master]: usrp2: firmware: ignore .lk build artifacts In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12849 ) Change subject: usrp2: firmware: ignore .lk build artifacts ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12849 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libusrp Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I79cbb834f02dc3f804e5a1476724245407f0eade Gerrit-Change-Number: 12849 Gerrit-PatchSet: 1 Gerrit-Owner: Alexander Huemer Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Thu, 07 Feb 2019 09:22:49 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 09:24:48 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 7 Feb 2019 09:24:48 +0000 Subject: Change in libosmocore[master]: protocol/gsm_04_14: Fix the OPEN LOOP message type In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12850 ) Change subject: protocol/gsm_04_14: Fix the OPEN LOOP message type ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12850 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id4350dee4353ebf9de0450dd5dab6e4f2ee7c3a6 Gerrit-Change-Number: 12850 Gerrit-PatchSet: 1 Gerrit-Owner: tnt Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Thu, 07 Feb 2019 09:24:48 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 09:25:33 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 7 Feb 2019 09:25:33 +0000 Subject: Change in libosmocore[master]: protocol/gsm_04_14: Fix the OPEN LOOP message type In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12850 ) Change subject: protocol/gsm_04_14: Fix the OPEN LOOP message type ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12850 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id4350dee4353ebf9de0450dd5dab6e4f2ee7c3a6 Gerrit-Change-Number: 12850 Gerrit-PatchSet: 1 Gerrit-Owner: tnt Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 07 Feb 2019 09:25:33 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 09:36:48 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 7 Feb 2019 09:36:48 +0000 Subject: Change in osmo-bsc[master]: bsc_vty: add features to disable specific lchans via vty In-Reply-To: References: Message-ID: Hello Neels Hofmeyr, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12624 to look at the new patch set (#8). Change subject: bsc_vty: add features to disable specific lchans via vty ...................................................................... bsc_vty: add features to disable specific lchans via vty In some test and debug situations it is useful to have the ability to lock certain lchans in a way that the BSC can not allocate them. One application might be to simulate an exhaustion of all TCH/H channels in order to force the BSC to take one of the available TCH/F. Lets add a command to the vty which alloes us sen lchans from LCHAN_ST_UNUSED to LCHAN_ST_BORKEN and vice versa. Change-Id: I397e68e26d6a1727890353fa34f4897b54795866 Related: OS#3503 --- M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/lchan_fsm.c 2 files changed, 48 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/24/12624/8 -- To view, visit https://gerrit.osmocom.org/12624 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I397e68e26d6a1727890353fa34f4897b54795866 Gerrit-Change-Number: 12624 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: dexter Gerrit-CC: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 09:36:48 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 7 Feb 2019 09:36:48 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: Hello Max, Neels Hofmeyr, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12625 to look at the new patch set (#8). Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... assignment_fsm: fix channel allocator preferences When the MSC allocates a channel through the ASSIGNMENT REQUEST, it may ask for a TCH/H and a TCH/F at the same time and tell which of the two types it prefers. The process of channel allocation currently selects, based on the BTS, MSC and MS capabilites exactly one apropriate codec/rate (e.g. TCH/H) and then tries to allocate it. If that allocation fails, there is no way to try the second choice and the assignment fails. For example: The MSC asks for TCH/F and TCH/H, prefering TCH/F, then the channel allocator will try TCH/F and if it fails (all TCH/F are currently in use), then TCH/H is never tried. Since the BSC currently only trys the first best codec/rate that is supported it also ignores the preference. Lets fix those problems by including the preference information and both possible codec/rate settings into the channel allocation decision. Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Related: OS#3503 --- M include/osmocom/bsc/codec_pref.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/codec_pref.c M src/osmo-bsc/handover_fsm.c M src/osmo-bsc/osmo_bsc_bssap.c M tests/codec_pref/codec_pref_test.c 8 files changed, 321 insertions(+), 117 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/25/12625/8 -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 09:38:30 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 7 Feb 2019 09:38:30 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_80.c: add msc_send_ussd_release_complete_cause() In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12843 ) Change subject: libmsc/gsm_04_80.c: add msc_send_ussd_release_complete_cause() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12843 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3b9e8e4f473d113d5b9e9e5d33f7914202077203 Gerrit-Change-Number: 12843 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Thu, 07 Feb 2019 09:38:30 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 09:39:05 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 7 Feb 2019 09:39:05 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_80.c: use gsm0480_create_release_complete() In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12840 ) Change subject: libmsc/gsm_04_80.c: use gsm0480_create_release_complete() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12840 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id2975c3383f18e83124ba38927c03980d67ddadb Gerrit-Change-Number: 12840 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Thu, 07 Feb 2019 09:39:05 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Thu Feb 7 09:41:59 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Thu, 7 Feb 2019 09:41:59 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-trx_=C2=BB_--with-ss?= =?UTF-8?Q?e,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#866?= Message-ID: <1452611395.127.1549532519536.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 107.33 KB...] Reading and parsing tag files Parsing files Building group list... Building directory list... Building namespace list... Building file list... Building class list... Associating documentation with classes... Computing nesting relations for classes... Building example list... Searching for enumerations... Searching for documented typedefs... Searching for members imported via using declarations... Searching for included using directives... Searching for documented variables... Building interface member list... Building member list... Searching for friends... Searching for documented defines... Computing class inheritance relations... Computing class usage relations... Flushing cached template relations that have become invalid... Computing class relations... Add enum values to enums... Searching for member function documentation... Creating members for template instances... Building page list... Search for main page... Computing page relations... Determining the scope of groups... Sorting lists... Freeing entry tree Determining which enums are documented Computing member relations... Building full member lists recursively... Adding members to member groups. Computing member references... Inheriting documentation... Generating disk names... Adding source references... Adding xrefitems... Sorting member lists... Computing dependencies between directories... Generating citations page... Counting data structures... Resolving user defined references... Finding anchors and sections in the documentation... Transferring function references... Combining using relations... Adding members to index pages... Generating style sheet... Generating search indices... Generating example documentation... Generating file sources... Generating file documentation... Generating page documentation... Generating group documentation... Generating class documentation... Generating namespace index... Generating graph info page... Generating directory documentation... Generating index page... Generating page index... Generating module index... Generating namespace index... Generating namespace member index... Generating annotated compound index... Generating alphabetical compound index... Generating hierarchical class index... Generating graphical class hierarchy... Generating member index... Generating file index... Generating file member index... Generating example index... finalizing index lists... writing tag file... Running dot... Running dot for graph 1/1 lookup cache used 0/65536 hits=0 misses=0 finished... make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_guide.html /usr/bin/install -c -m 644 ../README ' cp -r html make[5]: Leaving directory ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in firmware make[2]: Entering directory ' Making install in include make[3]: Entering directory ' PYTHONPATH=../../usrp/firmware/include ./generate_regs.py ./fpga_regs_common.h fpga_regs_common.v make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_i2c_addr.h usrp_spi_defs.h fpga_regs_common.h fpga_regs_standard.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' Making install in lib make[3]: Entering directory ' sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c delay.c -o delay.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c fx2utils.c -o fx2utils.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c i2c.c -o i2c.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c isr.c -o isr.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c timer.c -o timer.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c usb_common.c -o usb_common.rel timer.c:45: warning 158: overflow in implicit constant conversion usb_common.c:65: warning 196: pointer target lost const qualifier usb_common.c:66: warning 196: pointer target lost const qualifier usb_common.c:67: warning 196: pointer target lost const qualifier usb_common.c:68: warning 196: pointer target lost const qualifier usb_common.c:71: warning 196: pointer target lost const qualifier usb_common.c:72: warning 196: pointer target lost const qualifier usb_common.c:73: warning 196: pointer target lost const qualifier usb_common.c:74: warning 196: pointer target lost const qualifier -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'int fixed' to type 'volatile-unsigned-char xdata* xdata' isr.c:73: warning 94: comparison is always false due to limited range of data type usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:217: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:226: warning 126: unreachable code usb_common.c:184: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG usb_common.c:315: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG isr.c:100: warning 94: comparison is always false due to limited range of data type rm -f libfx2.lib touch libfx2.lib for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done make[3]: Leaving directory ' Making install in src make[3]: Entering directory ' Making install in common make[4]: Entering directory ' make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory ' make[4]: Leaving directory ' Making install in usrp2 make[4]: Entering directory ' test -f `basename 'eeprom_boot.a51'` || ln -s 'eeprom_boot.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_init.rel `test -f 'eeprom_init.c' || echo './'`eeprom_init.c test -f `basename '_startup.a51'` || ln -s '_startup.a51' . test -f `basename 'vectors.a51'` || ln -s 'vectors.a51' . srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_common.rel `test -f 'usrp_common.c' || echo './'`usrp_common.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o board_specific.rel `test -f 'board_specific.c' || echo './'`board_specific.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_load.rel `test -f 'fpga_load.c' || echo './'`fpga_load.c test -f ../common/`basename 'eeprom_boot.a51'` -o \ \! -f `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` \ || ln -s `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` ../common/`basename 'eeprom_boot.a51'` test -f ../common/`basename 'vectors.a51'` -o \ \! -f `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` \ || ln -s `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` ../common/`basename 'vectors.a51'` test -f ../common/`basename '_startup.a51'` -o \ \! -f `dirname '_startup.a51'`/../common/`basename '_startup.a51'` \ || ln -s `dirname '_startup.a51'`/../common/`basename '_startup.a51'` ../common/`basename '_startup.a51'` sdas8051 -plosgff `basename 'vectors.a51'` sdas8051 -plosgff `basename 'eeprom_boot.a51'` sdas8051 -plosgff `basename '_startup.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_rev2.rel `test -f 'fpga_rev2.c' || echo './'`fpga_rev2.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o init_gpif.rel `test -f 'init_gpif.c' || echo './'`init_gpif.c board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'bits' board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'mask' ../common/fpga_load.c:139: warning 85: in function clock_out_config_byte unreferenced function argument : 'bits' srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h ../common/fpga_load.c:181: warning 126: unreachable code test -f `basename 'usb_descriptors.a51'` || ln -s 'usb_descriptors.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o spi.rel `test -f 'spi.c' || echo './'`spi.c test -f ../common/`basename 'usb_descriptors.a51'` -o \ \! -f `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` \ || ln -s `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` ../common/`basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_io.rel `test -f 'eeprom_io.c' || echo './'`eeprom_io.c sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o eeprom_boot.ihx eeprom_boot.rel eeprom_init.rel _startup.rel sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_main.rel `test -f 'usrp_main.c' || echo './'`usrp_main.c sdas8051 -plosgff `basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_gpif.rel `test -f 'usrp_gpif.c' || echo './'`usrp_gpif.c usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion ./../common/build_eeprom.py -p -r2 eeprom_boot.ihx > burn-usrp2-eeprom ./../common/build_eeprom.py -p -r4 eeprom_boot.ihx > burn-usrp4-eeprom chmod +x burn-usrp2-eeprom chmod +x burn-usrp4-eeprom usrp_main.c:223: warning 112: function 'setup_flowstate_common' implicit declaration usrp_main.c:260: warning 112: function 'setup_flowstate_write' implicit declaration usrp_main.c:282: warning 112: function 'setup_flowstate_read' implicit declaration usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o std.ihx vectors.rel usrp_main.rel usrp_common.rel board_specific.rel fpga_load.rel fpga_rev2.rel init_gpif.rel usrp_gpif.rel usb_descriptors.rel spi.rel eeprom_io.rel _startup.rel ?ASlink-Warning-Undefined Global '_setup_flowstate_read' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_write' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_common' referenced by module 'usrp_main' Makefile:688: recipe for target 'std.ihx' failed make[4]: *** [std.ihx] Error 1 make[4]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[3]: *** [install-recursive] Error 1 make[3]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[2]: *** [install-recursive] Error 1 make[2]: Leaving directory ' Makefile:628: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:925: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Thu Feb 7 09:53:12 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 7 Feb 2019 09:53:12 +0000 Subject: Change in libosmo-netif[master]: Use timeout in jenkins job Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12851 Change subject: Use timeout in jenkins job ...................................................................... Use timeout in jenkins job Automatically terminate 'make distcheck' jenkins build job after 5 minutes timeout to make sure tests won't hang indefinitely. Change-Id: I815d65f31eec4e0c758478471a553ec2afb59a8d --- M contrib/jenkins.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/51/12851/1 diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index f2013a5..7d0d1f2 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -37,7 +37,7 @@ autoreconf --install --force ./configure --enable-sanitize --enable-werror $MAKE $PARALLEL_MAKE -$MAKE distcheck \ +timeout 5m $MAKE distcheck \ || cat-testlogs.sh osmo-clean-workspace.sh -- To view, visit https://gerrit.osmocom.org/12851 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I815d65f31eec4e0c758478471a553ec2afb59a8d Gerrit-Change-Number: 12851 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 10:02:09 2019 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Thu, 7 Feb 2019 10:02:09 +0000 Subject: Change in libosmocore[master]: protocol/gsm_04_14: Fix the OPEN LOOP message type In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/12850 ) Change subject: protocol/gsm_04_14: Fix the OPEN LOOP message type ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12850 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id4350dee4353ebf9de0450dd5dab6e4f2ee7c3a6 Gerrit-Change-Number: 12850 Gerrit-PatchSet: 1 Gerrit-Owner: tnt Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: tnt Gerrit-Comment-Date: Thu, 07 Feb 2019 10:02:09 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 10:02:12 2019 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Thu, 7 Feb 2019 10:02:12 +0000 Subject: Change in libosmocore[master]: protocol/gsm_04_14: Fix the OPEN LOOP message type In-Reply-To: References: Message-ID: tnt has submitted this change and it was merged. ( https://gerrit.osmocom.org/12850 ) Change subject: protocol/gsm_04_14: Fix the OPEN LOOP message type ...................................................................... protocol/gsm_04_14: Fix the OPEN LOOP message type Change-Id: Id4350dee4353ebf9de0450dd5dab6e4f2ee7c3a6 Signed-off-by: Sylvain Munaut --- M include/osmocom/gsm/protocol/gsm_04_14.h 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Max: Looks good to me, but someone else must approve Vadim Yanitskiy: Looks good to me, but someone else must approve tnt: Looks good to me, approved diff --git a/include/osmocom/gsm/protocol/gsm_04_14.h b/include/osmocom/gsm/protocol/gsm_04_14.h index 5ef7837..deb474e 100644 --- a/include/osmocom/gsm/protocol/gsm_04_14.h +++ b/include/osmocom/gsm/protocol/gsm_04_14.h @@ -20,7 +20,7 @@ }; #define GSM414_MT_CLOSE_TCH_LOOP_ACK 0x01 /* 8.2 */ -#define GSM414_MT_OPEN_LOOP_CMD 0x02 /* 8.3 */ +#define GSM414_MT_OPEN_LOOP_CMD 0x06 /* 8.3 */ #define GSM414_OPEN_LOOP_ACK_IE 0x81 #define GSM414_MT_CLOSE_MSLOT_LOOP_CMD 0x20 /* 8.4 */ -- To view, visit https://gerrit.osmocom.org/12850 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Id4350dee4353ebf9de0450dd5dab6e4f2ee7c3a6 Gerrit-Change-Number: 12850 Gerrit-PatchSet: 1 Gerrit-Owner: tnt Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: tnt -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 10:07:34 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 7 Feb 2019 10:07:34 +0000 Subject: Change in libosmo-sccp[master]: Don't use deprecated osmo_stream_cli_open2() Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12852 Change subject: Don't use deprecated osmo_stream_cli_open2() ...................................................................... Don't use deprecated osmo_stream_cli_open2() Using osmo_stream_cli_open() with explicit timeout set via osmo_stream_cli_set_reconnect_timeout() will have the same effect. Update comment explaining this as well as the code. Change-Id: Iffe6ea48a170880faef071c7c4a1bc0605aa9855 --- M src/osmo_ss7.c 1 file changed, 4 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/52/12852/1 diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c index 39d92fa..05668b0 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -1261,12 +1261,13 @@ else osmo_stream_cli_set_read_cb(asp->client, xua_cli_read_cb); osmo_stream_cli_set_data(asp->client, asp); - rc = osmo_stream_cli_open2(asp->client, 1); + rc = osmo_stream_cli_open(asp->client); if (rc < 0) { LOGSS7(asp->inst, LOGL_ERROR, "Unable to open stream" " client for ASP %s\n", asp->cfg.name); - /* we don't return error in here because osmo_stream_cli_open2() - will continue to retry to connect so the error is transient */ + /* we don't return error in here because osmo_stream_cli_open() + will continue to retry (due to timeout being explicitly set with + osmo_stream_cli_set_reconnect_timeout() above) to connect so the error is transient */ } /* TODO: make this configurable and not implicit */ role = XUA_ASPFSM_ROLE_ASP; -- To view, visit https://gerrit.osmocom.org/12852 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iffe6ea48a170880faef071c7c4a1bc0605aa9855 Gerrit-Change-Number: 12852 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 10:10:20 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 10:10:20 +0000 Subject: Change in osmo-bsc[master]: bsc_vty: add features to disable specific lchans via vty In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12624 ) Change subject: bsc_vty: add features to disable specific lchans via vty ...................................................................... Patch Set 8: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12624 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I397e68e26d6a1727890353fa34f4897b54795866 Gerrit-Change-Number: 12624 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: dexter Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 07 Feb 2019 10:10:20 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 10:11:43 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 7 Feb 2019 10:11:43 +0000 Subject: Change in libosmo-netif[master]: Use timeout in jenkins job In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12851 ) Change subject: Use timeout in jenkins job ...................................................................... Patch Set 1: > did we see problems here? has this happened before? should we also do this in other projects? Yes, the problem is with the follow-up patch which I'm unable to reproduce locally yet. So this is just experimental patch (hence WIP). Ideally this should be done in jobs/gerrit-verifications.yml for all (most?) jobs. Maybe with slightly longer timeout. I'll drop this patch once osmo-ci patch is ready. -- To view, visit https://gerrit.osmocom.org/12851 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I815d65f31eec4e0c758478471a553ec2afb59a8d Gerrit-Change-Number: 12851 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-CC: Harald Welte Gerrit-Comment-Date: Thu, 07 Feb 2019 10:11:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 10:12:42 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 7 Feb 2019 10:12:42 +0000 Subject: Change in libosmo-netif[master]: Use timeout in jenkins job In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12851 ) Change subject: Use timeout in jenkins job ...................................................................... Patch Set 1: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/12851 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I815d65f31eec4e0c758478471a553ec2afb59a8d Gerrit-Change-Number: 12851 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-CC: Harald Welte Gerrit-CC: osmith Gerrit-Comment-Date: Thu, 07 Feb 2019 10:12:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 10:14:00 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 7 Feb 2019 10:14:00 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_80.c: use gsm0480_create_release_complete() In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12840 ) Change subject: libmsc/gsm_04_80.c: use gsm0480_create_release_complete() ...................................................................... Patch Set 2: Code-Review-1 (1 comment) https://gerrit.osmocom.org/#/c/12840/2/include/osmocom/msc/gsm_04_80.h File include/osmocom/msc/gsm_04_80.h: https://gerrit.osmocom.org/#/c/12840/2/include/osmocom/msc/gsm_04_80.h at 14 PS2, Line 14: uint8_t transaction_id) Missing ; is responsible for the build failure -- To view, visit https://gerrit.osmocom.org/12840 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id2975c3383f18e83124ba38927c03980d67ddadb Gerrit-Change-Number: 12840 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Comment-Date: Thu, 07 Feb 2019 10:14:00 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 10:16:18 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 7 Feb 2019 10:16:18 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_80.c: add msc_send_ussd_release_complete_cause() In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12843 ) Change subject: libmsc/gsm_04_80.c: add msc_send_ussd_release_complete_cause() ...................................................................... Patch Set 2: Code-Review-1 (1 comment) https://gerrit.osmocom.org/#/c/12843/2/include/osmocom/msc/gsm_04_80.h File include/osmocom/msc/gsm_04_80.h: https://gerrit.osmocom.org/#/c/12843/2/include/osmocom/msc/gsm_04_80.h at 17 PS2, Line 17: uint8_t cause_loc, uint8_t cause_val) ; missing here as well -- To view, visit https://gerrit.osmocom.org/12843 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3b9e8e4f473d113d5b9e9e5d33f7914202077203 Gerrit-Change-Number: 12843 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Comment-Date: Thu, 07 Feb 2019 10:16:18 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 10:16:31 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 10:16:31 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12625 ) Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... Patch Set 8: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 07 Feb 2019 10:16:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 10:16:44 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 10:16:44 +0000 Subject: Change in osmo-bsc[master]: bsc_vty: add features to disable specific lchans via vty In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12624 ) Change subject: bsc_vty: add features to disable specific lchans via vty ...................................................................... Patch Set 8: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12624 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I397e68e26d6a1727890353fa34f4897b54795866 Gerrit-Change-Number: 12624 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: dexter Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 07 Feb 2019 10:16:44 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 10:17:03 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 10:17:03 +0000 Subject: Change in libusrp[master]: usrp2: firmware: ignore .lk build artifacts In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12849 ) Change subject: usrp2: firmware: ignore .lk build artifacts ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12849 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libusrp Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I79cbb834f02dc3f804e5a1476724245407f0eade Gerrit-Change-Number: 12849 Gerrit-PatchSet: 1 Gerrit-Owner: Alexander Huemer Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Thu, 07 Feb 2019 10:17:03 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 10:17:04 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 10:17:04 +0000 Subject: Change in libusrp[master]: usrp2: firmware: ignore .lk build artifacts In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12849 ) Change subject: usrp2: firmware: ignore .lk build artifacts ...................................................................... usrp2: firmware: ignore .lk build artifacts Change-Id: I79cbb834f02dc3f804e5a1476724245407f0eade --- M firmware/src/usrp2/.gitignore 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Max: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/firmware/src/usrp2/.gitignore b/firmware/src/usrp2/.gitignore index 54a9e94..d1557f9 100644 --- a/firmware/src/usrp2/.gitignore +++ b/firmware/src/usrp2/.gitignore @@ -6,6 +6,7 @@ /*.rel /*.rst /*.sym +/*.lk /blink_leds.asm /usrp_common.asm /command_loop.asm -- To view, visit https://gerrit.osmocom.org/12849 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libusrp Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I79cbb834f02dc3f804e5a1476724245407f0eade Gerrit-Change-Number: 12849 Gerrit-PatchSet: 1 Gerrit-Owner: Alexander Huemer Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 10:18:21 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 10:18:21 +0000 Subject: Change in libosmocore[master]: gsm/gsm0480: introduce gsm0480_create_release_complete() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12839 ) Change subject: gsm/gsm0480: introduce gsm0480_create_release_complete() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12839 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie3ac85fcef90a5e532334ba3482804d5305c88d7 Gerrit-Change-Number: 12839 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 07 Feb 2019 10:18:21 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 10:21:45 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 10:21:45 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/11992 ) Change subject: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions ...................................................................... Patch Set 10: (2 comments) looks fine to me, except for two typo (ESME/EUSE) in the commit message, and inconsistent naming watchdog vs. guard timer. https://gerrit.osmocom.org/#/c/11992/10//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/11992/10//COMMIT_MSG at 9 PS10, Line 9: ESME EUSE? https://gerrit.osmocom.org/#/c/11992/10/include/osmocom/msc/transaction.h File include/osmocom/msc/transaction.h: https://gerrit.osmocom.org/#/c/11992/10/include/osmocom/msc/transaction.h at 89 PS10, Line 89: watchdog; in the CC sub-struct above we call it "timer_guard". I would appreciate if we could align here and refer to it as a guard timer, not as a watchdog. They both do the same thing, right? -- To view, visit https://gerrit.osmocom.org/11992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icf4d87c45e90324764073e8230e0fb9cb96dd9cb Gerrit-Change-Number: 11992 Gerrit-PatchSet: 10 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-CC: Stefan Sperling Gerrit-Comment-Date: Thu, 07 Feb 2019 10:21:45 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 10:22:47 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 10:22:47 +0000 Subject: Change in osmo-asf4-dfu[sysmoOCTSIM]: change LED and switch to sysmoOCTSIM board In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12789 ) Change subject: change LED and switch to sysmoOCTSIM board ...................................................................... change LED and switch to sysmoOCTSIM board Change-Id: I481d96a284240310b634f6dc0806d4a1972cd3b9 --- M atmel_start_pins.h M driver_init.c M usb_dfu_main.c M usb_start.c 4 files changed, 8 insertions(+), 10 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/atmel_start_pins.h b/atmel_start_pins.h index 86e1dfb..7460529 100644 --- a/atmel_start_pins.h +++ b/atmel_start_pins.h @@ -27,11 +27,11 @@ #define GPIO_PIN_FUNCTION_M 12 #define GPIO_PIN_FUNCTION_N 13 -/** LED pin to indicate system state (pull low to switch on) */ -#define LED_SYSTEM GPIO(GPIO_PORTC, 18) +/** LED pin to indicate system state (pull high to switch on) */ +#define LED_SYSTEM GPIO(GPIO_PORTC, 26) /** User button to force DFu bootloader (connected to ground when pressed) */ -#define BUTTON_FORCE_DFU GPIO(GPIO_PORTB, 31) +#define BUTTON_FORCE_DFU GPIO(GPIO_PORTC, 14) /** USB D+/D- pins */ #define PA24 GPIO(GPIO_PORTA, 24) diff --git a/driver_init.c b/driver_init.c index a91b0eb..d5a151f 100644 --- a/driver_init.c +++ b/driver_init.c @@ -144,13 +144,12 @@ init_mcu(); // configure system LED - gpio_set_pin_level(LED_SYSTEM, true); // switch off LED + gpio_set_pin_level(LED_SYSTEM, false); // switch off LED gpio_set_pin_direction(LED_SYSTEM, GPIO_DIRECTION_OUT); gpio_set_pin_function(LED_SYSTEM, GPIO_PIN_FUNCTION_OFF); // configure force DFU user button gpio_set_pin_direction(BUTTON_FORCE_DFU, GPIO_DIRECTION_IN); - gpio_set_pin_pull_mode(BUTTON_FORCE_DFU, GPIO_PULL_UP); gpio_set_pin_function(BUTTON_FORCE_DFU, GPIO_PIN_FUNCTION_OFF); USB_DEVICE_INSTANCE_init(); diff --git a/usb_dfu_main.c b/usb_dfu_main.c index 449b311..6a524e4 100644 --- a/usb_dfu_main.c +++ b/usb_dfu_main.c @@ -48,8 +48,7 @@ */ static bool check_force_dfu(void) { - gpio_set_pin_pull_mode(BUTTON_FORCE_DFU, GPIO_PULL_UP); // pull button high - return (0 == gpio_get_pin_level(BUTTON_FORCE_DFU)); // signal is low when button is pressed + return (0 == gpio_get_pin_level(BUTTON_FORCE_DFU)); // signal is low when button is pressed (pulled high externally) } /** Check if the application is valid diff --git a/usb_start.c b/usb_start.c index ad91840..ab0f332 100644 --- a/usb_start.c +++ b/usb_start.c @@ -80,7 +80,7 @@ void usb_dfu(void) { while (!dfudf_is_enabled()); // wait for DFU to be installed - gpio_set_pin_level(LED_SYSTEM, false); // switch LED on to indicate USB DFU stack is ready + gpio_set_pin_level(LED_SYSTEM, true); // switch LED on to indicate USB DFU stack is ready ASSERT(hri_nvmctrl_read_STATUS_BOOTPROT_bf(FLASH_0.dev.hw) <= 15); uint32_t application_start_address = (15 - hri_nvmctrl_read_STATUS_BOOTPROT_bf(FLASH_0.dev.hw)) * 8192; // calculate bootloader size to know where we should write the application firmware @@ -89,7 +89,7 @@ while (true) { // main DFU infinite loop // run the second part of the USB DFU state machine handling non-USB aspects if (USB_DFU_STATE_DFU_DNLOAD_SYNC == dfu_state || USB_DFU_STATE_DFU_DNBUSY == dfu_state) { // there is some data to be flashed - gpio_set_pin_level(LED_SYSTEM, true); // switch LED off to indicate we are flashing + gpio_set_pin_level(LED_SYSTEM, false); // switch LED off to indicate we are flashing if (dfu_download_length > 0) { // there is some data to be flashed int32_t rc = flash_write(&FLASH_0, application_start_address + dfu_download_offset, dfu_download_data, dfu_download_length); // write downloaded data chunk to flash if (ERR_NONE == rc) { @@ -108,7 +108,7 @@ // this case should not happen, but it's not a critical error dfu_state = USB_DFU_STATE_DFU_DNLOAD_IDLE; // indicate flashing can continue } - gpio_set_pin_level(LED_SYSTEM, false); // switch LED on to indicate USB DFU can resume + gpio_set_pin_level(LED_SYSTEM, true); // switch LED on to indicate USB DFU can resume } if (USB_DFU_STATE_DFU_MANIFEST == dfu_state) { // we can start manifestation (finish flashing) // in theory every DFU files should have a suffix to with a CRC to check the data -- To view, visit https://gerrit.osmocom.org/12789 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: sysmoOCTSIM Gerrit-MessageType: merged Gerrit-Change-Id: I481d96a284240310b634f6dc0806d4a1972cd3b9 Gerrit-Change-Number: 12789 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 10:22:48 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 10:22:48 +0000 Subject: Change in osmo-asf4-dfu[sysmoOCTSIM]: use sysmoOCTSIM USB PID and strings In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12790 ) Change subject: use sysmoOCTSIM USB PID and strings ...................................................................... use sysmoOCTSIM USB PID and strings Change-Id: I1294d5f648240ddbaddeffcfffb4b0d61a88a39e --- M config/usbd_config.h 1 file changed, 5 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/config/usbd_config.h b/config/usbd_config.h index c20dfb2..801ee3c 100644 --- a/config/usbd_config.h +++ b/config/usbd_config.h @@ -85,7 +85,7 @@ // <0x6140=> osmo-ASF4-DFU // usb_dfud_idproduct #ifndef CONF_USB_OSMOASF4DFU_IDPRODUCT -#define CONF_USB_OSMOASF4DFU_IDPRODUCT 0x6140 +#define CONF_USB_OSMOASF4DFU_IDPRODUCT 0x6141 #endif // bcdDevice <0x0000-0xFFFF> @@ -107,11 +107,11 @@ // Unicode string of iManufact // usb_dfud_imanufact_str #ifndef CONF_USB_DFUD_IMANUFACT_STR -#define CONF_USB_DFUD_IMANUFACT_STR "osmocom" +#define CONF_USB_DFUD_IMANUFACT_STR "sysmocom" #endif #ifndef CONF_USB_DFUD_IMANUFACT_STR_DESC -#define CONF_USB_DFUD_IMANUFACT_STR_DESC 16, 0x03, 'o', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, 'c', 0x00, 'o', 0x00, 'm', 0x00, +#define CONF_USB_DFUD_IMANUFACT_STR_DESC 18, 0x03, 's', 0x00, 'y', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, 'c', 0x00, 'o', 0x00, 'm', 0x00, #endif // @@ -130,11 +130,11 @@ // Unicode string of iProduct // usb_dfud_iproduct_str #ifndef CONF_USB_DFUD_IPRODUCT_STR -#define CONF_USB_DFUD_IPRODUCT_STR "osmo-ASF4-DFU" +#define CONF_USB_DFUD_IPRODUCT_STR "sysmoOCTSIM (osmo-ASF4-DFU)" #endif #ifndef CONF_USB_DFUD_IPRODUCT_STR_DESC -#define CONF_USB_DFUD_IPRODUCT_STR_DESC 28, 0x03, 'o', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, '-', 0x00, 'A', 0x00, 'S', 0x00, 'F', 0x00, '4', 0x00, '-', 0x00, 'D', 0x00, 'F', 0x00, 'U', 0x00, +#define CONF_USB_DFUD_IPRODUCT_STR_DESC 56, 0x03, 's', 0x00, 'y', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, 'O', 0x00, 'C', 0x00, 'T', 0x00, 'S', 0x00, 'I', 0x00, 'M', 0x00, ' ', 0x00, '(', 0x00, 'o', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, '-', 0x00, 'A', 0x00, 'S', 0x00, 'F', 0x00, '4', 0x00, '-', 0x00, 'D', 0x00, 'F', 0x00, 'U', 0x00, ')', 0x00, #endif // -- To view, visit https://gerrit.osmocom.org/12790 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: sysmoOCTSIM Gerrit-MessageType: merged Gerrit-Change-Id: I1294d5f648240ddbaddeffcfffb4b0d61a88a39e Gerrit-Change-Number: 12790 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 10:22:50 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 10:22:50 +0000 Subject: Change in osmo-asf4-dfu[sysmoOCTSIM]: document flashing procedure for sysmoOCTSIM In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12791 ) Change subject: document flashing procedure for sysmoOCTSIM ...................................................................... document flashing procedure for sysmoOCTSIM the sysmoOCTSIM board does not have an onboard EDBG adapter such as the SAM E54 Xplained Pro board. instead SWD is used directly. Change-Id: I85aa4db62464d0a1b558968d0423e2adbe491a4f --- M README.md 1 file changed, 12 insertions(+), 10 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/README.md b/README.md index 031bc27..e39f5c1 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,7 @@ This is an implementation of the DFU mode of the [USB DFU Device Class Specification](https://usb.org/document-library/device-firmware-upgrade-11-new-version-31-aug-2004) for the Microchip SAM D5x/E5x micro-controller. It is meant to be used as bootloader to allow flashing the main application over USB. -The code has been developed for the Microchip [SAM E54 Xplained Pro](https://www.microchip.com/DevelopmentTools/ProductDetails/PartNo/ATSAME54-XPRO) development board using a [SAM E54](https://www.microchip.com/wwwproducts/en/ATSAME54P20A) micro-controller. -It should work on any chip of the SAM D5x/E5x device family by replacing the corresponding device-specific definitions (usually including the chip name in the file name). +This branch is specific to the proprietary sysmocom sysmoOCTSIM hardware. The code uses the [Atmel START](https://start.atmel.com/) ASFv4 library. @@ -31,7 +30,7 @@ Flashing ======== -To flash the bootloader you can either use the [edbg tool](https://github.com/ataradov/edbg) over the EDBG interface of the SAM E54 Xplained Pro development board, or OpenICD with any SWJ adapter. +To flash the bootloader you can use OpenOCD with any SWJ adapter. The USB DFU bootloader should be flashed in a protected area of the flash memory to prevent for erasing it, as specified in data sheet section 25.6.2 Memory Organization. The bootloader size is configured in the NVM user configuration BOOTPROT field, as specified in data sheet section 25.6.9 NVM User Configuration. @@ -40,11 +39,14 @@ This setting will also tell the bootloader where to flash the application firmware to (e.g. after the bootloader reserved space). The LED will blink once per second if this size is not set. -EDBG ----- +ST-LINK/V2 +---------- -To flash the USB DFU bootloader, perform the following actions: -* remove reserved bootloader space so we can erase it: `edbg --target atmel_cm4v2 --fuse wv,29:26,15` -* erase the whole flash: `edbg --target atmel_cm4v2 --fuse v,29:26,15 --erase` -* program the bootloader: `edbg --target atmel_cm4v2 --fuse v,29:26,15 --program --verify --file AtmelStart.bin` -* reserve bootloader space: `edbg --target atmel_cm4v2 --fuse wv,29:26,13` +To flash the USB DFU bootloader, we will use OpenOCD (with the [SAM E54 patch](http://openocd.zylin.com/#/c/4272/) and a ST-LINK/V2 SWD adapter. +The command will perform the following actions: +* remove reserved bootloader space so we can erase it (and reset MCU for change to be effective) +* erase the whole flash +* program the bootloader +* reserve bootloader space + +`openocd --file interface/stlink.cfg --command "transport select hla_swd" --command "set CHIPNAME same54" --command "set CPUTAPID 0x2ba01477" --file target/atsame5x.cfg --command "init" --command "reset halt" --command "atsame5 bootloader 0" --command "flash erase_sector 0 0 last" --command "reset halt" --command "program ./AtmelStart.bin" --command "atsame5 bootloader 16384" --command "reset run" --command "shutdown"` -- To view, visit https://gerrit.osmocom.org/12791 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: sysmoOCTSIM Gerrit-MessageType: merged Gerrit-Change-Id: I85aa4db62464d0a1b558968d0423e2adbe491a4f Gerrit-Change-Number: 12791 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 10:32:41 2019 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Thu, 7 Feb 2019 10:32:41 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/12625 ) Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... Patch Set 8: (2 comments) https://gerrit.osmocom.org/#/c/12625/8/src/osmo-bsc/osmo_bsc_bssap.c File src/osmo-bsc/osmo_bsc_bssap.c: https://gerrit.osmocom.org/#/c/12625/8/src/osmo-bsc/osmo_bsc_bssap.c at 635 PS8, Line 635: switch (ct->ch_rate_type & GSM0808_SPEECH_PERM) { Wait what ? GSM0808_SPEECH_PERM is not a mask, it's an actual possible value of the field defined in GSM 08.08 3.2.2.11. """ Full or Half rate TCH channel. Preference between the permitted speech versions as indicated in octet 5, 5a etc., changes between full and half rate allowed also after first channel allocation as a result of the request """ https://gerrit.osmocom.org/#/c/12625/8/src/osmo-bsc/osmo_bsc_bssap.c at 637 PS8, Line 637: rc = match_codec_pref(&req->ch_mode_rate_pref, ct, &conn->codec_list, msc, conn_get_bts(conn), Given this is used for speech, I'd use the GSM0808_SPEECH_xxx constants. (I know, they have the same values but still). -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy Gerrit-CC: tnt Gerrit-Comment-Date: Thu, 07 Feb 2019 10:32:41 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Thu Feb 7 10:33:42 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Thu, 7 Feb 2019 10:33:42 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-trx_=C2=BB_--wit?= =?UTF-8?Q?h-sse,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#867?= In-Reply-To: <1452611395.127.1549532519536.JavaMail.jenkins@jenkins.osmocom.org> References: <1452611395.127.1549532519536.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1629837355.128.1549535622146.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Thu Feb 7 10:33:59 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 7 Feb 2019 10:33:59 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/11992 ) Change subject: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions ...................................................................... Patch Set 10: Code-Review-1 (3 comments) https://gerrit.osmocom.org/#/c/11992/10/src/libmsc/gsm_09_11.c File src/libmsc/gsm_09_11.c: https://gerrit.osmocom.org/#/c/11992/10/src/libmsc/gsm_09_11.c at 153 PS10, Line 153: if (conn->network->ncss_guard_timeout > 0) { This seems like possible race condition if you disable the ncss_guard_timeout from VTY while USSD sessions are active. Existing timers will not be rescheduled. https://gerrit.osmocom.org/#/c/11992/10/src/libmsc/gsm_09_11.c at 156 PS10, Line 156: } else if (osmo_timer_pending(&trans->ss.watchdog)) { osmo_timer_del(&trans->ss.watchdog); } https://gerrit.osmocom.org/#/c/11992/10/src/libmsc/gsm_09_11.c at 279 PS10, Line 279: } My comment above may apply here and elsewere as well -- To view, visit https://gerrit.osmocom.org/11992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icf4d87c45e90324764073e8230e0fb9cb96dd9cb Gerrit-Change-Number: 11992 Gerrit-PatchSet: 10 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-CC: Stefan Sperling Gerrit-Comment-Date: Thu, 07 Feb 2019 10:33:59 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 10:36:55 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 7 Feb 2019 10:36:55 +0000 Subject: Change in osmo-sysmon[master]: ctrl: log host/port on errors In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12318 ) Change subject: ctrl: log host/port on errors ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12318 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I788d51359965a66c54075a3971aa7824c3bfb0bf Gerrit-Change-Number: 12318 Gerrit-PatchSet: 7 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-CC: Pau Espin Pedrol Gerrit-CC: Stefan Sperling Gerrit-Comment-Date: Thu, 07 Feb 2019 10:36:55 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 10:49:16 2019 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Thu, 7 Feb 2019 10:49:16 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/12625 ) Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... Patch Set 8: (1 comment) https://gerrit.osmocom.org/#/c/12625/8/include/osmocom/bsc/gsm_data.h File include/osmocom/bsc/gsm_data.h: https://gerrit.osmocom.org/#/c/12625/8/include/osmocom/bsc/gsm_data.h at 104 PS8, Line 104: bool full_rate; Just wondering if it wouldn't be worth directly using GSM_LCHAN_xxx constant in there rather than full_rate flag. Because when eventually getting to 3784 we will need to express SDCCH/TCH_HS/TCH_FS preferences. Also about ch_mode_rate_pref, for the same reason it might be worth making it an array with a int indicating the # of items because there is 3 possible alternative to specify there. Just my 2ct. Ping @hwelte -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy Gerrit-CC: tnt Gerrit-Comment-Date: Thu, 07 Feb 2019 10:49:16 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 10:53:04 2019 From: gerrit-no-reply at lists.osmocom.org (Alexander Huemer) Date: Thu, 7 Feb 2019 10:53:04 +0000 Subject: Change in libusrp[master]: Avoid compiler warning 'dynamic exception specifications are deprecat... Message-ID: Alexander Huemer has uploaded this change for review. ( https://gerrit.osmocom.org/12853 Change subject: Avoid compiler warning 'dynamic exception specifications are deprecated in C++11 [-Wdeprecated]' ...................................................................... Avoid compiler warning 'dynamic exception specifications are deprecated in C++11 [-Wdeprecated]' Change-Id: Ie472e6f92944cfe1af7d63cd644879573d080ca2 --- M host/include/usrp/usrp_local_sighandler.h M host/lib/usrp_local_sighandler.cc 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libusrp refs/changes/53/12853/1 diff --git a/host/include/usrp/usrp_local_sighandler.h b/host/include/usrp/usrp_local_sighandler.h index ee33675..5553680 100644 --- a/host/include/usrp/usrp_local_sighandler.h +++ b/host/include/usrp/usrp_local_sighandler.h @@ -55,7 +55,7 @@ ~usrp_local_sighandler (); /* throw usrp_signal (signum) */ - static void throw_signal (int signum) throw (usrp_signal); + static void throw_signal (int signum); }; #endif /* INCLUDED_USRP_LOCAL_SIGHANDLER_H */ diff --git a/host/lib/usrp_local_sighandler.cc b/host/lib/usrp_local_sighandler.cc index 5901397..81bc3d1 100644 --- a/host/lib/usrp_local_sighandler.cc +++ b/host/lib/usrp_local_sighandler.cc @@ -64,7 +64,7 @@ } void -usrp_local_sighandler::throw_signal(int signum) throw(usrp_signal) +usrp_local_sighandler::throw_signal(int signum) { throw usrp_signal (signum); } -- To view, visit https://gerrit.osmocom.org/12853 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libusrp Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie472e6f92944cfe1af7d63cd644879573d080ca2 Gerrit-Change-Number: 12853 Gerrit-PatchSet: 1 Gerrit-Owner: Alexander Huemer -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 12:22:56 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 7 Feb 2019 12:22:56 +0000 Subject: Change in libosmo-netif[master]: Stream client: report reconnection event as INFO Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12854 Change subject: Stream client: report reconnection event as INFO ...................................................................... Stream client: report reconnection event as INFO This helps to avoid unnecessary debug output in reconnection logic tests in follow-up patches. Change-Id: Ic96430a9e9294e72de23b0bbacdbf3e99a453f1d --- M src/stream.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/54/12854/1 diff --git a/src/stream.c b/src/stream.c index 7b97d2a..1880e25 100644 --- a/src/stream.c +++ b/src/stream.c @@ -172,11 +172,11 @@ osmo_stream_cli_close(cli); if (cli->reconnect_timeout < 0) { - LOGSCLI(cli, LOGL_DEBUG, "not reconnecting, disabled.\n"); + LOGSCLI(cli, LOGL_INFO, "not reconnecting, disabled.\n"); return; } - LOGSCLI(cli, LOGL_DEBUG, "retrying in %d seconds...\n", + LOGSCLI(cli, LOGL_INFO, "retrying in %d seconds...\n", cli->reconnect_timeout); osmo_timer_schedule(&cli->timer, cli->reconnect_timeout, 0); cli->state = STREAM_CLI_STATE_CONNECTING; -- To view, visit https://gerrit.osmocom.org/12854 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic96430a9e9294e72de23b0bbacdbf3e99a453f1d Gerrit-Change-Number: 12854 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 12:23:57 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 7 Feb 2019 12:23:57 +0000 Subject: Change in osmo-sysmon[master]: ctrl: log host/port on errors In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12318 ) Change subject: ctrl: log host/port on errors ...................................................................... ctrl: log host/port on errors In case of multiple ctrl-client entries in .cfg file it's impossible to see which one is causing particular ctrl error. Fix this by introducing macro wrapper for stderr logging which always show host:port relevant to the error. Change-Id: I788d51359965a66c54075a3971aa7824c3bfb0bf Related: SYS#2655 --- M src/simple_ctrl.c 1 file changed, 24 insertions(+), 16 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, approved osmith: Looks good to me, but someone else must approve diff --git a/src/simple_ctrl.c b/src/simple_ctrl.c index 2261323..b56fc83 100644 --- a/src/simple_ctrl.c +++ b/src/simple_ctrl.c @@ -37,6 +37,9 @@ #include "simple_ctrl.h" +#define CTRL_ERR(cfg, fmt, args...) \ + fprintf(stderr, "CTRL %s:%u error: " fmt, cfg.remote_host, cfg.remote_port, ##args) + /*********************************************************************** * blocking I/O with timeout helpers ***********************************************************************/ @@ -98,20 +101,28 @@ int fd; uint32_t next_id; uint32_t tout_msec; + struct ctrl_cfg cfg; }; struct simple_ctrl_handle *simple_ctrl_open(void *ctx, const char *host, uint16_t dport, uint32_t tout_msec) { - struct simple_ctrl_handle *sch; + struct simple_ctrl_handle *sch = talloc_zero(ctx, struct simple_ctrl_handle); fd_set writeset; int off = 0; int rc, fd; + if (!sch) + return NULL; + + sch->cfg.name = talloc_strdup(sch, "simple-ctrl"); + sch->cfg.remote_host = talloc_strdup(sch, host); + sch->cfg.remote_port = dport; + fd = osmo_sock_init(AF_INET, SOCK_STREAM, IPPROTO_TCP, host, dport, OSMO_SOCK_F_CONNECT | OSMO_SOCK_F_NONBLOCK); if (fd < 0) { - fprintf(stderr, "CTRL: error connecting socket: %s\n", strerror(errno)); + CTRL_ERR(sch->cfg, "connecting socket: %s\n", strerror(errno)); return NULL; } @@ -120,23 +131,20 @@ FD_SET(fd, &writeset); rc = select(fd+1, NULL, &writeset, NULL, timeval_from_msec(tout_msec)); if (rc == 0) { - fprintf(stderr, "CTRL: timeout during connect\n"); + CTRL_ERR(sch->cfg, "timeout during connect\n"); goto out_close; } if (rc < 0) { - fprintf(stderr, "CTRL: error connecting socket: %s\n", strerror(errno)); + CTRL_ERR(sch->cfg, "error connecting socket: %s\n", strerror(errno)); goto out_close; } /* set FD blocking again */ if (ioctl(fd, FIONBIO, (unsigned char *)&off) < 0) { - fprintf(stderr, "CTRL: cannot set socket blocking: %s\n", strerror(errno)); + CTRL_ERR(sch->cfg, "cannot set socket blocking: %s\n", strerror(errno)); goto out_close; } - sch = talloc_zero(ctx, struct simple_ctrl_handle); - if (!sch) - goto out_close; sch->fd = fd; sch->tout_msec = tout_msec; return sch; @@ -165,10 +173,10 @@ rc = read_timeout(sch->fd, (uint8_t *) &hh, sizeof(hh), sch->tout_msec); if (rc < 0) { - fprintf(stderr, "CTRL: Error during read: %d\n", rc); + CTRL_ERR(sch->cfg, "read(): %d\n", rc); return NULL; } else if (rc < sizeof(hh)) { - fprintf(stderr, "CTRL: ERROR: short read (header)\n"); + CTRL_ERR(sch->cfg, "short read (header)\n"); return NULL; } len = ntohs(hh.len); @@ -182,7 +190,7 @@ resp->l2h = resp->tail; rc = read(sch->fd, resp->l2h, len); if (rc < len) { - fprintf(stderr, "CTRL: ERROR: short read (payload)\n"); + CTRL_ERR(sch->cfg, "short read (payload)\n"); msgb_free(resp); return NULL; } @@ -214,7 +222,7 @@ *tmp = '\0'; return resp; } else { - fprintf(stderr, "unknown IPA message %s\n", msgb_hexdump(resp)); + CTRL_ERR(sch->cfg, "unknown IPA message %s\n", msgb_hexdump(resp)); msgb_free(resp); } } @@ -229,10 +237,10 @@ rc = write_timeout(sch->fd, msg->data, msg->len, sch->tout_msec); if (rc < 0) { - fprintf(stderr, "CTRL: Error during write: %d\n", rc); + CTRL_ERR(sch->cfg, "write(): %d\n", rc); return rc; } else if (rc < msg->len) { - fprintf(stderr, "CTRL: ERROR: short write\n"); + CTRL_ERR(sch->cfg, "short write\n"); msgb_free(msg); return -1; } else { @@ -283,7 +291,7 @@ free(rx_var); free(rx_val); } else { - fprintf(stderr, "CTRL: ERROR: GET(%s) results in '%s'\n", var, (char *)msgb_l2(resp)); + CTRL_ERR(sch->cfg, "GET(%s) results in '%s'\n", var, (char *)msgb_l2(resp)); } msgb_free(resp); @@ -321,7 +329,7 @@ free(rx_var); } } else { - fprintf(stderr, "CTRL: ERROR: SET(%s=%s) results in '%s'\n", var, val, (char *) msgb_l2(resp)); + CTRL_ERR(sch->cfg, "SET(%s=%s) results in '%s'\n", var, val, (char *) msgb_l2(resp)); } msgb_free(resp); -- To view, visit https://gerrit.osmocom.org/12318 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I788d51359965a66c54075a3971aa7824c3bfb0bf Gerrit-Change-Number: 12318 Gerrit-PatchSet: 7 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-CC: Pau Espin Pedrol Gerrit-CC: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 12:31:14 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 7 Feb 2019 12:31:14 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC_Tests: Enable SGs interface by default Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/12855 Change subject: MSC_Tests: Enable SGs interface by default ...................................................................... MSC_Tests: Enable SGs interface by default Since the current master of osmo-msc now implements an SGs interface. Lets enable the TTCN3 side of the SGs interface as well. Change-Id: I6a07000ef52c9774fd603e2be914e6f2a6a3cce4 Related: OS#3614 --- M msc/MSC_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/55/12855/1 diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 8d29e7a..eca0eb6 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -119,7 +119,7 @@ charstring mp_mme_name := "mmec01.mmegi0001.mme.epc.mnc070.mcc901.3gppnetwork.org"; charstring mp_vlr_name := "vlr.example.net"; - boolean mp_sgsap_enable := false; + boolean mp_sgsap_enable := true; BSSAP_Configurations mp_bssap_cfg := { { -- To view, visit https://gerrit.osmocom.org/12855 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6a07000ef52c9774fd603e2be914e6f2a6a3cce4 Gerrit-Change-Number: 12855 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 12:31:15 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 7 Feb 2019 12:31:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC_Tests: make sure SGs tests don't interfere Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/12856 Change subject: MSC_Tests: make sure SGs tests don't interfere ...................................................................... MSC_Tests: make sure SGs tests don't interfere The IMSIs used with the SGs tests are partially re-used in other SGs testcases and also in unrelated testcases. Lets give each SGs test a unique IMSI to prevent unrelated interference with other tests. Change-Id: I417d9c5f0fbab7483d1b31dc20a99f63ee1bbfe6 Related: OS#3614 --- M msc/MSC_Tests.ttcn 1 file changed, 18 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/56/12856/1 diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index eca0eb6..1f6ee87 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -3571,7 +3571,7 @@ testcase TC_sgsap_reset() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_reset), 10); + vc_conn := f_start_handler(refers(f_tc_sgsap_reset), 11810); vc_conn.done; } @@ -3663,7 +3663,7 @@ testcase TC_sgsap_lu() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_lu), 10); + vc_conn := f_start_handler(refers(f_tc_sgsap_lu), 11811); vc_conn.done; } @@ -3701,7 +3701,7 @@ var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_lu_imsi_reject), 3); + vc_conn := f_start_handler(refers(f_tc_sgsap_lu_imsi_reject), 11812); vc_conn.done; } @@ -3762,7 +3762,7 @@ var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_lu_and_nothing), 3); + vc_conn := f_start_handler(refers(f_tc_sgsap_lu_and_nothing), 11813); vc_conn.done; } @@ -3784,7 +3784,7 @@ testcase TC_sgsap_expl_imsi_det_eps() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_expl_imsi_det_eps), 10); + vc_conn := f_start_handler(refers(f_tc_sgsap_expl_imsi_det_eps), 11814); vc_conn.done; } @@ -3807,7 +3807,7 @@ testcase TC_sgsap_expl_imsi_det_noneps() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_expl_imsi_det_noneps), 1081); + vc_conn := f_start_handler(refers(f_tc_sgsap_expl_imsi_det_noneps), 11815); vc_conn.done; } @@ -3856,7 +3856,7 @@ testcase TC_sgsap_paging_rej() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_paging_rej), 1082); + vc_conn := f_start_handler(refers(f_tc_sgsap_paging_rej), 11816); vc_conn.done; } @@ -3903,7 +3903,7 @@ testcase TC_sgsap_paging_subscr_rej() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_paging_subscr_rej), 1083); + vc_conn := f_start_handler(refers(f_tc_sgsap_paging_subscr_rej), 11817); vc_conn.done; } @@ -3945,7 +3945,7 @@ testcase TC_sgsap_paging_ue_unr() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_paging_ue_unr), 10); + vc_conn := f_start_handler(refers(f_tc_sgsap_paging_ue_unr), 11818); vc_conn.done; } @@ -3984,7 +3984,7 @@ testcase TC_sgsap_paging_and_nothing() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_paging_and_nothing), 92); + vc_conn := f_start_handler(refers(f_tc_sgsap_paging_and_nothing), 11819); vc_conn.done; } @@ -4040,7 +4040,7 @@ testcase TC_sgsap_paging_and_lu() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_paging_and_lu), 9792); + vc_conn := f_start_handler(refers(f_tc_sgsap_paging_and_lu), 11820); vc_conn.done; } @@ -4069,7 +4069,7 @@ testcase TC_sgsap_unexp_ud() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_unexp_ud), 2145); + vc_conn := f_start_handler(refers(f_tc_sgsap_unexp_ud), 11821); vc_conn.done; } @@ -4093,7 +4093,7 @@ testcase TC_sgsap_unsol_ud() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_unsol_ud), 146); + vc_conn := f_start_handler(refers(f_tc_sgsap_unsol_ud), 11822); vc_conn.done; } @@ -4239,7 +4239,7 @@ testcase TC_sgsap_mt_sms() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_mt_sms), 1145); + vc_conn := f_start_handler(refers(f_tc_sgsap_mt_sms), 11823); vc_conn.done; } @@ -4267,7 +4267,7 @@ testcase TC_sgsap_mo_sms() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_mo_sms), 3145); + vc_conn := f_start_handler(refers(f_tc_sgsap_mo_sms), 11824); vc_conn.done; } @@ -4339,7 +4339,7 @@ testcase TC_sgsap_mt_sms_and_nothing() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_mt_sms_and_nothing), 4581); + vc_conn := f_start_handler(refers(f_tc_sgsap_mt_sms_and_nothing), 11825); vc_conn.done; } @@ -4399,7 +4399,7 @@ testcase TC_sgsap_mt_sms_and_reject() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_mt_sms_and_reject), 4145); + vc_conn := f_start_handler(refers(f_tc_sgsap_mt_sms_and_reject), 11826); vc_conn.done; } @@ -4487,7 +4487,7 @@ var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_lu_and_mt_call), 239); + vc_conn := f_start_handler(refers(f_tc_sgsap_lu_and_mt_call), 11827); vc_conn.done; } -- To view, visit https://gerrit.osmocom.org/12856 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I417d9c5f0fbab7483d1b31dc20a99f63ee1bbfe6 Gerrit-Change-Number: 12856 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 12:45:17 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 7 Feb 2019 12:45:17 +0000 Subject: Change in libosmo-netif[master]: Add stream client/server test In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12837 ) Change subject: Add stream client/server test ...................................................................... Patch Set 18: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/12837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I336f79970982ed8e1d73b73d54fa4c27ba8bce8e Gerrit-Change-Number: 12837 Gerrit-PatchSet: 18 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 07 Feb 2019 12:45:17 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 12:45:43 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 7 Feb 2019 12:45:43 +0000 Subject: Change in libosmo-netif[master]: Deprecate osmo_stream_cli_open2() In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12845 ) Change subject: Deprecate osmo_stream_cli_open2() ...................................................................... Patch Set 6: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/12845 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id988ed0274b363db049f59cbf6a193727c8c3c8a Gerrit-Change-Number: 12845 Gerrit-PatchSet: 6 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 07 Feb 2019 12:45:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 12:48:26 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 7 Feb 2019 12:48:26 +0000 Subject: Change in libosmo-sccp[master]: Don't use deprecated osmo_stream_cli_open2() In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12852 ) Change subject: Don't use deprecated osmo_stream_cli_open2() ...................................................................... Patch Set 1: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/12852 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iffe6ea48a170880faef071c7c4a1bc0605aa9855 Gerrit-Change-Number: 12852 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Thu, 07 Feb 2019 12:48:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 12:48:39 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 7 Feb 2019 12:48:39 +0000 Subject: Change in libosmo-sccp[master]: Don't use deprecated osmo_stream_cli_open2() In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12852 ) Change subject: Don't use deprecated osmo_stream_cli_open2() ...................................................................... Don't use deprecated osmo_stream_cli_open2() Using osmo_stream_cli_open() with explicit timeout set via osmo_stream_cli_set_reconnect_timeout() will have the same effect. Update comment explaining this as well as the code. Change-Id: Iffe6ea48a170880faef071c7c4a1bc0605aa9855 --- M src/osmo_ss7.c 1 file changed, 4 insertions(+), 3 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c index 39d92fa..05668b0 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -1261,12 +1261,13 @@ else osmo_stream_cli_set_read_cb(asp->client, xua_cli_read_cb); osmo_stream_cli_set_data(asp->client, asp); - rc = osmo_stream_cli_open2(asp->client, 1); + rc = osmo_stream_cli_open(asp->client); if (rc < 0) { LOGSS7(asp->inst, LOGL_ERROR, "Unable to open stream" " client for ASP %s\n", asp->cfg.name); - /* we don't return error in here because osmo_stream_cli_open2() - will continue to retry to connect so the error is transient */ + /* we don't return error in here because osmo_stream_cli_open() + will continue to retry (due to timeout being explicitly set with + osmo_stream_cli_set_reconnect_timeout() above) to connect so the error is transient */ } /* TODO: make this configurable and not implicit */ role = XUA_ASPFSM_ROLE_ASP; -- To view, visit https://gerrit.osmocom.org/12852 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iffe6ea48a170880faef071c7c4a1bc0605aa9855 Gerrit-Change-Number: 12852 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 12:54:18 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Thu, 7 Feb 2019 12:54:18 +0000 Subject: Change in osmo-ccid-firmware[master]: ignore output files In-Reply-To: References: Message-ID: K?vin Redon has posted comments on this change. ( https://gerrit.osmocom.org/12795 ) Change subject: ignore output files ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/12795 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I425129f10aa2ff879fde96bfafbcb7c4b4119959 Gerrit-Change-Number: 12795 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: K?vin Redon Gerrit-Reviewer: Max Gerrit-Comment-Date: Thu, 07 Feb 2019 12:54:18 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 12:59:03 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 7 Feb 2019 12:59:03 +0000 Subject: Change in osmo-ci[master]: Add timeout wrapper to regular gerrit verification jobs Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12857 Change subject: Add timeout wrapper to regular gerrit verification jobs ...................................................................... Add timeout wrapper to regular gerrit verification jobs Use 'timeout' utility (from GNU coreutils) to wrap jenkins.sh call to ensure that verification job terminates within 15 minutes. Docker-based are left untouched. This change is prompted by recent issue with libosmo-netif test which was hanging forever preventing other tests from being executed. Change-Id: I9d0eb6b9eddf3e17120e74d7570d42291c0750ae --- M jobs/gerrit-verifications.yml 1 file changed, 7 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/57/12857/1 diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index a2f68f5..e89c9f7 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -20,7 +20,7 @@ combination_filter: '' sequential: false # most common build invocation - cmd: ./contrib/jenkins.sh + cmd: timeout 15m ./contrib/jenkins.sh repos_url: 'ssh://jenkins at gerrit.osmocom.org:29418/{repos}' gerrit_project: '{repos}' @@ -47,7 +47,7 @@ - libosmo-abis - libosmo-netif - libosmo-sccp: - cmd: WITH_MANUALS=1 ./contrib/jenkins.sh + cmd: WITH_MANUALS=1 timeout 15m ./contrib/jenkins.sh - libosmocore: a1_name: arch @@ -91,7 +91,7 @@ - openggsn: a1_name: GTP a1: !!python/tuple [--enable-gtp-linux,--disable-gtp-linux] - cmd: ./contrib/jenkins.sh + cmd: timeout 15m ./contrib/jenkins.sh - osmo-bsc: concurrent: true @@ -136,12 +136,12 @@ combination_filter: > (GTP == "--enable-gtp-linux" && WITH_MANUALS == "0") || (GTP == "--disable-gtp-linux" && WITH_MANUALS == "1") - cmd: ./contrib/jenkins.sh + cmd: timeout 15m ./contrib/jenkins.sh - osmo-gsm-manuals - osmo-hlr: - cmd: WITH_MANUALS=1 ./contrib/jenkins.sh + cmd: WITH_MANUALS=1 timeout 15m ./contrib/jenkins.sh - osmo-iuh @@ -235,7 +235,7 @@ osmocom:amd64 /build/contrib/jenkins.sh - osmo-sip-connector: - cmd: WITH_MANUALS=1 ./contrib/jenkins.sh + cmd: WITH_MANUALS=1 timeout 15m ./contrib/jenkins.sh - osmo-trx: a1_name: INSTR @@ -249,7 +249,7 @@ (INSTR == "--with-sse" && WITH_MANUALS == "1") - osmocom-bb: - cmd: WITH_MANUALS=1 ./contrib/jenkins.sh + cmd: WITH_MANUALS=1 timeout 15m ./contrib/jenkins.sh - osmo-tetra - osmo-sysmon - osmo-remsim -- To view, visit https://gerrit.osmocom.org/12857 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I9d0eb6b9eddf3e17120e74d7570d42291c0750ae Gerrit-Change-Number: 12857 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 14:40:30 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Thu, 7 Feb 2019 14:40:30 +0000 Subject: Change in osmo-ccid-firmware[master]: ignore output files In-Reply-To: References: Message-ID: K?vin Redon has removed a vote on this change. Change subject: ignore output files ...................................................................... Removed Verified+1 by K?vin Redon -- To view, visit https://gerrit.osmocom.org/12795 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: deleteVote Gerrit-Change-Id: I425129f10aa2ff879fde96bfafbcb7c4b4119959 Gerrit-Change-Number: 12795 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: K?vin Redon Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 14:41:43 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 7 Feb 2019 14:41:43 +0000 Subject: Change in libusrp[master]: Avoid compiler warning 'dynamic exception specifications are deprecat... In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12853 ) Change subject: Avoid compiler warning 'dynamic exception specifications are deprecated in C++11 [-Wdeprecated]' ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12853 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libusrp Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie472e6f92944cfe1af7d63cd644879573d080ca2 Gerrit-Change-Number: 12853 Gerrit-PatchSet: 1 Gerrit-Owner: Alexander Huemer Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Thu, 07 Feb 2019 14:41:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 15:00:27 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 7 Feb 2019 15:00:27 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_80.c: use gsm0480_create_release_complete() In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12840 ) Change subject: libmsc/gsm_04_80.c: use gsm0480_create_release_complete() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/12840/2/include/osmocom/msc/gsm_04_80.h File include/osmocom/msc/gsm_04_80.h: https://gerrit.osmocom.org/#/c/12840/2/include/osmocom/msc/gsm_04_80.h at 14 PS2, Line 14: uint8_t transaction_id) > Missing ; is responsible for the build failure Oh, right, I forgot this... Thanks a lot! The build failure itself is caused by a patch that is still not merged. -- To view, visit https://gerrit.osmocom.org/12840 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id2975c3383f18e83124ba38927c03980d67ddadb Gerrit-Change-Number: 12840 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Comment-Date: Thu, 07 Feb 2019 15:00:27 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Thu Feb 7 15:10:06 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Thu, 7 Feb 2019 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#394?= In-Reply-To: <359314893.109.1549465806793.JavaMail.jenkins@jenkins.osmocom.org> References: <359314893.109.1549465806793.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1107776897.129.1549552206829.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.69 KB...] + ./configure checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Thu Feb 7 15:13:06 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Thu, 7 Feb 2019 15:13:06 +0000 Subject: Change in osmo-ccid-firmware[master]: start with USB CDC echo example In-Reply-To: References: Message-ID: K?vin Redon has uploaded a new patch set (#3). ( https://gerrit.osmocom.org/12792 ) Change subject: start with USB CDC echo example ...................................................................... start with USB CDC echo example this is the Atmel START USB CDC Echo example project for the SAM E54 Xplained Pro board using an Atmel ATSAME54P20A microcontroller. Atmel START information: - Version: 1.4.1810 (Dec 18, 2018, 5:52 AM GMT+1) - Server: 1.4.93 - Content version: 1.0.1340 This will serve as basis for the sysmoOCTSIM project A jenkins contrib script has also been added to the osmo-ccid-firmware project to build the sysmoOCTSIM firmware Change-Id: I356de75e7b730d63fb819248e71d36f785932199 --- A contrib/jenkins.sh A sysmoOCTSIM/AtmelStart.env_conf A sysmoOCTSIM/AtmelStart.gpdsc A sysmoOCTSIM/CMSIS/Documentation/Core/html/index.html A sysmoOCTSIM/CMSIS/Include/arm_common_tables.h A sysmoOCTSIM/CMSIS/Include/arm_const_structs.h A sysmoOCTSIM/CMSIS/Include/arm_math.h A sysmoOCTSIM/CMSIS/Include/cmsis_armcc.h A sysmoOCTSIM/CMSIS/Include/cmsis_armclang.h A sysmoOCTSIM/CMSIS/Include/cmsis_compiler.h A sysmoOCTSIM/CMSIS/Include/cmsis_gcc.h A sysmoOCTSIM/CMSIS/Include/core_armv8mbl.h A sysmoOCTSIM/CMSIS/Include/core_armv8mml.h A sysmoOCTSIM/CMSIS/Include/core_cm0.h A sysmoOCTSIM/CMSIS/Include/core_cm0plus.h A sysmoOCTSIM/CMSIS/Include/core_cm23.h A sysmoOCTSIM/CMSIS/Include/core_cm3.h A sysmoOCTSIM/CMSIS/Include/core_cm33.h A sysmoOCTSIM/CMSIS/Include/core_cm4.h A sysmoOCTSIM/CMSIS/Include/core_cm7.h A sysmoOCTSIM/CMSIS/Include/core_sc000.h A sysmoOCTSIM/CMSIS/Include/core_sc300.h A sysmoOCTSIM/CMSIS/Include/tz_context.h A sysmoOCTSIM/armcc/Makefile A sysmoOCTSIM/armcc/arm_addon/armcc/arm/startup_same54.s A sysmoOCTSIM/armcc/arm_addon/armcc/system_same54.c A sysmoOCTSIM/atmel_start.c A sysmoOCTSIM/atmel_start.h A sysmoOCTSIM/atmel_start_config.atstart A sysmoOCTSIM/atmel_start_pins.h A sysmoOCTSIM/config/hpl_cmcc_config.h A sysmoOCTSIM/config/hpl_dmac_config.h A sysmoOCTSIM/config/hpl_gclk_config.h A sysmoOCTSIM/config/hpl_mclk_config.h A sysmoOCTSIM/config/hpl_osc32kctrl_config.h A sysmoOCTSIM/config/hpl_oscctrl_config.h A sysmoOCTSIM/config/hpl_port_config.h A sysmoOCTSIM/config/hpl_usb_config.h A sysmoOCTSIM/config/peripheral_clk_config.h A sysmoOCTSIM/config/usbd_config.h A sysmoOCTSIM/documentation/usb_cdc_echo.rst A sysmoOCTSIM/documentation/usb_device_cdc.rst A sysmoOCTSIM/documentation/usb_device_core.rst A sysmoOCTSIM/documentation/usb_protocol_cdc.rst A sysmoOCTSIM/documentation/usb_protocol_core.rst A sysmoOCTSIM/driver_init.c A sysmoOCTSIM/driver_init.h A sysmoOCTSIM/examples/driver_examples.c A sysmoOCTSIM/examples/driver_examples.h A sysmoOCTSIM/gcc/Makefile A sysmoOCTSIM/gcc/gcc/same54p20a_flash.ld A sysmoOCTSIM/gcc/gcc/same54p20a_sram.ld A sysmoOCTSIM/gcc/gcc/startup_same54.c A sysmoOCTSIM/gcc/system_same54.c A sysmoOCTSIM/hal/documentation/usb_device_async.rst A sysmoOCTSIM/hal/include/hal_atomic.h A sysmoOCTSIM/hal/include/hal_cache.h A sysmoOCTSIM/hal/include/hal_delay.h A sysmoOCTSIM/hal/include/hal_gpio.h A sysmoOCTSIM/hal/include/hal_init.h A sysmoOCTSIM/hal/include/hal_io.h A sysmoOCTSIM/hal/include/hal_sleep.h A sysmoOCTSIM/hal/include/hal_usb_device.h A sysmoOCTSIM/hal/include/hpl_cmcc.h A sysmoOCTSIM/hal/include/hpl_core.h A sysmoOCTSIM/hal/include/hpl_delay.h A sysmoOCTSIM/hal/include/hpl_dma.h A sysmoOCTSIM/hal/include/hpl_gpio.h A sysmoOCTSIM/hal/include/hpl_init.h A sysmoOCTSIM/hal/include/hpl_irq.h A sysmoOCTSIM/hal/include/hpl_missing_features.h A sysmoOCTSIM/hal/include/hpl_ramecc.h A sysmoOCTSIM/hal/include/hpl_reset.h A sysmoOCTSIM/hal/include/hpl_sleep.h A sysmoOCTSIM/hal/include/hpl_usb.h A sysmoOCTSIM/hal/include/hpl_usb_device.h A sysmoOCTSIM/hal/include/hpl_usb_host.h A sysmoOCTSIM/hal/src/hal_atomic.c A sysmoOCTSIM/hal/src/hal_cache.c A sysmoOCTSIM/hal/src/hal_delay.c A sysmoOCTSIM/hal/src/hal_gpio.c A sysmoOCTSIM/hal/src/hal_init.c A sysmoOCTSIM/hal/src/hal_io.c A sysmoOCTSIM/hal/src/hal_sleep.c A sysmoOCTSIM/hal/src/hal_usb_device.c A sysmoOCTSIM/hal/utils/include/compiler.h A sysmoOCTSIM/hal/utils/include/err_codes.h A sysmoOCTSIM/hal/utils/include/events.h A sysmoOCTSIM/hal/utils/include/parts.h A sysmoOCTSIM/hal/utils/include/utils.h A sysmoOCTSIM/hal/utils/include/utils_assert.h A sysmoOCTSIM/hal/utils/include/utils_event.h A sysmoOCTSIM/hal/utils/include/utils_increment_macro.h A sysmoOCTSIM/hal/utils/include/utils_list.h A sysmoOCTSIM/hal/utils/include/utils_repeat_macro.h A sysmoOCTSIM/hal/utils/src/utils_assert.c A sysmoOCTSIM/hal/utils/src/utils_event.c A sysmoOCTSIM/hal/utils/src/utils_list.c A sysmoOCTSIM/hal/utils/src/utils_syscalls.c A sysmoOCTSIM/hpl/cmcc/hpl_cmcc.c A sysmoOCTSIM/hpl/core/hpl_core_m4.c A sysmoOCTSIM/hpl/core/hpl_core_port.h A sysmoOCTSIM/hpl/core/hpl_init.c A sysmoOCTSIM/hpl/dmac/hpl_dmac.c A sysmoOCTSIM/hpl/gclk/hpl_gclk.c A sysmoOCTSIM/hpl/gclk/hpl_gclk_base.h A sysmoOCTSIM/hpl/mclk/hpl_mclk.c A sysmoOCTSIM/hpl/osc32kctrl/hpl_osc32kctrl.c A sysmoOCTSIM/hpl/oscctrl/hpl_oscctrl.c A sysmoOCTSIM/hpl/pm/hpl_pm.c A sysmoOCTSIM/hpl/pm/hpl_pm_base.h A sysmoOCTSIM/hpl/port/hpl_gpio_base.h A sysmoOCTSIM/hpl/ramecc/hpl_ramecc.c A sysmoOCTSIM/hpl/usb/hpl_usb.c A sysmoOCTSIM/hri/hri_ac_e54.h A sysmoOCTSIM/hri/hri_adc_e54.h A sysmoOCTSIM/hri/hri_aes_e54.h A sysmoOCTSIM/hri/hri_can_e54.h A sysmoOCTSIM/hri/hri_ccl_e54.h A sysmoOCTSIM/hri/hri_cmcc_e54.h A sysmoOCTSIM/hri/hri_dac_e54.h A sysmoOCTSIM/hri/hri_dmac_e54.h A sysmoOCTSIM/hri/hri_dsu_e54.h A sysmoOCTSIM/hri/hri_e54.h A sysmoOCTSIM/hri/hri_eic_e54.h A sysmoOCTSIM/hri/hri_evsys_e54.h A sysmoOCTSIM/hri/hri_freqm_e54.h A sysmoOCTSIM/hri/hri_gclk_e54.h A sysmoOCTSIM/hri/hri_gmac_e54.h A sysmoOCTSIM/hri/hri_hmatrixb_e54.h A sysmoOCTSIM/hri/hri_i2s_e54.h A sysmoOCTSIM/hri/hri_icm_e54.h A sysmoOCTSIM/hri/hri_mclk_e54.h A sysmoOCTSIM/hri/hri_mpu_e54.h A sysmoOCTSIM/hri/hri_nvic_e54.h A sysmoOCTSIM/hri/hri_nvmctrl_e54.h A sysmoOCTSIM/hri/hri_osc32kctrl_e54.h A sysmoOCTSIM/hri/hri_oscctrl_e54.h A sysmoOCTSIM/hri/hri_pac_e54.h A sysmoOCTSIM/hri/hri_pcc_e54.h A sysmoOCTSIM/hri/hri_pdec_e54.h A sysmoOCTSIM/hri/hri_pm_e54.h A sysmoOCTSIM/hri/hri_port_e54.h A sysmoOCTSIM/hri/hri_qspi_e54.h A sysmoOCTSIM/hri/hri_ramecc_e54.h A sysmoOCTSIM/hri/hri_rstc_e54.h A sysmoOCTSIM/hri/hri_rtc_e54.h A sysmoOCTSIM/hri/hri_sdhc_e54.h A sysmoOCTSIM/hri/hri_sercom_e54.h A sysmoOCTSIM/hri/hri_supc_e54.h A sysmoOCTSIM/hri/hri_systemcontrol_e54.h A sysmoOCTSIM/hri/hri_systick_e54.h A sysmoOCTSIM/hri/hri_tc_e54.h A sysmoOCTSIM/hri/hri_tcc_e54.h A sysmoOCTSIM/hri/hri_trng_e54.h A sysmoOCTSIM/hri/hri_usb_e54.h A sysmoOCTSIM/hri/hri_wdt_e54.h A sysmoOCTSIM/include/component-version.h A sysmoOCTSIM/include/component/ac.h A sysmoOCTSIM/include/component/adc.h A sysmoOCTSIM/include/component/aes.h A sysmoOCTSIM/include/component/can.h A sysmoOCTSIM/include/component/ccl.h A sysmoOCTSIM/include/component/cmcc.h A sysmoOCTSIM/include/component/dac.h A sysmoOCTSIM/include/component/dmac.h A sysmoOCTSIM/include/component/dsu.h A sysmoOCTSIM/include/component/eic.h A sysmoOCTSIM/include/component/evsys.h A sysmoOCTSIM/include/component/freqm.h A sysmoOCTSIM/include/component/gclk.h A sysmoOCTSIM/include/component/gmac.h A sysmoOCTSIM/include/component/hmatrixb.h A sysmoOCTSIM/include/component/i2s.h A sysmoOCTSIM/include/component/icm.h A sysmoOCTSIM/include/component/mclk.h A sysmoOCTSIM/include/component/nvmctrl.h A sysmoOCTSIM/include/component/osc32kctrl.h A sysmoOCTSIM/include/component/oscctrl.h A sysmoOCTSIM/include/component/pac.h A sysmoOCTSIM/include/component/pcc.h A sysmoOCTSIM/include/component/pdec.h A sysmoOCTSIM/include/component/picop.h A sysmoOCTSIM/include/component/pm.h A sysmoOCTSIM/include/component/port.h A sysmoOCTSIM/include/component/qspi.h A sysmoOCTSIM/include/component/ramecc.h A sysmoOCTSIM/include/component/rstc.h A sysmoOCTSIM/include/component/rtc.h A sysmoOCTSIM/include/component/sdhc.h A sysmoOCTSIM/include/component/sercom.h A sysmoOCTSIM/include/component/supc.h A sysmoOCTSIM/include/component/tc.h A sysmoOCTSIM/include/component/tcc.h A sysmoOCTSIM/include/component/trng.h A sysmoOCTSIM/include/component/usb.h A sysmoOCTSIM/include/component/wdt.h A sysmoOCTSIM/include/instance/ac.h A sysmoOCTSIM/include/instance/adc0.h A sysmoOCTSIM/include/instance/adc1.h A sysmoOCTSIM/include/instance/aes.h A sysmoOCTSIM/include/instance/can0.h A sysmoOCTSIM/include/instance/can1.h A sysmoOCTSIM/include/instance/ccl.h A sysmoOCTSIM/include/instance/cmcc.h A sysmoOCTSIM/include/instance/dac.h A sysmoOCTSIM/include/instance/dmac.h A sysmoOCTSIM/include/instance/dsu.h A sysmoOCTSIM/include/instance/eic.h A sysmoOCTSIM/include/instance/evsys.h A sysmoOCTSIM/include/instance/freqm.h A sysmoOCTSIM/include/instance/gclk.h A sysmoOCTSIM/include/instance/gmac.h A sysmoOCTSIM/include/instance/hmatrix.h A sysmoOCTSIM/include/instance/i2s.h A sysmoOCTSIM/include/instance/icm.h A sysmoOCTSIM/include/instance/mclk.h A sysmoOCTSIM/include/instance/nvmctrl.h A sysmoOCTSIM/include/instance/osc32kctrl.h A sysmoOCTSIM/include/instance/oscctrl.h A sysmoOCTSIM/include/instance/pac.h A sysmoOCTSIM/include/instance/pcc.h A sysmoOCTSIM/include/instance/pdec.h A sysmoOCTSIM/include/instance/picop.h A sysmoOCTSIM/include/instance/pm.h A sysmoOCTSIM/include/instance/port.h A sysmoOCTSIM/include/instance/pukcc.h A sysmoOCTSIM/include/instance/qspi.h A sysmoOCTSIM/include/instance/ramecc.h A sysmoOCTSIM/include/instance/rstc.h A sysmoOCTSIM/include/instance/rtc.h A sysmoOCTSIM/include/instance/sdhc0.h A sysmoOCTSIM/include/instance/sdhc1.h A sysmoOCTSIM/include/instance/sercom0.h A sysmoOCTSIM/include/instance/sercom1.h A sysmoOCTSIM/include/instance/sercom2.h A sysmoOCTSIM/include/instance/sercom3.h A sysmoOCTSIM/include/instance/sercom4.h A sysmoOCTSIM/include/instance/sercom5.h A sysmoOCTSIM/include/instance/sercom6.h A sysmoOCTSIM/include/instance/sercom7.h A sysmoOCTSIM/include/instance/supc.h A sysmoOCTSIM/include/instance/tc0.h A sysmoOCTSIM/include/instance/tc1.h A sysmoOCTSIM/include/instance/tc2.h A sysmoOCTSIM/include/instance/tc3.h A sysmoOCTSIM/include/instance/tc4.h A sysmoOCTSIM/include/instance/tc5.h A sysmoOCTSIM/include/instance/tc6.h A sysmoOCTSIM/include/instance/tc7.h A sysmoOCTSIM/include/instance/tcc0.h A sysmoOCTSIM/include/instance/tcc1.h A sysmoOCTSIM/include/instance/tcc2.h A sysmoOCTSIM/include/instance/tcc3.h A sysmoOCTSIM/include/instance/tcc4.h A sysmoOCTSIM/include/instance/trng.h A sysmoOCTSIM/include/instance/usb.h A sysmoOCTSIM/include/instance/wdt.h A sysmoOCTSIM/include/pio/same54n19a.h A sysmoOCTSIM/include/pio/same54n20a.h A sysmoOCTSIM/include/pio/same54p19a.h A sysmoOCTSIM/include/pio/same54p20a.h A sysmoOCTSIM/include/sam.h A sysmoOCTSIM/include/same54.h A sysmoOCTSIM/include/same54n19a.h A sysmoOCTSIM/include/same54n20a.h A sysmoOCTSIM/include/same54p19a.h A sysmoOCTSIM/include/same54p20a.h A sysmoOCTSIM/include/system_same54.h A sysmoOCTSIM/usb/class/cdc/device/atmel_devices_cdc.cat A sysmoOCTSIM/usb/class/cdc/device/atmel_devices_cdc.inf A sysmoOCTSIM/usb/class/cdc/device/cdcdf_acm.c A sysmoOCTSIM/usb/class/cdc/device/cdcdf_acm.h A sysmoOCTSIM/usb/class/cdc/device/cdcdf_acm_desc.h A sysmoOCTSIM/usb/class/cdc/usb_protocol_cdc.h A sysmoOCTSIM/usb/device/usbdc.c A sysmoOCTSIM/usb/device/usbdc.h A sysmoOCTSIM/usb/usb_atmel.h A sysmoOCTSIM/usb/usb_debug.h A sysmoOCTSIM/usb/usb_includes.h A sysmoOCTSIM/usb/usb_protocol.c A sysmoOCTSIM/usb/usb_protocol.h A sysmoOCTSIM/usb_cdc_echo_main.c A sysmoOCTSIM/usb_start.c A sysmoOCTSIM/usb_start.h 285 files changed, 242,174 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/92/12792/3 -- To view, visit https://gerrit.osmocom.org/12792 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I356de75e7b730d63fb819248e71d36f785932199 Gerrit-Change-Number: 12792 Gerrit-PatchSet: 3 Gerrit-Owner: K?vin Redon Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 15:14:52 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Thu, 7 Feb 2019 15:14:52 +0000 Subject: Change in osmo-ci[master]: gerrit-verifications: Add osmo-ccid-firmware In-Reply-To: References: Message-ID: K?vin Redon has posted comments on this change. ( https://gerrit.osmocom.org/12824 ) Change subject: gerrit-verifications: Add osmo-ccid-firmware ...................................................................... Patch Set 1: osmo-ccid-firmware has now a contrib/jenkins.sh script -- To view, visit https://gerrit.osmocom.org/12824 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I713d345240dec319ee07d99e9381fc1af6a2d86d Gerrit-Change-Number: 12824 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: K?vin Redon Gerrit-Reviewer: Max Gerrit-Comment-Date: Thu, 07 Feb 2019 15:14:52 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 15:16:15 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Thu, 7 Feb 2019 15:16:15 +0000 Subject: Change in osmo-ccid-firmware[master]: start with USB CDC echo example In-Reply-To: References: Message-ID: K?vin Redon has posted comments on this change. ( https://gerrit.osmocom.org/12792 ) Change subject: start with USB CDC echo example ...................................................................... Patch Set 3: > I'm fine with committing the complete example in one go. However, > in order to get build verification of patches, we also need to add > a "contrib/jenkins.sh" script. Please test + add the script and > make it part of this commit. I will then modify the jenkins jobs > to do the automatic "+V" builds for this repository. contrib/jenkins.sh script added to this commit and tested against followup commits -- To view, visit https://gerrit.osmocom.org/12792 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I356de75e7b730d63fb819248e71d36f785932199 Gerrit-Change-Number: 12792 Gerrit-PatchSet: 3 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-CC: Harald Welte Gerrit-Comment-Date: Thu, 07 Feb 2019 15:16:15 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 15:28:06 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 15:28:06 +0000 Subject: Change in osmo-ccid-firmware[master]: start with USB CDC echo example In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12792 ) Change subject: start with USB CDC echo example ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12792 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I356de75e7b730d63fb819248e71d36f785932199 Gerrit-Change-Number: 12792 Gerrit-PatchSet: 3 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-Comment-Date: Thu, 07 Feb 2019 15:28:06 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 15:28:24 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 15:28:24 +0000 Subject: Change in osmo-ccid-firmware[master]: start with USB CDC echo example In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12792 ) Change subject: start with USB CDC echo example ...................................................................... start with USB CDC echo example this is the Atmel START USB CDC Echo example project for the SAM E54 Xplained Pro board using an Atmel ATSAME54P20A microcontroller. Atmel START information: - Version: 1.4.1810 (Dec 18, 2018, 5:52 AM GMT+1) - Server: 1.4.93 - Content version: 1.0.1340 This will serve as basis for the sysmoOCTSIM project A jenkins contrib script has also been added to the osmo-ccid-firmware project to build the sysmoOCTSIM firmware Change-Id: I356de75e7b730d63fb819248e71d36f785932199 --- A contrib/jenkins.sh A sysmoOCTSIM/AtmelStart.env_conf A sysmoOCTSIM/AtmelStart.gpdsc A sysmoOCTSIM/CMSIS/Documentation/Core/html/index.html A sysmoOCTSIM/CMSIS/Include/arm_common_tables.h A sysmoOCTSIM/CMSIS/Include/arm_const_structs.h A sysmoOCTSIM/CMSIS/Include/arm_math.h A sysmoOCTSIM/CMSIS/Include/cmsis_armcc.h A sysmoOCTSIM/CMSIS/Include/cmsis_armclang.h A sysmoOCTSIM/CMSIS/Include/cmsis_compiler.h A sysmoOCTSIM/CMSIS/Include/cmsis_gcc.h A sysmoOCTSIM/CMSIS/Include/core_armv8mbl.h A sysmoOCTSIM/CMSIS/Include/core_armv8mml.h A sysmoOCTSIM/CMSIS/Include/core_cm0.h A sysmoOCTSIM/CMSIS/Include/core_cm0plus.h A sysmoOCTSIM/CMSIS/Include/core_cm23.h A sysmoOCTSIM/CMSIS/Include/core_cm3.h A sysmoOCTSIM/CMSIS/Include/core_cm33.h A sysmoOCTSIM/CMSIS/Include/core_cm4.h A sysmoOCTSIM/CMSIS/Include/core_cm7.h A sysmoOCTSIM/CMSIS/Include/core_sc000.h A sysmoOCTSIM/CMSIS/Include/core_sc300.h A sysmoOCTSIM/CMSIS/Include/tz_context.h A sysmoOCTSIM/armcc/Makefile A sysmoOCTSIM/armcc/arm_addon/armcc/arm/startup_same54.s A sysmoOCTSIM/armcc/arm_addon/armcc/system_same54.c A sysmoOCTSIM/atmel_start.c A sysmoOCTSIM/atmel_start.h A sysmoOCTSIM/atmel_start_config.atstart A sysmoOCTSIM/atmel_start_pins.h A sysmoOCTSIM/config/hpl_cmcc_config.h A sysmoOCTSIM/config/hpl_dmac_config.h A sysmoOCTSIM/config/hpl_gclk_config.h A sysmoOCTSIM/config/hpl_mclk_config.h A sysmoOCTSIM/config/hpl_osc32kctrl_config.h A sysmoOCTSIM/config/hpl_oscctrl_config.h A sysmoOCTSIM/config/hpl_port_config.h A sysmoOCTSIM/config/hpl_usb_config.h A sysmoOCTSIM/config/peripheral_clk_config.h A sysmoOCTSIM/config/usbd_config.h A sysmoOCTSIM/documentation/usb_cdc_echo.rst A sysmoOCTSIM/documentation/usb_device_cdc.rst A sysmoOCTSIM/documentation/usb_device_core.rst A sysmoOCTSIM/documentation/usb_protocol_cdc.rst A sysmoOCTSIM/documentation/usb_protocol_core.rst A sysmoOCTSIM/driver_init.c A sysmoOCTSIM/driver_init.h A sysmoOCTSIM/examples/driver_examples.c A sysmoOCTSIM/examples/driver_examples.h A sysmoOCTSIM/gcc/Makefile A sysmoOCTSIM/gcc/gcc/same54p20a_flash.ld A sysmoOCTSIM/gcc/gcc/same54p20a_sram.ld A sysmoOCTSIM/gcc/gcc/startup_same54.c A sysmoOCTSIM/gcc/system_same54.c A sysmoOCTSIM/hal/documentation/usb_device_async.rst A sysmoOCTSIM/hal/include/hal_atomic.h A sysmoOCTSIM/hal/include/hal_cache.h A sysmoOCTSIM/hal/include/hal_delay.h A sysmoOCTSIM/hal/include/hal_gpio.h A sysmoOCTSIM/hal/include/hal_init.h A sysmoOCTSIM/hal/include/hal_io.h A sysmoOCTSIM/hal/include/hal_sleep.h A sysmoOCTSIM/hal/include/hal_usb_device.h A sysmoOCTSIM/hal/include/hpl_cmcc.h A sysmoOCTSIM/hal/include/hpl_core.h A sysmoOCTSIM/hal/include/hpl_delay.h A sysmoOCTSIM/hal/include/hpl_dma.h A sysmoOCTSIM/hal/include/hpl_gpio.h A sysmoOCTSIM/hal/include/hpl_init.h A sysmoOCTSIM/hal/include/hpl_irq.h A sysmoOCTSIM/hal/include/hpl_missing_features.h A sysmoOCTSIM/hal/include/hpl_ramecc.h A sysmoOCTSIM/hal/include/hpl_reset.h A sysmoOCTSIM/hal/include/hpl_sleep.h A sysmoOCTSIM/hal/include/hpl_usb.h A sysmoOCTSIM/hal/include/hpl_usb_device.h A sysmoOCTSIM/hal/include/hpl_usb_host.h A sysmoOCTSIM/hal/src/hal_atomic.c A sysmoOCTSIM/hal/src/hal_cache.c A sysmoOCTSIM/hal/src/hal_delay.c A sysmoOCTSIM/hal/src/hal_gpio.c A sysmoOCTSIM/hal/src/hal_init.c A sysmoOCTSIM/hal/src/hal_io.c A sysmoOCTSIM/hal/src/hal_sleep.c A sysmoOCTSIM/hal/src/hal_usb_device.c A sysmoOCTSIM/hal/utils/include/compiler.h A sysmoOCTSIM/hal/utils/include/err_codes.h A sysmoOCTSIM/hal/utils/include/events.h A sysmoOCTSIM/hal/utils/include/parts.h A sysmoOCTSIM/hal/utils/include/utils.h A sysmoOCTSIM/hal/utils/include/utils_assert.h A sysmoOCTSIM/hal/utils/include/utils_event.h A sysmoOCTSIM/hal/utils/include/utils_increment_macro.h A sysmoOCTSIM/hal/utils/include/utils_list.h A sysmoOCTSIM/hal/utils/include/utils_repeat_macro.h A sysmoOCTSIM/hal/utils/src/utils_assert.c A sysmoOCTSIM/hal/utils/src/utils_event.c A sysmoOCTSIM/hal/utils/src/utils_list.c A sysmoOCTSIM/hal/utils/src/utils_syscalls.c A sysmoOCTSIM/hpl/cmcc/hpl_cmcc.c A sysmoOCTSIM/hpl/core/hpl_core_m4.c A sysmoOCTSIM/hpl/core/hpl_core_port.h A sysmoOCTSIM/hpl/core/hpl_init.c A sysmoOCTSIM/hpl/dmac/hpl_dmac.c A sysmoOCTSIM/hpl/gclk/hpl_gclk.c A sysmoOCTSIM/hpl/gclk/hpl_gclk_base.h A sysmoOCTSIM/hpl/mclk/hpl_mclk.c A sysmoOCTSIM/hpl/osc32kctrl/hpl_osc32kctrl.c A sysmoOCTSIM/hpl/oscctrl/hpl_oscctrl.c A sysmoOCTSIM/hpl/pm/hpl_pm.c A sysmoOCTSIM/hpl/pm/hpl_pm_base.h A sysmoOCTSIM/hpl/port/hpl_gpio_base.h A sysmoOCTSIM/hpl/ramecc/hpl_ramecc.c A sysmoOCTSIM/hpl/usb/hpl_usb.c A sysmoOCTSIM/hri/hri_ac_e54.h A sysmoOCTSIM/hri/hri_adc_e54.h A sysmoOCTSIM/hri/hri_aes_e54.h A sysmoOCTSIM/hri/hri_can_e54.h A sysmoOCTSIM/hri/hri_ccl_e54.h A sysmoOCTSIM/hri/hri_cmcc_e54.h A sysmoOCTSIM/hri/hri_dac_e54.h A sysmoOCTSIM/hri/hri_dmac_e54.h A sysmoOCTSIM/hri/hri_dsu_e54.h A sysmoOCTSIM/hri/hri_e54.h A sysmoOCTSIM/hri/hri_eic_e54.h A sysmoOCTSIM/hri/hri_evsys_e54.h A sysmoOCTSIM/hri/hri_freqm_e54.h A sysmoOCTSIM/hri/hri_gclk_e54.h A sysmoOCTSIM/hri/hri_gmac_e54.h A sysmoOCTSIM/hri/hri_hmatrixb_e54.h A sysmoOCTSIM/hri/hri_i2s_e54.h A sysmoOCTSIM/hri/hri_icm_e54.h A sysmoOCTSIM/hri/hri_mclk_e54.h A sysmoOCTSIM/hri/hri_mpu_e54.h A sysmoOCTSIM/hri/hri_nvic_e54.h A sysmoOCTSIM/hri/hri_nvmctrl_e54.h A sysmoOCTSIM/hri/hri_osc32kctrl_e54.h A sysmoOCTSIM/hri/hri_oscctrl_e54.h A sysmoOCTSIM/hri/hri_pac_e54.h A sysmoOCTSIM/hri/hri_pcc_e54.h A sysmoOCTSIM/hri/hri_pdec_e54.h A sysmoOCTSIM/hri/hri_pm_e54.h A sysmoOCTSIM/hri/hri_port_e54.h A sysmoOCTSIM/hri/hri_qspi_e54.h A sysmoOCTSIM/hri/hri_ramecc_e54.h A sysmoOCTSIM/hri/hri_rstc_e54.h A sysmoOCTSIM/hri/hri_rtc_e54.h A sysmoOCTSIM/hri/hri_sdhc_e54.h A sysmoOCTSIM/hri/hri_sercom_e54.h A sysmoOCTSIM/hri/hri_supc_e54.h A sysmoOCTSIM/hri/hri_systemcontrol_e54.h A sysmoOCTSIM/hri/hri_systick_e54.h A sysmoOCTSIM/hri/hri_tc_e54.h A sysmoOCTSIM/hri/hri_tcc_e54.h A sysmoOCTSIM/hri/hri_trng_e54.h A sysmoOCTSIM/hri/hri_usb_e54.h A sysmoOCTSIM/hri/hri_wdt_e54.h A sysmoOCTSIM/include/component-version.h A sysmoOCTSIM/include/component/ac.h A sysmoOCTSIM/include/component/adc.h A sysmoOCTSIM/include/component/aes.h A sysmoOCTSIM/include/component/can.h A sysmoOCTSIM/include/component/ccl.h A sysmoOCTSIM/include/component/cmcc.h A sysmoOCTSIM/include/component/dac.h A sysmoOCTSIM/include/component/dmac.h A sysmoOCTSIM/include/component/dsu.h A sysmoOCTSIM/include/component/eic.h A sysmoOCTSIM/include/component/evsys.h A sysmoOCTSIM/include/component/freqm.h A sysmoOCTSIM/include/component/gclk.h A sysmoOCTSIM/include/component/gmac.h A sysmoOCTSIM/include/component/hmatrixb.h A sysmoOCTSIM/include/component/i2s.h A sysmoOCTSIM/include/component/icm.h A sysmoOCTSIM/include/component/mclk.h A sysmoOCTSIM/include/component/nvmctrl.h A sysmoOCTSIM/include/component/osc32kctrl.h A sysmoOCTSIM/include/component/oscctrl.h A sysmoOCTSIM/include/component/pac.h A sysmoOCTSIM/include/component/pcc.h A sysmoOCTSIM/include/component/pdec.h A sysmoOCTSIM/include/component/picop.h A sysmoOCTSIM/include/component/pm.h A sysmoOCTSIM/include/component/port.h A sysmoOCTSIM/include/component/qspi.h A sysmoOCTSIM/include/component/ramecc.h A sysmoOCTSIM/include/component/rstc.h A sysmoOCTSIM/include/component/rtc.h A sysmoOCTSIM/include/component/sdhc.h A sysmoOCTSIM/include/component/sercom.h A sysmoOCTSIM/include/component/supc.h A sysmoOCTSIM/include/component/tc.h A sysmoOCTSIM/include/component/tcc.h A sysmoOCTSIM/include/component/trng.h A sysmoOCTSIM/include/component/usb.h A sysmoOCTSIM/include/component/wdt.h A sysmoOCTSIM/include/instance/ac.h A sysmoOCTSIM/include/instance/adc0.h A sysmoOCTSIM/include/instance/adc1.h A sysmoOCTSIM/include/instance/aes.h A sysmoOCTSIM/include/instance/can0.h A sysmoOCTSIM/include/instance/can1.h A sysmoOCTSIM/include/instance/ccl.h A sysmoOCTSIM/include/instance/cmcc.h A sysmoOCTSIM/include/instance/dac.h A sysmoOCTSIM/include/instance/dmac.h A sysmoOCTSIM/include/instance/dsu.h A sysmoOCTSIM/include/instance/eic.h A sysmoOCTSIM/include/instance/evsys.h A sysmoOCTSIM/include/instance/freqm.h A sysmoOCTSIM/include/instance/gclk.h A sysmoOCTSIM/include/instance/gmac.h A sysmoOCTSIM/include/instance/hmatrix.h A sysmoOCTSIM/include/instance/i2s.h A sysmoOCTSIM/include/instance/icm.h A sysmoOCTSIM/include/instance/mclk.h A sysmoOCTSIM/include/instance/nvmctrl.h A sysmoOCTSIM/include/instance/osc32kctrl.h A sysmoOCTSIM/include/instance/oscctrl.h A sysmoOCTSIM/include/instance/pac.h A sysmoOCTSIM/include/instance/pcc.h A sysmoOCTSIM/include/instance/pdec.h A sysmoOCTSIM/include/instance/picop.h A sysmoOCTSIM/include/instance/pm.h A sysmoOCTSIM/include/instance/port.h A sysmoOCTSIM/include/instance/pukcc.h A sysmoOCTSIM/include/instance/qspi.h A sysmoOCTSIM/include/instance/ramecc.h A sysmoOCTSIM/include/instance/rstc.h A sysmoOCTSIM/include/instance/rtc.h A sysmoOCTSIM/include/instance/sdhc0.h A sysmoOCTSIM/include/instance/sdhc1.h A sysmoOCTSIM/include/instance/sercom0.h A sysmoOCTSIM/include/instance/sercom1.h A sysmoOCTSIM/include/instance/sercom2.h A sysmoOCTSIM/include/instance/sercom3.h A sysmoOCTSIM/include/instance/sercom4.h A sysmoOCTSIM/include/instance/sercom5.h A sysmoOCTSIM/include/instance/sercom6.h A sysmoOCTSIM/include/instance/sercom7.h A sysmoOCTSIM/include/instance/supc.h A sysmoOCTSIM/include/instance/tc0.h A sysmoOCTSIM/include/instance/tc1.h A sysmoOCTSIM/include/instance/tc2.h A sysmoOCTSIM/include/instance/tc3.h A sysmoOCTSIM/include/instance/tc4.h A sysmoOCTSIM/include/instance/tc5.h A sysmoOCTSIM/include/instance/tc6.h A sysmoOCTSIM/include/instance/tc7.h A sysmoOCTSIM/include/instance/tcc0.h A sysmoOCTSIM/include/instance/tcc1.h A sysmoOCTSIM/include/instance/tcc2.h A sysmoOCTSIM/include/instance/tcc3.h A sysmoOCTSIM/include/instance/tcc4.h A sysmoOCTSIM/include/instance/trng.h A sysmoOCTSIM/include/instance/usb.h A sysmoOCTSIM/include/instance/wdt.h A sysmoOCTSIM/include/pio/same54n19a.h A sysmoOCTSIM/include/pio/same54n20a.h A sysmoOCTSIM/include/pio/same54p19a.h A sysmoOCTSIM/include/pio/same54p20a.h A sysmoOCTSIM/include/sam.h A sysmoOCTSIM/include/same54.h A sysmoOCTSIM/include/same54n19a.h A sysmoOCTSIM/include/same54n20a.h A sysmoOCTSIM/include/same54p19a.h A sysmoOCTSIM/include/same54p20a.h A sysmoOCTSIM/include/system_same54.h A sysmoOCTSIM/usb/class/cdc/device/atmel_devices_cdc.cat A sysmoOCTSIM/usb/class/cdc/device/atmel_devices_cdc.inf A sysmoOCTSIM/usb/class/cdc/device/cdcdf_acm.c A sysmoOCTSIM/usb/class/cdc/device/cdcdf_acm.h A sysmoOCTSIM/usb/class/cdc/device/cdcdf_acm_desc.h A sysmoOCTSIM/usb/class/cdc/usb_protocol_cdc.h A sysmoOCTSIM/usb/device/usbdc.c A sysmoOCTSIM/usb/device/usbdc.h A sysmoOCTSIM/usb/usb_atmel.h A sysmoOCTSIM/usb/usb_debug.h A sysmoOCTSIM/usb/usb_includes.h A sysmoOCTSIM/usb/usb_protocol.c A sysmoOCTSIM/usb/usb_protocol.h A sysmoOCTSIM/usb_cdc_echo_main.c A sysmoOCTSIM/usb_start.c A sysmoOCTSIM/usb_start.h 285 files changed, 242,174 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved -- To view, visit https://gerrit.osmocom.org/12792 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I356de75e7b730d63fb819248e71d36f785932199 Gerrit-Change-Number: 12792 Gerrit-PatchSet: 3 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 15:28:24 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 15:28:24 +0000 Subject: Change in osmo-ccid-firmware[master]: rename project to sysmoOCTSIM In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12793 ) Change subject: rename project to sysmoOCTSIM ...................................................................... rename project to sysmoOCTSIM Change-Id: I1ff2ac6e2ae1b1b4765f2ca27c5b3fa6e93baa95 --- M sysmoOCTSIM/AtmelStart.gpdsc M sysmoOCTSIM/atmel_start_config.atstart 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sysmoOCTSIM/AtmelStart.gpdsc b/sysmoOCTSIM/AtmelStart.gpdsc index 20a44d8..4784595 100644 --- a/sysmoOCTSIM/AtmelStart.gpdsc +++ b/sysmoOCTSIM/AtmelStart.gpdsc @@ -1,6 +1,6 @@ Atmel - USB CDC Echo + sysmoOCTSIM Project generated by Atmel Start http://start.atmel.com/ diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index f0369f4..8a87ba2 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -1,5 +1,5 @@ format_version: '2' -name: USB CDC Echo +name: sysmoOCTSIM versions: api: '1.0' backend: 1.4.93 -- To view, visit https://gerrit.osmocom.org/12793 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I1ff2ac6e2ae1b1b4765f2ca27c5b3fa6e93baa95 Gerrit-Change-Number: 12793 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 15:28:25 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 15:28:25 +0000 Subject: Change in osmo-ccid-firmware[master]: change USB description to sysmoOCTSIM In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12794 ) Change subject: change USB description to sysmoOCTSIM ...................................................................... change USB description to sysmoOCTSIM Change-Id: I1f9819df5b4737a9a6dfa69c918d05c60ec5f86a --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/config/usbd_config.h 2 files changed, 20 insertions(+), 17 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index 8a87ba2..f3620ee 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -68,16 +68,16 @@ usb_cdcd_acm_epaddr: EndpointAddress = 0x82 usb_cdcd_acm_iconfig_en: false usb_cdcd_acm_iconfig_str: '' - usb_cdcd_acm_idproduct: 9220 - usb_cdcd_acm_idvender: 1003 - usb_cdcd_acm_imanufact_en: false - usb_cdcd_acm_imanufact_str: Atmel - usb_cdcd_acm_iproduct_en: false - usb_cdcd_acm_iproduct_str: CDC ACM Serial Bridge Demo + usb_cdcd_acm_idproduct: 24897 + usb_cdcd_acm_idvender: 7504 + usb_cdcd_acm_imanufact_en: true + usb_cdcd_acm_imanufact_str: sysmocom + usb_cdcd_acm_iproduct_en: true + usb_cdcd_acm_iproduct_str: sysmoOCTSIM usb_cdcd_acm_iserialnum_en: false usb_cdcd_acm_iserialnum_str: 123456789ABCDEF usb_cdcd_acm_langid: '0x0409' - usb_cdcd_acm_str_en: false + usb_cdcd_acm_str_en: true definition: Atmel:USB:0.0.1::USB_Device_CDC_ACM functionality: USB_Device_CDC_ACM api: USB:Device:CDC_ACM diff --git a/sysmoOCTSIM/config/usbd_config.h b/sysmoOCTSIM/config/usbd_config.h index e8334ec..0be4363 100644 --- a/sysmoOCTSIM/config/usbd_config.h +++ b/sysmoOCTSIM/config/usbd_config.h @@ -19,7 +19,7 @@ // Enable String Descriptors // usb_cdcd_acm_str_en #ifndef CONF_USB_CDCD_ACM_STR_EN -#define CONF_USB_CDCD_ACM_STR_EN 0 +#define CONF_USB_CDCD_ACM_STR_EN 1 #endif // Language IDs // Language IDs in c format, split by comma (E.g., 0x0409 ...) @@ -29,7 +29,7 @@ #endif #ifndef CONF_USB_CDCD_ACM_LANGID_DESC -#define CONF_USB_CDCD_ACM_LANGID_DESC +#define CONF_USB_CDCD_ACM_LANGID_DESC 4, 0x03, 0x09, 0x04, #endif // @@ -56,13 +56,13 @@ // idVender <0x0000-0xFFFF> // usb_cdcd_acm_idvender #ifndef CONF_USB_CDCD_ACM_IDVENDER -#define CONF_USB_CDCD_ACM_IDVENDER 0x3eb +#define CONF_USB_CDCD_ACM_IDVENDER 0x1d50 #endif // idProduct <0x0000-0xFFFF> // usb_cdcd_acm_idproduct #ifndef CONF_USB_CDCD_ACM_IDPRODUCT -#define CONF_USB_CDCD_ACM_IDPRODUCT 0x2404 +#define CONF_USB_CDCD_ACM_IDPRODUCT 0x6141 #endif // bcdDevice <0x0000-0xFFFF> @@ -74,7 +74,7 @@ // Enable string descriptor of iManufact // usb_cdcd_acm_imanufact_en #ifndef CONF_USB_CDCD_ACM_IMANUFACT_EN -#define CONF_USB_CDCD_ACM_IMANUFACT_EN 0 +#define CONF_USB_CDCD_ACM_IMANUFACT_EN 1 #endif #ifndef CONF_USB_CDCD_ACM_IMANUFACT @@ -84,11 +84,12 @@ // Unicode string of iManufact // usb_cdcd_acm_imanufact_str #ifndef CONF_USB_CDCD_ACM_IMANUFACT_STR -#define CONF_USB_CDCD_ACM_IMANUFACT_STR "Atmel" +#define CONF_USB_CDCD_ACM_IMANUFACT_STR "sysmocom" #endif #ifndef CONF_USB_CDCD_ACM_IMANUFACT_STR_DESC -#define CONF_USB_CDCD_ACM_IMANUFACT_STR_DESC +#define CONF_USB_CDCD_ACM_IMANUFACT_STR_DESC \ + 18, 0x03, 's', 0x00, 'y', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, 'c', 0x00, 'o', 0x00, 'm', 0x00, #endif // @@ -96,7 +97,7 @@ // Enable string descriptor of iProduct // usb_cdcd_acm_iproduct_en #ifndef CONF_USB_CDCD_ACM_IPRODUCT_EN -#define CONF_USB_CDCD_ACM_IPRODUCT_EN 0 +#define CONF_USB_CDCD_ACM_IPRODUCT_EN 1 #endif #ifndef CONF_USB_CDCD_ACM_IPRODUCT @@ -107,11 +108,13 @@ // Unicode string of iProduct // usb_cdcd_acm_iproduct_str #ifndef CONF_USB_CDCD_ACM_IPRODUCT_STR -#define CONF_USB_CDCD_ACM_IPRODUCT_STR "CDC ACM Serial Bridge Demo" +#define CONF_USB_CDCD_ACM_IPRODUCT_STR "sysmoOCTSIM" #endif #ifndef CONF_USB_CDCD_ACM_IPRODUCT_STR_DESC -#define CONF_USB_CDCD_ACM_IPRODUCT_STR_DESC +#define CONF_USB_CDCD_ACM_IPRODUCT_STR_DESC \ + 24, 0x03, 's', 0x00, 'y', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, 'O', 0x00, 'C', 0x00, 'T', 0x00, 'S', 0x00, 'I', \ + 0x00, 'M', 0x00, #endif // -- To view, visit https://gerrit.osmocom.org/12794 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I1f9819df5b4737a9a6dfa69c918d05c60ec5f86a Gerrit-Change-Number: 12794 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 15:28:25 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 15:28:25 +0000 Subject: Change in osmo-ccid-firmware[master]: ignore output files In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12795 ) Change subject: ignore output files ...................................................................... ignore output files Change-Id: I425129f10aa2ff879fde96bfafbcb7c4b4119959 --- A sysmoOCTSIM/.gitignore 1 file changed, 8 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Max: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/sysmoOCTSIM/.gitignore b/sysmoOCTSIM/.gitignore new file mode 100644 index 0000000..0f05565 --- /dev/null +++ b/sysmoOCTSIM/.gitignore @@ -0,0 +1,8 @@ +*.d +*.o +*.bin +*.eep +*.elf +*.hex +*.lss +*.map -- To view, visit https://gerrit.osmocom.org/12795 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I425129f10aa2ff879fde96bfafbcb7c4b4119959 Gerrit-Change-Number: 12795 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 15:28:26 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 15:28:26 +0000 Subject: Change in osmo-ccid-firmware[master]: use external 32.768 kHz oscillator for RTC In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12796 ) Change subject: use external 32.768 kHz oscillator for RTC ...................................................................... use external 32.768 kHz oscillator for RTC Change-Id: Ic4630abececdb631e8cc15baab7137fc15e2a66a --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/config/hpl_osc32kctrl_config.h 2 files changed, 4 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index f3620ee..385c890 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -787,8 +787,8 @@ enable_xosc32k: true osculp32k_calib: 0 osculp32k_calib_enable: false - rtc_1khz_selection: true - rtc_source_oscillator: 32kHz Ultra Low Power Internal Oscillator (OSCULP32K) + rtc_1khz_selection: false + rtc_source_oscillator: 32kHz External Crystal Oscillator (XOSC32K) xosc32k_arch_cfden: false xosc32k_arch_cfdeo: false xosc32k_arch_cgm: Standard mode diff --git a/sysmoOCTSIM/config/hpl_osc32kctrl_config.h b/sysmoOCTSIM/config/hpl_osc32kctrl_config.h index d0b0d34..943dfea 100644 --- a/sysmoOCTSIM/config/hpl_osc32kctrl_config.h +++ b/sysmoOCTSIM/config/hpl_osc32kctrl_config.h @@ -17,14 +17,14 @@ // This defines the clock source for RTC // rtc_source_oscillator #ifndef CONF_RTCCTRL_SRC -#define CONF_RTCCTRL_SRC GCLK_GENCTRL_SRC_OSCULP32K +#define CONF_RTCCTRL_SRC GCLK_GENCTRL_SRC_XOSC32K #endif // Use 1 kHz output // rtc_1khz_selection #ifndef CONF_RTCCTRL_1KHZ -#define CONF_RTCCTRL_1KHZ 1 +#define CONF_RTCCTRL_1KHZ 0 #endif -- To view, visit https://gerrit.osmocom.org/12796 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic4630abececdb631e8cc15baab7137fc15e2a66a Gerrit-Change-Number: 12796 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 15:28:26 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 15:28:26 +0000 Subject: Change in osmo-ccid-firmware[master]: switch CPU clock to 120 MHz In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12797 ) Change subject: switch CPU clock to 120 MHz ...................................................................... switch CPU clock to 120 MHz use GCLK11 to bring external crystal oscillator XOSC1 from 12 MHz to 2MHz use DPLL0 to multiply 2 MHz to 120 MHz. the division is first needed because the DPLL0 maximum input frequency is 3.2 MHz Change-Id: I642e724ec56a376addf21cc58ecd2ef1b40bd116 --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/config/hpl_gclk_config.h M sysmoOCTSIM/config/hpl_oscctrl_config.h M sysmoOCTSIM/config/peripheral_clk_config.h M sysmoOCTSIM/hpl/core/hpl_init.c 5 files changed, 28 insertions(+), 27 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index 385c890..5e27536 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -646,7 +646,7 @@ enable_gclk_gen_0: true enable_gclk_gen_1: true enable_gclk_gen_10: false - enable_gclk_gen_11: false + enable_gclk_gen_11: true enable_gclk_gen_2: false enable_gclk_gen_3: true enable_gclk_gen_4: false @@ -665,7 +665,7 @@ gclk_arch_gen_10_oe: false gclk_arch_gen_10_oov: false gclk_arch_gen_10_runstdby: false - gclk_arch_gen_11_enable: false + gclk_arch_gen_11_enable: true gclk_arch_gen_11_idc: false gclk_arch_gen_11_oe: false gclk_arch_gen_11_oov: false @@ -717,13 +717,13 @@ gclk_arch_gen_9_runstdby: false gclk_gen_0_div: 1 gclk_gen_0_div_sel: false - gclk_gen_0_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) + gclk_gen_0_oscillator: Digital Phase Locked Loop (DPLL0) gclk_gen_10_div: 1 gclk_gen_10_div_sel: false gclk_gen_10_oscillator: External Crystal Oscillator 8-48MHz (XOSC0) - gclk_gen_11_div: 1 + gclk_gen_11_div: 6 gclk_gen_11_div_sel: false - gclk_gen_11_oscillator: External Crystal Oscillator 8-48MHz (XOSC0) + gclk_gen_11_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) gclk_gen_1_div: 1 gclk_gen_1_div_sel: false gclk_gen_1_oscillator: Digital Frequency Locked Loop (DFLL48M) @@ -829,24 +829,24 @@ dfll_mul: 48000 dfll_ref_clock: Generic clock generator 3 enable_dfll: true - enable_fdpll0: false + enable_fdpll0: true enable_fdpll1: false enable_xosc0: false enable_xosc1: true fdpll0_arch_dcoen: false - fdpll0_arch_enable: false + fdpll0_arch_enable: true fdpll0_arch_filter: 0 fdpll0_arch_lbypass: false fdpll0_arch_ltime: No time-out, automatic lock fdpll0_arch_ondemand: false - fdpll0_arch_refclk: XOSC32K clock reference + fdpll0_arch_refclk: XOSC1 clock reference fdpll0_arch_runstdby: false fdpll0_arch_wuf: false fdpll0_clock_dcofilter: 0 - fdpll0_clock_div: 0 - fdpll0_ldr: 1463 - fdpll0_ldrfrac: 13 - fdpll0_ref_clock: 32kHz External Crystal Oscillator (XOSC32K) + fdpll0_clock_div: 6 + fdpll0_ldr: 59 + fdpll0_ldrfrac: 0 + fdpll0_ref_clock: Generic clock generator 11 fdpll1_arch_dcoen: false fdpll1_arch_enable: false fdpll1_arch_filter: 0 diff --git a/sysmoOCTSIM/config/hpl_gclk_config.h b/sysmoOCTSIM/config/hpl_gclk_config.h index 306d90e..8d10f38 100644 --- a/sysmoOCTSIM/config/hpl_gclk_config.h +++ b/sysmoOCTSIM/config/hpl_gclk_config.h @@ -25,7 +25,7 @@ // This defines the clock source for generic clock generator 0 // gclk_gen_0_oscillator #ifndef CONF_GCLK_GEN_0_SOURCE -#define CONF_GCLK_GEN_0_SOURCE GCLK_GENCTRL_SRC_XOSC1 +#define CONF_GCLK_GEN_0_SOURCE GCLK_GENCTRL_SRC_DPLL0 #endif // Run in Standby @@ -843,7 +843,7 @@ // Indicates whether generic clock 11 configuration is enabled or not // enable_gclk_gen_11 #ifndef CONF_GCLK_GENERATOR_11_CONFIG -#define CONF_GCLK_GENERATOR_11_CONFIG 0 +#define CONF_GCLK_GENERATOR_11_CONFIG 1 #endif // Generic Clock Generator Control @@ -860,7 +860,7 @@ // This defines the clock source for generic clock generator 11 // gclk_gen_11_oscillator #ifndef CONF_GCLK_GEN_11_SOURCE -#define CONF_GCLK_GEN_11_SOURCE GCLK_GENCTRL_SRC_XOSC0 +#define CONF_GCLK_GEN_11_SOURCE GCLK_GENCTRL_SRC_XOSC1 #endif // Run in Standby @@ -902,7 +902,7 @@ // Indicates whether Generic Clock Generator Enable is enabled or not // gclk_arch_gen_11_enable #ifndef CONF_GCLK_GEN_11_GENEN -#define CONF_GCLK_GEN_11_GENEN 0 +#define CONF_GCLK_GEN_11_GENEN 1 #endif // @@ -910,7 +910,7 @@ // Generic clock generator 11 division <0x0000-0xFFFF> // gclk_gen_11_div #ifndef CONF_GCLK_GEN_11_DIV -#define CONF_GCLK_GEN_11_DIV 1 +#define CONF_GCLK_GEN_11_DIV 6 #endif // // diff --git a/sysmoOCTSIM/config/hpl_oscctrl_config.h b/sysmoOCTSIM/config/hpl_oscctrl_config.h index 11e4a24..d59ac43 100644 --- a/sysmoOCTSIM/config/hpl_oscctrl_config.h +++ b/sysmoOCTSIM/config/hpl_oscctrl_config.h @@ -382,7 +382,7 @@ // Indicates whether configuration for FDPLL0 is enabled or not // enable_fdpll0 #ifndef CONF_FDPLL0_CONFIG -#define CONF_FDPLL0_CONFIG 0 +#define CONF_FDPLL0_CONFIG 1 #endif // Reference Clock Source @@ -404,7 +404,7 @@ // Select the clock source. // fdpll0_ref_clock #ifndef CONF_FDPLL0_GCLK -#define CONF_FDPLL0_GCLK GCLK_GENCTRL_SRC_XOSC32K +#define CONF_FDPLL0_GCLK GCLK_PCHCTRL_GEN_GCLK11_Val #endif // Digital Phase Locked Loop Control @@ -412,7 +412,7 @@ // Indicates whether Digital Phase Locked Loop is enabled or not // fdpll0_arch_enable #ifndef CONF_FDPLL0_ENABLE -#define CONF_FDPLL0_ENABLE 0 +#define CONF_FDPLL0_ENABLE 1 #endif // On Demand Control @@ -432,19 +432,19 @@ // Loop Divider Ratio Fractional Part <0x0-0x1F> // fdpll0_ldrfrac #ifndef CONF_FDPLL0_LDRFRAC -#define CONF_FDPLL0_LDRFRAC 0xd +#define CONF_FDPLL0_LDRFRAC 0x0 #endif // Loop Divider Ratio Integer Part <0x0-0x1FFF> // fdpll0_ldr #ifndef CONF_FDPLL0_LDR -#define CONF_FDPLL0_LDR 0x5b7 +#define CONF_FDPLL0_LDR 0x3b #endif // Clock Divider <0x0-0x7FF> // fdpll0_clock_div #ifndef CONF_FDPLL0_DIV -#define CONF_FDPLL0_DIV 0x0 +#define CONF_FDPLL0_DIV 0x6 #endif // DCO Filter Enable @@ -485,7 +485,7 @@ // <0x3=>XOSC1 clock reference // fdpll0_arch_refclk #ifndef CONF_FDPLL0_REFCLK -#define CONF_FDPLL0_REFCLK 0x1 +#define CONF_FDPLL0_REFCLK 0x3 #endif // Wake Up Fast diff --git a/sysmoOCTSIM/config/peripheral_clk_config.h b/sysmoOCTSIM/config/peripheral_clk_config.h index 9a9c30f..8078e4b 100644 --- a/sysmoOCTSIM/config/peripheral_clk_config.h +++ b/sysmoOCTSIM/config/peripheral_clk_config.h @@ -9,7 +9,7 @@ * \brief CPU's Clock frequency */ #ifndef CONF_CPU_FREQUENCY -#define CONF_CPU_FREQUENCY 12000000 +#define CONF_CPU_FREQUENCY 120000000 #endif // USB Clock Source diff --git a/sysmoOCTSIM/hpl/core/hpl_init.c b/sysmoOCTSIM/hpl/core/hpl_init.c index be0db93..6f3dc20 100644 --- a/sysmoOCTSIM/hpl/core/hpl_init.c +++ b/sysmoOCTSIM/hpl/core/hpl_init.c @@ -42,10 +42,11 @@ #include /* Referenced GCLKs (out of 0~11), should be initialized firstly + * - GCLK 11 for FDPLL0 */ -#define _GCLK_INIT_1ST 0x00000000 +#define _GCLK_INIT_1ST 0x00000800 /* Not referenced GCLKs, initialized last */ -#define _GCLK_INIT_LAST 0x00000FFF +#define _GCLK_INIT_LAST 0x000007FF /** * \brief Initialize the hardware abstraction layer -- To view, visit https://gerrit.osmocom.org/12797 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I642e724ec56a376addf21cc58ecd2ef1b40bd116 Gerrit-Change-Number: 12797 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 15:28:27 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 15:28:27 +0000 Subject: Change in osmo-ccid-firmware[master]: remove usage of GCLK11 In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12798 ) Change subject: remove usage of GCLK11 ...................................................................... remove usage of GCLK11 DPLL0 can take directly XOSC1 as input and divide it to 2 MHz. thus the intermediate GCLK11 is not needed. this configuration is not supported by Atmel START since it does not know about the division and thinks the input frequency exceeds the maximum Change-Id: I121ad850cf118b641fe522b513ffd7e00b30b710 --- M sysmoOCTSIM/config/hpl_gclk_config.h M sysmoOCTSIM/config/hpl_oscctrl_config.h 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sysmoOCTSIM/config/hpl_gclk_config.h b/sysmoOCTSIM/config/hpl_gclk_config.h index 8d10f38..fbaa9b7 100644 --- a/sysmoOCTSIM/config/hpl_gclk_config.h +++ b/sysmoOCTSIM/config/hpl_gclk_config.h @@ -902,7 +902,7 @@ // Indicates whether Generic Clock Generator Enable is enabled or not // gclk_arch_gen_11_enable #ifndef CONF_GCLK_GEN_11_GENEN -#define CONF_GCLK_GEN_11_GENEN 1 +#define CONF_GCLK_GEN_11_GENEN 0 #endif // diff --git a/sysmoOCTSIM/config/hpl_oscctrl_config.h b/sysmoOCTSIM/config/hpl_oscctrl_config.h index d59ac43..6b3cc19 100644 --- a/sysmoOCTSIM/config/hpl_oscctrl_config.h +++ b/sysmoOCTSIM/config/hpl_oscctrl_config.h @@ -404,7 +404,7 @@ // Select the clock source. // fdpll0_ref_clock #ifndef CONF_FDPLL0_GCLK -#define CONF_FDPLL0_GCLK GCLK_PCHCTRL_GEN_GCLK11_Val +#define CONF_FDPLL0_GCLK GCLK_GENCTRL_SRC_XOSC1 #endif // Digital Phase Locked Loop Control -- To view, visit https://gerrit.osmocom.org/12798 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I121ad850cf118b641fe522b513ffd7e00b30b710 Gerrit-Change-Number: 12798 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 15:28:27 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 15:28:27 +0000 Subject: Change in osmo-ccid-firmware[master]: set DPLL1 to 100 MHz In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12799 ) Change subject: set DPLL1 to 100 MHz ...................................................................... set DPLL1 to 100 MHz use GCLK11 to bring external crystal oscillator XOSC1 from 12 MHz to 2MHz use DPLL1 to multiply 2 MHz to 100 MHz. the division is first needed because the DPLL0 maximum input frequency is 3.2 MHz 100 MHz is the maximum input frequency for the SERCOM peripherals Change-Id: I0482c39cc0db999904c585d21738dbce57ca3b55 --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/config/hpl_gclk_config.h M sysmoOCTSIM/config/hpl_oscctrl_config.h M sysmoOCTSIM/hpl/core/hpl_init.c 4 files changed, 22 insertions(+), 21 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index 5e27536..3899d79 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -647,7 +647,7 @@ enable_gclk_gen_1: true enable_gclk_gen_10: false enable_gclk_gen_11: true - enable_gclk_gen_2: false + enable_gclk_gen_2: true enable_gclk_gen_3: true enable_gclk_gen_4: false enable_gclk_gen_5: false @@ -675,7 +675,7 @@ gclk_arch_gen_1_oe: false gclk_arch_gen_1_oov: false gclk_arch_gen_1_runstdby: false - gclk_arch_gen_2_enable: false + gclk_arch_gen_2_enable: true gclk_arch_gen_2_idc: false gclk_arch_gen_2_oe: false gclk_arch_gen_2_oov: false @@ -728,8 +728,8 @@ gclk_gen_1_div_sel: false gclk_gen_1_oscillator: Digital Frequency Locked Loop (DFLL48M) gclk_gen_2_div: 1 - gclk_gen_2_div_sel: true - gclk_gen_2_oscillator: External Crystal Oscillator 8-48MHz (XOSC0) + gclk_gen_2_div_sel: false + gclk_gen_2_oscillator: Digital Phase Locked Loop (DPLL1) gclk_gen_3_div: 1 gclk_gen_3_div_sel: false gclk_gen_3_oscillator: 32kHz External Crystal Oscillator (XOSC32K) @@ -830,7 +830,7 @@ dfll_ref_clock: Generic clock generator 3 enable_dfll: true enable_fdpll0: true - enable_fdpll1: false + enable_fdpll1: true enable_xosc0: false enable_xosc1: true fdpll0_arch_dcoen: false @@ -848,19 +848,19 @@ fdpll0_ldrfrac: 0 fdpll0_ref_clock: Generic clock generator 11 fdpll1_arch_dcoen: false - fdpll1_arch_enable: false + fdpll1_arch_enable: true fdpll1_arch_filter: 0 fdpll1_arch_lbypass: false fdpll1_arch_ltime: No time-out, automatic lock fdpll1_arch_ondemand: false - fdpll1_arch_refclk: XOSC32K clock reference + fdpll1_arch_refclk: XOSC1 clock reference fdpll1_arch_runstdby: false fdpll1_arch_wuf: false fdpll1_clock_dcofilter: 0 - fdpll1_clock_div: 0 - fdpll1_ldr: 1463 - fdpll1_ldrfrac: 13 - fdpll1_ref_clock: 32kHz External Crystal Oscillator (XOSC32K) + fdpll1_clock_div: 6 + fdpll1_ldr: 49 + fdpll1_ldrfrac: 0 + fdpll1_ref_clock: Generic clock generator 11 xosc0_arch_cfden: false xosc0_arch_enable: false xosc0_arch_enalc: false diff --git a/sysmoOCTSIM/config/hpl_gclk_config.h b/sysmoOCTSIM/config/hpl_gclk_config.h index fbaa9b7..398a617 100644 --- a/sysmoOCTSIM/config/hpl_gclk_config.h +++ b/sysmoOCTSIM/config/hpl_gclk_config.h @@ -159,7 +159,7 @@ // Indicates whether generic clock 2 configuration is enabled or not // enable_gclk_gen_2 #ifndef CONF_GCLK_GENERATOR_2_CONFIG -#define CONF_GCLK_GENERATOR_2_CONFIG 0 +#define CONF_GCLK_GENERATOR_2_CONFIG 1 #endif // Generic Clock Generator Control @@ -176,7 +176,7 @@ // This defines the clock source for generic clock generator 2 // gclk_gen_2_oscillator #ifndef CONF_GCLK_GEN_2_SOURCE -#define CONF_GCLK_GEN_2_SOURCE GCLK_GENCTRL_SRC_XOSC0 +#define CONF_GCLK_GEN_2_SOURCE GCLK_GENCTRL_SRC_DPLL1 #endif // Run in Standby @@ -190,7 +190,7 @@ // Indicates whether Divide Selection is enabled or not // gclk_gen_2_div_sel #ifndef CONF_GCLK_GEN_2_DIVSEL -#define CONF_GCLK_GEN_2_DIVSEL 1 +#define CONF_GCLK_GEN_2_DIVSEL 0 #endif // Output Enable @@ -218,7 +218,7 @@ // Indicates whether Generic Clock Generator Enable is enabled or not // gclk_arch_gen_2_enable #ifndef CONF_GCLK_GEN_2_GENEN -#define CONF_GCLK_GEN_2_GENEN 0 +#define CONF_GCLK_GEN_2_GENEN 1 #endif // diff --git a/sysmoOCTSIM/config/hpl_oscctrl_config.h b/sysmoOCTSIM/config/hpl_oscctrl_config.h index 6b3cc19..06ee571 100644 --- a/sysmoOCTSIM/config/hpl_oscctrl_config.h +++ b/sysmoOCTSIM/config/hpl_oscctrl_config.h @@ -529,7 +529,7 @@ // Select the clock source. // fdpll1_ref_clock #ifndef CONF_FDPLL1_GCLK -#define CONF_FDPLL1_GCLK GCLK_GENCTRL_SRC_XOSC32K +#define CONF_FDPLL1_GCLK GCLK_PCHCTRL_GEN_GCLK11_Val #endif // Digital Phase Locked Loop Control @@ -537,7 +537,7 @@ // Indicates whether Digital Phase Locked Loop is enabled or not // fdpll1_arch_enable #ifndef CONF_FDPLL1_ENABLE -#define CONF_FDPLL1_ENABLE 0 +#define CONF_FDPLL1_ENABLE 1 #endif // On Demand Control @@ -557,19 +557,19 @@ // Loop Divider Ratio Fractional Part <0x0-0x1F> // fdpll1_ldrfrac #ifndef CONF_FDPLL1_LDRFRAC -#define CONF_FDPLL1_LDRFRAC 0xd +#define CONF_FDPLL1_LDRFRAC 0x0 #endif // Loop Divider Ratio Integer Part <0x0-0x1FFF> // fdpll1_ldr #ifndef CONF_FDPLL1_LDR -#define CONF_FDPLL1_LDR 0x5b7 +#define CONF_FDPLL1_LDR 0x31 #endif // Clock Divider <0x0-0x7FF> // fdpll1_clock_div #ifndef CONF_FDPLL1_DIV -#define CONF_FDPLL1_DIV 0x0 +#define CONF_FDPLL1_DIV 0x6 #endif // DCO Filter Enable @@ -610,7 +610,7 @@ // <0x3=>XOSC1 clock reference // fdpll1_arch_refclk #ifndef CONF_FDPLL1_REFCLK -#define CONF_FDPLL1_REFCLK 0x1 +#define CONF_FDPLL1_REFCLK 0x3 #endif // Wake Up Fast diff --git a/sysmoOCTSIM/hpl/core/hpl_init.c b/sysmoOCTSIM/hpl/core/hpl_init.c index 6f3dc20..bb8425c 100644 --- a/sysmoOCTSIM/hpl/core/hpl_init.c +++ b/sysmoOCTSIM/hpl/core/hpl_init.c @@ -42,6 +42,7 @@ #include /* Referenced GCLKs (out of 0~11), should be initialized firstly + * - GCLK 11 for FDPLL1 * - GCLK 11 for FDPLL0 */ #define _GCLK_INIT_1ST 0x00000800 -- To view, visit https://gerrit.osmocom.org/12799 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I0482c39cc0db999904c585d21738dbce57ca3b55 Gerrit-Change-Number: 12799 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 15:28:28 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 15:28:28 +0000 Subject: Change in osmo-ccid-firmware[master]: use XOSC1 directly for DPLL1 In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12800 ) Change subject: use XOSC1 directly for DPLL1 ...................................................................... use XOSC1 directly for DPLL1 DPLL1 can take directly XOSC1 as input and divide it to 2 MHz. thus the intermediate GCLK11 is not needed. we now also completely de-configure GCLK11 this configuration is not supported by Atmel START since it does not know about the division and thinks the input frequency exceeds the maximum GCLK2 is also disabled for now because it is not used Change-Id: Icee7f5a13019c47cebc23376cabb18cb31178ece --- M sysmoOCTSIM/config/hpl_gclk_config.h M sysmoOCTSIM/config/hpl_oscctrl_config.h 2 files changed, 4 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sysmoOCTSIM/config/hpl_gclk_config.h b/sysmoOCTSIM/config/hpl_gclk_config.h index 398a617..0ad8ead 100644 --- a/sysmoOCTSIM/config/hpl_gclk_config.h +++ b/sysmoOCTSIM/config/hpl_gclk_config.h @@ -218,7 +218,7 @@ // Indicates whether Generic Clock Generator Enable is enabled or not // gclk_arch_gen_2_enable #ifndef CONF_GCLK_GEN_2_GENEN -#define CONF_GCLK_GEN_2_GENEN 1 +#define CONF_GCLK_GEN_2_GENEN 0 #endif // @@ -843,7 +843,7 @@ // Indicates whether generic clock 11 configuration is enabled or not // enable_gclk_gen_11 #ifndef CONF_GCLK_GENERATOR_11_CONFIG -#define CONF_GCLK_GENERATOR_11_CONFIG 1 +#define CONF_GCLK_GENERATOR_11_CONFIG 0 #endif // Generic Clock Generator Control diff --git a/sysmoOCTSIM/config/hpl_oscctrl_config.h b/sysmoOCTSIM/config/hpl_oscctrl_config.h index 06ee571..0676cb5 100644 --- a/sysmoOCTSIM/config/hpl_oscctrl_config.h +++ b/sysmoOCTSIM/config/hpl_oscctrl_config.h @@ -507,7 +507,7 @@ // Indicates whether configuration for FDPLL1 is enabled or not // enable_fdpll1 #ifndef CONF_FDPLL1_CONFIG -#define CONF_FDPLL1_CONFIG 0 +#define CONF_FDPLL1_CONFIG 1 #endif // Reference Clock Source @@ -529,7 +529,7 @@ // Select the clock source. // fdpll1_ref_clock #ifndef CONF_FDPLL1_GCLK -#define CONF_FDPLL1_GCLK GCLK_PCHCTRL_GEN_GCLK11_Val +#define CONF_FDPLL1_GCLK GCLK_GENCTRL_SRC_XOSC1 #endif // Digital Phase Locked Loop Control -- To view, visit https://gerrit.osmocom.org/12800 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Icee7f5a13019c47cebc23376cabb18cb31178ece Gerrit-Change-Number: 12800 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 15:28:29 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 15:28:29 +0000 Subject: Change in osmo-ccid-firmware[master]: rename application to main In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12802 ) Change subject: rename application to main ...................................................................... rename application to main also remove unused armcc. only the GCC cross-compiler is used. the ARMCC Makefile would not be maintained. Change-Id: Ib6ec525885943afba9b24df88a5bee8009df95b5 --- D sysmoOCTSIM/armcc/Makefile D sysmoOCTSIM/armcc/arm_addon/armcc/arm/startup_same54.s D sysmoOCTSIM/armcc/arm_addon/armcc/system_same54.c M sysmoOCTSIM/gcc/Makefile R sysmoOCTSIM/main.c 5 files changed, 4 insertions(+), 895 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sysmoOCTSIM/armcc/Makefile b/sysmoOCTSIM/armcc/Makefile deleted file mode 100644 index 3a130a8..0000000 --- a/sysmoOCTSIM/armcc/Makefile +++ /dev/null @@ -1,233 +0,0 @@ - -################################################################################ -# Automatically-generated file. Do not edit! -################################################################################ - -ifdef SystemRoot - SHELL = cmd.exe - MK_DIR = mkdir -else - ifeq ($(shell uname), Linux) - MK_DIR = mkdir -p - endif - - ifeq ($(shell uname | cut -d _ -f 1), CYGWIN) - MK_DIR = mkdir -p - endif - - ifeq ($(shell uname | cut -d _ -f 1), MINGW32) - MK_DIR = mkdir -p - endif - - ifeq ($(shell uname | cut -d _ -f 1), MINGW64) - MK_DIR = mkdir -p - endif -endif - -# List the subdirectories for creating object files -SUB_DIRS += \ - \ -hpl/pm \ -hpl/osc32kctrl \ -hpl/ramecc \ -hpl/dmac \ -usb/class/cdc/device \ -hal/src \ -hpl/mclk \ -usb \ -armcc/arm_addon/armcc/arm \ -hal/utils/src \ -hpl/sercom \ -examples \ -hpl/gclk \ -usb/device \ -hpl/oscctrl \ -armcc/arm_addon/armcc \ -hpl/usb \ -hpl/core \ -hpl/cmcc - -# List the object files -OBJS += \ -hal/src/hal_io.o \ -armcc/arm_addon/armcc/system_same54.o \ -hpl/core/hpl_core_m4.o \ -usb/class/cdc/device/cdcdf_acm.o \ -hpl/dmac/hpl_dmac.o \ -hpl/usb/hpl_usb.o \ -hal/src/hal_delay.o \ -hpl/pm/hpl_pm.o \ -hpl/core/hpl_init.o \ -hpl/gclk/hpl_gclk.o \ -hal/utils/src/utils_list.o \ -hal/utils/src/utils_assert.o \ -usb_start.o \ -hpl/oscctrl/hpl_oscctrl.o \ -hal/src/hal_usart_sync.o \ -hpl/mclk/hpl_mclk.o \ -hpl/ramecc/hpl_ramecc.o \ -usb/usb_protocol.o \ -hal/src/hal_init.o \ -hal/src/hal_usb_device.o \ -hpl/osc32kctrl/hpl_osc32kctrl.o \ -examples/driver_examples.o \ -driver_init.o \ -hpl/sercom/hpl_sercom.o \ -hal/src/hal_gpio.o \ -hal/utils/src/utils_event.o \ -hal/src/hal_sleep.o \ -hal/src/hal_cache.o \ -hpl/cmcc/hpl_cmcc.o \ -atmel_start.o \ -usb_cdc_echo_main.o \ -usb/device/usbdc.o \ -hal/src/hal_atomic.o \ -armcc/arm_addon/armcc/arm/startup_same54.o - -OBJS_AS_ARGS += \ -"hal/src/hal_io.o" \ -"armcc/arm_addon/armcc/system_same54.o" \ -"hpl/core/hpl_core_m4.o" \ -"usb/class/cdc/device/cdcdf_acm.o" \ -"hpl/dmac/hpl_dmac.o" \ -"hpl/usb/hpl_usb.o" \ -"hal/src/hal_delay.o" \ -"hpl/pm/hpl_pm.o" \ -"hpl/core/hpl_init.o" \ -"hpl/gclk/hpl_gclk.o" \ -"hal/utils/src/utils_list.o" \ -"hal/utils/src/utils_assert.o" \ -"usb_start.o" \ -"hpl/oscctrl/hpl_oscctrl.o" \ -"hal/src/hal_usart_sync.o" \ -"hpl/mclk/hpl_mclk.o" \ -"hpl/ramecc/hpl_ramecc.o" \ -"usb/usb_protocol.o" \ -"hal/src/hal_init.o" \ -"hal/src/hal_usb_device.o" \ -"hpl/osc32kctrl/hpl_osc32kctrl.o" \ -"examples/driver_examples.o" \ -"driver_init.o" \ -"hpl/sercom/hpl_sercom.o" \ -"hal/src/hal_gpio.o" \ -"hal/utils/src/utils_event.o" \ -"hal/src/hal_sleep.o" \ -"hal/src/hal_cache.o" \ -"hpl/cmcc/hpl_cmcc.o" \ -"atmel_start.o" \ -"usb_cdc_echo_main.o" \ -"usb/device/usbdc.o" \ -"hal/src/hal_atomic.o" \ -"armcc/arm_addon/armcc/arm/startup_same54.o" - -# List the dependency files -DEPS := $(OBJS:%.o=%.d) - -DEPS_AS_ARGS += \ -"hal/utils/src/utils_event.d" \ -"hal/src/hal_io.d" \ -"armcc/arm_addon/armcc/system_same54.d" \ -"hpl/ramecc/hpl_ramecc.d" \ -"hpl/core/hpl_core_m4.d" \ -"usb/class/cdc/device/cdcdf_acm.d" \ -"hpl/usb/hpl_usb.d" \ -"hal/utils/src/utils_list.d" \ -"hpl/cmcc/hpl_cmcc.d" \ -"usb_start.d" \ -"hal/utils/src/utils_assert.d" \ -"hal/src/hal_delay.d" \ -"hpl/core/hpl_init.d" \ -"hpl/pm/hpl_pm.d" \ -"usb/usb_protocol.d" \ -"hpl/gclk/hpl_gclk.d" \ -"hal/src/hal_usb_device.d" \ -"hpl/dmac/hpl_dmac.d" \ -"hal/src/hal_init.d" \ -"hal/src/hal_usart_sync.d" \ -"usb_cdc_echo_main.d" \ -"hpl/mclk/hpl_mclk.d" \ -"driver_init.d" \ -"hpl/osc32kctrl/hpl_osc32kctrl.d" \ -"examples/driver_examples.d" \ -"hal/src/hal_cache.d" \ -"hal/src/hal_sleep.d" \ -"hpl/sercom/hpl_sercom.d" \ -"hal/src/hal_gpio.d" \ -"hal/src/hal_atomic.d" \ -"usb/device/usbdc.d" \ -"hpl/oscctrl/hpl_oscctrl.d" \ -"armcc/arm_addon/armcc/arm/startup_same54.d" \ -"atmel_start.d" - -OUTPUT_FILE_NAME :=AtmelStart -QUOTE := " -OUTPUT_FILE_PATH +=$(OUTPUT_FILE_NAME).elf -OUTPUT_FILE_PATH_AS_ARGS +=$(OUTPUT_FILE_NAME).elf - -vpath %.c ../ -vpath %.s ../ -vpath %.S ../ - -# All Target -all: $(SUB_DIRS) $(OUTPUT_FILE_PATH) - -# Linker target - -$(OUTPUT_FILE_PATH): $(OBJS) - @echo Building target: $@ - @echo Invoking: ARMCC Linker - $(QUOTE)armlink$(QUOTE) --ro-base 0x00000000 --entry 0x00000000 --rw-base 0x20000000 --entry Reset_Handler --first __Vectors \ ---strict --summary_stderr --info summarysizes --map --xref --callgraph --symbols \ ---info sizes --info totals --info unused --info veneers --list $(OUTPUT_FILE_NAME).map \ --o $(OUTPUT_FILE_NAME).elf --cpu Cortex-M4 \ -$(OBJS_AS_ARGS) - - @echo Finished building target: $@ - -# Compiler target(s) - - - - -%.o: %.c - @echo Building file: $< - @echo ARMCC Compiler - $(QUOTE)armcc$(QUOTE) --c99 -c -DDEBUG -O1 -g --apcs=interwork --split_sections --cpu Cortex-M4 -D__SAME54P20A__ \ --I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include" \ ---depend "$@" -o "$@" "$<" - - @echo Finished building: $< - -%.o: %.s - @echo Building file: $< - @echo ARMCC Assembler - $(QUOTE)armasm$(QUOTE) -g --apcs=interwork --cpu Cortex-M4 --pd "D__SAME54P20A__ SETA 1" \ --I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include" \ ---depend "$(@:%.o=%.d)" -o "$@" "$<" - - @echo Finished building: $< - -%.o: %.S - @echo Building file: $< - @echo ARMCC Preprocessing Assembler - $(QUOTE)armcc$(QUOTE) --c99 -c -DDEBUG -O1 -g --apcs=interwork --split_sections --cpu Cortex-M4 -D__SAME54P20A__ \ --I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include" \ ---depend "$@" -o "$@" "$<" - - @echo Finished building: $< - -# Detect changes in the dependent files and recompile the respective object files. -ifneq ($(MAKECMDGOALS),clean) -ifneq ($(strip $(DEPS)),) --include $(DEPS) -endif -endif - -$(SUB_DIRS): - $(MK_DIR) "$@" - -clean: - rm -f $(OBJS_AS_ARGS) - rm -f $(OUTPUT_FILE_PATH) - rm -f $(DEPS_AS_ARGS) - rm -f $(OUTPUT_FILE_NAME).map $(OUTPUT_FILE_NAME).elf diff --git a/sysmoOCTSIM/armcc/arm_addon/armcc/arm/startup_same54.s b/sysmoOCTSIM/armcc/arm_addon/armcc/arm/startup_same54.s deleted file mode 100644 index 3cd00bc..0000000 --- a/sysmoOCTSIM/armcc/arm_addon/armcc/arm/startup_same54.s +++ /dev/null @@ -1,588 +0,0 @@ -;/***************************************************************************** -; * @file startup_SAME54.s -; * @brief CMSIS Cortex-M4 Core Device Startup File for -; * Atmel SAME54 Device Series -; * @version V1.0.0 -; * @date 16. January 2017 -; * -; * @note -; * Copyright (C) 2017 ARM Limited. All rights reserved. -; * -; * @par -; * ARM Limited (ARM) is supplying this software for use with Cortex-M -; * processor based microcontrollers. This file can be freely distributed -; * within development tools that are supporting such ARM based processors. -; * -; * @par -; * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED -; * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF -; * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. -; * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR -; * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. -; * -; ******************************************************************************/ -;/* -;//-------- <<< Use Configuration Wizard in Context Menu >>> ------------------ -;*/ - - -; Stack Configuration -; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> -; - -Stack_Size EQU 0x00000200 - - AREA STACK, NOINIT, READWRITE, ALIGN=3 -Stack_Mem SPACE Stack_Size -__initial_sp - - -; Heap Configuration -; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> -; - -Heap_Size EQU 0x00000000 - - AREA HEAP, NOINIT, READWRITE, ALIGN=3 -__heap_base -Heap_Mem SPACE Heap_Size -__heap_limit - - - PRESERVE8 - THUMB - - -; Vector Table Mapped to Address 0 at Reset - - AREA RESET, DATA, READONLY - EXPORT __Vectors - EXPORT __Vectors_End - EXPORT __Vectors_Size - -__Vectors DCD __initial_sp ; Top of Stack - DCD Reset_Handler ; Reset Handler - DCD NMI_Handler ; NMI Handler - DCD HardFault_Handler ; Hard Fault Handler - DCD MemManage_Handler ; MPU Fault Handler - DCD BusFault_Handler ; Bus Fault Handler - DCD UsageFault_Handler ; Usage Fault Handler - DCD 0 ; Reserved - DCD 0 ; Reserved - DCD 0 ; Reserved - DCD 0 ; Reserved - DCD SVC_Handler ; SVCall Handler - DCD DebugMon_Handler ; Debug Monitor Handler - DCD 0 ; Reserved - DCD PendSV_Handler ; PendSV Handler - DCD SysTick_Handler ; SysTick Handler - - ; External Interrupts - DCD PM_Handler ; 0 Power Manager - DCD MCLK_Handler ; 1 Main Clock - DCD OSCCTRL_0_Handler ; 2 OSCCTRL_XOSCFAIL_0, OSCCTRL_XOSCRDY_0 - DCD OSCCTRL_1_Handler ; 3 OSCCTRL_XOSCFAIL_1, OSCCTRL_XOSCRDY_1 - DCD OSCCTRL_2_Handler ; 4 OSCCTRL_DFLLLOCKC, OSCCTRL_DFLLLOCKF, OSCCTRL_DFLLOOB, OSCCTRL_DFLLRCS, OSCCTRL_DFLLRDY - DCD OSCCTRL_3_Handler ; 5 OSCCTRL_DPLLLCKF_0, OSCCTRL_DPLLLCKR_0, OSCCTRL_DPLLLDRTO_0, OSCCTRL_DPLLLTO_0 - DCD OSCCTRL_4_Handler ; 6 OSCCTRL_DPLLLCKF_1, OSCCTRL_DPLLLCKR_1, OSCCTRL_DPLLLDRTO_1, OSCCTRL_DPLLLTO_1 - DCD OSC32KCTRL_Handler ; 7 32kHz Oscillators Control - DCD SUPC_0_Handler ; 8 SUPC_B12SRDY, SUPC_B33SRDY, SUPC_BOD12RDY, SUPC_BOD33RDY, SUPC_VCORERDY, SUPC_VREGRDY - DCD SUPC_1_Handler ; 9 SUPC_BOD12DET, SUPC_BOD33DET - DCD WDT_Handler ; 10 Watchdog Timer - DCD RTC_Handler ; 11 Real-Time Counter - DCD EIC_0_Handler ; 12 EIC_EXTINT_0 - DCD EIC_1_Handler ; 13 EIC_EXTINT_1 - DCD EIC_2_Handler ; 14 EIC_EXTINT_2 - DCD EIC_3_Handler ; 15 EIC_EXTINT_3 - DCD EIC_4_Handler ; 16 EIC_EXTINT_4 - DCD EIC_5_Handler ; 17 EIC_EXTINT_5 - DCD EIC_6_Handler ; 18 EIC_EXTINT_6 - DCD EIC_7_Handler ; 19 EIC_EXTINT_7 - DCD EIC_8_Handler ; 20 EIC_EXTINT_8 - DCD EIC_9_Handler ; 21 EIC_EXTINT_9 - DCD EIC_10_Handler ; 22 EIC_EXTINT_10 - DCD EIC_11_Handler ; 23 EIC_EXTINT_11 - DCD EIC_12_Handler ; 24 EIC_EXTINT_12 - DCD EIC_13_Handler ; 25 EIC_EXTINT_13 - DCD EIC_14_Handler ; 26 EIC_EXTINT_14 - DCD EIC_15_Handler ; 27 EIC_EXTINT_15 - DCD FREQM_Handler ; 28 Frequency Meter - DCD NVMCTRL_0_Handler ; 29 NVMCTRL_0, NVMCTRL_1, NVMCTRL_2, NVMCTRL_3, NVMCTRL_4, NVMCTRL_5, NVMCTRL_6, NVMCTRL_7 - DCD NVMCTRL_1_Handler ; 30 NVMCTRL_10, NVMCTRL_8, NVMCTRL_9 - DCD DMAC_0_Handler ; 31 DMAC_SUSP_0, DMAC_TCMPL_0, DMAC_TERR_0 - DCD DMAC_1_Handler ; 32 DMAC_SUSP_1, DMAC_TCMPL_1, DMAC_TERR_1 - DCD DMAC_2_Handler ; 33 DMAC_SUSP_2, DMAC_TCMPL_2, DMAC_TERR_2 - DCD DMAC_3_Handler ; 34 DMAC_SUSP_3, DMAC_TCMPL_3, DMAC_TERR_3 - DCD DMAC_4_Handler ; 35 DMAC_SUSP_10, DMAC_SUSP_11, DMAC_SUSP_12, DMAC_SUSP_13, DMAC_SUSP_14, DMAC_SUSP_15, DMAC_SUSP_16, DMAC_SUSP_17, DMAC_SUSP_18, DMAC_SUSP_19, DMAC_SUSP_20, DMAC_SUSP_21, DMAC_SUSP_22, DMAC_SUSP_23, DMAC_SUSP_24, DMAC_SUSP_25, DMAC_SUSP_26, DMAC_SUSP_27, DMAC_SUSP_28, DMAC_SUSP_29, DMAC_SUSP_30, DMAC_SUSP_31, DMAC_SUSP_4, DMAC_SUSP_5, DMAC_SUSP_6, DMAC_SUSP_7, DMAC_SUSP_8, DMAC_SUSP_9, DMAC_TCMPL_10, DMAC_TCMPL_11, DMAC_TCMPL_12, DMAC_TCMPL_13, DMAC_TCMPL_14, DMAC_TCMPL_15, DMAC_TCMPL_16, DMAC_TCMPL_17, DMAC_TCMPL_18, DMAC_TCMPL_19, DMAC_TCMPL_20, DMAC_TCMPL_21, DMAC_TCMPL_22, DMAC_TCMPL_23, DMAC_TCMPL_24, DMAC_TCMPL_25, DMAC_TCMPL_26, DMAC_TCMPL_27, DMAC_TCMPL_28, DMAC_TCMPL_29, DMAC_TCMPL_30, DMAC_TCMPL_31, DMAC_TCMPL_4, DMAC_TCMPL_5, DMAC_TCMPL_6, DMAC_TCMPL_7, DMAC_TCMPL_8, DMAC_TCMPL_9, DMAC_TERR_10, DMAC_TERR_11, DMAC_TERR_12, DMAC_TERR_13, DMAC_TERR_14, DMAC_TERR_15, DMAC_TERR_16, DMAC_TERR_17, DMAC_TERR_18, DMAC_TERR_19, DMAC_TERR_20, DMAC_TERR_21, DMAC_TERR_22, DMAC_TERR_23, DMAC_TERR_24, DMAC_TERR_25, DMAC_TERR_26, DMAC_TERR_27, DMAC_TERR_28, DMAC_TERR_29, DMAC_TERR_30, DMAC_TERR_31, DMAC_TERR_4, DMAC_TERR_5, DMAC_TERR_6, DMAC_TERR_7, DMAC_TERR_8, DMAC_TERR_9 - DCD EVSYS_0_Handler ; 36 EVSYS_EVD_0, EVSYS_OVR_0 - DCD EVSYS_1_Handler ; 37 EVSYS_EVD_1, EVSYS_OVR_1 - DCD EVSYS_2_Handler ; 38 EVSYS_EVD_2, EVSYS_OVR_2 - DCD EVSYS_3_Handler ; 39 EVSYS_EVD_3, EVSYS_OVR_3 - DCD EVSYS_4_Handler ; 40 EVSYS_EVD_10, EVSYS_EVD_11, EVSYS_EVD_4, EVSYS_EVD_5, EVSYS_EVD_6, EVSYS_EVD_7, EVSYS_EVD_8, EVSYS_EVD_9, EVSYS_OVR_10, EVSYS_OVR_11, EVSYS_OVR_4, EVSYS_OVR_5, EVSYS_OVR_6, EVSYS_OVR_7, EVSYS_OVR_8, EVSYS_OVR_9 - DCD PAC_Handler ; 41 Peripheral Access Controller - DCD TAL_0_Handler ; 42 TAL_BRK - DCD TAL_1_Handler ; 43 TAL_IPS_0, TAL_IPS_1 - DCD 0 ; 44 Reserved - DCD RAMECC_Handler ; 45 RAM ECC - DCD SERCOM0_0_Handler ; 46 SERCOM0_0 - DCD SERCOM0_1_Handler ; 47 SERCOM0_1 - DCD SERCOM0_2_Handler ; 48 SERCOM0_2 - DCD SERCOM0_3_Handler ; 49 SERCOM0_3, SERCOM0_4, SERCOM0_5, SERCOM0_6 - DCD SERCOM1_0_Handler ; 50 SERCOM1_0 - DCD SERCOM1_1_Handler ; 51 SERCOM1_1 - DCD SERCOM1_2_Handler ; 52 SERCOM1_2 - DCD SERCOM1_3_Handler ; 53 SERCOM1_3, SERCOM1_4, SERCOM1_5, SERCOM1_6 - DCD SERCOM2_0_Handler ; 54 SERCOM2_0 - DCD SERCOM2_1_Handler ; 55 SERCOM2_1 - DCD SERCOM2_2_Handler ; 56 SERCOM2_2 - DCD SERCOM2_3_Handler ; 57 SERCOM2_3, SERCOM2_4, SERCOM2_5, SERCOM2_6 - DCD SERCOM3_0_Handler ; 58 SERCOM3_0 - DCD SERCOM3_1_Handler ; 59 SERCOM3_1 - DCD SERCOM3_2_Handler ; 60 SERCOM3_2 - DCD SERCOM3_3_Handler ; 61 SERCOM3_3, SERCOM3_4, SERCOM3_5, SERCOM3_6 - DCD SERCOM4_0_Handler ; 62 SERCOM4_0 - DCD SERCOM4_1_Handler ; 63 SERCOM4_1 - DCD SERCOM4_2_Handler ; 64 SERCOM4_2 - DCD SERCOM4_3_Handler ; 65 SERCOM4_3, SERCOM4_4, SERCOM4_5, SERCOM4_6 - DCD SERCOM5_0_Handler ; 66 SERCOM5_0 - DCD SERCOM5_1_Handler ; 67 SERCOM5_1 - DCD SERCOM5_2_Handler ; 68 SERCOM5_2 - DCD SERCOM5_3_Handler ; 69 SERCOM5_3, SERCOM5_4, SERCOM5_5, SERCOM5_6 - DCD SERCOM6_0_Handler ; 70 SERCOM6_0 - DCD SERCOM6_1_Handler ; 71 SERCOM6_1 - DCD SERCOM6_2_Handler ; 72 SERCOM6_2 - DCD SERCOM6_3_Handler ; 73 SERCOM6_3, SERCOM6_4, SERCOM6_5, SERCOM6_6 - DCD SERCOM7_0_Handler ; 74 SERCOM7_0 - DCD SERCOM7_1_Handler ; 75 SERCOM7_1 - DCD SERCOM7_2_Handler ; 76 SERCOM7_2 - DCD SERCOM7_3_Handler ; 77 SERCOM7_3, SERCOM7_4, SERCOM7_5, SERCOM7_6 - DCD CAN0_Handler ; 78 Control Area Network 0 - DCD CAN1_Handler ; 79 Control Area Network 1 - DCD USB_0_Handler ; 80 USB_EORSM_DNRSM, USB_EORST_RST, USB_LPMSUSP_DDISC, USB_LPM_DCONN, USB_MSOF, USB_RAMACER, USB_RXSTP_TXSTP_0, USB_RXSTP_TXSTP_1, USB_RXSTP_TXSTP_2, USB_RXSTP_TXSTP_3, USB_RXSTP_TXSTP_4, USB_RXSTP_TXSTP_5, USB_RXSTP_TXSTP_6, USB_RXSTP_TXSTP_7, USB_STALL0_STALL_0, USB_STALL0_STALL_1, USB_STALL0_STALL_2, USB_STALL0_STALL_3, USB_STALL0_STALL_4, USB_STALL0_STALL_5, USB_STALL0_STALL_6, USB_STALL0_STALL_7, USB_STALL1_0, USB_STALL1_1, USB_STALL1_2, USB_STALL1_3, USB_STALL1_4, USB_STALL1_5, USB_STALL1_6, USB_STALL1_7, USB_SUSPEND, USB_TRFAIL0_TRFAIL_0, USB_TRFAIL0_TRFAIL_1, USB_TRFAIL0_TRFAIL_2, USB_TRFAIL0_TRFAIL_3, USB_TRFAIL0_TRFAIL_4, USB_TRFAIL0_TRFAIL_5, USB_TRFAIL0_TRFAIL_6, USB_TRFAIL0_TRFAIL_7, USB_TRFAIL1_PERR_0, USB_TRFAIL1_PERR_1, USB_TRFAIL1_PERR_2, USB_TRFAIL1_PERR_3, USB_TRFAIL1_PERR_4, USB_TRFAIL1_PERR_5, USB_TRFAIL1_PERR_6, USB_TRFAIL1_PERR_7, USB_UPRSM, USB_WAKEUP - DCD USB_1_Handler ; 81 USB_SOF_HSOF - DCD USB_2_Handler ; 82 USB_TRCPT0_0, USB_TRCPT0_1, USB_TRCPT0_2, USB_TRCPT0_3, USB_TRCPT0_4, USB_TRCPT0_5, USB_TRCPT0_6, USB_TRCPT0_7 - DCD USB_3_Handler ; 83 USB_TRCPT1_0, USB_TRCPT1_1, USB_TRCPT1_2, USB_TRCPT1_3, USB_TRCPT1_4, USB_TRCPT1_5, USB_TRCPT1_6, USB_TRCPT1_7 - DCD GMAC_Handler ; 84 Ethernet MAC - DCD TCC0_0_Handler ; 85 TCC0_CNT_A, TCC0_DFS_A, TCC0_ERR_A, TCC0_FAULT0_A, TCC0_FAULT1_A, TCC0_FAULTA_A, TCC0_FAULTB_A, TCC0_OVF, TCC0_TRG, TCC0_UFS_A - DCD TCC0_1_Handler ; 86 TCC0_MC_0 - DCD TCC0_2_Handler ; 87 TCC0_MC_1 - DCD TCC0_3_Handler ; 88 TCC0_MC_2 - DCD TCC0_4_Handler ; 89 TCC0_MC_3 - DCD TCC0_5_Handler ; 90 TCC0_MC_4 - DCD TCC0_6_Handler ; 91 TCC0_MC_5 - DCD TCC1_0_Handler ; 92 TCC1_CNT_A, TCC1_DFS_A, TCC1_ERR_A, TCC1_FAULT0_A, TCC1_FAULT1_A, TCC1_FAULTA_A, TCC1_FAULTB_A, TCC1_OVF, TCC1_TRG, TCC1_UFS_A - DCD TCC1_1_Handler ; 93 TCC1_MC_0 - DCD TCC1_2_Handler ; 94 TCC1_MC_1 - DCD TCC1_3_Handler ; 95 TCC1_MC_2 - DCD TCC1_4_Handler ; 96 TCC1_MC_3 - DCD TCC2_0_Handler ; 97 TCC2_CNT_A, TCC2_DFS_A, TCC2_ERR_A, TCC2_FAULT0_A, TCC2_FAULT1_A, TCC2_FAULTA_A, TCC2_FAULTB_A, TCC2_OVF, TCC2_TRG, TCC2_UFS_A - DCD TCC2_1_Handler ; 98 TCC2_MC_0 - DCD TCC2_2_Handler ; 99 TCC2_MC_1 - DCD TCC2_3_Handler ; 100 TCC2_MC_2 - DCD TCC3_0_Handler ; 101 TCC3_CNT_A, TCC3_DFS_A, TCC3_ERR_A, TCC3_FAULT0_A, TCC3_FAULT1_A, TCC3_FAULTA_A, TCC3_FAULTB_A, TCC3_OVF, TCC3_TRG, TCC3_UFS_A - DCD TCC3_1_Handler ; 102 TCC3_MC_0 - DCD TCC3_2_Handler ; 103 TCC3_MC_1 - DCD TCC4_0_Handler ; 104 TCC4_CNT_A, TCC4_DFS_A, TCC4_ERR_A, TCC4_FAULT0_A, TCC4_FAULT1_A, TCC4_FAULTA_A, TCC4_FAULTB_A, TCC4_OVF, TCC4_TRG, TCC4_UFS_A - DCD TCC4_1_Handler ; 105 TCC4_MC_0 - DCD TCC4_2_Handler ; 106 TCC4_MC_1 - DCD TC0_Handler ; 107 Basic Timer Counter 0 - DCD TC1_Handler ; 108 Basic Timer Counter 1 - DCD TC2_Handler ; 109 Basic Timer Counter 2 - DCD TC3_Handler ; 110 Basic Timer Counter 3 - DCD TC4_Handler ; 111 Basic Timer Counter 4 - DCD TC5_Handler ; 112 Basic Timer Counter 5 - DCD TC6_Handler ; 113 Basic Timer Counter 6 - DCD TC7_Handler ; 114 Basic Timer Counter 7 - DCD PDEC_0_Handler ; 115 PDEC_DIR_A, PDEC_ERR_A, PDEC_OVF, PDEC_VLC_A - DCD PDEC_1_Handler ; 116 PDEC_MC_0 - DCD PDEC_2_Handler ; 117 PDEC_MC_1 - DCD ADC0_0_Handler ; 118 ADC0_OVERRUN, ADC0_WINMON - DCD ADC0_1_Handler ; 119 ADC0_RESRDY - DCD ADC1_0_Handler ; 120 ADC1_OVERRUN, ADC1_WINMON - DCD ADC1_1_Handler ; 121 ADC1_RESRDY - DCD AC_Handler ; 122 Analog Comparators - DCD DAC_0_Handler ; 123 DAC_OVERRUN_A_0, DAC_OVERRUN_A_1, DAC_UNDERRUN_A_0, DAC_UNDERRUN_A_1 - DCD DAC_1_Handler ; 124 DAC_EMPTY_0 - DCD DAC_2_Handler ; 125 DAC_EMPTY_1 - DCD DAC_3_Handler ; 126 DAC_RESRDY_0 - DCD DAC_4_Handler ; 127 DAC_RESRDY_1 - DCD I2S_Handler ; 128 Inter-IC Sound Interface - DCD PCC_Handler ; 129 Parallel Capture Controller - DCD AES_Handler ; 130 Advanced Encryption Standard - DCD TRNG_Handler ; 131 True Random Generator - DCD ICM_Handler ; 132 Integrity Check Monitor - DCD PUKCC_Handler ; 133 PUblic-Key Cryptography Controller - DCD QSPI_Handler ; 134 Quad SPI interface - DCD SDHC0_Handler ; 135 SD/MMC Host Controller 0 - DCD SDHC1_Handler ; 136 SD/MMC Host Controller 1 -__Vectors_End - -__Vectors_Size EQU __Vectors_End - __Vectors - - AREA |.text|, CODE, READONLY - - -; Reset Handler - -Reset_Handler PROC - EXPORT Reset_Handler [WEAK] - IMPORT SystemInit - IMPORT __main - LDR R0, =SystemInit - BLX R0 - LDR R0, =__main - BX R0 - ENDP - - -; Dummy Exception Handlers (infinite loops which can be modified) - -NMI_Handler PROC - EXPORT NMI_Handler [WEAK] - B . - ENDP -HardFault_Handler\ - PROC - EXPORT HardFault_Handler [WEAK] - B . - ENDP -MemManage_Handler\ - PROC - EXPORT MemManage_Handler [WEAK] - B . - ENDP -BusFault_Handler\ - PROC - EXPORT BusFault_Handler [WEAK] - B . - ENDP -UsageFault_Handler\ - PROC - EXPORT UsageFault_Handler [WEAK] - B . - ENDP -SVC_Handler PROC - EXPORT SVC_Handler [WEAK] - B . - ENDP -DebugMon_Handler\ - PROC - EXPORT DebugMon_Handler [WEAK] - B . - ENDP -PendSV_Handler PROC - EXPORT PendSV_Handler [WEAK] - B . - ENDP -SysTick_Handler PROC - EXPORT SysTick_Handler [WEAK] - B . - ENDP - -Default_Handler PROC - EXPORT PM_Handler [WEAK] - EXPORT MCLK_Handler [WEAK] - EXPORT OSCCTRL_0_Handler [WEAK] - EXPORT OSCCTRL_1_Handler [WEAK] - EXPORT OSCCTRL_2_Handler [WEAK] - EXPORT OSCCTRL_3_Handler [WEAK] - EXPORT OSCCTRL_4_Handler [WEAK] - EXPORT OSC32KCTRL_Handler [WEAK] - EXPORT SUPC_0_Handler [WEAK] - EXPORT SUPC_1_Handler [WEAK] - EXPORT WDT_Handler [WEAK] - EXPORT RTC_Handler [WEAK] - EXPORT EIC_0_Handler [WEAK] - EXPORT EIC_1_Handler [WEAK] - EXPORT EIC_2_Handler [WEAK] - EXPORT EIC_3_Handler [WEAK] - EXPORT EIC_4_Handler [WEAK] - EXPORT EIC_5_Handler [WEAK] - EXPORT EIC_6_Handler [WEAK] - EXPORT EIC_7_Handler [WEAK] - EXPORT EIC_8_Handler [WEAK] - EXPORT EIC_9_Handler [WEAK] - EXPORT EIC_10_Handler [WEAK] - EXPORT EIC_11_Handler [WEAK] - EXPORT EIC_12_Handler [WEAK] - EXPORT EIC_13_Handler [WEAK] - EXPORT EIC_14_Handler [WEAK] - EXPORT EIC_15_Handler [WEAK] - EXPORT FREQM_Handler [WEAK] - EXPORT NVMCTRL_0_Handler [WEAK] - EXPORT NVMCTRL_1_Handler [WEAK] - EXPORT DMAC_0_Handler [WEAK] - EXPORT DMAC_1_Handler [WEAK] - EXPORT DMAC_2_Handler [WEAK] - EXPORT DMAC_3_Handler [WEAK] - EXPORT DMAC_4_Handler [WEAK] - EXPORT EVSYS_0_Handler [WEAK] - EXPORT EVSYS_1_Handler [WEAK] - EXPORT EVSYS_2_Handler [WEAK] - EXPORT EVSYS_3_Handler [WEAK] - EXPORT EVSYS_4_Handler [WEAK] - EXPORT PAC_Handler [WEAK] - EXPORT TAL_0_Handler [WEAK] - EXPORT TAL_1_Handler [WEAK] - EXPORT RAMECC_Handler [WEAK] - EXPORT SERCOM0_0_Handler [WEAK] - EXPORT SERCOM0_1_Handler [WEAK] - EXPORT SERCOM0_2_Handler [WEAK] - EXPORT SERCOM0_3_Handler [WEAK] - EXPORT SERCOM1_0_Handler [WEAK] - EXPORT SERCOM1_1_Handler [WEAK] - EXPORT SERCOM1_2_Handler [WEAK] - EXPORT SERCOM1_3_Handler [WEAK] - EXPORT SERCOM2_0_Handler [WEAK] - EXPORT SERCOM2_1_Handler [WEAK] - EXPORT SERCOM2_2_Handler [WEAK] - EXPORT SERCOM2_3_Handler [WEAK] - EXPORT SERCOM3_0_Handler [WEAK] - EXPORT SERCOM3_1_Handler [WEAK] - EXPORT SERCOM3_2_Handler [WEAK] - EXPORT SERCOM3_3_Handler [WEAK] - EXPORT SERCOM4_0_Handler [WEAK] - EXPORT SERCOM4_1_Handler [WEAK] - EXPORT SERCOM4_2_Handler [WEAK] - EXPORT SERCOM4_3_Handler [WEAK] - EXPORT SERCOM5_0_Handler [WEAK] - EXPORT SERCOM5_1_Handler [WEAK] - EXPORT SERCOM5_2_Handler [WEAK] - EXPORT SERCOM5_3_Handler [WEAK] - EXPORT SERCOM6_0_Handler [WEAK] - EXPORT SERCOM6_1_Handler [WEAK] - EXPORT SERCOM6_2_Handler [WEAK] - EXPORT SERCOM6_3_Handler [WEAK] - EXPORT SERCOM7_0_Handler [WEAK] - EXPORT SERCOM7_1_Handler [WEAK] - EXPORT SERCOM7_2_Handler [WEAK] - EXPORT SERCOM7_3_Handler [WEAK] - EXPORT CAN0_Handler [WEAK] - EXPORT CAN1_Handler [WEAK] - EXPORT USB_0_Handler [WEAK] - EXPORT USB_1_Handler [WEAK] - EXPORT USB_2_Handler [WEAK] - EXPORT USB_3_Handler [WEAK] - EXPORT GMAC_Handler [WEAK] - EXPORT TCC0_0_Handler [WEAK] - EXPORT TCC0_1_Handler [WEAK] - EXPORT TCC0_2_Handler [WEAK] - EXPORT TCC0_3_Handler [WEAK] - EXPORT TCC0_4_Handler [WEAK] - EXPORT TCC0_5_Handler [WEAK] - EXPORT TCC0_6_Handler [WEAK] - EXPORT TCC1_0_Handler [WEAK] - EXPORT TCC1_1_Handler [WEAK] - EXPORT TCC1_2_Handler [WEAK] - EXPORT TCC1_3_Handler [WEAK] - EXPORT TCC1_4_Handler [WEAK] - EXPORT TCC2_0_Handler [WEAK] - EXPORT TCC2_1_Handler [WEAK] - EXPORT TCC2_2_Handler [WEAK] - EXPORT TCC2_3_Handler [WEAK] - EXPORT TCC3_0_Handler [WEAK] - EXPORT TCC3_1_Handler [WEAK] - EXPORT TCC3_2_Handler [WEAK] - EXPORT TCC4_0_Handler [WEAK] - EXPORT TCC4_1_Handler [WEAK] - EXPORT TCC4_2_Handler [WEAK] - EXPORT TC0_Handler [WEAK] - EXPORT TC1_Handler [WEAK] - EXPORT TC2_Handler [WEAK] - EXPORT TC3_Handler [WEAK] - EXPORT TC4_Handler [WEAK] - EXPORT TC5_Handler [WEAK] - EXPORT TC6_Handler [WEAK] - EXPORT TC7_Handler [WEAK] - EXPORT PDEC_0_Handler [WEAK] - EXPORT PDEC_1_Handler [WEAK] - EXPORT PDEC_2_Handler [WEAK] - EXPORT ADC0_0_Handler [WEAK] - EXPORT ADC0_1_Handler [WEAK] - EXPORT ADC1_0_Handler [WEAK] - EXPORT ADC1_1_Handler [WEAK] - EXPORT AC_Handler [WEAK] - EXPORT DAC_0_Handler [WEAK] - EXPORT DAC_1_Handler [WEAK] - EXPORT DAC_2_Handler [WEAK] - EXPORT DAC_3_Handler [WEAK] - EXPORT DAC_4_Handler [WEAK] - EXPORT I2S_Handler [WEAK] - EXPORT PCC_Handler [WEAK] - EXPORT AES_Handler [WEAK] - EXPORT TRNG_Handler [WEAK] - EXPORT ICM_Handler [WEAK] - EXPORT PUKCC_Handler [WEAK] - EXPORT QSPI_Handler [WEAK] - EXPORT SDHC0_Handler [WEAK] - EXPORT SDHC1_Handler [WEAK] - -PM_Handler -MCLK_Handler -OSCCTRL_0_Handler -OSCCTRL_1_Handler -OSCCTRL_2_Handler -OSCCTRL_3_Handler -OSCCTRL_4_Handler -OSC32KCTRL_Handler -SUPC_0_Handler -SUPC_1_Handler -WDT_Handler -RTC_Handler -EIC_0_Handler -EIC_1_Handler -EIC_2_Handler -EIC_3_Handler -EIC_4_Handler -EIC_5_Handler -EIC_6_Handler -EIC_7_Handler -EIC_8_Handler -EIC_9_Handler -EIC_10_Handler -EIC_11_Handler -EIC_12_Handler -EIC_13_Handler -EIC_14_Handler -EIC_15_Handler -FREQM_Handler -NVMCTRL_0_Handler -NVMCTRL_1_Handler -DMAC_0_Handler -DMAC_1_Handler -DMAC_2_Handler -DMAC_3_Handler -DMAC_4_Handler -EVSYS_0_Handler -EVSYS_1_Handler -EVSYS_2_Handler -EVSYS_3_Handler -EVSYS_4_Handler -PAC_Handler -TAL_0_Handler -TAL_1_Handler -RAMECC_Handler -SERCOM0_0_Handler -SERCOM0_1_Handler -SERCOM0_2_Handler -SERCOM0_3_Handler -SERCOM1_0_Handler -SERCOM1_1_Handler -SERCOM1_2_Handler -SERCOM1_3_Handler -SERCOM2_0_Handler -SERCOM2_1_Handler -SERCOM2_2_Handler -SERCOM2_3_Handler -SERCOM3_0_Handler -SERCOM3_1_Handler -SERCOM3_2_Handler -SERCOM3_3_Handler -SERCOM4_0_Handler -SERCOM4_1_Handler -SERCOM4_2_Handler -SERCOM4_3_Handler -SERCOM5_0_Handler -SERCOM5_1_Handler -SERCOM5_2_Handler -SERCOM5_3_Handler -SERCOM6_0_Handler -SERCOM6_1_Handler -SERCOM6_2_Handler -SERCOM6_3_Handler -SERCOM7_0_Handler -SERCOM7_1_Handler -SERCOM7_2_Handler -SERCOM7_3_Handler -CAN0_Handler -CAN1_Handler -USB_0_Handler -USB_1_Handler -USB_2_Handler -USB_3_Handler -GMAC_Handler -TCC0_0_Handler -TCC0_1_Handler -TCC0_2_Handler -TCC0_3_Handler -TCC0_4_Handler -TCC0_5_Handler -TCC0_6_Handler -TCC1_0_Handler -TCC1_1_Handler -TCC1_2_Handler -TCC1_3_Handler -TCC1_4_Handler -TCC2_0_Handler -TCC2_1_Handler -TCC2_2_Handler -TCC2_3_Handler -TCC3_0_Handler -TCC3_1_Handler -TCC3_2_Handler -TCC4_0_Handler -TCC4_1_Handler -TCC4_2_Handler -TC0_Handler -TC1_Handler -TC2_Handler -TC3_Handler -TC4_Handler -TC5_Handler -TC6_Handler -TC7_Handler -PDEC_0_Handler -PDEC_1_Handler -PDEC_2_Handler -ADC0_0_Handler -ADC0_1_Handler -ADC1_0_Handler -ADC1_1_Handler -AC_Handler -DAC_0_Handler -DAC_1_Handler -DAC_2_Handler -DAC_3_Handler -DAC_4_Handler -I2S_Handler -PCC_Handler -AES_Handler -TRNG_Handler -ICM_Handler -PUKCC_Handler -QSPI_Handler -SDHC0_Handler -SDHC1_Handler - B . - ENDP - - - ALIGN - - -; User Initial Stack & Heap - - IF :DEF:__MICROLIB - - EXPORT __initial_sp - EXPORT __heap_base - EXPORT __heap_limit - - ELSE - - IMPORT __use_two_region_memory - EXPORT __user_initial_stackheap -__user_initial_stackheap - - LDR R0, = Heap_Mem - LDR R1, =(Stack_Mem + Stack_Size) - LDR R2, = (Heap_Mem + Heap_Size) - LDR R3, = Stack_Mem - BX LR - - ALIGN - - ENDIF - - - END diff --git a/sysmoOCTSIM/armcc/arm_addon/armcc/system_same54.c b/sysmoOCTSIM/armcc/arm_addon/armcc/system_same54.c deleted file mode 100644 index 95d3036..0000000 --- a/sysmoOCTSIM/armcc/arm_addon/armcc/system_same54.c +++ /dev/null @@ -1,70 +0,0 @@ -/** - * \file - * - * \brief Low-level initialization functions called upon chip startup. - * - * Copyright (c) 2016 Atmel Corporation, - * a wholly owned subsidiary of Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - -#include "same54.h" - -/** - * Initial system clock frequency. The System RC Oscillator (RCSYS) provides - * the source for the main clock at chip startup. - */ -#define __SYSTEM_CLOCK (48000000) - -uint32_t SystemCoreClock = __SYSTEM_CLOCK; /*!< System Clock Frequency (Core Clock)*/ - -/** - * Initialize the system - * - * @brief Setup the microcontroller system. - * Initialize the System and update the SystemCoreClock variable. - */ -void SystemInit(void) -{ -#if __FPU_USED - /* Enable FPU */ - SCB->CPACR |= (0xFu << 20); - __DSB(); - __ISB(); -#endif - - // Keep the default device state after reset - SystemCoreClock = __SYSTEM_CLOCK; - return; -} - -/** - * Update SystemCoreClock variable - * - * @brief Updates the SystemCoreClock with current core Clock - * retrieved from cpu registers. - */ -void SystemCoreClockUpdate(void) -{ - // Not implemented - SystemCoreClock = __SYSTEM_CLOCK; - return; -} diff --git a/sysmoOCTSIM/gcc/Makefile b/sysmoOCTSIM/gcc/Makefile index aeae7a5..57ec70c 100644 --- a/sysmoOCTSIM/gcc/Makefile +++ b/sysmoOCTSIM/gcc/Makefile @@ -80,7 +80,7 @@ hal/src/hal_cache.o \ hpl/cmcc/hpl_cmcc.o \ atmel_start.o \ -usb_cdc_echo_main.o \ +main.o \ usb/device/usbdc.o \ hal/src/hal_atomic.o @@ -117,7 +117,7 @@ "hal/src/hal_cache.o" \ "hpl/cmcc/hpl_cmcc.o" \ "atmel_start.o" \ -"usb_cdc_echo_main.o" \ +"main.o" \ "usb/device/usbdc.o" \ "hal/src/hal_atomic.o" @@ -146,7 +146,7 @@ "hpl/dmac/hpl_dmac.d" \ "hal/src/hal_init.d" \ "hal/src/hal_usart_sync.d" \ -"usb_cdc_echo_main.d" \ +"main.d" \ "hpl/mclk/hpl_mclk.d" \ "driver_init.d" \ "hpl/osc32kctrl/hpl_osc32kctrl.d" \ @@ -244,4 +244,4 @@ rm -f $(DEPS_AS_ARGS) rm -f $(OUTPUT_FILE_NAME).a $(OUTPUT_FILE_NAME).hex $(OUTPUT_FILE_NAME).bin \ $(OUTPUT_FILE_NAME).lss $(OUTPUT_FILE_NAME).eep $(OUTPUT_FILE_NAME).map \ - $(OUTPUT_FILE_NAME).srec \ No newline at end of file + $(OUTPUT_FILE_NAME).srec diff --git a/sysmoOCTSIM/usb_cdc_echo_main.c b/sysmoOCTSIM/main.c similarity index 100% rename from sysmoOCTSIM/usb_cdc_echo_main.c rename to sysmoOCTSIM/main.c -- To view, visit https://gerrit.osmocom.org/12802 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib6ec525885943afba9b24df88a5bee8009df95b5 Gerrit-Change-Number: 12802 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 15:28:30 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 15:28:30 +0000 Subject: Change in osmo-ccid-firmware[master]: add SERCOM HAL Async library In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12803 ) Change subject: add SERCOM HAL Async library ...................................................................... add SERCOM HAL Async library Change-Id: I530a5bc5ee7e89149eb251bda0adf7963733d2ee --- M sysmoOCTSIM/AtmelStart.gpdsc M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/driver_init.c M sysmoOCTSIM/driver_init.h M sysmoOCTSIM/examples/driver_examples.c M sysmoOCTSIM/gcc/Makefile A sysmoOCTSIM/hal/documentation/usart_async.rst A sysmoOCTSIM/hal/include/hal_usart_async.h A sysmoOCTSIM/hal/src/hal_usart_async.c A sysmoOCTSIM/hal/utils/include/utils_ringbuffer.h A sysmoOCTSIM/hal/utils/src/utils_ringbuffer.c M sysmoOCTSIM/hpl/sercom/hpl_sercom.c 12 files changed, 1,207 insertions(+), 30 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sysmoOCTSIM/AtmelStart.gpdsc b/sysmoOCTSIM/AtmelStart.gpdsc index 44b5c62..ebb4d1e 100644 --- a/sysmoOCTSIM/AtmelStart.gpdsc +++ b/sysmoOCTSIM/AtmelStart.gpdsc @@ -42,7 +42,7 @@ Atmel Start Framework #define ATMEL_START - + @@ -94,9 +94,11 @@ + + @@ -165,12 +167,12 @@ - + - + diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index cb7826a..af87e97 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -959,9 +959,9 @@ domain_group: null UART_debug: user_label: UART_debug - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::SERCOM2::driver_config_definition::UART::HAL:Driver:USART.Sync + definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::SERCOM2::driver_config_definition::UART::HAL:Driver:USART.Async functionality: USART - api: HAL:Driver:USART_Sync + api: HAL:Driver:USART_Async configuration: usart_advanced: false usart_arch_clock_mode: USART with internal clock diff --git a/sysmoOCTSIM/driver_init.c b/sysmoOCTSIM/driver_init.c index 72f2c88..efd24bc 100644 --- a/sysmoOCTSIM/driver_init.c +++ b/sysmoOCTSIM/driver_init.c @@ -11,9 +11,33 @@ #include #include -struct usart_sync_descriptor UART_debug; +/*! The buffer size for USART */ +#define UART_DEBUG_BUFFER_SIZE 16 -void UART_debug_PORT_init(void) +struct usart_async_descriptor UART_debug; + +static uint8_t UART_debug_buffer[UART_DEBUG_BUFFER_SIZE]; + +/** + * \brief USART Clock initialization function + * + * Enables register interface and peripheral clock + */ +void UART_debug_CLOCK_init() +{ + + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM2_GCLK_ID_CORE, CONF_GCLK_SERCOM2_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM2_GCLK_ID_SLOW, CONF_GCLK_SERCOM2_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + + hri_mclk_set_APBBMASK_SERCOM2_bit(MCLK); +} + +/** + * \brief USART pinmux initialization function + * + * Set each required pin to USART functionality + */ +void UART_debug_PORT_init() { gpio_set_pin_function(PB25, PINMUX_PB25D_SERCOM2_PAD0); @@ -21,18 +45,15 @@ gpio_set_pin_function(PB24, PINMUX_PB24D_SERCOM2_PAD1); } -void UART_debug_CLOCK_init(void) -{ - hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM2_GCLK_ID_CORE, CONF_GCLK_SERCOM2_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); - hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM2_GCLK_ID_SLOW, CONF_GCLK_SERCOM2_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); - - hri_mclk_set_APBBMASK_SERCOM2_bit(MCLK); -} - +/** + * \brief USART initialization function + * + * Enables USART peripheral, clocks and initializes USART driver + */ void UART_debug_init(void) { UART_debug_CLOCK_init(); - usart_sync_init(&UART_debug, SERCOM2, (void *)NULL); + usart_async_init(&UART_debug, SERCOM2, UART_debug_buffer, UART_DEBUG_BUFFER_SIZE, (void *)NULL); UART_debug_PORT_init(); } diff --git a/sysmoOCTSIM/driver_init.h b/sysmoOCTSIM/driver_init.h index 7067684..25e6370 100644 --- a/sysmoOCTSIM/driver_init.h +++ b/sysmoOCTSIM/driver_init.h @@ -21,11 +21,11 @@ #include #include -#include +#include #include "hal_usb_device.h" -extern struct usart_sync_descriptor UART_debug; +extern struct usart_async_descriptor UART_debug; void UART_debug_PORT_init(void); void UART_debug_CLOCK_init(void); diff --git a/sysmoOCTSIM/examples/driver_examples.c b/sysmoOCTSIM/examples/driver_examples.c index 56247ff..8384c87 100644 --- a/sysmoOCTSIM/examples/driver_examples.c +++ b/sysmoOCTSIM/examples/driver_examples.c @@ -12,12 +12,29 @@ /** * Example of using UART_debug to write "Hello World" using the IO abstraction. + * + * Since the driver is asynchronous we need to use statically allocated memory for string + * because driver initiates transfer and then returns before the transmission is completed. + * + * Once transfer has been completed the tx_cb function will be called. */ + +static uint8_t example_UART_debug[12] = "Hello World!"; + +static void tx_cb_UART_debug(const struct usart_async_descriptor *const io_descr) +{ + /* Transfer completed */ +} + void UART_debug_example(void) { struct io_descriptor *io; - usart_sync_get_io_descriptor(&UART_debug, &io); - usart_sync_enable(&UART_debug); - io_write(io, (uint8_t *)"Hello World!", 12); + usart_async_register_callback(&UART_debug, USART_ASYNC_TXC_CB, tx_cb_UART_debug); + /*usart_async_register_callback(&UART_debug, USART_ASYNC_RXC_CB, rx_cb); + usart_async_register_callback(&UART_debug, USART_ASYNC_ERROR_CB, err_cb);*/ + usart_async_get_io_descriptor(&UART_debug, &io); + usart_async_enable(&UART_debug); + + io_write(io, example_UART_debug, 12); } diff --git a/sysmoOCTSIM/gcc/Makefile b/sysmoOCTSIM/gcc/Makefile index 57ec70c..ff11dd9 100644 --- a/sysmoOCTSIM/gcc/Makefile +++ b/sysmoOCTSIM/gcc/Makefile @@ -52,7 +52,7 @@ hpl/core/hpl_core_m4.o \ usb/class/cdc/device/cdcdf_acm.o \ hal/utils/src/utils_syscalls.o \ -hpl/dmac/hpl_dmac.o \ +usb_start.o \ gcc/system_same54.o \ hpl/usb/hpl_usb.o \ hal/src/hal_delay.o \ @@ -61,9 +61,8 @@ hpl/gclk/hpl_gclk.o \ hal/utils/src/utils_list.o \ hal/utils/src/utils_assert.o \ -usb_start.o \ +hpl/dmac/hpl_dmac.o \ hpl/oscctrl/hpl_oscctrl.o \ -hal/src/hal_usart_sync.o \ hpl/mclk/hpl_mclk.o \ hpl/ramecc/hpl_ramecc.o \ usb/usb_protocol.o \ @@ -73,7 +72,9 @@ hpl/osc32kctrl/hpl_osc32kctrl.o \ examples/driver_examples.o \ driver_init.o \ +hal/src/hal_usart_async.o \ hpl/sercom/hpl_sercom.o \ +hal/utils/src/utils_ringbuffer.o \ hal/src/hal_gpio.o \ hal/utils/src/utils_event.o \ hal/src/hal_sleep.o \ @@ -89,7 +90,7 @@ "hpl/core/hpl_core_m4.o" \ "usb/class/cdc/device/cdcdf_acm.o" \ "hal/utils/src/utils_syscalls.o" \ -"hpl/dmac/hpl_dmac.o" \ +"usb_start.o" \ "gcc/system_same54.o" \ "hpl/usb/hpl_usb.o" \ "hal/src/hal_delay.o" \ @@ -98,9 +99,8 @@ "hpl/gclk/hpl_gclk.o" \ "hal/utils/src/utils_list.o" \ "hal/utils/src/utils_assert.o" \ -"usb_start.o" \ +"hpl/dmac/hpl_dmac.o" \ "hpl/oscctrl/hpl_oscctrl.o" \ -"hal/src/hal_usart_sync.o" \ "hpl/mclk/hpl_mclk.o" \ "hpl/ramecc/hpl_ramecc.o" \ "usb/usb_protocol.o" \ @@ -110,7 +110,9 @@ "hpl/osc32kctrl/hpl_osc32kctrl.o" \ "examples/driver_examples.o" \ "driver_init.o" \ +"hal/src/hal_usart_async.o" \ "hpl/sercom/hpl_sercom.o" \ +"hal/utils/src/utils_ringbuffer.o" \ "hal/src/hal_gpio.o" \ "hal/utils/src/utils_event.o" \ "hal/src/hal_sleep.o" \ @@ -135,7 +137,7 @@ "hpl/usb/hpl_usb.d" \ "hal/utils/src/utils_list.d" \ "hpl/cmcc/hpl_cmcc.d" \ -"usb_start.d" \ +"hpl/dmac/hpl_dmac.d" \ "hal/utils/src/utils_assert.d" \ "hal/src/hal_delay.d" \ "hpl/core/hpl_init.d" \ @@ -143,16 +145,17 @@ "usb/usb_protocol.d" \ "hpl/gclk/hpl_gclk.d" \ "hal/src/hal_usb_device.d" \ -"hpl/dmac/hpl_dmac.d" \ +"usb_start.d" \ "hal/src/hal_init.d" \ -"hal/src/hal_usart_sync.d" \ "main.d" \ "hpl/mclk/hpl_mclk.d" \ "driver_init.d" \ +"hal/src/hal_usart_async.d" \ "hpl/osc32kctrl/hpl_osc32kctrl.d" \ "examples/driver_examples.d" \ "hal/src/hal_cache.d" \ "hal/src/hal_sleep.d" \ +"hal/utils/src/utils_ringbuffer.d" \ "hpl/sercom/hpl_sercom.d" \ "hal/src/hal_gpio.d" \ "hal/src/hal_atomic.d" \ diff --git a/sysmoOCTSIM/hal/documentation/usart_async.rst b/sysmoOCTSIM/hal/documentation/usart_async.rst new file mode 100644 index 0000000..6bf4a23 --- /dev/null +++ b/sysmoOCTSIM/hal/documentation/usart_async.rst @@ -0,0 +1,72 @@ +The USART Asynchronous Driver +============================= + +The universal synchronous and asynchronous receiver and transmitter +(USART) is usually used to transfer data from one device to the other. + +The USART driver use a ring buffer to store received data. When the USART +raise the data received interrupt, this data will be stored in the ring buffer +at the next free location. When the ring buffer is full, the next reception +will overwrite the oldest data stored in the ring buffer. There is one +USART_BUFFER_SIZE macro per used hardware instance, e.g. for SERCOM0 the macro +is called SERCOM0_USART_BUFFER_SIZE. + +On the other hand, when sending data over USART, the data is not copied to an +internal buffer, but the data buffer supplied by the user is used. The callback +will only be generated at the end of the buffer and not for each byte. + +User can set action for flow control pins by function usart_set_flow_control, +if the flow control is enabled. All the available states are defined in union +usart_flow_control_state. + +Note that user can set state of flow control pins only if automatic support of +the flow control is not supported by the hardware. + +Features +-------- + +* Initialization/de-initialization +* Enabling/disabling +* Control of the following settings: + + * Baudrate + * UART or USRT communication mode + * Character size + * Data order + * Flow control +* Data transfer: transmission, reception +* Notifications about transfer done or error case via callbacks +* Status information with busy state and transfer count + +Applications +------------ + +They are commonly used in a terminal application or low-speed communication +between devices. + +Dependencies +------------ + +USART capable hardware, with interrupt on each character is sent or +received. + +Concurrency +----------- + +Write buffer should not be changed while data is being sent. + + +Limitations +----------- + +* The driver does not support 9-bit character size. +* The "USART with ISO7816" mode can be only used in ISO7816 capable devices. + And the SCK pin can't be set directly. Application can use a GCLK output PIN + to generate SCK. For example to communicate with a SMARTCARD with ISO7816 + (F = 372 ; D = 1), and baudrate=9600, the SCK pin output frequency should be + config as 372*9600=3571200Hz. More information can be refer to ISO7816 Specification. + +Known issues and workarounds +---------------------------- + +N/A diff --git a/sysmoOCTSIM/hal/include/hal_usart_async.h b/sysmoOCTSIM/hal/include/hal_usart_async.h new file mode 100644 index 0000000..3a6de39 --- /dev/null +++ b/sysmoOCTSIM/hal/include/hal_usart_async.h @@ -0,0 +1,339 @@ +/** + * \file + * + * \brief USART related functionality declaration. + * + * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries. + * + * \asf_license_start + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip + * software and any derivatives exclusively with Microchip products. + * It is your responsibility to comply with third party license terms applicable + * to your use of third party software (including open source software) that + * may accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, + * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, + * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE + * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL + * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE + * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE + * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT + * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY + * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, + * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + * + * \asf_license_stop + * + */ + +#ifndef _HAL_USART_ASYNC_H_INCLUDED +#define _HAL_USART_ASYNC_H_INCLUDED + +#include "hal_io.h" +#include +#include + +/** + * \addtogroup doc_driver_hal_usart_async + * + * @{ + */ + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \brief USART descriptor + * + * The USART descriptor forward declaration. + */ +struct usart_async_descriptor; + +/** + * \brief USART callback type + */ +typedef void (*usart_cb_t)(const struct usart_async_descriptor *const descr); + +/** + * \brief USART callback types + */ +enum usart_async_callback_type { USART_ASYNC_RXC_CB, USART_ASYNC_TXC_CB, USART_ASYNC_ERROR_CB }; + +/** + * \brief USART callbacks + */ +struct usart_async_callbacks { + usart_cb_t tx_done; + usart_cb_t rx_done; + usart_cb_t error; +}; + +/** \brief USART status + * Status descriptor holds the current status of transfer. + */ +struct usart_async_status { + /** Status flags */ + uint32_t flags; + /** Number of characters transmitted */ + uint16_t txcnt; + /** Number of characters receviced */ + uint16_t rxcnt; +}; + +/** + * \brief Asynchronous USART descriptor structure + */ +struct usart_async_descriptor { + struct io_descriptor io; + struct _usart_async_device device; + struct usart_async_callbacks usart_cb; + uint32_t stat; + + struct ringbuffer rx; + uint16_t tx_por; + uint8_t * tx_buffer; + uint16_t tx_buffer_length; +}; + +/** USART write busy */ +#define USART_ASYNC_STATUS_BUSY 0x0001 + +/** + * \brief Initialize USART interface + * + * This function initializes the given I/O descriptor to be used as USART + * interface descriptor. + * It checks if the given hardware is not initialized and if the given hardware + * is permitted to be initialized. + * + * \param[out] descr A USART descriptor which is used to communicate via the USART + * \param[in] hw The pointer to the hardware instance + * \param[in] rx_buffer An RX buffer + * \param[in] rx_buffer_length The length of the buffer above + * \param[in] func The pointer to a set of function pointers + * + * \return Initialization status. + * \retval -1 Passed parameters were invalid or the interface is already + * initialized + * \retval 0 The initialization is completed successfully + */ +int32_t usart_async_init(struct usart_async_descriptor *const descr, void *const hw, uint8_t *const rx_buffer, + const uint16_t rx_buffer_length, void *const func); + +/** + * \brief Deinitialize USART interface + * + * This function deinitializes the given I/O descriptor. + * It checks if the given hardware is initialized and if the given hardware + * is permitted to be deinitialized. + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * + * \return De-initialization status. + */ +int32_t usart_async_deinit(struct usart_async_descriptor *const descr); + +/** + * \brief Enable USART interface + * + * Enables the USART interface + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * + * \return Enabling status. + */ +int32_t usart_async_enable(struct usart_async_descriptor *const descr); + +/** + * \brief Disable USART interface + * + * Disables the USART interface + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * + * \return Disabling status. + */ +int32_t usart_async_disable(struct usart_async_descriptor *const descr); + +/** + * \brief Retrieve I/O descriptor + * + * This function retrieves the I/O descriptor of the given USART descriptor. + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * \param[out] io An I/O descriptor to retrieve + * + * \return The status of I/O descriptor retrieving. + */ +int32_t usart_async_get_io_descriptor(struct usart_async_descriptor *const descr, struct io_descriptor **io); + +/** + * \brief Register USART callback + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * \param[in] type Callback type + * \param[in] cb A callback function + * + * \return The status of callback assignment. + * \retval -1 Passed parameters were invalid or the interface is not initialized + * \retval 0 A callback is registered successfully + */ +int32_t usart_async_register_callback(struct usart_async_descriptor *const descr, + const enum usart_async_callback_type type, usart_cb_t cb); + +/** + * \brief Specify action for flow control pins + * + * This function sets action (or state) for flow control pins if + * the flow control is enabled. + * It sets state of flow control pins only if automatic support of + * the flow control is not supported by the hardware. + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * \param[in] state A state to set the flow control pins + * + * \return The status of flow control action setup. + */ +int32_t usart_async_set_flow_control(struct usart_async_descriptor *const descr, + const union usart_flow_control_state state); + +/** + * \brief Set USART baud rate + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * \param[in] baud_rate A baud rate to set + * + * \return The status of baud rate setting. + */ +int32_t usart_async_set_baud_rate(struct usart_async_descriptor *const descr, const uint32_t baud_rate); + +/** + * \brief Set USART data order + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * \param[in] data_order A data order to set + * + * \return The status of data order setting. + */ +int32_t usart_async_set_data_order(struct usart_async_descriptor *const descr, const enum usart_data_order data_order); + +/** + * \brief Set USART mode + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * \param[in] mode A mode to set + * + * \return The status of mode setting. + */ +int32_t usart_async_set_mode(struct usart_async_descriptor *const descr, const enum usart_mode mode); + +/** + * \brief Set USART parity + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * \param[in] parity A parity to set + * + * \return The status of parity setting. + */ +int32_t usart_async_set_parity(struct usart_async_descriptor *const descr, const enum usart_parity parity); + +/** + * \brief Set USART stop bits + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * \param[in] stop_bits Stop bits to set + * + * \return The status of stop bits setting. + */ +int32_t usart_async_set_stopbits(struct usart_async_descriptor *const descr, const enum usart_stop_bits stop_bits); + +/** + * \brief Set USART character size + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * \param[in] size A character size to set + * + * \return The status of character size setting. + */ +int32_t usart_async_set_character_size(struct usart_async_descriptor *const descr, + const enum usart_character_size size); + +/** + * \brief Retrieve the state of flow control pins + * + * This function retrieves the flow control pins + * if the flow control is enabled. + * + * The function can return USART_FLOW_CONTROL_STATE_UNAVAILABLE in case + * if the flow control is done by the hardware + * and the pins state cannot be read out. + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * \param[out] state The state of flow control pins + * + * \return The status of flow control state reading. + */ +int32_t usart_async_flow_control_status(const struct usart_async_descriptor *const descr, + union usart_flow_control_state *const state); + +/** + * \brief Check if the USART transmitter is empty + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * + * \return The status of USART TX empty checking. + * \retval 0 The USART transmitter is not empty + * \retval 1 The USART transmitter is empty + */ +int32_t usart_async_is_tx_empty(const struct usart_async_descriptor *const descr); + +/** + * \brief Check if the USART receiver is not empty + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * + * \return The status of the USART RX empty checking. + * \retval 1 The USART receiver is not empty + * \retval 0 The USART receiver is empty + */ +int32_t usart_async_is_rx_not_empty(const struct usart_async_descriptor *const descr); + +/** + * \brief Retrieve the current interface status + * + * \param[in] descr A USART descriptor which is used to communicate via USART + * \param[out] status The state of USART + * + * \return The status of USART status retrieving. + */ +int32_t usart_async_get_status(struct usart_async_descriptor *const descr, struct usart_async_status *const status); + +/** + * \brief flush USART ringbuf + * + * This function flush USART RX ringbuf. + * + * \param[in] descr The pointer to USART descriptor + * + * \return ERR_NONE + */ +int32_t usart_async_flush_rx_buffer(struct usart_async_descriptor *const descr); + +/** + * \brief Retrieve the current driver version + * + * \return Current driver version. + */ +uint32_t usart_async_get_version(void); + +#ifdef __cplusplus +} +#endif +/**@}*/ +#endif /* _HAL_USART_ASYNC_H_INCLUDED */ diff --git a/sysmoOCTSIM/hal/src/hal_usart_async.c b/sysmoOCTSIM/hal/src/hal_usart_async.c new file mode 100644 index 0000000..f07b266 --- /dev/null +++ b/sysmoOCTSIM/hal/src/hal_usart_async.c @@ -0,0 +1,420 @@ +/** + * \file + * + * \brief I/O USART related functionality implementation. + * + * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries. + * + * \asf_license_start + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip + * software and any derivatives exclusively with Microchip products. + * It is your responsibility to comply with third party license terms applicable + * to your use of third party software (including open source software) that + * may accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, + * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, + * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE + * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL + * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE + * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE + * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT + * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY + * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, + * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + * + * \asf_license_stop + * + */ + +#include "hal_usart_async.h" +#include +#include +#include + +/** + * \brief Driver version + */ +#define DRIVER_VERSION 0x00000001u + +static int32_t usart_async_write(struct io_descriptor *const io_descr, const uint8_t *const buf, const uint16_t length); +static int32_t usart_async_read(struct io_descriptor *const io_descr, uint8_t *const buf, const uint16_t length); +static void usart_process_byte_sent(struct _usart_async_device *device); +static void usart_transmission_complete(struct _usart_async_device *device); +static void usart_error(struct _usart_async_device *device); +static void usart_fill_rx_buffer(struct _usart_async_device *device, uint8_t data); + +/** + * \brief Initialize usart interface + */ +int32_t usart_async_init(struct usart_async_descriptor *const descr, void *const hw, uint8_t *rx_buffer, + uint16_t rx_buffer_length, void *const func) +{ + int32_t init_status; + ASSERT(descr && hw && rx_buffer && rx_buffer_length); + + if (ERR_NONE != ringbuffer_init(&descr->rx, rx_buffer, rx_buffer_length)) { + return ERR_INVALID_ARG; + } + init_status = _usart_async_init(&descr->device, hw); + if (init_status) { + return init_status; + } + + descr->io.read = usart_async_read; + descr->io.write = usart_async_write; + + descr->device.usart_cb.tx_byte_sent = usart_process_byte_sent; + descr->device.usart_cb.rx_done_cb = usart_fill_rx_buffer; + descr->device.usart_cb.tx_done_cb = usart_transmission_complete; + descr->device.usart_cb.error_cb = usart_error; + + return ERR_NONE; +} + +/** + * \brief Deinitialize usart interface + */ +int32_t usart_async_deinit(struct usart_async_descriptor *const descr) +{ + ASSERT(descr); + _usart_async_deinit(&descr->device); + descr->io.read = NULL; + descr->io.write = NULL; + + return ERR_NONE; +} + +/** + * \brief Enable usart interface + */ +int32_t usart_async_enable(struct usart_async_descriptor *const descr) +{ + ASSERT(descr); + _usart_async_enable(&descr->device); + + return ERR_NONE; +} + +/** + * \brief Disable usart interface + */ +int32_t usart_async_disable(struct usart_async_descriptor *const descr) +{ + ASSERT(descr); + _usart_async_disable(&descr->device); + + return ERR_NONE; +} + +/** + * \brief Retrieve I/O descriptor + */ +int32_t usart_async_get_io_descriptor(struct usart_async_descriptor *const descr, struct io_descriptor **io) +{ + ASSERT(descr && io); + + *io = &descr->io; + return ERR_NONE; +} + +/** + * \brief Register usart callback + */ +int32_t usart_async_register_callback(struct usart_async_descriptor *const descr, + const enum usart_async_callback_type type, usart_cb_t cb) +{ + ASSERT(descr); + + switch (type) { + case USART_ASYNC_RXC_CB: + descr->usart_cb.rx_done = cb; + _usart_async_set_irq_state(&descr->device, USART_ASYNC_RX_DONE, NULL != cb); + break; + case USART_ASYNC_TXC_CB: + descr->usart_cb.tx_done = cb; + _usart_async_set_irq_state(&descr->device, USART_ASYNC_TX_DONE, NULL != cb); + break; + case USART_ASYNC_ERROR_CB: + descr->usart_cb.error = cb; + _usart_async_set_irq_state(&descr->device, USART_ASYNC_ERROR, NULL != cb); + break; + default: + return ERR_INVALID_ARG; + } + + return ERR_NONE; +} + +/** + * \brief Specify action for flow control pins + */ +int32_t usart_async_set_flow_control(struct usart_async_descriptor *const descr, + const union usart_flow_control_state state) +{ + ASSERT(descr); + _usart_async_set_flow_control_state(&descr->device, state); + + return ERR_NONE; +} + +/** + * \brief Set usart baud rate + */ +int32_t usart_async_set_baud_rate(struct usart_async_descriptor *const descr, const uint32_t baud_rate) +{ + ASSERT(descr); + _usart_async_set_baud_rate(&descr->device, baud_rate); + + return ERR_NONE; +} + +/** + * \brief Set usart data order + */ +int32_t usart_async_set_data_order(struct usart_async_descriptor *const descr, const enum usart_data_order data_order) +{ + ASSERT(descr); + _usart_async_set_data_order(&descr->device, data_order); + + return ERR_NONE; +} + +/** + * \brief Set usart mode + */ +int32_t usart_async_set_mode(struct usart_async_descriptor *const descr, const enum usart_mode mode) +{ + ASSERT(descr); + _usart_async_set_mode(&descr->device, mode); + + return ERR_NONE; +} + +/** + * \brief Set usart parity + */ +int32_t usart_async_set_parity(struct usart_async_descriptor *const descr, const enum usart_parity parity) +{ + ASSERT(descr); + _usart_async_set_parity(&descr->device, parity); + + return ERR_NONE; +} + +/** + * \brief Set usart stop bits + */ +int32_t usart_async_set_stopbits(struct usart_async_descriptor *const descr, const enum usart_stop_bits stop_bits) +{ + ASSERT(descr); + _usart_async_set_stop_bits(&descr->device, stop_bits); + + return ERR_NONE; +} + +/** + * \brief Set usart character size + */ +int32_t usart_async_set_character_size(struct usart_async_descriptor *const descr, const enum usart_character_size size) +{ + ASSERT(descr); + _usart_async_set_character_size(&descr->device, size); + + return ERR_NONE; +} + +/** + * \brief Retrieve the state of flow control pins + */ +int32_t usart_async_flow_control_status(const struct usart_async_descriptor *const descr, + union usart_flow_control_state *const state) +{ + ASSERT(descr && state); + *state = _usart_async_get_flow_control_state(&descr->device); + + return ERR_NONE; +} + +/** + * \brief Check if the usart transmitter is empty + */ +int32_t usart_async_is_tx_empty(const struct usart_async_descriptor *const descr) +{ + ASSERT(descr); + return _usart_async_is_byte_sent(&descr->device); +} + +/** + * \brief Check if the usart receiver is not empty + */ +int32_t usart_async_is_rx_not_empty(const struct usart_async_descriptor *const descr) +{ + ASSERT(descr); + + return ringbuffer_num(&descr->rx) > 0; +} + +/** + * \brief Retrieve the current interface status + */ +int32_t usart_async_get_status(struct usart_async_descriptor *const descr, struct usart_async_status *const status) +{ + ASSERT(descr); + + volatile uint32_t *tmp_stat = &(descr->stat); + volatile uint16_t *tmp_txcnt = &(descr->tx_por); + + if (status) { + status->flags = *tmp_stat; + status->txcnt = *tmp_txcnt; + status->rxcnt = ringbuffer_num(&descr->rx); + } + if (*tmp_stat & USART_ASYNC_STATUS_BUSY) { + return ERR_BUSY; + } + + return ERR_NONE; +} + +/** + * \brief flush usart rx ringbuf + */ +int32_t usart_async_flush_rx_buffer(struct usart_async_descriptor *const descr) +{ + ASSERT(descr); + + return ringbuffer_flush(&descr->rx); +} + +/** + * \brief Retrieve the current driver version + */ +uint32_t usart_async_get_version(void) +{ + return DRIVER_VERSION; +} + +/* + * \internal Write the given data to usart interface + * + * \param[in] descr The pointer to an io descriptor + * \param[in] buf Data to write to usart + * \param[in] length The number of bytes to write + * + * \return The number of bytes written. + */ +static int32_t usart_async_write(struct io_descriptor *const io_descr, const uint8_t *const buf, const uint16_t length) +{ + struct usart_async_descriptor *descr = CONTAINER_OF(io_descr, struct usart_async_descriptor, io); + + ASSERT(descr && buf && length); + + if (descr->tx_por != descr->tx_buffer_length) { + return ERR_NO_RESOURCE; + } + descr->tx_buffer = (uint8_t *)buf; + descr->tx_buffer_length = length; + descr->tx_por = 0; + descr->stat = USART_ASYNC_STATUS_BUSY; + _usart_async_enable_byte_sent_irq(&descr->device); + + return (int32_t)length; +} + +/* + * \internal Read data from usart interface + * + * \param[in] descr The pointer to an io descriptor + * \param[in] buf A buffer to read data to + * \param[in] length The size of a buffer + * + * \return The number of bytes read. + */ +static int32_t usart_async_read(struct io_descriptor *const io_descr, uint8_t *const buf, const uint16_t length) +{ + uint16_t was_read = 0; + uint32_t num; + struct usart_async_descriptor *descr = CONTAINER_OF(io_descr, struct usart_async_descriptor, io); + + ASSERT(descr && buf && length); + + CRITICAL_SECTION_ENTER() + num = ringbuffer_num(&descr->rx); + CRITICAL_SECTION_LEAVE() + + while ((was_read < num) && (was_read < length)) { + ringbuffer_get(&descr->rx, &buf[was_read++]); + } + + return (int32_t)was_read; +} + +/** + * \brief Process "byte is sent" interrupt + * + * \param[in] device The pointer to device structure + */ +static void usart_process_byte_sent(struct _usart_async_device *device) +{ + struct usart_async_descriptor *descr = CONTAINER_OF(device, struct usart_async_descriptor, device); + if (descr->tx_por != descr->tx_buffer_length) { + _usart_async_write_byte(&descr->device, descr->tx_buffer[descr->tx_por++]); + _usart_async_enable_byte_sent_irq(&descr->device); + } else { + _usart_async_enable_tx_done_irq(&descr->device); + } +} + +/** + * \brief Process completion of data sending + * + * \param[in] device The pointer to device structure + */ +static void usart_transmission_complete(struct _usart_async_device *device) +{ + struct usart_async_descriptor *descr = CONTAINER_OF(device, struct usart_async_descriptor, device); + + descr->stat = 0; + if (descr->usart_cb.tx_done) { + descr->usart_cb.tx_done(descr); + } +} + +/** + * \brief Process byte reception + * + * \param[in] device The pointer to device structure + * \param[in] data Data read + */ +static void usart_fill_rx_buffer(struct _usart_async_device *device, uint8_t data) +{ + struct usart_async_descriptor *descr = CONTAINER_OF(device, struct usart_async_descriptor, device); + + ringbuffer_put(&descr->rx, data); + + if (descr->usart_cb.rx_done) { + descr->usart_cb.rx_done(descr); + } +} + +/** + * \brief Process error interrupt + * + * \param[in] device The pointer to device structure + */ +static void usart_error(struct _usart_async_device *device) +{ + struct usart_async_descriptor *descr = CONTAINER_OF(device, struct usart_async_descriptor, device); + + descr->stat = 0; + if (descr->usart_cb.error) { + descr->usart_cb.error(descr); + } +} + +//@} diff --git a/sysmoOCTSIM/hal/utils/include/utils_ringbuffer.h b/sysmoOCTSIM/hal/utils/include/utils_ringbuffer.h new file mode 100644 index 0000000..401d557 --- /dev/null +++ b/sysmoOCTSIM/hal/utils/include/utils_ringbuffer.h @@ -0,0 +1,116 @@ +/** + * \file + * + * \brief Ringbuffer declaration. + * + * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries. + * + * \asf_license_start + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip + * software and any derivatives exclusively with Microchip products. + * It is your responsibility to comply with third party license terms applicable + * to your use of third party software (including open source software) that + * may accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, + * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, + * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE + * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL + * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE + * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE + * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT + * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY + * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, + * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + * + * \asf_license_stop + * + */ +#ifndef _UTILS_RINGBUFFER_H_INCLUDED +#define _UTILS_RINGBUFFER_H_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \addtogroup doc_driver_hal_utils_ringbuffer + * + * @{ + */ + +#include "compiler.h" +#include "utils_assert.h" + +/** + * \brief Ring buffer element type + */ +struct ringbuffer { + uint8_t *buf; /** Buffer base address */ + uint32_t size; /** Buffer size */ + uint32_t read_index; /** Buffer read index */ + uint32_t write_index; /** Buffer write index */ +}; + +/** + * \brief Ring buffer init + * + * \param[in] rb The pointer to a ring buffer structure instance + * \param[in] buf Space to store the data + * \param[in] size The buffer length, must be aligned with power of 2 + * + * \return ERR_NONE on success, or an error code on failure. + */ +int32_t ringbuffer_init(struct ringbuffer *const rb, void *buf, uint32_t size); + +/** + * \brief Get one byte from ring buffer, the user needs to handle the concurrent + * access on buffer via put/get/flush + * + * \param[in] rb The pointer to a ring buffer structure instance + * \param[in] data One byte space to store the read data + * + * \return ERR_NONE on success, or an error code on failure. + */ +int32_t ringbuffer_get(struct ringbuffer *const rb, uint8_t *data); + +/** + * \brief Put one byte to ring buffer, the user needs to handle the concurrent access + * on buffer via put/get/flush + * + * \param[in] rb The pointer to a ring buffer structure instance + * \param[in] data One byte data to be put into ring buffer + * + * \return ERR_NONE on success, or an error code on failure. + */ +int32_t ringbuffer_put(struct ringbuffer *const rb, uint8_t data); + +/** + * \brief Return the element number of ring buffer + * + * \param[in] rb The pointer to a ring buffer structure instance + * + * \return The number of elements in ring buffer [0, rb->size] + */ +uint32_t ringbuffer_num(const struct ringbuffer *const rb); + +/** + * \brief Flush ring buffer, the user needs to handle the concurrent access on buffer + * via put/get/flush + * + * \param[in] rb The pointer to a ring buffer structure instance + * + * \return ERR_NONE on success, or an error code on failure. + */ +uint32_t ringbuffer_flush(struct ringbuffer *const rb); + +/**@}*/ + +#ifdef __cplusplus +} +#endif +#endif /* _UTILS_RINGBUFFER_H_INCLUDED */ diff --git a/sysmoOCTSIM/hal/utils/src/utils_ringbuffer.c b/sysmoOCTSIM/hal/utils/src/utils_ringbuffer.c new file mode 100644 index 0000000..45cac83 --- /dev/null +++ b/sysmoOCTSIM/hal/utils/src/utils_ringbuffer.c @@ -0,0 +1,118 @@ +/** + * \file + * + * \brief Ringbuffer functionality implementation. + * + * Copyright (c) 2014-2018 Microchip Technology Inc. and its subsidiaries. + * + * \asf_license_start + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip + * software and any derivatives exclusively with Microchip products. + * It is your responsibility to comply with third party license terms applicable + * to your use of third party software (including open source software) that + * may accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, + * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, + * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE + * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL + * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE + * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE + * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT + * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY + * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, + * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + * + * \asf_license_stop + * + */ +#include "utils_ringbuffer.h" + +/** + * \brief Ringbuffer init + */ +int32_t ringbuffer_init(struct ringbuffer *const rb, void *buf, uint32_t size) +{ + ASSERT(rb && buf && size); + + /* + * buf size must be aligned to power of 2 + */ + if ((size & (size - 1)) != 0) { + return ERR_INVALID_ARG; + } + + /* size - 1 is faster in calculation */ + rb->size = size - 1; + rb->read_index = 0; + rb->write_index = rb->read_index; + rb->buf = (uint8_t *)buf; + + return ERR_NONE; +} + +/** + * \brief Get one byte from ringbuffer + * + */ +int32_t ringbuffer_get(struct ringbuffer *const rb, uint8_t *data) +{ + ASSERT(rb && data); + + if (rb->write_index != rb->read_index) { + *data = rb->buf[rb->read_index & rb->size]; + rb->read_index++; + return ERR_NONE; + } + + return ERR_NOT_FOUND; +} + +/** + * \brief Put one byte to ringbuffer + * + */ +int32_t ringbuffer_put(struct ringbuffer *const rb, uint8_t data) +{ + ASSERT(rb); + + rb->buf[rb->write_index & rb->size] = data; + + /* + * buffer full strategy: new data will overwrite the oldest data in + * the buffer + */ + if ((rb->write_index - rb->read_index) > rb->size) { + rb->read_index = rb->write_index - rb->size; + } + + rb->write_index++; + + return ERR_NONE; +} + +/** + * \brief Return the element number of ringbuffer + */ +uint32_t ringbuffer_num(const struct ringbuffer *const rb) +{ + ASSERT(rb); + + return rb->write_index - rb->read_index; +} + +/** + * \brief Flush ringbuffer + */ +uint32_t ringbuffer_flush(struct ringbuffer *const rb) +{ + ASSERT(rb); + + rb->read_index = rb->write_index; + + return ERR_NONE; +} diff --git a/sysmoOCTSIM/hpl/sercom/hpl_sercom.c b/sysmoOCTSIM/hpl/sercom/hpl_sercom.c index 130f63a..11192d0 100644 --- a/sysmoOCTSIM/hpl/sercom/hpl_sercom.c +++ b/sysmoOCTSIM/hpl/sercom/hpl_sercom.c @@ -163,6 +163,8 @@ }; #endif +static struct _usart_async_device *_sercom2_dev = NULL; + static uint8_t _get_sercom_index(const void *const hw); static uint8_t _sercom_get_irq_num(const void *const hw); static void _sercom_init_irq_param(const void *const hw, void *dev); @@ -563,6 +565,40 @@ } /** + * \internal Sercom interrupt handler + * + * \param[in] p The pointer to interrupt parameter + */ +static void _sercom_usart_interrupt_handler(struct _usart_async_device *device) +{ + void *hw = device->hw; + + if (hri_sercomusart_get_interrupt_DRE_bit(hw) && hri_sercomusart_get_INTEN_DRE_bit(hw)) { + hri_sercomusart_clear_INTEN_DRE_bit(hw); + device->usart_cb.tx_byte_sent(device); + } else if (hri_sercomusart_get_interrupt_TXC_bit(hw) && hri_sercomusart_get_INTEN_TXC_bit(hw)) { + hri_sercomusart_clear_INTEN_TXC_bit(hw); + device->usart_cb.tx_done_cb(device); + } else if (hri_sercomusart_get_interrupt_RXC_bit(hw)) { + if (hri_sercomusart_read_STATUS_reg(hw) + & (SERCOM_USART_STATUS_PERR | SERCOM_USART_STATUS_FERR | SERCOM_USART_STATUS_BUFOVF + | SERCOM_USART_STATUS_ISF | SERCOM_USART_STATUS_COLL)) { + hri_sercomusart_clear_STATUS_reg(hw, SERCOM_USART_STATUS_MASK); + return; + } + + device->usart_cb.rx_done_cb(device, hri_sercomusart_read_DATA_reg(hw)); + } else if (hri_sercomusart_get_interrupt_ERROR_bit(hw)) { + uint32_t status; + + hri_sercomusart_clear_interrupt_ERROR_bit(hw); + device->usart_cb.error_cb(device); + status = hri_sercomusart_read_STATUS_reg(hw); + hri_sercomusart_clear_STATUS_reg(hw, status); + } +} + +/** * \internal Retrieve ordinal number of the given sercom hardware instance * * \param[in] hw The pointer to hardware instance @@ -589,6 +625,10 @@ */ static void _sercom_init_irq_param(const void *const hw, void *dev) { + + if (hw == SERCOM2) { + _sercom2_dev = (struct _usart_async_device *)dev; + } } /** @@ -2349,6 +2389,35 @@ return NULL; } +/** + * \internal Sercom interrupt handler + */ +void SERCOM2_0_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom2_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM2_1_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom2_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM2_2_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom2_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM2_3_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom2_dev); +} + int32_t _spi_m_sync_init(struct _spi_m_sync_dev *dev, void *const hw) { const struct sercomspi_regs_cfg *regs = _spi_get_regs((uint32_t)hw); -- To view, visit https://gerrit.osmocom.org/12803 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I530a5bc5ee7e89149eb251bda0adf7963733d2ee Gerrit-Change-Number: 12803 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 15:28:30 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 15:28:30 +0000 Subject: Change in osmo-ccid-firmware[master]: add system LED definition In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12804 ) Change subject: add system LED definition ...................................................................... add system LED definition Change-Id: I97dc71ac00b64fdd05e0ff4c7e16e1b68b57b695 --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/atmel_start_pins.h M sysmoOCTSIM/driver_init.c 3 files changed, 22 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index af87e97..7492bf6 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -1044,6 +1044,13 @@ configuration: usb_gclk_selection: Generic clock generator 1 pads: + LED_system: + name: PC18 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::pad::PC18 + mode: Digital output + user_label: LED_system + configuration: + pad_initial_level: High PA24: name: PA24 definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::pad::PA24 diff --git a/sysmoOCTSIM/atmel_start_pins.h b/sysmoOCTSIM/atmel_start_pins.h index 3631847..7c774ed 100644 --- a/sysmoOCTSIM/atmel_start_pins.h +++ b/sysmoOCTSIM/atmel_start_pins.h @@ -31,5 +31,6 @@ #define PA25 GPIO(GPIO_PORTA, 25) #define PB24 GPIO(GPIO_PORTB, 24) #define PB25 GPIO(GPIO_PORTB, 25) +#define LED_system GPIO(GPIO_PORTC, 18) #endif // ATMEL_START_PINS_H_INCLUDED diff --git a/sysmoOCTSIM/driver_init.c b/sysmoOCTSIM/driver_init.c index efd24bc..9fbc7ed 100644 --- a/sysmoOCTSIM/driver_init.c +++ b/sysmoOCTSIM/driver_init.c @@ -176,6 +176,20 @@ { init_mcu(); + // GPIO on PC18 + + gpio_set_pin_level(LED_system, + // Initial level + // pad_initial_level + // Low + // High + true); + + // Set pin direction to output + gpio_set_pin_direction(LED_system, GPIO_DIRECTION_OUT); + + gpio_set_pin_function(LED_system, GPIO_PIN_FUNCTION_OFF); + UART_debug_init(); USB_DEVICE_INSTANCE_init(); -- To view, visit https://gerrit.osmocom.org/12804 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I97dc71ac00b64fdd05e0ff4c7e16e1b68b57b695 Gerrit-Change-Number: 12804 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 15:29:07 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 15:29:07 +0000 Subject: Change in osmo-ccid-firmware[master]: blink LED on UART activity In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12805 ) Change subject: blink LED on UART activity ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12805 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib230be6003f28931ab4c60228796ec0af6c783d9 Gerrit-Change-Number: 12805 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Thu, 07 Feb 2019 15:29:07 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 15:29:14 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 15:29:14 +0000 Subject: Change in osmo-ccid-firmware[master]: blink LED on UART activity In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12805 ) Change subject: blink LED on UART activity ...................................................................... blink LED on UART activity Change-Id: Ib230be6003f28931ab4c60228796ec0af6c783d9 --- M sysmoOCTSIM/main.c 1 file changed, 36 insertions(+), 34 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c index fe02810..de954f4 100644 --- a/sysmoOCTSIM/main.c +++ b/sysmoOCTSIM/main.c @@ -1,44 +1,46 @@ -/** - * \file - * - * \brief Application implement - * - * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries. - * - * \asf_license_start - * - * \page License - * - * Subject to your compliance with these terms, you may use Microchip - * software and any derivatives exclusively with Microchip products. - * It is your responsibility to comply with third party license terms applicable - * to your use of third party software (including open source software) that - * may accompany Microchip software. - * - * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, - * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, - * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, - * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE - * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL - * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE - * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE - * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT - * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY - * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, - * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. - * - * \asf_license_stop - * - */ /* - * Support and FAQ: visit Microchip Support - */ + * Copyright (C) 2019 sysmocom -s.f.m.c. GmbH, Author: Kevin Redon + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ #include "atmel_start.h" #include "atmel_start_pins.h" +volatile static uint32_t data_arrived = 0; + +static void tx_cb_UART_debug(const struct usart_async_descriptor *const io_descr) +{ + /* Transfer completed */ + gpio_toggle_pin_level(LED_system); +} + +static void rx_cb_UART_debug(const struct usart_async_descriptor *const io_descr) +{ + /* Receive completed */ + gpio_toggle_pin_level(LED_system); + data_arrived = 1; +} + int main(void) { atmel_start_init(); + + usart_async_register_callback(&UART_debug, USART_ASYNC_TXC_CB, tx_cb_UART_debug); + usart_async_register_callback(&UART_debug, USART_ASYNC_RXC_CB, rx_cb_UART_debug); + usart_async_enable(&UART_debug); + cdcd_acm_example(); } -- To view, visit https://gerrit.osmocom.org/12805 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib230be6003f28931ab4c60228796ec0af6c783d9 Gerrit-Change-Number: 12805 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 15:29:44 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 15:29:44 +0000 Subject: Change in libosmo-netif[master]: Stream client: report reconnection event as INFO In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12854 ) Change subject: Stream client: report reconnection event as INFO ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12854 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic96430a9e9294e72de23b0bbacdbf3e99a453f1d Gerrit-Change-Number: 12854 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 07 Feb 2019 15:29:44 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 15:50:55 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Thu, 7 Feb 2019 15:50:55 +0000 Subject: Change in osmo-ccid-firmware[master]: add GPLv2 license Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12858 Change subject: add GPLv2 license ...................................................................... add GPLv2 license Change-Id: I761b3af3db43aa0da679c2f83aa89c92a7aae668 --- A sysmoOCTSIM/LICENSE 1 file changed, 488 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/58/12858/1 diff --git a/sysmoOCTSIM/LICENSE b/sysmoOCTSIM/LICENSE new file mode 100644 index 0000000..f15a3c0 --- /dev/null +++ b/sysmoOCTSIM/LICENSE @@ -0,0 +1,488 @@ +The sysmocom sysmoOCTSIM firmware is under the GPLv2 or later license. +It uses the Microchip ASFv4 library under the ASF license. +The CMSIS definitions are under the Apache-2.0 license +The header of each file indicates under which license the corresponding source code is. +You can find the complete text of the licenses below. + += GPLv2 + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + += ASF + +Subject to your compliance with these terms, you may use Microchip +software and any derivatives exclusively with Microchip products. +It is your responsibility to comply with third party license terms applicable +to your use of third party software (including open source software) that +may accompany Microchip software. + +THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, +WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, +INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, +AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE +LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL +LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE +SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE +POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT +ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY +RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + += Apache-2.0 + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS -- To view, visit https://gerrit.osmocom.org/12858 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I761b3af3db43aa0da679c2f83aa89c92a7aae668 Gerrit-Change-Number: 12858 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 15:50:55 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Thu, 7 Feb 2019 15:50:55 +0000 Subject: Change in osmo-ccid-firmware[master]: add README file Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12859 Change subject: add README file ...................................................................... add README file Change-Id: I9286493e4e2d20f00a33e7b565adde10198f179a --- A sysmoOCTSIM/README.md 1 file changed, 46 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/59/12859/1 diff --git a/sysmoOCTSIM/README.md b/sysmoOCTSIM/README.md new file mode 100644 index 0000000..1927255 --- /dev/null +++ b/sysmoOCTSIM/README.md @@ -0,0 +1,46 @@ +The sysmocom sysmoOCTSIM is a USB CCID device with eight smart card slots. +This is the open source firmware for this device. + +Hardware +======== + +The sysmocom sysmoOCTSIM hardware is proprietary. + +It has the following specifications: + +- 8 smart cards slots for 2FF cards (e.g. normal SIM format) +- each slot is driven individually (e.g. they are not multiplexed) +- each card can be operated in class A (5.0 V), B (3.0 V), or C (1.8 V) +- the ISO/IEC 7816-4 T=0 communication protocol is used +- each card can be clock up to 20 MHz (e.g. maximum allowed by the standard) + +For more detailed specification refer to the USB description of the device. + +Firmware +======== + +Compiling +--------- + +GNU make and the arm-none-eabi-gcc compiler are required to build the firmware. + +The compile the firmware, run the following commands: + +``` +cd sysmoOCTSIM/gcc +make +``` + +The `sysmoOCTSIM/gcc/AtmelStart.bin` file is the resulting firmware for the device. + +Flashing +-------- + +The device comes pre-flash with a USB DFU bootloader (e.g. [osmo-asf4-dfu](https://git.osmocom.org/osmo-asf4-dfu/)). +To start the USB DFU bootloader, press on the button on the front right of the panel while powering up the device. + +Use the [dfu-util](http://dfu-util.sourceforge.net/) utility to flash the firmware onto the device: + +``` +dfu-util --device 1d50:6141 --download sysmoOCTSIM/gcc/AtmelStart.bin +``` -- To view, visit https://gerrit.osmocom.org/12859 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I9286493e4e2d20f00a33e7b565adde10198f179a Gerrit-Change-Number: 12859 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 15:56:10 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Feb 2019 15:56:10 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/12625 ) Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... Patch Set 8: Code-Review-1 (2 comments) developing a habit of removing +2 votes ... to make sure the comments are looked at first. https://gerrit.osmocom.org/#/c/12625/8/src/osmo-bsc/osmo_bsc_bssap.c File src/osmo-bsc/osmo_bsc_bssap.c: https://gerrit.osmocom.org/#/c/12625/8/src/osmo-bsc/osmo_bsc_bssap.c at 635 PS8, Line 635: switch (ct->ch_rate_type & GSM0808_SPEECH_PERM) { > Wait what ? GSM0808_SPEECH_PERM is not a mask, it's an actual possible value of the field defined in [?] do you really need the mask at all? https://gerrit.osmocom.org/#/c/12625/8/src/osmo-bsc/osmo_bsc_bssap.c at 637 PS8, Line 637: rc = match_codec_pref(&req->ch_mode_rate_pref, ct, &conn->codec_list, msc, conn_get_bts(conn), > Given this is used for speech, I'd use the GSM0808_SPEECH_xxx constants. [?] agree -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy Gerrit-CC: tnt Gerrit-Comment-Date: Thu, 07 Feb 2019 15:56:10 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 15:56:13 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Feb 2019 15:56:13 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: Neels Hofmeyr has removed a vote on this change. Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... Removed Code-Review+2 by Harald Welte -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: deleteVote Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy Gerrit-CC: tnt -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 16:05:41 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Feb 2019 16:05:41 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/12625 ) Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... Patch Set 8: (1 comment) https://gerrit.osmocom.org/#/c/12625/8/include/osmocom/bsc/gsm_data.h File include/osmocom/bsc/gsm_data.h: https://gerrit.osmocom.org/#/c/12625/8/include/osmocom/bsc/gsm_data.h at 104 PS8, Line 104: bool full_rate; > Just wondering if it wouldn't be worth directly using GSM_LCHAN_xxx constant in there rather than fu [?] We ignore the MS channel preference on purpose and do "late assignment" instead. In osmo-nitb, we used to accept the TCH/F request from the MS and assign that, while on the MT side the CN's preference would be stronger, which could end up TCH/H (for dyn TS). Hence we would actively allow mismatching TCH kinds. Now, we always look at the MSC preferences during TCH/* Assignment. It is ok if we assign a TCH/F for SDCCH use at first, but it only really makes sense if there are no SDCCH left. We now do that. Recently there have been fixes for that behavior. So this channel_mode_and_rate is really only about TCH/F or TCH/H, no additional channel types should ever become relevant. Even if BTS has only TCH/H pchan configured, an MS will ask for TCH, F preferred. I'm not sure what's the benefit there, maybe that a phone already knows it is going to make a call and attempts to pre-empt the need to re-assign from SDCCH to TCH? It might make sense to revisit that once we properly support Channel Mode Modify commands and late RTP addition. Even then, the choice for SDCCH or TCH will happen before this code path; this here is for voice assignment. -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy Gerrit-CC: tnt Gerrit-Comment-Date: Thu, 07 Feb 2019 16:05:41 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 16:07:04 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Thu, 7 Feb 2019 16:07:04 +0000 Subject: Change in osmo-ccid-firmware[master]: fix DPLL input clock division In-Reply-To: References: Message-ID: K?vin Redon has submitted this change and it was merged. ( https://gerrit.osmocom.org/12806 ) Change subject: fix DPLL input clock division ...................................................................... fix DPLL input clock division Change-Id: I3df1356d36b54d0cc34fd827265b1e4b9d55509f --- M sysmoOCTSIM/config/hpl_oscctrl_config.h 1 file changed, 12 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sysmoOCTSIM/config/hpl_oscctrl_config.h b/sysmoOCTSIM/config/hpl_oscctrl_config.h index 0676cb5..17bcfc2 100644 --- a/sysmoOCTSIM/config/hpl_oscctrl_config.h +++ b/sysmoOCTSIM/config/hpl_oscctrl_config.h @@ -404,6 +404,7 @@ // Select the clock source. // fdpll0_ref_clock #ifndef CONF_FDPLL0_GCLK +// directly use XOSC1 as clock input (no need to use an additional GCLK) #define CONF_FDPLL0_GCLK GCLK_GENCTRL_SRC_XOSC1 #endif @@ -438,13 +439,15 @@ // Loop Divider Ratio Integer Part <0x0-0x1FFF> // fdpll0_ldr #ifndef CONF_FDPLL0_LDR -#define CONF_FDPLL0_LDR 0x3b +// 2 MHz input clock * ( <59> + 1 = 60 ) = 120 MHz output clock +#define CONF_FDPLL0_LDR 59 #endif // Clock Divider <0x0-0x7FF> // fdpll0_clock_div #ifndef CONF_FDPLL0_DIV -#define CONF_FDPLL0_DIV 0x6 +// XOSC1 = 12 MHz, divide by 2 * ( <2> + 1 ) = 6 to have a 2 MHz clock input (maximum is 3.4 MHz) +#define CONF_FDPLL0_DIV 2 #endif // DCO Filter Enable @@ -485,6 +488,7 @@ // <0x3=>XOSC1 clock reference // fdpll0_arch_refclk #ifndef CONF_FDPLL0_REFCLK +// XOSC1 is used as input signal, thus also use it as reference #define CONF_FDPLL0_REFCLK 0x3 #endif @@ -529,6 +533,7 @@ // Select the clock source. // fdpll1_ref_clock #ifndef CONF_FDPLL1_GCLK +// directly use XOSC1 as clock input (no need to use an additional GCLK) #define CONF_FDPLL1_GCLK GCLK_GENCTRL_SRC_XOSC1 #endif @@ -563,13 +568,15 @@ // Loop Divider Ratio Integer Part <0x0-0x1FFF> // fdpll1_ldr #ifndef CONF_FDPLL1_LDR -#define CONF_FDPLL1_LDR 0x31 +// 2 MHz input clock * ( <49> + 1 = 50 ) = 100 MHz output clock +#define CONF_FDPLL1_LDR 49 #endif // Clock Divider <0x0-0x7FF> // fdpll1_clock_div #ifndef CONF_FDPLL1_DIV -#define CONF_FDPLL1_DIV 0x6 +// XOSC1 = 12 MHz, divide by 2 * ( <2> + 1 ) = 6 to have a 2 MHz clock input (maximum is 3.4 MHz) +#define CONF_FDPLL1_DIV 2 #endif // DCO Filter Enable @@ -610,6 +617,7 @@ // <0x3=>XOSC1 clock reference // fdpll1_arch_refclk #ifndef CONF_FDPLL1_REFCLK +// XOSC1 is used as input signal, thus also use it as reference #define CONF_FDPLL1_REFCLK 0x3 #endif -- To view, visit https://gerrit.osmocom.org/12806 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I3df1356d36b54d0cc34fd827265b1e4b9d55509f Gerrit-Change-Number: 12806 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 16:07:56 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Thu, 7 Feb 2019 16:07:56 +0000 Subject: Change in osmo-ccid-firmware[master]: echo back UART input In-Reply-To: References: Message-ID: K?vin Redon has submitted this change and it was merged. ( https://gerrit.osmocom.org/12807 ) Change subject: echo back UART input ...................................................................... echo back UART input let main run the main loop instead of the CDC ACM example. also rename the CDC ACM example functions. Change-Id: I44b15079672b4058de1fa08365541317d54958dc --- M sysmoOCTSIM/main.c M sysmoOCTSIM/usb_start.c M sysmoOCTSIM/usb_start.h 3 files changed, 17 insertions(+), 17 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c index de954f4..dfe3b03 100644 --- a/sysmoOCTSIM/main.c +++ b/sysmoOCTSIM/main.c @@ -19,19 +19,19 @@ #include "atmel_start.h" #include "atmel_start_pins.h" -volatile static uint32_t data_arrived = 0; +volatile static bool data_arrived = false; static void tx_cb_UART_debug(const struct usart_async_descriptor *const io_descr) { /* Transfer completed */ - gpio_toggle_pin_level(LED_system); + //gpio_toggle_pin_level(LED_system); } static void rx_cb_UART_debug(const struct usart_async_descriptor *const io_descr) { /* Receive completed */ gpio_toggle_pin_level(LED_system); - data_arrived = 1; + data_arrived = true; } int main(void) @@ -42,5 +42,15 @@ usart_async_register_callback(&UART_debug, USART_ASYNC_RXC_CB, rx_cb_UART_debug); usart_async_enable(&UART_debug); - cdcd_acm_example(); + usb_start(); + + while (true) { // main loop + if (data_arrived) { // input on UART debug + data_arrived = false; // clear flag + uint8_t recv_char; // to store the input + while (io_read(&UART_debug.io, &recv_char, 1) == 1) { // read input + while (io_write(&UART_debug.io, &recv_char, 1) != 1); // echo back to output + } + } + } } diff --git a/sysmoOCTSIM/usb_start.c b/sysmoOCTSIM/usb_start.c index de86172..d02edc0 100644 --- a/sysmoOCTSIM/usb_start.c +++ b/sysmoOCTSIM/usb_start.c @@ -93,25 +93,15 @@ } /** - * Example of using CDC ACM Function. - * \note - * In this example, we will use a PC as a USB host: - * - Connect the DEBUG USB on XPLAINED board to PC for program download. - * - Connect the TARGET USB on XPLAINED board to PC for running program. - * The application will behave as a virtual COM. - * - Open a HyperTerminal or other COM tools in PC side. - * - Send out a character or string and it will echo the content received. + * \brief Start USB stack */ -void cdcd_acm_example(void) +void usb_start(void) { while (!cdcdf_acm_is_enabled()) { // wait cdc acm to be installed }; cdcdf_acm_register_callback(CDCDF_ACM_CB_STATE_C, (FUNC_PTR)usb_device_cb_state_c); - - while (1) { - } } void usb_init(void) diff --git a/sysmoOCTSIM/usb_start.h b/sysmoOCTSIM/usb_start.h index 48b2735..daf30cc 100644 --- a/sysmoOCTSIM/usb_start.h +++ b/sysmoOCTSIM/usb_start.h @@ -15,7 +15,7 @@ #include "cdcdf_acm.h" #include "cdcdf_acm_desc.h" -void cdcd_acm_example(void); +void usb_start(void); void cdc_device_acm_init(void); /** -- To view, visit https://gerrit.osmocom.org/12807 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I44b15079672b4058de1fa08365541317d54958dc Gerrit-Change-Number: 12807 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 16:08:02 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Thu, 7 Feb 2019 16:08:02 +0000 Subject: Change in osmo-ccid-firmware[master]: switch from dev board to prototype In-Reply-To: References: Message-ID: K?vin Redon has submitted this change and it was merged. ( https://gerrit.osmocom.org/12808 ) Change subject: switch from dev board to prototype ...................................................................... switch from dev board to prototype the SAM E54 Xplained Pro development board uses a SAM E54P20N micro-controller. the sysmocom sysmoOCTSIM prototype uses a SAM E54N19A micro-controller. the system LED and UART debug GPIO are different, else the code is the same. the Atmel START definitions have been updated accordingly. Change-Id: Ifd15f6759c51b42a8d11b09f9f495d7e7a5b6afc --- M sysmoOCTSIM/AtmelStart.env_conf M sysmoOCTSIM/AtmelStart.gpdsc M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/atmel_start_pins.h M sysmoOCTSIM/config/hpl_gclk_config.h M sysmoOCTSIM/config/hpl_port_config.h M sysmoOCTSIM/config/hpl_sercom_config.h M sysmoOCTSIM/config/hpl_usb_config.h M sysmoOCTSIM/config/peripheral_clk_config.h M sysmoOCTSIM/driver_init.c M sysmoOCTSIM/gcc/Makefile A sysmoOCTSIM/gcc/gcc/same54n19a_flash.ld A sysmoOCTSIM/gcc/gcc/same54n19a_sram.ld M sysmoOCTSIM/hpl/port/hpl_gpio_base.h M sysmoOCTSIM/hpl/sercom/hpl_sercom.c M sysmoOCTSIM/hpl/usb/hpl_usb.c 16 files changed, 544 insertions(+), 355 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sysmoOCTSIM/AtmelStart.env_conf b/sysmoOCTSIM/AtmelStart.env_conf index dfb4608..cad5b65 100644 --- a/sysmoOCTSIM/AtmelStart.env_conf +++ b/sysmoOCTSIM/AtmelStart.env_conf @@ -1,6 +1,6 @@ - + diff --git a/sysmoOCTSIM/AtmelStart.gpdsc b/sysmoOCTSIM/AtmelStart.gpdsc index ebb4d1e..51851db 100644 --- a/sysmoOCTSIM/AtmelStart.gpdsc +++ b/sysmoOCTSIM/AtmelStart.gpdsc @@ -12,7 +12,7 @@ Atmel Start - http://start.atmel.com/ @@ -27,13 +27,13 @@ - + - + @@ -160,8 +160,7 @@ - - + diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index 7492bf6..09c0b2d 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -9,12 +9,10 @@ format: '2' frontend: 1.4.1810 board: - identifier: SAME54XplainedPro - device: SAME54P20A-AU + identifier: CustomBoard + device: SAME54N19A-AF details: null -application: - definition: 'Atmel:Application_Examples:0.0.1::Application:USB_CDC_Echo:' - configuration: {} +application: null middlewares: USB_CHAPTER_9: user_label: USB_CHAPTER_9 @@ -31,8 +29,8 @@ api: USB:Protocol:CDC dependencies: USB Chapter 9: USB_CHAPTER_9 - USB_DEVICE_CORE: - user_label: USB_DEVICE_CORE + USB_DEVICE_STACK_CORE_INSTANCE: + user_label: USB_DEVICE_STACK_CORE_INSTANCE configuration: usbd_hs_sp: false definition: Atmel:USB:0.0.1::USB_Device_Core @@ -82,12 +80,12 @@ functionality: USB_Device_CDC_ACM api: USB:Device:CDC_ACM dependencies: - USB Device Stack Core Instance: USB_DEVICE_CORE + USB Device Stack Core Instance: USB_DEVICE_STACK_CORE_INSTANCE USB Class CDC: USB_CLASS_CDC drivers: CMCC: user_label: CMCC - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::CMCC::driver_config_definition::CMCC::HAL:HPL:CMCC + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::CMCC::driver_config_definition::CMCC::HAL:HPL:CMCC functionality: System api: HAL:HPL:CMCC configuration: @@ -103,7 +101,7 @@ domain_group: null DMAC: user_label: DMAC - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::DMAC::driver_config_definition::DMAC::HAL:HPL:DMAC + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::DMAC::driver_config_definition::DMAC::HAL:HPL:DMAC functionality: System api: HAL:HPL:DMAC configuration: @@ -639,7 +637,7 @@ domain_group: null GCLK: user_label: GCLK - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::GCLK::driver_config_definition::GCLK::HAL:HPL:GCLK + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::GCLK::driver_config_definition::GCLK::HAL:HPL:GCLK functionality: System api: HAL:HPL:GCLK configuration: @@ -720,7 +718,7 @@ gclk_gen_0_oscillator: Digital Phase Locked Loop (DPLL0) gclk_gen_10_div: 1 gclk_gen_10_div_sel: false - gclk_gen_10_oscillator: External Crystal Oscillator 8-48MHz (XOSC0) + gclk_gen_10_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) gclk_gen_11_div: 6 gclk_gen_11_div_sel: false gclk_gen_11_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) @@ -735,29 +733,29 @@ gclk_gen_3_oscillator: 32kHz External Crystal Oscillator (XOSC32K) gclk_gen_4_div: 1 gclk_gen_4_div_sel: false - gclk_gen_4_oscillator: External Crystal Oscillator 8-48MHz (XOSC0) + gclk_gen_4_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) gclk_gen_5_div: 1 gclk_gen_5_div_sel: false - gclk_gen_5_oscillator: External Crystal Oscillator 8-48MHz (XOSC0) + gclk_gen_5_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) gclk_gen_6_div: 1 gclk_gen_6_div_sel: false - gclk_gen_6_oscillator: External Crystal Oscillator 8-48MHz (XOSC0) + gclk_gen_6_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) gclk_gen_7_div: 1 gclk_gen_7_div_sel: false - gclk_gen_7_oscillator: External Crystal Oscillator 8-48MHz (XOSC0) + gclk_gen_7_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) gclk_gen_8_div: 1 gclk_gen_8_div_sel: false - gclk_gen_8_oscillator: External Crystal Oscillator 8-48MHz (XOSC0) + gclk_gen_8_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) gclk_gen_9_div: 1 gclk_gen_9_div_sel: false - gclk_gen_9_oscillator: External Crystal Oscillator 8-48MHz (XOSC0) + gclk_gen_9_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) optional_signals: [] variant: null clocks: domain_group: null MCLK: user_label: MCLK - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::MCLK::driver_config_definition::MCLK::HAL:HPL:MCLK + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::MCLK::driver_config_definition::MCLK::HAL:HPL:MCLK functionality: System api: HAL:HPL:MCLK configuration: @@ -778,7 +776,7 @@ configuration: {} OSC32KCTRL: user_label: OSC32KCTRL - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::OSC32KCTRL::driver_config_definition::OSC32KCTRL::HAL:HPL:OSC32KCTRL + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::OSC32KCTRL::driver_config_definition::OSC32KCTRL::HAL:HPL:OSC32KCTRL functionality: System api: HAL:HPL:OSC32KCTRL configuration: @@ -806,7 +804,7 @@ domain_group: null OSCCTRL: user_label: OSCCTRL - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::OSCCTRL::driver_config_definition::OSCCTRL::HAL:HPL:OSCCTRL + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::OSCCTRL::driver_config_definition::OSCCTRL::HAL:HPL:OSCCTRL functionality: System api: HAL:HPL:OSCCTRL configuration: @@ -843,7 +841,7 @@ fdpll0_arch_runstdby: false fdpll0_arch_wuf: false fdpll0_clock_dcofilter: 0 - fdpll0_clock_div: 6 + fdpll0_clock_div: 2 fdpll0_ldr: 59 fdpll0_ldrfrac: 0 fdpll0_ref_clock: Generic clock generator 11 @@ -857,7 +855,7 @@ fdpll1_arch_runstdby: false fdpll1_arch_wuf: false fdpll1_clock_dcofilter: 0 - fdpll1_clock_div: 6 + fdpll1_clock_div: 2 fdpll1_ldr: 49 fdpll1_ldrfrac: 0 fdpll1_ref_clock: Generic clock generator 11 @@ -887,7 +885,7 @@ domain_group: null PORT: user_label: PORT - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::PORT::driver_config_definition::PORT::HAL:HPL:PORT + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::PORT::driver_config_definition::PORT::HAL:HPL:PORT functionality: System api: HAL:HPL:PORT configuration: @@ -931,25 +929,13 @@ portc_input_event_enable_1: false portc_input_event_enable_2: false portc_input_event_enable_3: false - portd_event_action_0: Output register of pin will be set to level of event - portd_event_action_1: Output register of pin will be set to level of event - portd_event_action_2: Output register of pin will be set to level of event - portd_event_action_3: Output register of pin will be set to level of event - portd_event_pin_identifier_0: 0 - portd_event_pin_identifier_1: 0 - portd_event_pin_identifier_2: 0 - portd_event_pin_identifier_3: 0 - portd_input_event_enable_0: false - portd_input_event_enable_1: false - portd_input_event_enable_2: false - portd_input_event_enable_3: false optional_signals: [] variant: null clocks: domain_group: null RAMECC: user_label: RAMECC - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::RAMECC::driver_config_definition::RAMECC::HAL:HPL:RAMECC + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::RAMECC::driver_config_definition::RAMECC::HAL:HPL:RAMECC functionality: System api: HAL:HPL:RAMECC configuration: {} @@ -959,7 +945,7 @@ domain_group: null UART_debug: user_label: UART_debug - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::SERCOM2::driver_config_definition::UART::HAL:Driver:USART.Async + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM7::driver_config_definition::UART::HAL:Driver:USART.Async functionality: USART api: HAL:Driver:USART_Async configuration: @@ -986,11 +972,11 @@ variant: specification: TXPO=0, RXPO=1, CMODE=0 required_signals: - - name: SERCOM2/PAD/0 - pad: PB25 + - name: SERCOM7/PAD/0 + pad: PB30 label: TX - - name: SERCOM2/PAD/1 - pad: PB24 + - name: SERCOM7/PAD/1 + pad: PB31 label: RX clocks: domain_group: @@ -1004,7 +990,7 @@ slow_gclk_selection: Generic clock generator 3 USB_DEVICE_INSTANCE: user_label: USB_DEVICE_INSTANCE - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::USB::driver_config_definition::USB.Device::HAL:Driver:USB.Device + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::USB::driver_config_definition::USB.Device::HAL:Driver:USB.Device functionality: USB api: HAL:Driver:USB_Device configuration: @@ -1025,7 +1011,7 @@ usb_ep7_I_CACHE: No cache usbd_arch_max_ep_n: 2 (EP 0x82 or 0x02) usbd_arch_speed: Full speed - usbd_num_ep_sp: Max possible (by "Max Endpoint Number" config) + usbd_num_ep_sp: 4 (EP0 + 3 endpoints) optional_signals: [] variant: specification: default @@ -1044,35 +1030,34 @@ configuration: usb_gclk_selection: Generic clock generator 1 pads: + USBUP_D_N: + name: PA24 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA24 + mode: Advanced + user_label: USBUP_D_N + configuration: null + USBUP_D_P: + name: PA25 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA25 + mode: Advanced + user_label: USBUP_D_P + configuration: null LED_system: - name: PC18 - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::pad::PC18 + name: PC26 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC26 mode: Digital output user_label: LED_system - configuration: - pad_initial_level: High - PA24: - name: PA24 - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::pad::PA24 - mode: Advanced - user_label: PA24 - configuration: {} - PA25: - name: PA25 - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::pad::PA25 - mode: Advanced - user_label: PA25 - configuration: {} - PB24: - name: PB24 - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::pad::PB24 - mode: Peripheral IO - user_label: PB24 configuration: null - PB25: - name: PB25 - definition: Atmel:SAME54_Drivers:0.0.1::SAME54P20A-AU::pad::PB25 + UART_TX: + name: PB30 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB30 mode: Peripheral IO - user_label: PB25 + user_label: UART_TX + configuration: null + UART_RX: + name: PB31 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB31 + mode: Peripheral IO + user_label: UART_RX configuration: null toolchain_options: [] diff --git a/sysmoOCTSIM/atmel_start_pins.h b/sysmoOCTSIM/atmel_start_pins.h index 7c774ed..884a562 100644 --- a/sysmoOCTSIM/atmel_start_pins.h +++ b/sysmoOCTSIM/atmel_start_pins.h @@ -27,10 +27,10 @@ #define GPIO_PIN_FUNCTION_M 12 #define GPIO_PIN_FUNCTION_N 13 -#define PA24 GPIO(GPIO_PORTA, 24) -#define PA25 GPIO(GPIO_PORTA, 25) -#define PB24 GPIO(GPIO_PORTB, 24) -#define PB25 GPIO(GPIO_PORTB, 25) -#define LED_system GPIO(GPIO_PORTC, 18) +#define USBUP_D_N GPIO(GPIO_PORTA, 24) +#define USBUP_D_P GPIO(GPIO_PORTA, 25) +#define UART_TX GPIO(GPIO_PORTB, 30) +#define UART_RX GPIO(GPIO_PORTB, 31) +#define LED_system GPIO(GPIO_PORTC, 26) #endif // ATMEL_START_PINS_H_INCLUDED diff --git a/sysmoOCTSIM/config/hpl_gclk_config.h b/sysmoOCTSIM/config/hpl_gclk_config.h index 12c1539..d16af6f 100644 --- a/sysmoOCTSIM/config/hpl_gclk_config.h +++ b/sysmoOCTSIM/config/hpl_gclk_config.h @@ -328,7 +328,7 @@ // This defines the clock source for generic clock generator 4 // gclk_gen_4_oscillator #ifndef CONF_GCLK_GEN_4_SOURCE -#define CONF_GCLK_GEN_4_SOURCE GCLK_GENCTRL_SRC_XOSC0 +#define CONF_GCLK_GEN_4_SOURCE GCLK_GENCTRL_SRC_XOSC1 #endif // Run in Standby @@ -404,7 +404,7 @@ // This defines the clock source for generic clock generator 5 // gclk_gen_5_oscillator #ifndef CONF_GCLK_GEN_5_SOURCE -#define CONF_GCLK_GEN_5_SOURCE GCLK_GENCTRL_SRC_XOSC0 +#define CONF_GCLK_GEN_5_SOURCE GCLK_GENCTRL_SRC_XOSC1 #endif // Run in Standby @@ -480,7 +480,7 @@ // This defines the clock source for generic clock generator 6 // gclk_gen_6_oscillator #ifndef CONF_GCLK_GEN_6_SOURCE -#define CONF_GCLK_GEN_6_SOURCE GCLK_GENCTRL_SRC_XOSC0 +#define CONF_GCLK_GEN_6_SOURCE GCLK_GENCTRL_SRC_XOSC1 #endif // Run in Standby @@ -556,7 +556,7 @@ // This defines the clock source for generic clock generator 7 // gclk_gen_7_oscillator #ifndef CONF_GCLK_GEN_7_SOURCE -#define CONF_GCLK_GEN_7_SOURCE GCLK_GENCTRL_SRC_XOSC0 +#define CONF_GCLK_GEN_7_SOURCE GCLK_GENCTRL_SRC_XOSC1 #endif // Run in Standby @@ -632,7 +632,7 @@ // This defines the clock source for generic clock generator 8 // gclk_gen_8_oscillator #ifndef CONF_GCLK_GEN_8_SOURCE -#define CONF_GCLK_GEN_8_SOURCE GCLK_GENCTRL_SRC_XOSC0 +#define CONF_GCLK_GEN_8_SOURCE GCLK_GENCTRL_SRC_XOSC1 #endif // Run in Standby @@ -708,7 +708,7 @@ // This defines the clock source for generic clock generator 9 // gclk_gen_9_oscillator #ifndef CONF_GCLK_GEN_9_SOURCE -#define CONF_GCLK_GEN_9_SOURCE GCLK_GENCTRL_SRC_XOSC0 +#define CONF_GCLK_GEN_9_SOURCE GCLK_GENCTRL_SRC_XOSC1 #endif // Run in Standby @@ -784,7 +784,7 @@ // This defines the clock source for generic clock generator 10 // gclk_gen_10_oscillator #ifndef CONF_GCLK_GEN_10_SOURCE -#define CONF_GCLK_GEN_10_SOURCE GCLK_GENCTRL_SRC_XOSC0 +#define CONF_GCLK_GEN_10_SOURCE GCLK_GENCTRL_SRC_XOSC1 #endif // Run in Standby diff --git a/sysmoOCTSIM/config/hpl_port_config.h b/sysmoOCTSIM/config/hpl_port_config.h index b5315f0..a7bd379 100644 --- a/sysmoOCTSIM/config/hpl_port_config.h +++ b/sysmoOCTSIM/config/hpl_port_config.h @@ -94,34 +94,6 @@ #endif // -// PORT Input Event 0 configuration on PORT D - -// PORTD Input Event 0 Enable -// The event action will be triggered on any incoming event if PORT D Input Event 0 configuration is enabled -// portd_input_event_enable_0 -#ifndef CONF_PORTD_EVCTRL_PORTEI_0 -#define CONF_PORTD_EVCTRL_PORTEI_0 0x0 -#endif - -// PORTD Event 0 Pin Identifier <0x00-0x1F> -// These bits define the I/O pin from port D on which the event action will be performed -// portd_event_pin_identifier_0 -#ifndef CONF_PORTD_EVCTRL_PID_0 -#define CONF_PORTD_EVCTRL_PID_0 0x0 -#endif - -// PORTD Event 0 Action -// <0=> Output register of pin will be set to level of event -// <1=> Set output register of pin on event -// <2=> Clear output register of pin on event -// <3=> Toggle output register of pin on event -// These bits define the event action the PORT D will perform on event input 0 -// portd_event_action_0 -#ifndef CONF_PORTD_EVCTRL_EVACT_0 -#define CONF_PORTD_EVCTRL_EVACT_0 0 -#endif - -// // @@ -215,34 +187,6 @@ #endif // -// PORT Input Event 1 configuration on PORT D - -// PORTD Input Event 1 Enable -// The event action will be triggered on any incoming event if PORT D Input Event 1 configuration is enabled -// portd_input_event_enable_1 -#ifndef CONF_PORTD_EVCTRL_PORTEI_1 -#define CONF_PORTD_EVCTRL_PORTEI_1 0x0 -#endif - -// PORTD Event 1 Pin Identifier <0x00-0x1F> -// These bits define the I/O pin from port D on which the event action will be performed -// portd_event_pin_identifier_1 -#ifndef CONF_PORTD_EVCTRL_PID_1 -#define CONF_PORTD_EVCTRL_PID_1 0x0 -#endif - -// PORTD Event 1 Action -// <0=> Output register of pin will be set to level of event -// <1=> Set output register of pin on event -// <2=> Clear output register of pin on event -// <3=> Toggle output register of pin on event -// These bits define the event action the PORT D will perform on event input 1 -// portd_event_action_1 -#ifndef CONF_PORTD_EVCTRL_EVACT_1 -#define CONF_PORTD_EVCTRL_EVACT_1 0 -#endif - -// // @@ -336,34 +280,6 @@ #endif // -// PORT Input Event 2 configuration on PORT D - -// PORTD Input Event 2 Enable -// The event action will be triggered on any incoming event if PORT D Input Event 2 configuration is enabled -// portd_input_event_enable_2 -#ifndef CONF_PORTD_EVCTRL_PORTEI_2 -#define CONF_PORTD_EVCTRL_PORTEI_2 0x0 -#endif - -// PORTD Event 2 Pin Identifier <0x00-0x1F> -// These bits define the I/O pin from port D on which the event action will be performed -// portd_event_pin_identifier_2 -#ifndef CONF_PORTD_EVCTRL_PID_2 -#define CONF_PORTD_EVCTRL_PID_2 0x0 -#endif - -// PORTD Event 2 Action -// <0=> Output register of pin will be set to level of event -// <1=> Set output register of pin on event -// <2=> Clear output register of pin on event -// <3=> Toggle output register of pin on event -// These bits define the event action the PORT D will perform on event input 2 -// portd_event_action_2 -#ifndef CONF_PORTD_EVCTRL_EVACT_2 -#define CONF_PORTD_EVCTRL_EVACT_2 0 -#endif - -// // @@ -457,34 +373,6 @@ #endif // -// PORT Input Event 3 configuration on PORT D - -// PORTD Input Event 3 Enable -// The event action will be triggered on any incoming event if PORT D Input Event 3 configuration is enabled -// portd_input_event_enable_3 -#ifndef CONF_PORTD_EVCTRL_PORTEI_3 -#define CONF_PORTD_EVCTRL_PORTEI_3 0x0 -#endif - -// PORTD Event 3 Pin Identifier <0x00-0x1F> -// These bits define the I/O pin from port D on which the event action will be performed -// portd_event_pin_identifier_3 -#ifndef CONF_PORTD_EVCTRL_PID_3 -#define CONF_PORTD_EVCTRL_PID_3 0x0 -#endif - -// PORTD Event 3 Action -// <0=> Output register of pin will be set to level of event -// <1=> Set output register of pin on event -// <2=> Clear output register of pin on event -// <3=> Toggle output register of pin on event -// These bits define the event action the PORT D will perform on event input 3 -// portd_event_action_3 -#ifndef CONF_PORTD_EVCTRL_EVACT_3 -#define CONF_PORTD_EVCTRL_EVACT_3 0 -#endif - -// // @@ -509,13 +397,6 @@ | PORT_EVCTRL_EVACT2(CONF_PORTC_EVCTRL_EVACT_2) | CONF_PORTC_EVCTRL_PORTEI_2 << PORT_EVCTRL_PORTEI2_Pos \ | PORT_EVCTRL_PID2(CONF_PORTC_EVCTRL_PID_2) | PORT_EVCTRL_EVACT3(CONF_PORTC_EVCTRL_EVACT_3) \ | CONF_PORTC_EVCTRL_PORTEI_3 << PORT_EVCTRL_PORTEI3_Pos | PORT_EVCTRL_PID3(CONF_PORTC_EVCTRL_PID_3)) -#define CONF_PORTD_EVCTRL \ - (0 | PORT_EVCTRL_EVACT0(CONF_PORTD_EVCTRL_EVACT_0) | CONF_PORTD_EVCTRL_PORTEI_0 << PORT_EVCTRL_PORTEI0_Pos \ - | PORT_EVCTRL_PID0(CONF_PORTD_EVCTRL_PID_0) | PORT_EVCTRL_EVACT1(CONF_PORTD_EVCTRL_EVACT_1) \ - | CONF_PORTD_EVCTRL_PORTEI_1 << PORT_EVCTRL_PORTEI1_Pos | PORT_EVCTRL_PID1(CONF_PORTD_EVCTRL_PID_1) \ - | PORT_EVCTRL_EVACT2(CONF_PORTD_EVCTRL_EVACT_2) | CONF_PORTD_EVCTRL_PORTEI_2 << PORT_EVCTRL_PORTEI2_Pos \ - | PORT_EVCTRL_PID2(CONF_PORTD_EVCTRL_PID_2) | PORT_EVCTRL_EVACT3(CONF_PORTD_EVCTRL_EVACT_3) \ - | CONF_PORTD_EVCTRL_PORTEI_3 << PORT_EVCTRL_PORTEI3_Pos | PORT_EVCTRL_PID3(CONF_PORTD_EVCTRL_PID_3)) // <<< end of configuration section >>> diff --git a/sysmoOCTSIM/config/hpl_sercom_config.h b/sysmoOCTSIM/config/hpl_sercom_config.h index e154ce2..2a8c023 100644 --- a/sysmoOCTSIM/config/hpl_sercom_config.h +++ b/sysmoOCTSIM/config/hpl_sercom_config.h @@ -6,8 +6,8 @@ #include -#ifndef CONF_SERCOM_2_USART_ENABLE -#define CONF_SERCOM_2_USART_ENABLE 1 +#ifndef CONF_SERCOM_7_USART_ENABLE +#define CONF_SERCOM_7_USART_ENABLE 1 #endif // Basic Configuration @@ -15,15 +15,15 @@ // Receive buffer enable // Enable input buffer in SERCOM module // usart_rx_enable -#ifndef CONF_SERCOM_2_USART_RXEN -#define CONF_SERCOM_2_USART_RXEN 1 +#ifndef CONF_SERCOM_7_USART_RXEN +#define CONF_SERCOM_7_USART_RXEN 1 #endif // Transmitt buffer enable // Enable output buffer in SERCOM module // usart_tx_enable -#ifndef CONF_SERCOM_2_USART_TXEN -#define CONF_SERCOM_2_USART_TXEN 1 +#ifndef CONF_SERCOM_7_USART_TXEN +#define CONF_SERCOM_7_USART_TXEN 1 #endif // Frame parity @@ -32,8 +32,8 @@ // <0x2=>Odd parity // Parity bit mode for USART frame // usart_parity -#ifndef CONF_SERCOM_2_USART_PARITY -#define CONF_SERCOM_2_USART_PARITY 0x0 +#ifndef CONF_SERCOM_7_USART_PARITY +#define CONF_SERCOM_7_USART_PARITY 0x0 #endif // Character Size @@ -44,8 +44,8 @@ // <0x7=>7 bits // Data character size in USART frame // usart_character_size -#ifndef CONF_SERCOM_2_USART_CHSIZE -#define CONF_SERCOM_2_USART_CHSIZE 0x0 +#ifndef CONF_SERCOM_7_USART_CHSIZE +#define CONF_SERCOM_7_USART_CHSIZE 0x0 #endif // Stop Bit @@ -53,51 +53,51 @@ // <1=>Two stop bits // Number of stop bits in USART frame // usart_stop_bit -#ifndef CONF_SERCOM_2_USART_SBMODE -#define CONF_SERCOM_2_USART_SBMODE 0 +#ifndef CONF_SERCOM_7_USART_SBMODE +#define CONF_SERCOM_7_USART_SBMODE 0 #endif // Baud rate <1-6250000> // USART baud rate setting // usart_baud_rate -#ifndef CONF_SERCOM_2_USART_BAUD -#define CONF_SERCOM_2_USART_BAUD 921600 +#ifndef CONF_SERCOM_7_USART_BAUD +#define CONF_SERCOM_7_USART_BAUD 921600 #endif // // Advanced configuration // usart_advanced -#ifndef CONF_SERCOM_2_USART_ADVANCED_CONFIG -#define CONF_SERCOM_2_USART_ADVANCED_CONFIG 0 +#ifndef CONF_SERCOM_7_USART_ADVANCED_CONFIG +#define CONF_SERCOM_7_USART_ADVANCED_CONFIG 0 #endif // Run in stand-by // Keep the module running in standby sleep mode // usart_arch_runstdby -#ifndef CONF_SERCOM_2_USART_RUNSTDBY -#define CONF_SERCOM_2_USART_RUNSTDBY 0 +#ifndef CONF_SERCOM_7_USART_RUNSTDBY +#define CONF_SERCOM_7_USART_RUNSTDBY 0 #endif // Immediate Buffer Overflow Notification // Controls when the BUFOVF status bit is asserted // usart_arch_ibon -#ifndef CONF_SERCOM_2_USART_IBON -#define CONF_SERCOM_2_USART_IBON 0 +#ifndef CONF_SERCOM_7_USART_IBON +#define CONF_SERCOM_7_USART_IBON 0 #endif // Start of Frame Detection Enable // Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled) // usart_arch_sfde -#ifndef CONF_SERCOM_2_USART_SFDE -#define CONF_SERCOM_2_USART_SFDE 0 +#ifndef CONF_SERCOM_7_USART_SFDE +#define CONF_SERCOM_7_USART_SFDE 0 #endif // Collision Detection Enable // Collision detection enable // usart_arch_cloden -#ifndef CONF_SERCOM_2_USART_CLODEN -#define CONF_SERCOM_2_USART_CLODEN 0 +#ifndef CONF_SERCOM_7_USART_CLODEN +#define CONF_SERCOM_7_USART_CLODEN 0 #endif // Operating Mode @@ -105,8 +105,8 @@ // <0x1=>USART with internal clock // Drive the shift register by an internal clock generated by the baud rate generator or an external clock supplied on the XCK pin. // usart_arch_clock_mode -#ifndef CONF_SERCOM_2_USART_MODE -#define CONF_SERCOM_2_USART_MODE 0x1 +#ifndef CONF_SERCOM_7_USART_MODE +#define CONF_SERCOM_7_USART_MODE 0x1 #endif // Sample Rate @@ -117,8 +117,8 @@ // <0x4=>3x arithmetic // How many over-sampling bits used when sampling data state // usart_arch_sampr -#ifndef CONF_SERCOM_2_USART_SAMPR -#define CONF_SERCOM_2_USART_SAMPR 0x0 +#ifndef CONF_SERCOM_7_USART_SAMPR +#define CONF_SERCOM_7_USART_SAMPR 0x0 #endif // Sample Adjustment @@ -128,15 +128,15 @@ // <0x3=>13-14-15 (6-7-8 8-bit over-sampling) // Adjust which samples to use for data sampling in asynchronous mode // usart_arch_sampa -#ifndef CONF_SERCOM_2_USART_SAMPA -#define CONF_SERCOM_2_USART_SAMPA 0x0 +#ifndef CONF_SERCOM_7_USART_SAMPA +#define CONF_SERCOM_7_USART_SAMPA 0x0 #endif // Fractional Part <0-7> // Fractional part of the baud rate if baud rate generator is in fractional mode // usart_arch_fractional -#ifndef CONF_SERCOM_2_USART_FRACTIONAL -#define CONF_SERCOM_2_USART_FRACTIONAL 0x0 +#ifndef CONF_SERCOM_7_USART_FRACTIONAL +#define CONF_SERCOM_7_USART_FRACTIONAL 0x0 #endif // Data Order @@ -144,19 +144,19 @@ // <1=>LSB is transmitted first // Data order of the data bits in the frame // usart_arch_dord -#ifndef CONF_SERCOM_2_USART_DORD -#define CONF_SERCOM_2_USART_DORD 1 +#ifndef CONF_SERCOM_7_USART_DORD +#define CONF_SERCOM_7_USART_DORD 1 #endif // Does not do anything in UART mode -#define CONF_SERCOM_2_USART_CPOL 0 +#define CONF_SERCOM_7_USART_CPOL 0 // Encoding Format // <0=>No encoding // <1=>IrDA encoded // usart_arch_enc -#ifndef CONF_SERCOM_2_USART_ENC -#define CONF_SERCOM_2_USART_ENC 0 +#ifndef CONF_SERCOM_7_USART_ENC +#define CONF_SERCOM_7_USART_ENC 0 #endif // LIN Slave Enable @@ -165,8 +165,8 @@ // <0=>Disable // <1=>Enable // usart_arch_lin_slave_enable -#ifndef CONF_SERCOM_2_USART_LIN_SLAVE_ENABLE -#define CONF_SERCOM_2_USART_LIN_SLAVE_ENABLE 0 +#ifndef CONF_SERCOM_7_USART_LIN_SLAVE_ENABLE +#define CONF_SERCOM_7_USART_LIN_SLAVE_ENABLE 0 #endif // Debug Stop Mode @@ -174,102 +174,102 @@ // <0=>Keep running // <1=>Halt // usart_arch_dbgstop -#ifndef CONF_SERCOM_2_USART_DEBUG_STOP_MODE -#define CONF_SERCOM_2_USART_DEBUG_STOP_MODE 0 +#ifndef CONF_SERCOM_7_USART_DEBUG_STOP_MODE +#define CONF_SERCOM_7_USART_DEBUG_STOP_MODE 0 #endif // -#ifndef CONF_SERCOM_2_USART_INACK -#define CONF_SERCOM_2_USART_INACK 0x0 +#ifndef CONF_SERCOM_7_USART_INACK +#define CONF_SERCOM_7_USART_INACK 0x0 #endif -#ifndef CONF_SERCOM_2_USART_DSNACK -#define CONF_SERCOM_2_USART_DSNACK 0x0 +#ifndef CONF_SERCOM_7_USART_DSNACK +#define CONF_SERCOM_7_USART_DSNACK 0x0 #endif -#ifndef CONF_SERCOM_2_USART_MAXITER -#define CONF_SERCOM_2_USART_MAXITER 0x7 +#ifndef CONF_SERCOM_7_USART_MAXITER +#define CONF_SERCOM_7_USART_MAXITER 0x7 #endif -#ifndef CONF_SERCOM_2_USART_GTIME -#define CONF_SERCOM_2_USART_GTIME 0x2 +#ifndef CONF_SERCOM_7_USART_GTIME +#define CONF_SERCOM_7_USART_GTIME 0x2 #endif -#define CONF_SERCOM_2_USART_RXINV 0x0 -#define CONF_SERCOM_2_USART_TXINV 0x0 +#define CONF_SERCOM_7_USART_RXINV 0x0 +#define CONF_SERCOM_7_USART_TXINV 0x0 -#ifndef CONF_SERCOM_2_USART_CMODE -#define CONF_SERCOM_2_USART_CMODE 0 +#ifndef CONF_SERCOM_7_USART_CMODE +#define CONF_SERCOM_7_USART_CMODE 0 #endif -#ifndef CONF_SERCOM_2_USART_RXPO -#define CONF_SERCOM_2_USART_RXPO 1 /* RX is on PIN_PB24 */ +#ifndef CONF_SERCOM_7_USART_RXPO +#define CONF_SERCOM_7_USART_RXPO 1 /* RX is on PIN_PB31 */ #endif -#ifndef CONF_SERCOM_2_USART_TXPO -#define CONF_SERCOM_2_USART_TXPO 0 /* TX is on PIN_PB25 */ +#ifndef CONF_SERCOM_7_USART_TXPO +#define CONF_SERCOM_7_USART_TXPO 0 /* TX is on PIN_PB30 */ #endif /* Set correct parity settings in register interface based on PARITY setting */ -#if CONF_SERCOM_2_USART_LIN_SLAVE_ENABLE == 1 -#if CONF_SERCOM_2_USART_PARITY == 0 -#define CONF_SERCOM_2_USART_PMODE 0 -#define CONF_SERCOM_2_USART_FORM 4 +#if CONF_SERCOM_7_USART_LIN_SLAVE_ENABLE == 1 +#if CONF_SERCOM_7_USART_PARITY == 0 +#define CONF_SERCOM_7_USART_PMODE 0 +#define CONF_SERCOM_7_USART_FORM 4 #else -#define CONF_SERCOM_2_USART_PMODE CONF_SERCOM_2_USART_PARITY - 1 -#define CONF_SERCOM_2_USART_FORM 5 +#define CONF_SERCOM_7_USART_PMODE CONF_SERCOM_7_USART_PARITY - 1 +#define CONF_SERCOM_7_USART_FORM 5 #endif -#else /* #if CONF_SERCOM_2_USART_LIN_SLAVE_ENABLE == 0 */ -#if CONF_SERCOM_2_USART_PARITY == 0 -#define CONF_SERCOM_2_USART_PMODE 0 -#define CONF_SERCOM_2_USART_FORM 0 +#else /* #if CONF_SERCOM_7_USART_LIN_SLAVE_ENABLE == 0 */ +#if CONF_SERCOM_7_USART_PARITY == 0 +#define CONF_SERCOM_7_USART_PMODE 0 +#define CONF_SERCOM_7_USART_FORM 0 #else -#define CONF_SERCOM_2_USART_PMODE CONF_SERCOM_2_USART_PARITY - 1 -#define CONF_SERCOM_2_USART_FORM 1 +#define CONF_SERCOM_7_USART_PMODE CONF_SERCOM_7_USART_PARITY - 1 +#define CONF_SERCOM_7_USART_FORM 1 #endif #endif // Calculate BAUD register value in UART mode -#if CONF_SERCOM_2_USART_SAMPR == 0 -#ifndef CONF_SERCOM_2_USART_BAUD_RATE -#define CONF_SERCOM_2_USART_BAUD_RATE \ - 65536 - ((65536 * 16.0f * CONF_SERCOM_2_USART_BAUD) / CONF_GCLK_SERCOM2_CORE_FREQUENCY) +#if CONF_SERCOM_7_USART_SAMPR == 0 +#ifndef CONF_SERCOM_7_USART_BAUD_RATE +#define CONF_SERCOM_7_USART_BAUD_RATE \ + 65536 - ((65536 * 16.0f * CONF_SERCOM_7_USART_BAUD) / CONF_GCLK_SERCOM7_CORE_FREQUENCY) #endif -#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH -#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0 +#ifndef CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH 0 #endif -#elif CONF_SERCOM_2_USART_SAMPR == 1 -#ifndef CONF_SERCOM_2_USART_BAUD_RATE -#define CONF_SERCOM_2_USART_BAUD_RATE \ - ((CONF_GCLK_SERCOM2_CORE_FREQUENCY) / (CONF_SERCOM_2_USART_BAUD * 16)) - (CONF_SERCOM_2_USART_FRACTIONAL / 8) +#elif CONF_SERCOM_7_USART_SAMPR == 1 +#ifndef CONF_SERCOM_7_USART_BAUD_RATE +#define CONF_SERCOM_7_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM7_CORE_FREQUENCY) / (CONF_SERCOM_7_USART_BAUD * 16)) - (CONF_SERCOM_7_USART_FRACTIONAL / 8) #endif -#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH -#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0 +#ifndef CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH 0 #endif -#elif CONF_SERCOM_2_USART_SAMPR == 2 -#ifndef CONF_SERCOM_2_USART_BAUD_RATE -#define CONF_SERCOM_2_USART_BAUD_RATE \ - 65536 - ((65536 * 8.0f * CONF_SERCOM_2_USART_BAUD) / CONF_GCLK_SERCOM2_CORE_FREQUENCY) +#elif CONF_SERCOM_7_USART_SAMPR == 2 +#ifndef CONF_SERCOM_7_USART_BAUD_RATE +#define CONF_SERCOM_7_USART_BAUD_RATE \ + 65536 - ((65536 * 8.0f * CONF_SERCOM_7_USART_BAUD) / CONF_GCLK_SERCOM7_CORE_FREQUENCY) #endif -#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH -#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0 +#ifndef CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH 0 #endif -#elif CONF_SERCOM_2_USART_SAMPR == 3 -#ifndef CONF_SERCOM_2_USART_BAUD_RATE -#define CONF_SERCOM_2_USART_BAUD_RATE \ - ((CONF_GCLK_SERCOM2_CORE_FREQUENCY) / (CONF_SERCOM_2_USART_BAUD * 8)) - (CONF_SERCOM_2_USART_FRACTIONAL / 8) +#elif CONF_SERCOM_7_USART_SAMPR == 3 +#ifndef CONF_SERCOM_7_USART_BAUD_RATE +#define CONF_SERCOM_7_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM7_CORE_FREQUENCY) / (CONF_SERCOM_7_USART_BAUD * 8)) - (CONF_SERCOM_7_USART_FRACTIONAL / 8) #endif -#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH -#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0 +#ifndef CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH 0 #endif -#elif CONF_SERCOM_2_USART_SAMPR == 4 -#ifndef CONF_SERCOM_2_USART_BAUD_RATE -#define CONF_SERCOM_2_USART_BAUD_RATE \ - 65536 - ((65536 * 3.0f * CONF_SERCOM_2_USART_BAUD) / CONF_GCLK_SERCOM2_CORE_FREQUENCY) +#elif CONF_SERCOM_7_USART_SAMPR == 4 +#ifndef CONF_SERCOM_7_USART_BAUD_RATE +#define CONF_SERCOM_7_USART_BAUD_RATE \ + 65536 - ((65536 * 3.0f * CONF_SERCOM_7_USART_BAUD) / CONF_GCLK_SERCOM7_CORE_FREQUENCY) #endif -#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH -#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0 +#ifndef CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH 0 #endif #endif diff --git a/sysmoOCTSIM/config/hpl_usb_config.h b/sysmoOCTSIM/config/hpl_usb_config.h index 02439a3..73a9fea 100644 --- a/sysmoOCTSIM/config/hpl_usb_config.h +++ b/sysmoOCTSIM/config/hpl_usb_config.h @@ -39,7 +39,7 @@ // Max possible (by "Max Endpoint Number" config) // usbd_num_ep_sp #ifndef CONF_USB_D_NUM_EP_SP -#define CONF_USB_D_NUM_EP_SP CONF_USB_D_N_EP_MAX +#define CONF_USB_D_NUM_EP_SP CONF_USB_N_4 #endif // diff --git a/sysmoOCTSIM/config/peripheral_clk_config.h b/sysmoOCTSIM/config/peripheral_clk_config.h index c9852b6..ce68abd 100644 --- a/sysmoOCTSIM/config/peripheral_clk_config.h +++ b/sysmoOCTSIM/config/peripheral_clk_config.h @@ -40,8 +40,8 @@ // Generic clock generator 11 // Select the clock source for CORE. -#ifndef CONF_GCLK_SERCOM2_CORE_SRC -#define CONF_GCLK_SERCOM2_CORE_SRC GCLK_PCHCTRL_GEN_GCLK2_Val +#ifndef CONF_GCLK_SERCOM7_CORE_SRC +#define CONF_GCLK_SERCOM7_CORE_SRC GCLK_PCHCTRL_GEN_GCLK2_Val #endif // Slow Clock Source @@ -72,24 +72,24 @@ // Generic clock generator 11 // Select the slow clock source. -#ifndef CONF_GCLK_SERCOM2_SLOW_SRC -#define CONF_GCLK_SERCOM2_SLOW_SRC GCLK_PCHCTRL_GEN_GCLK3_Val +#ifndef CONF_GCLK_SERCOM7_SLOW_SRC +#define CONF_GCLK_SERCOM7_SLOW_SRC GCLK_PCHCTRL_GEN_GCLK3_Val #endif /** - * \def CONF_GCLK_SERCOM2_CORE_FREQUENCY - * \brief SERCOM2's Core Clock frequency + * \def CONF_GCLK_SERCOM7_CORE_FREQUENCY + * \brief SERCOM7's Core Clock frequency */ -#ifndef CONF_GCLK_SERCOM2_CORE_FREQUENCY -#define CONF_GCLK_SERCOM2_CORE_FREQUENCY 100000000 +#ifndef CONF_GCLK_SERCOM7_CORE_FREQUENCY +#define CONF_GCLK_SERCOM7_CORE_FREQUENCY 100000000 #endif /** - * \def CONF_GCLK_SERCOM2_SLOW_FREQUENCY - * \brief SERCOM2's Slow Clock frequency + * \def CONF_GCLK_SERCOM7_SLOW_FREQUENCY + * \brief SERCOM7's Slow Clock frequency */ -#ifndef CONF_GCLK_SERCOM2_SLOW_FREQUENCY -#define CONF_GCLK_SERCOM2_SLOW_FREQUENCY 32768 +#ifndef CONF_GCLK_SERCOM7_SLOW_FREQUENCY +#define CONF_GCLK_SERCOM7_SLOW_FREQUENCY 32768 #endif // USB Clock Source diff --git a/sysmoOCTSIM/driver_init.c b/sysmoOCTSIM/driver_init.c index 9fbc7ed..dea4ebc 100644 --- a/sysmoOCTSIM/driver_init.c +++ b/sysmoOCTSIM/driver_init.c @@ -26,10 +26,10 @@ void UART_debug_CLOCK_init() { - hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM2_GCLK_ID_CORE, CONF_GCLK_SERCOM2_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); - hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM2_GCLK_ID_SLOW, CONF_GCLK_SERCOM2_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM7_GCLK_ID_CORE, CONF_GCLK_SERCOM7_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM7_GCLK_ID_SLOW, CONF_GCLK_SERCOM7_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); - hri_mclk_set_APBBMASK_SERCOM2_bit(MCLK); + hri_mclk_set_APBDMASK_SERCOM7_bit(MCLK); } /** @@ -40,9 +40,9 @@ void UART_debug_PORT_init() { - gpio_set_pin_function(PB25, PINMUX_PB25D_SERCOM2_PAD0); + gpio_set_pin_function(UART_TX, PINMUX_PB30C_SERCOM7_PAD0); - gpio_set_pin_function(PB24, PINMUX_PB24D_SERCOM2_PAD1); + gpio_set_pin_function(UART_RX, PINMUX_PB31C_SERCOM7_PAD1); } /** @@ -53,14 +53,14 @@ void UART_debug_init(void) { UART_debug_CLOCK_init(); - usart_async_init(&UART_debug, SERCOM2, UART_debug_buffer, UART_DEBUG_BUFFER_SIZE, (void *)NULL); + usart_async_init(&UART_debug, SERCOM7, UART_debug_buffer, UART_DEBUG_BUFFER_SIZE, (void *)NULL); UART_debug_PORT_init(); } void USB_DEVICE_INSTANCE_PORT_init(void) { - gpio_set_pin_direction(PA24, + gpio_set_pin_direction(USBUP_D_N, // Pin direction // pad_direction // Off @@ -68,14 +68,14 @@ // Out GPIO_DIRECTION_OUT); - gpio_set_pin_level(PA24, + gpio_set_pin_level(USBUP_D_N, // Initial level // pad_initial_level // Low // High false); - gpio_set_pin_pull_mode(PA24, + gpio_set_pin_pull_mode(USBUP_D_N, // Pull configuration // pad_pull_config // Off @@ -83,7 +83,7 @@ // Pull-down GPIO_PULL_OFF); - gpio_set_pin_function(PA24, + gpio_set_pin_function(USBUP_D_N, // Pin function // pad_function // Auto : use driver pinmux if signal is imported by driver, else turn off function @@ -105,7 +105,7 @@ // N PINMUX_PA24H_USB_DM); - gpio_set_pin_direction(PA25, + gpio_set_pin_direction(USBUP_D_P, // Pin direction // pad_direction // Off @@ -113,14 +113,14 @@ // Out GPIO_DIRECTION_OUT); - gpio_set_pin_level(PA25, + gpio_set_pin_level(USBUP_D_P, // Initial level // pad_initial_level // Low // High false); - gpio_set_pin_pull_mode(PA25, + gpio_set_pin_pull_mode(USBUP_D_P, // Pull configuration // pad_pull_config // Off @@ -128,7 +128,7 @@ // Pull-down GPIO_PULL_OFF); - gpio_set_pin_function(PA25, + gpio_set_pin_function(USBUP_D_P, // Pin function // pad_function // Auto : use driver pinmux if signal is imported by driver, else turn off function @@ -176,14 +176,14 @@ { init_mcu(); - // GPIO on PC18 + // GPIO on PC26 gpio_set_pin_level(LED_system, // Initial level // pad_initial_level // Low // High - true); + false); // Set pin direction to output gpio_set_pin_direction(LED_system, GPIO_DIRECTION_OUT); diff --git a/sysmoOCTSIM/gcc/Makefile b/sysmoOCTSIM/gcc/Makefile index ff11dd9..7bc5fd3 100644 --- a/sysmoOCTSIM/gcc/Makefile +++ b/sysmoOCTSIM/gcc/Makefile @@ -69,6 +69,7 @@ hal/src/hal_init.o \ gcc/gcc/startup_same54.o \ hal/src/hal_usb_device.o \ +main.o \ hpl/osc32kctrl/hpl_osc32kctrl.o \ examples/driver_examples.o \ driver_init.o \ @@ -81,7 +82,6 @@ hal/src/hal_cache.o \ hpl/cmcc/hpl_cmcc.o \ atmel_start.o \ -main.o \ usb/device/usbdc.o \ hal/src/hal_atomic.o @@ -107,6 +107,7 @@ "hal/src/hal_init.o" \ "gcc/gcc/startup_same54.o" \ "hal/src/hal_usb_device.o" \ +"main.o" \ "hpl/osc32kctrl/hpl_osc32kctrl.o" \ "examples/driver_examples.o" \ "driver_init.o" \ @@ -119,7 +120,6 @@ "hal/src/hal_cache.o" \ "hpl/cmcc/hpl_cmcc.o" \ "atmel_start.o" \ -"main.o" \ "usb/device/usbdc.o" \ "hal/src/hal_atomic.o" @@ -147,11 +147,11 @@ "hal/src/hal_usb_device.d" \ "usb_start.d" \ "hal/src/hal_init.d" \ -"main.d" \ "hpl/mclk/hpl_mclk.d" \ "driver_init.d" \ "hal/src/hal_usart_async.d" \ "hpl/osc32kctrl/hpl_osc32kctrl.d" \ +"main.d" \ "examples/driver_examples.d" \ "hal/src/hal_cache.d" \ "hal/src/hal_sleep.d" \ @@ -184,7 +184,7 @@ $(QUOTE)arm-none-eabi-gcc$(QUOTE) -o $(OUTPUT_FILE_NAME).elf $(OBJS_AS_ARGS) -Wl,--start-group -lm -Wl,--end-group -mthumb \ -Wl,-Map="$(OUTPUT_FILE_NAME).map" --specs=nano.specs -Wl,--gc-sections -mcpu=cortex-m4 \ \ --T"../gcc/gcc/same54p20a_flash.ld" \ +-T"../gcc/gcc/same54n19a_flash.ld" \ -L"../gcc/gcc" @echo Finished building target: $@ @@ -208,7 +208,7 @@ @echo Building file: $< @echo ARM/GNU C Compiler $(QUOTE)arm-none-eabi-gcc$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ --D__SAME54P20A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ +-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ -I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include" \ -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" @echo Finished building: $< @@ -217,7 +217,7 @@ @echo Building file: $< @echo ARM/GNU Assembler $(QUOTE)arm-none-eabi-as$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ --D__SAME54P20A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ +-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ -I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include" \ -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" @echo Finished building: $< @@ -226,7 +226,7 @@ @echo Building file: $< @echo ARM/GNU Preprocessing Assembler $(QUOTE)arm-none-eabi-gcc$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ --D__SAME54P20A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ +-D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ -I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include" \ -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" @echo Finished building: $< @@ -247,4 +247,4 @@ rm -f $(DEPS_AS_ARGS) rm -f $(OUTPUT_FILE_NAME).a $(OUTPUT_FILE_NAME).hex $(OUTPUT_FILE_NAME).bin \ $(OUTPUT_FILE_NAME).lss $(OUTPUT_FILE_NAME).eep $(OUTPUT_FILE_NAME).map \ - $(OUTPUT_FILE_NAME).srec + $(OUTPUT_FILE_NAME).srec \ No newline at end of file diff --git a/sysmoOCTSIM/gcc/gcc/same54n19a_flash.ld b/sysmoOCTSIM/gcc/gcc/same54n19a_flash.ld new file mode 100644 index 0000000..eaa6ed6 --- /dev/null +++ b/sysmoOCTSIM/gcc/gcc/same54n19a_flash.ld @@ -0,0 +1,163 @@ +/** + * \file + * + * \brief Linker script for running in internal FLASH on the SAME54N19A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + + +OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") +OUTPUT_ARCH(arm) +SEARCH_DIR(.) + +/* Memory Spaces Definitions */ +MEMORY +{ + rom (rx) : ORIGIN = 0x00000000, LENGTH = 0x00080000 + ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00030000 + bkupram (rwx) : ORIGIN = 0x47000000, LENGTH = 0x00002000 + qspi (rwx) : ORIGIN = 0x04000000, LENGTH = 0x01000000 +} + +/* The stack size used by the application. NOTE: you need to adjust according to your application. */ +STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0xC000; + +/* Section Definitions */ +SECTIONS +{ + .text : + { + . = ALIGN(4); + _sfixed = .; + KEEP(*(.vectors .vectors.*)) + *(.text .text.* .gnu.linkonce.t.*) + *(.glue_7t) *(.glue_7) + *(.rodata .rodata* .gnu.linkonce.r.*) + *(.ARM.extab* .gnu.linkonce.armextab.*) + + /* Support C constructors, and C destructors in both user code + and the C library. This also provides support for C++ code. */ + . = ALIGN(4); + KEEP(*(.init)) + . = ALIGN(4); + __preinit_array_start = .; + KEEP (*(.preinit_array)) + __preinit_array_end = .; + + . = ALIGN(4); + __init_array_start = .; + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array)) + __init_array_end = .; + + . = ALIGN(4); + KEEP (*crtbegin.o(.ctors)) + KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*crtend.o(.ctors)) + + . = ALIGN(4); + KEEP(*(.fini)) + + . = ALIGN(4); + __fini_array_start = .; + KEEP (*(.fini_array)) + KEEP (*(SORT(.fini_array.*))) + __fini_array_end = .; + + KEEP (*crtbegin.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*crtend.o(.dtors)) + + . = ALIGN(4); + _efixed = .; /* End of text section */ + } > rom + + /* .ARM.exidx is sorted, so has to go in its own output section. */ + PROVIDE_HIDDEN (__exidx_start = .); + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } > rom + PROVIDE_HIDDEN (__exidx_end = .); + + . = ALIGN(4); + _etext = .; + + .relocate : AT (_etext) + { + . = ALIGN(4); + _srelocate = .; + *(.ramfunc .ramfunc.*); + *(.data .data.*); + . = ALIGN(4); + _erelocate = .; + } > ram + + .bkupram (NOLOAD): + { + . = ALIGN(8); + _sbkupram = .; + *(.bkupram .bkupram.*); + . = ALIGN(8); + _ebkupram = .; + } > bkupram + + .qspi (NOLOAD): + { + . = ALIGN(8); + _sqspi = .; + *(.qspi .qspi.*); + . = ALIGN(8); + _eqspi = .; + } > qspi + + /* .bss section which is used for uninitialized data */ + .bss (NOLOAD) : + { + . = ALIGN(4); + _sbss = . ; + _szero = .; + *(.bss .bss.*) + *(COMMON) + . = ALIGN(4); + _ebss = . ; + _ezero = .; + } > ram + + /* stack section */ + .stack (NOLOAD): + { + . = ALIGN(8); + _sstack = .; + . = . + STACK_SIZE; + . = ALIGN(8); + _estack = .; + } > ram + + . = ALIGN(4); + _end = . ; +} diff --git a/sysmoOCTSIM/gcc/gcc/same54n19a_sram.ld b/sysmoOCTSIM/gcc/gcc/same54n19a_sram.ld new file mode 100644 index 0000000..fa2c47c --- /dev/null +++ b/sysmoOCTSIM/gcc/gcc/same54n19a_sram.ld @@ -0,0 +1,162 @@ +/** + * \file + * + * \brief Linker script for running in internal SRAM on the SAME54N19A + * + * Copyright (c) 2018 Microchip Technology Inc. + * + * \asf_license_start + * + * \page License + * + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the Licence at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * \asf_license_stop + * + */ + + +OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") +OUTPUT_ARCH(arm) +SEARCH_DIR(.) + +/* Memory Spaces Definitions */ +MEMORY +{ + ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00030000 + bkupram (rwx) : ORIGIN = 0x47000000, LENGTH = 0x00002000 + qspi (rwx) : ORIGIN = 0x04000000, LENGTH = 0x01000000 +} + +/* The stack size used by the application. NOTE: you need to adjust according to your application. */ +STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0xC000; + +/* Section Definitions */ +SECTIONS +{ + .text : + { + . = ALIGN(4); + _sfixed = .; + KEEP(*(.vectors .vectors.*)) + *(.text .text.* .gnu.linkonce.t.*) + *(.glue_7t) *(.glue_7) + *(.rodata .rodata* .gnu.linkonce.r.*) + *(.ARM.extab* .gnu.linkonce.armextab.*) + + /* Support C constructors, and C destructors in both user code + and the C library. This also provides support for C++ code. */ + . = ALIGN(4); + KEEP(*(.init)) + . = ALIGN(4); + __preinit_array_start = .; + KEEP (*(.preinit_array)) + __preinit_array_end = .; + + . = ALIGN(4); + __init_array_start = .; + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array)) + __init_array_end = .; + + . = ALIGN(4); + KEEP (*crtbegin.o(.ctors)) + KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) + KEEP (*(SORT(.ctors.*))) + KEEP (*crtend.o(.ctors)) + + . = ALIGN(4); + KEEP(*(.fini)) + + . = ALIGN(4); + __fini_array_start = .; + KEEP (*(.fini_array)) + KEEP (*(SORT(.fini_array.*))) + __fini_array_end = .; + + KEEP (*crtbegin.o(.dtors)) + KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) + KEEP (*(SORT(.dtors.*))) + KEEP (*crtend.o(.dtors)) + + . = ALIGN(4); + _efixed = .; /* End of text section */ + } > ram + + /* .ARM.exidx is sorted, so has to go in its own output section. */ + PROVIDE_HIDDEN (__exidx_start = .); + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + } > ram + PROVIDE_HIDDEN (__exidx_end = .); + + . = ALIGN(4); + _etext = .; + + .relocate : AT (_etext) + { + . = ALIGN(4); + _srelocate = .; + *(.ramfunc .ramfunc.*); + *(.data .data.*); + . = ALIGN(4); + _erelocate = .; + } > ram + + .bkupram (NOLOAD): + { + . = ALIGN(8); + _sbkupram = .; + *(.bkupram .bkupram.*); + . = ALIGN(8); + _ebkupram = .; + } > bkupram + + .qspi (NOLOAD): + { + . = ALIGN(8); + _sqspi = .; + *(.qspi .qspi.*); + . = ALIGN(8); + _eqspi = .; + } > qspi + + /* .bss section which is used for uninitialized data */ + .bss (NOLOAD) : + { + . = ALIGN(4); + _sbss = . ; + _szero = .; + *(.bss .bss.*) + *(COMMON) + . = ALIGN(4); + _ebss = . ; + _ezero = .; + } > ram + + /* stack section */ + .stack (NOLOAD): + { + . = ALIGN(8); + _sstack = .; + . = . + STACK_SIZE; + . = ALIGN(8); + _estack = .; + } > ram + + . = ALIGN(4); + _end = . ; +} diff --git a/sysmoOCTSIM/hpl/port/hpl_gpio_base.h b/sysmoOCTSIM/hpl/port/hpl_gpio_base.h index f32c40f..12ff6f7 100644 --- a/sysmoOCTSIM/hpl/port/hpl_gpio_base.h +++ b/sysmoOCTSIM/hpl/port/hpl_gpio_base.h @@ -168,5 +168,4 @@ hri_port_set_EVCTRL_reg(PORT, 0, CONF_PORTA_EVCTRL); hri_port_set_EVCTRL_reg(PORT, 1, CONF_PORTB_EVCTRL); hri_port_set_EVCTRL_reg(PORT, 2, CONF_PORTC_EVCTRL); - hri_port_set_EVCTRL_reg(PORT, 3, CONF_PORTD_EVCTRL); } diff --git a/sysmoOCTSIM/hpl/sercom/hpl_sercom.c b/sysmoOCTSIM/hpl/sercom/hpl_sercom.c index 11192d0..535ebc6 100644 --- a/sysmoOCTSIM/hpl/sercom/hpl_sercom.c +++ b/sysmoOCTSIM/hpl/sercom/hpl_sercom.c @@ -163,7 +163,7 @@ }; #endif -static struct _usart_async_device *_sercom2_dev = NULL; +static struct _usart_async_device *_sercom7_dev = NULL; static uint8_t _get_sercom_index(const void *const hw); static uint8_t _sercom_get_irq_num(const void *const hw); @@ -626,8 +626,8 @@ static void _sercom_init_irq_param(const void *const hw, void *dev) { - if (hw == SERCOM2) { - _sercom2_dev = (struct _usart_async_device *)dev; + if (hw == SERCOM7) { + _sercom7_dev = (struct _usart_async_device *)dev; } } @@ -2392,30 +2392,30 @@ /** * \internal Sercom interrupt handler */ -void SERCOM2_0_Handler(void) +void SERCOM7_0_Handler(void) { - _sercom_usart_interrupt_handler(_sercom2_dev); + _sercom_usart_interrupt_handler(_sercom7_dev); } /** * \internal Sercom interrupt handler */ -void SERCOM2_1_Handler(void) +void SERCOM7_1_Handler(void) { - _sercom_usart_interrupt_handler(_sercom2_dev); + _sercom_usart_interrupt_handler(_sercom7_dev); } /** * \internal Sercom interrupt handler */ -void SERCOM2_2_Handler(void) +void SERCOM7_2_Handler(void) { - _sercom_usart_interrupt_handler(_sercom2_dev); + _sercom_usart_interrupt_handler(_sercom7_dev); } /** * \internal Sercom interrupt handler */ -void SERCOM2_3_Handler(void) +void SERCOM7_3_Handler(void) { - _sercom_usart_interrupt_handler(_sercom2_dev); + _sercom_usart_interrupt_handler(_sercom7_dev); } int32_t _spi_m_sync_init(struct _spi_m_sync_dev *dev, void *const hw) diff --git a/sysmoOCTSIM/hpl/usb/hpl_usb.c b/sysmoOCTSIM/hpl/usb/hpl_usb.c index 6bf09ab..b5efe6c 100644 --- a/sysmoOCTSIM/hpl/usb/hpl_usb.c +++ b/sysmoOCTSIM/hpl/usb/hpl_usb.c @@ -154,7 +154,7 @@ * \param[in] s Buffer size, in number of bytes. * \return \c true If the buffer is in RAM. */ -#define _IN_RAM(a, s) ((0x20000000 <= (uint32_t)(a)) && (((uint32_t)(a) + (s)) < (0x20000000 + 0x00042000))) +#define _IN_RAM(a, s) ((0x20000000 <= (uint32_t)(a)) && (((uint32_t)(a) + (s)) < (0x20000000 + 0x00032000))) /** Check if the address should be placed in RAM. */ #define _usb_is_addr4dma(addr, size) _IN_RAM((addr), (size)) -- To view, visit https://gerrit.osmocom.org/12808 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ifd15f6759c51b42a8d11b09f9f495d7e7a5b6afc Gerrit-Change-Number: 12808 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 16:08:07 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Thu, 7 Feb 2019 16:08:07 +0000 Subject: Change in osmo-ccid-firmware[master]: add 20 MHz clock output In-Reply-To: References: Message-ID: K?vin Redon has submitted this change and it was merged. ( https://gerrit.osmocom.org/12809 ) Change subject: add 20 MHz clock output ...................................................................... add 20 MHz clock output use GCLK5 to output 20 MHz clock on PA11/GCLK_IO[5] for SIM cards clock. this can be further divided by the NCN8025 before reaching the SIM. Change-Id: I2c0d6a31ec63a87e04ef4e3afbedce3a221324cc --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/config/hpl_gclk_config.h 2 files changed, 10 insertions(+), 10 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index 09c0b2d..5c7cc2c 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -648,7 +648,7 @@ enable_gclk_gen_2: true enable_gclk_gen_3: true enable_gclk_gen_4: false - enable_gclk_gen_5: false + enable_gclk_gen_5: true enable_gclk_gen_6: false enable_gclk_gen_7: false enable_gclk_gen_8: false @@ -688,9 +688,9 @@ gclk_arch_gen_4_oe: false gclk_arch_gen_4_oov: false gclk_arch_gen_4_runstdby: false - gclk_arch_gen_5_enable: false + gclk_arch_gen_5_enable: true gclk_arch_gen_5_idc: false - gclk_arch_gen_5_oe: false + gclk_arch_gen_5_oe: true gclk_arch_gen_5_oov: false gclk_arch_gen_5_runstdby: false gclk_arch_gen_6_enable: false @@ -734,9 +734,9 @@ gclk_gen_4_div: 1 gclk_gen_4_div_sel: false gclk_gen_4_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) - gclk_gen_5_div: 1 + gclk_gen_5_div: 5 gclk_gen_5_div_sel: false - gclk_gen_5_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) + gclk_gen_5_oscillator: Digital Phase Locked Loop (DPLL1) gclk_gen_6_div: 1 gclk_gen_6_div_sel: false gclk_gen_6_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) diff --git a/sysmoOCTSIM/config/hpl_gclk_config.h b/sysmoOCTSIM/config/hpl_gclk_config.h index d16af6f..6b7586c 100644 --- a/sysmoOCTSIM/config/hpl_gclk_config.h +++ b/sysmoOCTSIM/config/hpl_gclk_config.h @@ -387,7 +387,7 @@ // Indicates whether generic clock 5 configuration is enabled or not // enable_gclk_gen_5 #ifndef CONF_GCLK_GENERATOR_5_CONFIG -#define CONF_GCLK_GENERATOR_5_CONFIG 0 +#define CONF_GCLK_GENERATOR_5_CONFIG 1 #endif // Generic Clock Generator Control @@ -404,7 +404,7 @@ // This defines the clock source for generic clock generator 5 // gclk_gen_5_oscillator #ifndef CONF_GCLK_GEN_5_SOURCE -#define CONF_GCLK_GEN_5_SOURCE GCLK_GENCTRL_SRC_XOSC1 +#define CONF_GCLK_GEN_5_SOURCE GCLK_GENCTRL_SRC_DPLL1 #endif // Run in Standby @@ -425,7 +425,7 @@ // Indicates whether Output Enable is enabled or not // gclk_arch_gen_5_oe #ifndef CONF_GCLK_GEN_5_OE -#define CONF_GCLK_GEN_5_OE 0 +#define CONF_GCLK_GEN_5_OE 1 #endif // Output Off Value @@ -446,7 +446,7 @@ // Indicates whether Generic Clock Generator Enable is enabled or not // gclk_arch_gen_5_enable #ifndef CONF_GCLK_GEN_5_GENEN -#define CONF_GCLK_GEN_5_GENEN 0 +#define CONF_GCLK_GEN_5_GENEN 1 #endif // @@ -454,7 +454,7 @@ // Generic clock generator 5 division <0x0000-0xFFFF> // gclk_gen_5_div #ifndef CONF_GCLK_GEN_5_DIV -#define CONF_GCLK_GEN_5_DIV 1 +#define CONF_GCLK_GEN_5_DIV 5 #endif // // -- To view, visit https://gerrit.osmocom.org/12809 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I2c0d6a31ec63a87e04ef4e3afbedce3a221324cc Gerrit-Change-Number: 12809 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 16:08:11 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Thu, 7 Feb 2019 16:08:11 +0000 Subject: Change in osmo-ccid-firmware[master]: name pin according to schematic In-Reply-To: References: Message-ID: K?vin Redon has submitted this change and it was merged. ( https://gerrit.osmocom.org/12810 ) Change subject: name pin according to schematic ...................................................................... name pin according to schematic Change-Id: I94a7f2216c288150b044a6190804f9b7247eb10c --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/atmel_start_pins.h M sysmoOCTSIM/driver_init.c M sysmoOCTSIM/main.c 4 files changed, 175 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index 5c7cc2c..b6303f9 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -1030,6 +1030,46 @@ configuration: usb_gclk_selection: Generic clock generator 1 pads: + SIMCLK_20MHZ: + name: PA11 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA11 + mode: Advanced + user_label: SIMCLK_20MHZ + configuration: + pad_direction: Out + pad_function: M + pad_initial_level: Low + pad_pull_config: 'Off' + SWITCH: + name: PC14 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC14 + mode: Digital input + user_label: SWITCH + configuration: null + VB0: + name: PA20 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA20 + mode: Digital input + user_label: VB0 + configuration: null + VB1: + name: PA21 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA21 + mode: Digital input + user_label: VB1 + configuration: null + VB2: + name: PA22 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA22 + mode: Digital input + user_label: VB2 + configuration: null + VB3: + name: PA23 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA23 + mode: Digital input + user_label: VB3 + configuration: null USBUP_D_N: name: PA24 definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA24 @@ -1042,11 +1082,11 @@ mode: Advanced user_label: USBUP_D_P configuration: null - LED_system: + USER_LED: name: PC26 definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC26 mode: Digital output - user_label: LED_system + user_label: USER_LED configuration: null UART_TX: name: PB30 diff --git a/sysmoOCTSIM/atmel_start_pins.h b/sysmoOCTSIM/atmel_start_pins.h index 884a562..fea4388 100644 --- a/sysmoOCTSIM/atmel_start_pins.h +++ b/sysmoOCTSIM/atmel_start_pins.h @@ -27,10 +27,16 @@ #define GPIO_PIN_FUNCTION_M 12 #define GPIO_PIN_FUNCTION_N 13 +#define SIMCLK_20MHZ GPIO(GPIO_PORTA, 11) +#define VB0 GPIO(GPIO_PORTA, 20) +#define VB1 GPIO(GPIO_PORTA, 21) +#define VB2 GPIO(GPIO_PORTA, 22) +#define VB3 GPIO(GPIO_PORTA, 23) #define USBUP_D_N GPIO(GPIO_PORTA, 24) #define USBUP_D_P GPIO(GPIO_PORTA, 25) #define UART_TX GPIO(GPIO_PORTB, 30) #define UART_RX GPIO(GPIO_PORTB, 31) -#define LED_system GPIO(GPIO_PORTC, 26) +#define SWITCH GPIO(GPIO_PORTC, 14) +#define USER_LED GPIO(GPIO_PORTC, 26) #endif // ATMEL_START_PINS_H_INCLUDED diff --git a/sysmoOCTSIM/driver_init.c b/sysmoOCTSIM/driver_init.c index dea4ebc..4ab622f 100644 --- a/sysmoOCTSIM/driver_init.c +++ b/sysmoOCTSIM/driver_init.c @@ -176,9 +176,131 @@ { init_mcu(); + // GPIO on PA11 + + gpio_set_pin_direction(SIMCLK_20MHZ, + // Pin direction + // pad_direction + // Off + // In + // Out + GPIO_DIRECTION_OUT); + + gpio_set_pin_level(SIMCLK_20MHZ, + // Initial level + // pad_initial_level + // Low + // High + false); + + gpio_set_pin_pull_mode(SIMCLK_20MHZ, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(SIMCLK_20MHZ, + // Pin function + // pad_function + // Auto : use driver pinmux if signal is imported by driver, else turn off function + // Auto + // Off + // A + // B + // C + // D + // E + // F + // G + // H + // I + // J + // K + // L + // M + // N + GPIO_PIN_FUNCTION_M); + + // GPIO on PA20 + + // Set pin direction to input + gpio_set_pin_direction(VB0, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(VB0, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(VB0, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PA21 + + // Set pin direction to input + gpio_set_pin_direction(VB1, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(VB1, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(VB1, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PA22 + + // Set pin direction to input + gpio_set_pin_direction(VB2, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(VB2, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(VB2, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PA23 + + // Set pin direction to input + gpio_set_pin_direction(VB3, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(VB3, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(VB3, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PC14 + + // Set pin direction to input + gpio_set_pin_direction(SWITCH, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(SWITCH, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(SWITCH, GPIO_PIN_FUNCTION_OFF); + // GPIO on PC26 - gpio_set_pin_level(LED_system, + gpio_set_pin_level(USER_LED, // Initial level // pad_initial_level // Low @@ -186,9 +308,9 @@ false); // Set pin direction to output - gpio_set_pin_direction(LED_system, GPIO_DIRECTION_OUT); + gpio_set_pin_direction(USER_LED, GPIO_DIRECTION_OUT); - gpio_set_pin_function(LED_system, GPIO_PIN_FUNCTION_OFF); + gpio_set_pin_function(USER_LED, GPIO_PIN_FUNCTION_OFF); UART_debug_init(); diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c index dfe3b03..f2584d2 100644 --- a/sysmoOCTSIM/main.c +++ b/sysmoOCTSIM/main.c @@ -30,7 +30,7 @@ static void rx_cb_UART_debug(const struct usart_async_descriptor *const io_descr) { /* Receive completed */ - gpio_toggle_pin_level(LED_system); + gpio_toggle_pin_level(USER_LED); data_arrived = true; } -- To view, visit https://gerrit.osmocom.org/12810 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I94a7f2216c288150b044a6190804f9b7247eb10c Gerrit-Change-Number: 12810 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 16:08:17 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Thu, 7 Feb 2019 16:08:17 +0000 Subject: Change in osmo-ccid-firmware[master]: add ISO7816 peripherals In-Reply-To: References: Message-ID: K?vin Redon has submitted this change and it was merged. ( https://gerrit.osmocom.org/12811 ) Change subject: add ISO7816 peripherals ...................................................................... add ISO7816 peripherals configure SERCOM 0 to 6 peripherals to communicate using the ISO7816 T=0 protocol. SERCOM7 should be for the 8th SIM card, but for now it is used as UART debug output. Auto-detection between SERCOM for the 8th SIM and debug UART will be done later. Change-Id: I3f1411ec5bc2ed7dfa714550d041f52be665132a --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/atmel_start_pins.h M sysmoOCTSIM/config/hpl_sercom_config.h M sysmoOCTSIM/config/peripheral_clk_config.h M sysmoOCTSIM/driver_init.c M sysmoOCTSIM/driver_init.h M sysmoOCTSIM/examples/driver_examples.c M sysmoOCTSIM/examples/driver_examples.h M sysmoOCTSIM/hpl/sercom/hpl_sercom.c 9 files changed, 3,619 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index b6303f9..975423d 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -943,6 +943,307 @@ variant: null clocks: domain_group: null + SIM0: + user_label: SIM0 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM0::driver_config_definition::USART.with.ISO7816::HAL:Driver:USART.Async + functionality: USART + api: HAL:Driver:USART_Async + configuration: + usart_advanced: false + usart_arch_clock_mode: USART with internal clock + usart_arch_cloden: false + usart_arch_dbgstop: Keep running + usart_arch_dord: LSB is transmitted first + usart_arch_ibon: false + usart_arch_runstdby: false + usart_arch_sfde: false + usart_baud_rate: 9600 + usart_character_size: 8 bits + usart_dsnack: The successive receive NACK is disable. + usart_gtime: 2-bit times + usart_inack: NACK is transmitted when a parity error is received. + usart_inverse_enabled: false + usart_iso7816_type: T=0 + usart_maxiter: 7 + usart_parity: Even parity + usart_rx_enable: true + usart_stop_bit: One stop bit + usart_tx_enable: true + optional_signals: [] + variant: + specification: TXPO=2, RXPO=0 + required_signals: + - name: SERCOM0/PAD/0 + pad: PA04 + label: RX/TX + clocks: + domain_group: + nodes: + - name: Core + input: Generic clock generator 2 + - name: Slow + input: Generic clock generator 3 + configuration: + core_gclk_selection: Generic clock generator 2 + slow_gclk_selection: Generic clock generator 3 + SIM1: + user_label: SIM1 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM1::driver_config_definition::USART.with.ISO7816::HAL:Driver:USART.Async + functionality: USART + api: HAL:Driver:USART_Async + configuration: + usart_advanced: false + usart_arch_clock_mode: USART with internal clock + usart_arch_cloden: false + usart_arch_dbgstop: Keep running + usart_arch_dord: LSB is transmitted first + usart_arch_ibon: false + usart_arch_runstdby: false + usart_arch_sfde: false + usart_baud_rate: 9600 + usart_character_size: 8 bits + usart_dsnack: The successive receive NACK is disable. + usart_gtime: 2-bit times + usart_inack: NACK is transmitted when a parity error is received. + usart_inverse_enabled: false + usart_iso7816_type: T=0 + usart_maxiter: 7 + usart_parity: Even parity + usart_rx_enable: true + usart_stop_bit: One stop bit + usart_tx_enable: true + optional_signals: [] + variant: + specification: TXPO=2, RXPO=0 + required_signals: + - name: SERCOM1/PAD/0 + pad: PA16 + label: RX/TX + clocks: + domain_group: + nodes: + - name: Core + input: Generic clock generator 2 + - name: Slow + input: Generic clock generator 3 + configuration: + core_gclk_selection: Generic clock generator 2 + slow_gclk_selection: Generic clock generator 3 + SIM2: + user_label: SIM2 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM2::driver_config_definition::USART.with.ISO7816::HAL:Driver:USART.Async + functionality: USART + api: HAL:Driver:USART_Async + configuration: + usart_advanced: false + usart_arch_clock_mode: USART with internal clock + usart_arch_cloden: false + usart_arch_dbgstop: Keep running + usart_arch_dord: LSB is transmitted first + usart_arch_ibon: false + usart_arch_runstdby: false + usart_arch_sfde: false + usart_baud_rate: 9600 + usart_character_size: 8 bits + usart_dsnack: The successive receive NACK is disable. + usart_gtime: 2-bit times + usart_inack: NACK is transmitted when a parity error is received. + usart_inverse_enabled: false + usart_iso7816_type: T=0 + usart_maxiter: 7 + usart_parity: Even parity + usart_rx_enable: true + usart_stop_bit: One stop bit + usart_tx_enable: true + optional_signals: [] + variant: + specification: TXPO=2, RXPO=0 + required_signals: + - name: SERCOM2/PAD/0 + pad: PA09 + label: RX/TX + clocks: + domain_group: + nodes: + - name: Core + input: Generic clock generator 2 + - name: Slow + input: Generic clock generator 3 + configuration: + core_gclk_selection: Generic clock generator 2 + slow_gclk_selection: Generic clock generator 3 + SIM3: + user_label: SIM3 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM3::driver_config_definition::USART.with.ISO7816::HAL:Driver:USART.Async + functionality: USART + api: HAL:Driver:USART_Async + configuration: + usart_advanced: false + usart_arch_clock_mode: USART with internal clock + usart_arch_cloden: false + usart_arch_dbgstop: Keep running + usart_arch_dord: LSB is transmitted first + usart_arch_ibon: false + usart_arch_runstdby: false + usart_arch_sfde: false + usart_baud_rate: 9600 + usart_character_size: 8 bits + usart_dsnack: The successive receive NACK is disable. + usart_gtime: 2-bit times + usart_inack: NACK is transmitted when a parity error is received. + usart_inverse_enabled: false + usart_iso7816_type: T=0 + usart_maxiter: 7 + usart_parity: Even parity + usart_rx_enable: true + usart_stop_bit: One stop bit + usart_tx_enable: true + optional_signals: [] + variant: + specification: TXPO=2, RXPO=0 + required_signals: + - name: SERCOM3/PAD/0 + pad: PB20 + label: RX/TX + clocks: + domain_group: + nodes: + - name: Core + input: Generic clock generator 2 + - name: Slow + input: Generic clock generator 3 + configuration: + core_gclk_selection: Generic clock generator 2 + slow_gclk_selection: Generic clock generator 3 + SIM4: + user_label: SIM4 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM4::driver_config_definition::USART.with.ISO7816::HAL:Driver:USART.Async + functionality: USART + api: HAL:Driver:USART_Async + configuration: + usart_advanced: false + usart_arch_clock_mode: USART with internal clock + usart_arch_cloden: false + usart_arch_dbgstop: Keep running + usart_arch_dord: LSB is transmitted first + usart_arch_ibon: false + usart_arch_runstdby: false + usart_arch_sfde: false + usart_baud_rate: 9600 + usart_character_size: 8 bits + usart_dsnack: The successive receive NACK is disable. + usart_gtime: 2-bit times + usart_inack: NACK is transmitted when a parity error is received. + usart_inverse_enabled: false + usart_iso7816_type: T=0 + usart_maxiter: 7 + usart_parity: Even parity + usart_rx_enable: true + usart_stop_bit: One stop bit + usart_tx_enable: true + optional_signals: [] + variant: + specification: TXPO=2, RXPO=0 + required_signals: + - name: SERCOM4/PAD/0 + pad: PB08 + label: RX/TX + clocks: + domain_group: + nodes: + - name: Core + input: Generic clock generator 2 + - name: Slow + input: Generic clock generator 3 + configuration: + core_gclk_selection: Generic clock generator 2 + slow_gclk_selection: Generic clock generator 3 + SIM5: + user_label: SIM5 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM5::driver_config_definition::USART.with.ISO7816::HAL:Driver:USART.Async + functionality: USART + api: HAL:Driver:USART_Async + configuration: + usart_advanced: false + usart_arch_clock_mode: USART with internal clock + usart_arch_cloden: false + usart_arch_dbgstop: Keep running + usart_arch_dord: LSB is transmitted first + usart_arch_ibon: false + usart_arch_runstdby: false + usart_arch_sfde: false + usart_baud_rate: 9600 + usart_character_size: 8 bits + usart_dsnack: The successive receive NACK is disable. + usart_gtime: 2-bit times + usart_inack: NACK is transmitted when a parity error is received. + usart_inverse_enabled: false + usart_iso7816_type: T=0 + usart_maxiter: 7 + usart_parity: Even parity + usart_rx_enable: true + usart_stop_bit: One stop bit + usart_tx_enable: true + optional_signals: [] + variant: + specification: TXPO=2, RXPO=0 + required_signals: + - name: SERCOM5/PAD/0 + pad: PB16 + label: RX/TX + clocks: + domain_group: + nodes: + - name: Core + input: Generic clock generator 2 + - name: Slow + input: Generic clock generator 3 + configuration: + core_gclk_selection: Generic clock generator 2 + slow_gclk_selection: Generic clock generator 3 + SIM6: + user_label: SIM6 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM6::driver_config_definition::USART.with.ISO7816::HAL:Driver:USART.Async + functionality: USART + api: HAL:Driver:USART_Async + configuration: + usart_advanced: false + usart_arch_clock_mode: USART with internal clock + usart_arch_cloden: false + usart_arch_dbgstop: Keep running + usart_arch_dord: LSB is transmitted first + usart_arch_ibon: false + usart_arch_runstdby: false + usart_arch_sfde: false + usart_baud_rate: 9600 + usart_character_size: 8 bits + usart_dsnack: The successive receive NACK is disable. + usart_gtime: 2-bit times + usart_inack: NACK is transmitted when a parity error is received. + usart_inverse_enabled: false + usart_iso7816_type: T=0 + usart_maxiter: 7 + usart_parity: Even parity + usart_rx_enable: true + usart_stop_bit: One stop bit + usart_tx_enable: true + optional_signals: [] + variant: + specification: TXPO=2, RXPO=0 + required_signals: + - name: SERCOM6/PAD/0 + pad: PC16 + label: RX/TX + clocks: + domain_group: + nodes: + - name: Core + input: Generic clock generator 2 + - name: Slow + input: Generic clock generator 3 + configuration: + core_gclk_selection: Generic clock generator 2 + slow_gclk_selection: Generic clock generator 3 UART_debug: user_label: UART_debug definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM7::driver_config_definition::UART::HAL:Driver:USART.Async @@ -1030,6 +1331,24 @@ configuration: usb_gclk_selection: Generic clock generator 1 pads: + SIM4_IO: + name: PB08 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB08 + mode: Peripheral IO + user_label: SIM4_IO + configuration: null + SIM0_IO: + name: PA04 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA04 + mode: Peripheral IO + user_label: SIM0_IO + configuration: null + SIM2_IO: + name: PA09 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA09 + mode: Peripheral IO + user_label: SIM2_IO + configuration: null SIMCLK_20MHZ: name: PA11 definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA11 @@ -1046,6 +1365,30 @@ mode: Digital input user_label: SWITCH configuration: null + SIM1_IO: + name: PA16 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA16 + mode: Peripheral IO + user_label: SIM1_IO + configuration: null + SIM6_IO: + name: PC16 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC16 + mode: Peripheral IO + user_label: SIM6_IO + configuration: null + SIM5_IO: + name: PB16 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB16 + mode: Peripheral IO + user_label: SIM5_IO + configuration: null + SIM3_IO: + name: PB20 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB20 + mode: Peripheral IO + user_label: SIM3_IO + configuration: null VB0: name: PA20 definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA20 diff --git a/sysmoOCTSIM/atmel_start_pins.h b/sysmoOCTSIM/atmel_start_pins.h index fea4388..ad5f27b 100644 --- a/sysmoOCTSIM/atmel_start_pins.h +++ b/sysmoOCTSIM/atmel_start_pins.h @@ -27,16 +27,23 @@ #define GPIO_PIN_FUNCTION_M 12 #define GPIO_PIN_FUNCTION_N 13 +#define SIM0_IO GPIO(GPIO_PORTA, 4) +#define SIM2_IO GPIO(GPIO_PORTA, 9) #define SIMCLK_20MHZ GPIO(GPIO_PORTA, 11) +#define SIM1_IO GPIO(GPIO_PORTA, 16) #define VB0 GPIO(GPIO_PORTA, 20) #define VB1 GPIO(GPIO_PORTA, 21) #define VB2 GPIO(GPIO_PORTA, 22) #define VB3 GPIO(GPIO_PORTA, 23) #define USBUP_D_N GPIO(GPIO_PORTA, 24) #define USBUP_D_P GPIO(GPIO_PORTA, 25) +#define SIM4_IO GPIO(GPIO_PORTB, 8) +#define SIM5_IO GPIO(GPIO_PORTB, 16) +#define SIM3_IO GPIO(GPIO_PORTB, 20) #define UART_TX GPIO(GPIO_PORTB, 30) #define UART_RX GPIO(GPIO_PORTB, 31) #define SWITCH GPIO(GPIO_PORTC, 14) +#define SIM6_IO GPIO(GPIO_PORTC, 16) #define USER_LED GPIO(GPIO_PORTC, 26) #endif // ATMEL_START_PINS_H_INCLUDED diff --git a/sysmoOCTSIM/config/hpl_sercom_config.h b/sysmoOCTSIM/config/hpl_sercom_config.h index 2a8c023..735fdc2 100644 --- a/sysmoOCTSIM/config/hpl_sercom_config.h +++ b/sysmoOCTSIM/config/hpl_sercom_config.h @@ -6,6 +6,1910 @@ #include +#ifndef CONF_SERCOM_0_USART_ENABLE +#define CONF_SERCOM_0_USART_ENABLE 1 +#endif + +// Basic Configuration + +// Receive buffer enable +// Enable input buffer in SERCOM module +// usart_rx_enable +#ifndef CONF_SERCOM_0_USART_RXEN +#define CONF_SERCOM_0_USART_RXEN 1 +#endif + +// Transmitt buffer enable +// Enable output buffer in SERCOM module +// usart_tx_enable +#ifndef CONF_SERCOM_0_USART_TXEN +#define CONF_SERCOM_0_USART_TXEN 1 +#endif + +// Frame parity +// <0x1=>Even parity +// Parity bit mode for USART frame +// usart_parity +#ifndef CONF_SERCOM_0_USART_PARITY +#define CONF_SERCOM_0_USART_PARITY 1 +#endif + +// Character Size +// <0x0=>8 bits +// <0x1=>9 bits +// <0x5=>5 bits +// <0x6=>6 bits +// <0x7=>7 bits +// Data character size in USART frame +// usart_character_size +#ifndef CONF_SERCOM_0_USART_CHSIZE +#define CONF_SERCOM_0_USART_CHSIZE 0x0 +#endif + +// Stop Bit +// <0=>One stop bit +// <1=>Two stop bits +// Number of stop bits in USART frame +// usart_stop_bit +#ifndef CONF_SERCOM_0_USART_SBMODE +#define CONF_SERCOM_0_USART_SBMODE 0 +#endif + +// Baud rate <1-3000000> +// USART baud rate setting +// usart_baud_rate +#ifndef CONF_SERCOM_0_USART_BAUD +#define CONF_SERCOM_0_USART_BAUD 9600 +#endif +// + +// ISO7816 configuration +// ISO7816 Protocol Type +// <0x1=> T=0 +// <0x0=> T=1 +// Define ISO7816 protocol type as 0. +// usart_iso7816_type +#ifndef CONF_SERCOM_0_USART_ISO7816_PROTOCOL_T +#define CONF_SERCOM_0_USART_ISO7816_PROTOCOL_T 0x1 +#endif + +// ISO7816 Inhibit Not Acknowledge +// <0x0=> NACK is transmitted when a parity error is received. +// <0x1=> NACK is not transmitted when a parity error is received. +// Define whether a NACK is transmitted when a parity error is received. +// usart_inack +#ifndef CONF_SERCOM_0_USART_INACK +#define CONF_SERCOM_0_USART_INACK 0x0 +#endif + +// ISO7816 Disable Successive Not Acknowledge +// <0x0=> The successive receive NACK is disable. +// <0x1=> The successive receive NACK is enable. +// Define whether NACK will be sent on parity error reception. +// usart_dsnack +#ifndef CONF_SERCOM_0_USART_DSNACK +#define CONF_SERCOM_0_USART_DSNACK 0x0 +#endif + +// ISO7816 Maximum Iterations<0-7> +// Define the maximum number of retransmit iterations. +// usart_maxiter +#ifndef CONF_SERCOM_0_USART_MAXITER +#define CONF_SERCOM_0_USART_MAXITER 0x7 +#endif + +// ISO7816 Guard Time +// <0x2=> 2-bit times +// <0x3=> 3-bit times +// <0x4=> 4-bit times +// <0x5=> 5-bit times +// <0x6=> 6-bit times +// <0x7=> 7-bit times +// Define the guard time. +// usart_gtime +#ifndef CONF_SERCOM_0_USART_GTIME +#define CONF_SERCOM_0_USART_GTIME 0x2 +#endif + +// Inverse transmission and reception enabled +// Define inverse transmission and reception enabled. +// usart_inverse_enabled +#ifndef CONF_SERCOM_0_USART_INVERSE_ENABLED +#define CONF_SERCOM_0_USART_INVERSE_ENABLED 0x0 +#endif + +#if (CONF_SERCOM_0_USART_INVERSE_ENABLED == 1) +#define CONF_SERCOM_0_USART_RXINV 0x1 +#define CONF_SERCOM_0_USART_TXINV 0x1 +#else +#define CONF_SERCOM_0_USART_RXINV 0x0 +#define CONF_SERCOM_0_USART_TXINV 0x0 +#endif + +// + +// Advanced configuration +// usart_advanced +#ifndef CONF_SERCOM_0_USART_ADVANCED_CONFIG +#define CONF_SERCOM_0_USART_ADVANCED_CONFIG 0 +#endif + +// Run in stand-by +// Keep the module running in standby sleep mode +// usart_arch_runstdby +#ifndef CONF_SERCOM_0_USART_RUNSTDBY +#define CONF_SERCOM_0_USART_RUNSTDBY 0 +#endif + +// Immediate Buffer Overflow Notification +// Controls when the BUFOVF status bit is asserted +// usart_arch_ibon +#ifndef CONF_SERCOM_0_USART_IBON +#define CONF_SERCOM_0_USART_IBON 0 +#endif + +// Start of Frame Detection Enable +// Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled) +// usart_arch_sfde +#ifndef CONF_SERCOM_0_USART_SFDE +#define CONF_SERCOM_0_USART_SFDE 0 +#endif + +// Collision Detection Enable +// Collision detection enable +// usart_arch_cloden +#ifndef CONF_SERCOM_0_USART_CLODEN +#define CONF_SERCOM_0_USART_CLODEN 0 +#endif + +// Operating Mode +// <0x1=>USART with internal clock +// Drive the shift register by an internal clock generated by the baud rate generator. +// usart_arch_clock_mode +#ifndef CONF_SERCOM_0_USART_MODE +#define CONF_SERCOM_0_USART_MODE 0x1 +#endif + +// Data Order +// <0=>MSB is transmitted first +// <1=>LSB is transmitted first +// Data order of the data bits in the frame +// usart_arch_dord +#ifndef CONF_SERCOM_0_USART_DORD +#define CONF_SERCOM_0_USART_DORD 1 +#endif + +// Debug Stop Mode +// Behavior of the baud-rate generator when CPU is halted by external debugger. +// <0=>Keep running +// <1=>Halt +// usart_arch_dbgstop +#ifndef CONF_SERCOM_0_USART_DEBUG_STOP_MODE +#define CONF_SERCOM_0_USART_DEBUG_STOP_MODE 0 +#endif + +// Does not do anything in USRT mode +#define CONF_SERCOM_0_USART_SAMPR 0x0 +#define CONF_SERCOM_0_USART_SAMPA 0x0 +#define CONF_SERCOM_0_USART_FRACTIONAL 0x0 + +// Does not do anything in UART mode +#define CONF_SERCOM_0_USART_CPOL 0 + +// Does not do anything in USRT mode +#define CONF_SERCOM_0_USART_ENC 0 + +// + +#ifndef CONF_SERCOM_0_USART_CMODE +#define CONF_SERCOM_0_USART_CMODE CONF_SERCOM_0_USART_ISO7816_PROTOCOL_T +#endif + +/* RX is on PIN_PA04 */ +#ifndef CONF_SERCOM_0_USART_RXPO +#define CONF_SERCOM_0_USART_RXPO 0 +#endif + +/* TX uses the same pin with RX */ +#ifndef CONF_SERCOM_0_USART_TXPO +#define CONF_SERCOM_0_USART_TXPO 2 +#endif + +/* Set iso7816 mode */ +#define CONF_SERCOM_0_USART_PMODE (CONF_SERCOM_0_USART_PARITY - 1) +#define CONF_SERCOM_0_USART_FORM 7 + +#if CONF_SERCOM_0_USART_CMODE == 0 +// Calculate BAUD register value in UART mode +#if CONF_SERCOM_0_USART_SAMPR == 0 +#ifndef CONF_SERCOM_0_USART_BAUD_RATE +#define CONF_SERCOM_0_USART_BAUD_RATE \ + 65536 - ((65536 * 16.0f * CONF_SERCOM_0_USART_BAUD) / CONF_GCLK_SERCOM0_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_0_USART_SAMPR == 1 +#ifndef CONF_SERCOM_0_USART_BAUD_RATE +#define CONF_SERCOM_0_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM0_CORE_FREQUENCY) / (CONF_SERCOM_0_USART_BAUD * 16)) - (CONF_SERCOM_0_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_0_USART_SAMPR == 2 +#ifndef CONF_SERCOM_0_USART_BAUD_RATE +#define CONF_SERCOM_0_USART_BAUD_RATE \ + 65536 - ((65536 * 8.0f * CONF_SERCOM_0_USART_BAUD) / CONF_GCLK_SERCOM0_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_0_USART_SAMPR == 3 +#ifndef CONF_SERCOM_0_USART_BAUD_RATE +#define CONF_SERCOM_0_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM0_CORE_FREQUENCY) / (CONF_SERCOM_0_USART_BAUD * 8)) - (CONF_SERCOM_0_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_0_USART_SAMPR == 4 +#ifndef CONF_SERCOM_0_USART_BAUD_RATE +#define CONF_SERCOM_0_USART_BAUD_RATE \ + 65536 - ((65536 * 3.0f * CONF_SERCOM_0_USART_BAUD) / CONF_GCLK_SERCOM0_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#endif + +#elif CONF_SERCOM_0_USART_CMODE == 1 +#ifndef CONF_SERCOM_0_USART_BAUD_RATE +// Calculate BAUD register value in USRT mode +#define CONF_SERCOM_0_USART_BAUD_RATE (CONF_GCLK_SERCOM0_CORE_FREQUENCY) / (2 * CONF_SERCOM_0_USART_BAUD) - 1 +#endif + +#ifndef CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_0_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#else +#error CMODE value for SERCOM 0 in USART mode not known +#endif + +#include + +#ifndef CONF_SERCOM_1_USART_ENABLE +#define CONF_SERCOM_1_USART_ENABLE 1 +#endif + +// Basic Configuration + +// Receive buffer enable +// Enable input buffer in SERCOM module +// usart_rx_enable +#ifndef CONF_SERCOM_1_USART_RXEN +#define CONF_SERCOM_1_USART_RXEN 1 +#endif + +// Transmitt buffer enable +// Enable output buffer in SERCOM module +// usart_tx_enable +#ifndef CONF_SERCOM_1_USART_TXEN +#define CONF_SERCOM_1_USART_TXEN 1 +#endif + +// Frame parity +// <0x1=>Even parity +// Parity bit mode for USART frame +// usart_parity +#ifndef CONF_SERCOM_1_USART_PARITY +#define CONF_SERCOM_1_USART_PARITY 1 +#endif + +// Character Size +// <0x0=>8 bits +// <0x1=>9 bits +// <0x5=>5 bits +// <0x6=>6 bits +// <0x7=>7 bits +// Data character size in USART frame +// usart_character_size +#ifndef CONF_SERCOM_1_USART_CHSIZE +#define CONF_SERCOM_1_USART_CHSIZE 0x0 +#endif + +// Stop Bit +// <0=>One stop bit +// <1=>Two stop bits +// Number of stop bits in USART frame +// usart_stop_bit +#ifndef CONF_SERCOM_1_USART_SBMODE +#define CONF_SERCOM_1_USART_SBMODE 0 +#endif + +// Baud rate <1-3000000> +// USART baud rate setting +// usart_baud_rate +#ifndef CONF_SERCOM_1_USART_BAUD +#define CONF_SERCOM_1_USART_BAUD 9600 +#endif +// + +// ISO7816 configuration +// ISO7816 Protocol Type +// <0x1=> T=0 +// <0x0=> T=1 +// Define ISO7816 protocol type as 0. +// usart_iso7816_type +#ifndef CONF_SERCOM_1_USART_ISO7816_PROTOCOL_T +#define CONF_SERCOM_1_USART_ISO7816_PROTOCOL_T 0x1 +#endif + +// ISO7816 Inhibit Not Acknowledge +// <0x0=> NACK is transmitted when a parity error is received. +// <0x1=> NACK is not transmitted when a parity error is received. +// Define whether a NACK is transmitted when a parity error is received. +// usart_inack +#ifndef CONF_SERCOM_1_USART_INACK +#define CONF_SERCOM_1_USART_INACK 0x0 +#endif + +// ISO7816 Disable Successive Not Acknowledge +// <0x0=> The successive receive NACK is disable. +// <0x1=> The successive receive NACK is enable. +// Define whether NACK will be sent on parity error reception. +// usart_dsnack +#ifndef CONF_SERCOM_1_USART_DSNACK +#define CONF_SERCOM_1_USART_DSNACK 0x0 +#endif + +// ISO7816 Maximum Iterations<0-7> +// Define the maximum number of retransmit iterations. +// usart_maxiter +#ifndef CONF_SERCOM_1_USART_MAXITER +#define CONF_SERCOM_1_USART_MAXITER 0x7 +#endif + +// ISO7816 Guard Time +// <0x2=> 2-bit times +// <0x3=> 3-bit times +// <0x4=> 4-bit times +// <0x5=> 5-bit times +// <0x6=> 6-bit times +// <0x7=> 7-bit times +// Define the guard time. +// usart_gtime +#ifndef CONF_SERCOM_1_USART_GTIME +#define CONF_SERCOM_1_USART_GTIME 0x2 +#endif + +// Inverse transmission and reception enabled +// Define inverse transmission and reception enabled. +// usart_inverse_enabled +#ifndef CONF_SERCOM_1_USART_INVERSE_ENABLED +#define CONF_SERCOM_1_USART_INVERSE_ENABLED 0x0 +#endif + +#if (CONF_SERCOM_1_USART_INVERSE_ENABLED == 1) +#define CONF_SERCOM_1_USART_RXINV 0x1 +#define CONF_SERCOM_1_USART_TXINV 0x1 +#else +#define CONF_SERCOM_1_USART_RXINV 0x0 +#define CONF_SERCOM_1_USART_TXINV 0x0 +#endif + +// + +// Advanced configuration +// usart_advanced +#ifndef CONF_SERCOM_1_USART_ADVANCED_CONFIG +#define CONF_SERCOM_1_USART_ADVANCED_CONFIG 0 +#endif + +// Run in stand-by +// Keep the module running in standby sleep mode +// usart_arch_runstdby +#ifndef CONF_SERCOM_1_USART_RUNSTDBY +#define CONF_SERCOM_1_USART_RUNSTDBY 0 +#endif + +// Immediate Buffer Overflow Notification +// Controls when the BUFOVF status bit is asserted +// usart_arch_ibon +#ifndef CONF_SERCOM_1_USART_IBON +#define CONF_SERCOM_1_USART_IBON 0 +#endif + +// Start of Frame Detection Enable +// Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled) +// usart_arch_sfde +#ifndef CONF_SERCOM_1_USART_SFDE +#define CONF_SERCOM_1_USART_SFDE 0 +#endif + +// Collision Detection Enable +// Collision detection enable +// usart_arch_cloden +#ifndef CONF_SERCOM_1_USART_CLODEN +#define CONF_SERCOM_1_USART_CLODEN 0 +#endif + +// Operating Mode +// <0x1=>USART with internal clock +// Drive the shift register by an internal clock generated by the baud rate generator. +// usart_arch_clock_mode +#ifndef CONF_SERCOM_1_USART_MODE +#define CONF_SERCOM_1_USART_MODE 0x1 +#endif + +// Data Order +// <0=>MSB is transmitted first +// <1=>LSB is transmitted first +// Data order of the data bits in the frame +// usart_arch_dord +#ifndef CONF_SERCOM_1_USART_DORD +#define CONF_SERCOM_1_USART_DORD 1 +#endif + +// Debug Stop Mode +// Behavior of the baud-rate generator when CPU is halted by external debugger. +// <0=>Keep running +// <1=>Halt +// usart_arch_dbgstop +#ifndef CONF_SERCOM_1_USART_DEBUG_STOP_MODE +#define CONF_SERCOM_1_USART_DEBUG_STOP_MODE 0 +#endif + +// Does not do anything in USRT mode +#define CONF_SERCOM_1_USART_SAMPR 0x0 +#define CONF_SERCOM_1_USART_SAMPA 0x0 +#define CONF_SERCOM_1_USART_FRACTIONAL 0x0 + +// Does not do anything in UART mode +#define CONF_SERCOM_1_USART_CPOL 0 + +// Does not do anything in USRT mode +#define CONF_SERCOM_1_USART_ENC 0 + +// + +#ifndef CONF_SERCOM_1_USART_CMODE +#define CONF_SERCOM_1_USART_CMODE CONF_SERCOM_1_USART_ISO7816_PROTOCOL_T +#endif + +/* RX is on PIN_PA16 */ +#ifndef CONF_SERCOM_1_USART_RXPO +#define CONF_SERCOM_1_USART_RXPO 0 +#endif + +/* TX uses the same pin with RX */ +#ifndef CONF_SERCOM_1_USART_TXPO +#define CONF_SERCOM_1_USART_TXPO 2 +#endif + +/* Set iso7816 mode */ +#define CONF_SERCOM_1_USART_PMODE (CONF_SERCOM_1_USART_PARITY - 1) +#define CONF_SERCOM_1_USART_FORM 7 + +#if CONF_SERCOM_1_USART_CMODE == 0 +// Calculate BAUD register value in UART mode +#if CONF_SERCOM_1_USART_SAMPR == 0 +#ifndef CONF_SERCOM_1_USART_BAUD_RATE +#define CONF_SERCOM_1_USART_BAUD_RATE \ + 65536 - ((65536 * 16.0f * CONF_SERCOM_1_USART_BAUD) / CONF_GCLK_SERCOM1_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_1_USART_SAMPR == 1 +#ifndef CONF_SERCOM_1_USART_BAUD_RATE +#define CONF_SERCOM_1_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM1_CORE_FREQUENCY) / (CONF_SERCOM_1_USART_BAUD * 16)) - (CONF_SERCOM_1_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_1_USART_SAMPR == 2 +#ifndef CONF_SERCOM_1_USART_BAUD_RATE +#define CONF_SERCOM_1_USART_BAUD_RATE \ + 65536 - ((65536 * 8.0f * CONF_SERCOM_1_USART_BAUD) / CONF_GCLK_SERCOM1_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_1_USART_SAMPR == 3 +#ifndef CONF_SERCOM_1_USART_BAUD_RATE +#define CONF_SERCOM_1_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM1_CORE_FREQUENCY) / (CONF_SERCOM_1_USART_BAUD * 8)) - (CONF_SERCOM_1_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_1_USART_SAMPR == 4 +#ifndef CONF_SERCOM_1_USART_BAUD_RATE +#define CONF_SERCOM_1_USART_BAUD_RATE \ + 65536 - ((65536 * 3.0f * CONF_SERCOM_1_USART_BAUD) / CONF_GCLK_SERCOM1_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#endif + +#elif CONF_SERCOM_1_USART_CMODE == 1 +#ifndef CONF_SERCOM_1_USART_BAUD_RATE +// Calculate BAUD register value in USRT mode +#define CONF_SERCOM_1_USART_BAUD_RATE (CONF_GCLK_SERCOM1_CORE_FREQUENCY) / (2 * CONF_SERCOM_1_USART_BAUD) - 1 +#endif + +#ifndef CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_1_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#else +#error CMODE value for SERCOM 1 in USART mode not known +#endif + +#include + +#ifndef CONF_SERCOM_2_USART_ENABLE +#define CONF_SERCOM_2_USART_ENABLE 1 +#endif + +// Basic Configuration + +// Receive buffer enable +// Enable input buffer in SERCOM module +// usart_rx_enable +#ifndef CONF_SERCOM_2_USART_RXEN +#define CONF_SERCOM_2_USART_RXEN 1 +#endif + +// Transmitt buffer enable +// Enable output buffer in SERCOM module +// usart_tx_enable +#ifndef CONF_SERCOM_2_USART_TXEN +#define CONF_SERCOM_2_USART_TXEN 1 +#endif + +// Frame parity +// <0x1=>Even parity +// Parity bit mode for USART frame +// usart_parity +#ifndef CONF_SERCOM_2_USART_PARITY +#define CONF_SERCOM_2_USART_PARITY 1 +#endif + +// Character Size +// <0x0=>8 bits +// <0x1=>9 bits +// <0x5=>5 bits +// <0x6=>6 bits +// <0x7=>7 bits +// Data character size in USART frame +// usart_character_size +#ifndef CONF_SERCOM_2_USART_CHSIZE +#define CONF_SERCOM_2_USART_CHSIZE 0x0 +#endif + +// Stop Bit +// <0=>One stop bit +// <1=>Two stop bits +// Number of stop bits in USART frame +// usart_stop_bit +#ifndef CONF_SERCOM_2_USART_SBMODE +#define CONF_SERCOM_2_USART_SBMODE 0 +#endif + +// Baud rate <1-3000000> +// USART baud rate setting +// usart_baud_rate +#ifndef CONF_SERCOM_2_USART_BAUD +#define CONF_SERCOM_2_USART_BAUD 9600 +#endif +// + +// ISO7816 configuration +// ISO7816 Protocol Type +// <0x1=> T=0 +// <0x0=> T=1 +// Define ISO7816 protocol type as 0. +// usart_iso7816_type +#ifndef CONF_SERCOM_2_USART_ISO7816_PROTOCOL_T +#define CONF_SERCOM_2_USART_ISO7816_PROTOCOL_T 0x1 +#endif + +// ISO7816 Inhibit Not Acknowledge +// <0x0=> NACK is transmitted when a parity error is received. +// <0x1=> NACK is not transmitted when a parity error is received. +// Define whether a NACK is transmitted when a parity error is received. +// usart_inack +#ifndef CONF_SERCOM_2_USART_INACK +#define CONF_SERCOM_2_USART_INACK 0x0 +#endif + +// ISO7816 Disable Successive Not Acknowledge +// <0x0=> The successive receive NACK is disable. +// <0x1=> The successive receive NACK is enable. +// Define whether NACK will be sent on parity error reception. +// usart_dsnack +#ifndef CONF_SERCOM_2_USART_DSNACK +#define CONF_SERCOM_2_USART_DSNACK 0x0 +#endif + +// ISO7816 Maximum Iterations<0-7> +// Define the maximum number of retransmit iterations. +// usart_maxiter +#ifndef CONF_SERCOM_2_USART_MAXITER +#define CONF_SERCOM_2_USART_MAXITER 0x7 +#endif + +// ISO7816 Guard Time +// <0x2=> 2-bit times +// <0x3=> 3-bit times +// <0x4=> 4-bit times +// <0x5=> 5-bit times +// <0x6=> 6-bit times +// <0x7=> 7-bit times +// Define the guard time. +// usart_gtime +#ifndef CONF_SERCOM_2_USART_GTIME +#define CONF_SERCOM_2_USART_GTIME 0x2 +#endif + +// Inverse transmission and reception enabled +// Define inverse transmission and reception enabled. +// usart_inverse_enabled +#ifndef CONF_SERCOM_2_USART_INVERSE_ENABLED +#define CONF_SERCOM_2_USART_INVERSE_ENABLED 0x0 +#endif + +#if (CONF_SERCOM_2_USART_INVERSE_ENABLED == 1) +#define CONF_SERCOM_2_USART_RXINV 0x1 +#define CONF_SERCOM_2_USART_TXINV 0x1 +#else +#define CONF_SERCOM_2_USART_RXINV 0x0 +#define CONF_SERCOM_2_USART_TXINV 0x0 +#endif + +// + +// Advanced configuration +// usart_advanced +#ifndef CONF_SERCOM_2_USART_ADVANCED_CONFIG +#define CONF_SERCOM_2_USART_ADVANCED_CONFIG 0 +#endif + +// Run in stand-by +// Keep the module running in standby sleep mode +// usart_arch_runstdby +#ifndef CONF_SERCOM_2_USART_RUNSTDBY +#define CONF_SERCOM_2_USART_RUNSTDBY 0 +#endif + +// Immediate Buffer Overflow Notification +// Controls when the BUFOVF status bit is asserted +// usart_arch_ibon +#ifndef CONF_SERCOM_2_USART_IBON +#define CONF_SERCOM_2_USART_IBON 0 +#endif + +// Start of Frame Detection Enable +// Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled) +// usart_arch_sfde +#ifndef CONF_SERCOM_2_USART_SFDE +#define CONF_SERCOM_2_USART_SFDE 0 +#endif + +// Collision Detection Enable +// Collision detection enable +// usart_arch_cloden +#ifndef CONF_SERCOM_2_USART_CLODEN +#define CONF_SERCOM_2_USART_CLODEN 0 +#endif + +// Operating Mode +// <0x1=>USART with internal clock +// Drive the shift register by an internal clock generated by the baud rate generator. +// usart_arch_clock_mode +#ifndef CONF_SERCOM_2_USART_MODE +#define CONF_SERCOM_2_USART_MODE 0x1 +#endif + +// Data Order +// <0=>MSB is transmitted first +// <1=>LSB is transmitted first +// Data order of the data bits in the frame +// usart_arch_dord +#ifndef CONF_SERCOM_2_USART_DORD +#define CONF_SERCOM_2_USART_DORD 1 +#endif + +// Debug Stop Mode +// Behavior of the baud-rate generator when CPU is halted by external debugger. +// <0=>Keep running +// <1=>Halt +// usart_arch_dbgstop +#ifndef CONF_SERCOM_2_USART_DEBUG_STOP_MODE +#define CONF_SERCOM_2_USART_DEBUG_STOP_MODE 0 +#endif + +// Does not do anything in USRT mode +#define CONF_SERCOM_2_USART_SAMPR 0x0 +#define CONF_SERCOM_2_USART_SAMPA 0x0 +#define CONF_SERCOM_2_USART_FRACTIONAL 0x0 + +// Does not do anything in UART mode +#define CONF_SERCOM_2_USART_CPOL 0 + +// Does not do anything in USRT mode +#define CONF_SERCOM_2_USART_ENC 0 + +// + +#ifndef CONF_SERCOM_2_USART_CMODE +#define CONF_SERCOM_2_USART_CMODE CONF_SERCOM_2_USART_ISO7816_PROTOCOL_T +#endif + +/* RX is on PIN_PA09 */ +#ifndef CONF_SERCOM_2_USART_RXPO +#define CONF_SERCOM_2_USART_RXPO 0 +#endif + +/* TX uses the same pin with RX */ +#ifndef CONF_SERCOM_2_USART_TXPO +#define CONF_SERCOM_2_USART_TXPO 2 +#endif + +/* Set iso7816 mode */ +#define CONF_SERCOM_2_USART_PMODE (CONF_SERCOM_2_USART_PARITY - 1) +#define CONF_SERCOM_2_USART_FORM 7 + +#if CONF_SERCOM_2_USART_CMODE == 0 +// Calculate BAUD register value in UART mode +#if CONF_SERCOM_2_USART_SAMPR == 0 +#ifndef CONF_SERCOM_2_USART_BAUD_RATE +#define CONF_SERCOM_2_USART_BAUD_RATE \ + 65536 - ((65536 * 16.0f * CONF_SERCOM_2_USART_BAUD) / CONF_GCLK_SERCOM2_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_2_USART_SAMPR == 1 +#ifndef CONF_SERCOM_2_USART_BAUD_RATE +#define CONF_SERCOM_2_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM2_CORE_FREQUENCY) / (CONF_SERCOM_2_USART_BAUD * 16)) - (CONF_SERCOM_2_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_2_USART_SAMPR == 2 +#ifndef CONF_SERCOM_2_USART_BAUD_RATE +#define CONF_SERCOM_2_USART_BAUD_RATE \ + 65536 - ((65536 * 8.0f * CONF_SERCOM_2_USART_BAUD) / CONF_GCLK_SERCOM2_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_2_USART_SAMPR == 3 +#ifndef CONF_SERCOM_2_USART_BAUD_RATE +#define CONF_SERCOM_2_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM2_CORE_FREQUENCY) / (CONF_SERCOM_2_USART_BAUD * 8)) - (CONF_SERCOM_2_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_2_USART_SAMPR == 4 +#ifndef CONF_SERCOM_2_USART_BAUD_RATE +#define CONF_SERCOM_2_USART_BAUD_RATE \ + 65536 - ((65536 * 3.0f * CONF_SERCOM_2_USART_BAUD) / CONF_GCLK_SERCOM2_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#endif + +#elif CONF_SERCOM_2_USART_CMODE == 1 +#ifndef CONF_SERCOM_2_USART_BAUD_RATE +// Calculate BAUD register value in USRT mode +#define CONF_SERCOM_2_USART_BAUD_RATE (CONF_GCLK_SERCOM2_CORE_FREQUENCY) / (2 * CONF_SERCOM_2_USART_BAUD) - 1 +#endif + +#ifndef CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_2_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#else +#error CMODE value for SERCOM 2 in USART mode not known +#endif + +#include + +#ifndef CONF_SERCOM_3_USART_ENABLE +#define CONF_SERCOM_3_USART_ENABLE 1 +#endif + +// Basic Configuration + +// Receive buffer enable +// Enable input buffer in SERCOM module +// usart_rx_enable +#ifndef CONF_SERCOM_3_USART_RXEN +#define CONF_SERCOM_3_USART_RXEN 1 +#endif + +// Transmitt buffer enable +// Enable output buffer in SERCOM module +// usart_tx_enable +#ifndef CONF_SERCOM_3_USART_TXEN +#define CONF_SERCOM_3_USART_TXEN 1 +#endif + +// Frame parity +// <0x1=>Even parity +// Parity bit mode for USART frame +// usart_parity +#ifndef CONF_SERCOM_3_USART_PARITY +#define CONF_SERCOM_3_USART_PARITY 1 +#endif + +// Character Size +// <0x0=>8 bits +// <0x1=>9 bits +// <0x5=>5 bits +// <0x6=>6 bits +// <0x7=>7 bits +// Data character size in USART frame +// usart_character_size +#ifndef CONF_SERCOM_3_USART_CHSIZE +#define CONF_SERCOM_3_USART_CHSIZE 0x0 +#endif + +// Stop Bit +// <0=>One stop bit +// <1=>Two stop bits +// Number of stop bits in USART frame +// usart_stop_bit +#ifndef CONF_SERCOM_3_USART_SBMODE +#define CONF_SERCOM_3_USART_SBMODE 0 +#endif + +// Baud rate <1-3000000> +// USART baud rate setting +// usart_baud_rate +#ifndef CONF_SERCOM_3_USART_BAUD +#define CONF_SERCOM_3_USART_BAUD 9600 +#endif +// + +// ISO7816 configuration +// ISO7816 Protocol Type +// <0x1=> T=0 +// <0x0=> T=1 +// Define ISO7816 protocol type as 0. +// usart_iso7816_type +#ifndef CONF_SERCOM_3_USART_ISO7816_PROTOCOL_T +#define CONF_SERCOM_3_USART_ISO7816_PROTOCOL_T 0x1 +#endif + +// ISO7816 Inhibit Not Acknowledge +// <0x0=> NACK is transmitted when a parity error is received. +// <0x1=> NACK is not transmitted when a parity error is received. +// Define whether a NACK is transmitted when a parity error is received. +// usart_inack +#ifndef CONF_SERCOM_3_USART_INACK +#define CONF_SERCOM_3_USART_INACK 0x0 +#endif + +// ISO7816 Disable Successive Not Acknowledge +// <0x0=> The successive receive NACK is disable. +// <0x1=> The successive receive NACK is enable. +// Define whether NACK will be sent on parity error reception. +// usart_dsnack +#ifndef CONF_SERCOM_3_USART_DSNACK +#define CONF_SERCOM_3_USART_DSNACK 0x0 +#endif + +// ISO7816 Maximum Iterations<0-7> +// Define the maximum number of retransmit iterations. +// usart_maxiter +#ifndef CONF_SERCOM_3_USART_MAXITER +#define CONF_SERCOM_3_USART_MAXITER 0x7 +#endif + +// ISO7816 Guard Time +// <0x2=> 2-bit times +// <0x3=> 3-bit times +// <0x4=> 4-bit times +// <0x5=> 5-bit times +// <0x6=> 6-bit times +// <0x7=> 7-bit times +// Define the guard time. +// usart_gtime +#ifndef CONF_SERCOM_3_USART_GTIME +#define CONF_SERCOM_3_USART_GTIME 0x2 +#endif + +// Inverse transmission and reception enabled +// Define inverse transmission and reception enabled. +// usart_inverse_enabled +#ifndef CONF_SERCOM_3_USART_INVERSE_ENABLED +#define CONF_SERCOM_3_USART_INVERSE_ENABLED 0x0 +#endif + +#if (CONF_SERCOM_3_USART_INVERSE_ENABLED == 1) +#define CONF_SERCOM_3_USART_RXINV 0x1 +#define CONF_SERCOM_3_USART_TXINV 0x1 +#else +#define CONF_SERCOM_3_USART_RXINV 0x0 +#define CONF_SERCOM_3_USART_TXINV 0x0 +#endif + +// + +// Advanced configuration +// usart_advanced +#ifndef CONF_SERCOM_3_USART_ADVANCED_CONFIG +#define CONF_SERCOM_3_USART_ADVANCED_CONFIG 0 +#endif + +// Run in stand-by +// Keep the module running in standby sleep mode +// usart_arch_runstdby +#ifndef CONF_SERCOM_3_USART_RUNSTDBY +#define CONF_SERCOM_3_USART_RUNSTDBY 0 +#endif + +// Immediate Buffer Overflow Notification +// Controls when the BUFOVF status bit is asserted +// usart_arch_ibon +#ifndef CONF_SERCOM_3_USART_IBON +#define CONF_SERCOM_3_USART_IBON 0 +#endif + +// Start of Frame Detection Enable +// Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled) +// usart_arch_sfde +#ifndef CONF_SERCOM_3_USART_SFDE +#define CONF_SERCOM_3_USART_SFDE 0 +#endif + +// Collision Detection Enable +// Collision detection enable +// usart_arch_cloden +#ifndef CONF_SERCOM_3_USART_CLODEN +#define CONF_SERCOM_3_USART_CLODEN 0 +#endif + +// Operating Mode +// <0x1=>USART with internal clock +// Drive the shift register by an internal clock generated by the baud rate generator. +// usart_arch_clock_mode +#ifndef CONF_SERCOM_3_USART_MODE +#define CONF_SERCOM_3_USART_MODE 0x1 +#endif + +// Data Order +// <0=>MSB is transmitted first +// <1=>LSB is transmitted first +// Data order of the data bits in the frame +// usart_arch_dord +#ifndef CONF_SERCOM_3_USART_DORD +#define CONF_SERCOM_3_USART_DORD 1 +#endif + +// Debug Stop Mode +// Behavior of the baud-rate generator when CPU is halted by external debugger. +// <0=>Keep running +// <1=>Halt +// usart_arch_dbgstop +#ifndef CONF_SERCOM_3_USART_DEBUG_STOP_MODE +#define CONF_SERCOM_3_USART_DEBUG_STOP_MODE 0 +#endif + +// Does not do anything in USRT mode +#define CONF_SERCOM_3_USART_SAMPR 0x0 +#define CONF_SERCOM_3_USART_SAMPA 0x0 +#define CONF_SERCOM_3_USART_FRACTIONAL 0x0 + +// Does not do anything in UART mode +#define CONF_SERCOM_3_USART_CPOL 0 + +// Does not do anything in USRT mode +#define CONF_SERCOM_3_USART_ENC 0 + +// + +#ifndef CONF_SERCOM_3_USART_CMODE +#define CONF_SERCOM_3_USART_CMODE CONF_SERCOM_3_USART_ISO7816_PROTOCOL_T +#endif + +/* RX is on PIN_PB20 */ +#ifndef CONF_SERCOM_3_USART_RXPO +#define CONF_SERCOM_3_USART_RXPO 0 +#endif + +/* TX uses the same pin with RX */ +#ifndef CONF_SERCOM_3_USART_TXPO +#define CONF_SERCOM_3_USART_TXPO 2 +#endif + +/* Set iso7816 mode */ +#define CONF_SERCOM_3_USART_PMODE (CONF_SERCOM_3_USART_PARITY - 1) +#define CONF_SERCOM_3_USART_FORM 7 + +#if CONF_SERCOM_3_USART_CMODE == 0 +// Calculate BAUD register value in UART mode +#if CONF_SERCOM_3_USART_SAMPR == 0 +#ifndef CONF_SERCOM_3_USART_BAUD_RATE +#define CONF_SERCOM_3_USART_BAUD_RATE \ + 65536 - ((65536 * 16.0f * CONF_SERCOM_3_USART_BAUD) / CONF_GCLK_SERCOM3_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_3_USART_SAMPR == 1 +#ifndef CONF_SERCOM_3_USART_BAUD_RATE +#define CONF_SERCOM_3_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM3_CORE_FREQUENCY) / (CONF_SERCOM_3_USART_BAUD * 16)) - (CONF_SERCOM_3_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_3_USART_SAMPR == 2 +#ifndef CONF_SERCOM_3_USART_BAUD_RATE +#define CONF_SERCOM_3_USART_BAUD_RATE \ + 65536 - ((65536 * 8.0f * CONF_SERCOM_3_USART_BAUD) / CONF_GCLK_SERCOM3_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_3_USART_SAMPR == 3 +#ifndef CONF_SERCOM_3_USART_BAUD_RATE +#define CONF_SERCOM_3_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM3_CORE_FREQUENCY) / (CONF_SERCOM_3_USART_BAUD * 8)) - (CONF_SERCOM_3_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_3_USART_SAMPR == 4 +#ifndef CONF_SERCOM_3_USART_BAUD_RATE +#define CONF_SERCOM_3_USART_BAUD_RATE \ + 65536 - ((65536 * 3.0f * CONF_SERCOM_3_USART_BAUD) / CONF_GCLK_SERCOM3_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#endif + +#elif CONF_SERCOM_3_USART_CMODE == 1 +#ifndef CONF_SERCOM_3_USART_BAUD_RATE +// Calculate BAUD register value in USRT mode +#define CONF_SERCOM_3_USART_BAUD_RATE (CONF_GCLK_SERCOM3_CORE_FREQUENCY) / (2 * CONF_SERCOM_3_USART_BAUD) - 1 +#endif + +#ifndef CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_3_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#else +#error CMODE value for SERCOM 3 in USART mode not known +#endif + +#include + +#ifndef CONF_SERCOM_4_USART_ENABLE +#define CONF_SERCOM_4_USART_ENABLE 1 +#endif + +// Basic Configuration + +// Receive buffer enable +// Enable input buffer in SERCOM module +// usart_rx_enable +#ifndef CONF_SERCOM_4_USART_RXEN +#define CONF_SERCOM_4_USART_RXEN 1 +#endif + +// Transmitt buffer enable +// Enable output buffer in SERCOM module +// usart_tx_enable +#ifndef CONF_SERCOM_4_USART_TXEN +#define CONF_SERCOM_4_USART_TXEN 1 +#endif + +// Frame parity +// <0x1=>Even parity +// Parity bit mode for USART frame +// usart_parity +#ifndef CONF_SERCOM_4_USART_PARITY +#define CONF_SERCOM_4_USART_PARITY 1 +#endif + +// Character Size +// <0x0=>8 bits +// <0x1=>9 bits +// <0x5=>5 bits +// <0x6=>6 bits +// <0x7=>7 bits +// Data character size in USART frame +// usart_character_size +#ifndef CONF_SERCOM_4_USART_CHSIZE +#define CONF_SERCOM_4_USART_CHSIZE 0x0 +#endif + +// Stop Bit +// <0=>One stop bit +// <1=>Two stop bits +// Number of stop bits in USART frame +// usart_stop_bit +#ifndef CONF_SERCOM_4_USART_SBMODE +#define CONF_SERCOM_4_USART_SBMODE 0 +#endif + +// Baud rate <1-3000000> +// USART baud rate setting +// usart_baud_rate +#ifndef CONF_SERCOM_4_USART_BAUD +#define CONF_SERCOM_4_USART_BAUD 9600 +#endif +// + +// ISO7816 configuration +// ISO7816 Protocol Type +// <0x1=> T=0 +// <0x0=> T=1 +// Define ISO7816 protocol type as 0. +// usart_iso7816_type +#ifndef CONF_SERCOM_4_USART_ISO7816_PROTOCOL_T +#define CONF_SERCOM_4_USART_ISO7816_PROTOCOL_T 0x1 +#endif + +// ISO7816 Inhibit Not Acknowledge +// <0x0=> NACK is transmitted when a parity error is received. +// <0x1=> NACK is not transmitted when a parity error is received. +// Define whether a NACK is transmitted when a parity error is received. +// usart_inack +#ifndef CONF_SERCOM_4_USART_INACK +#define CONF_SERCOM_4_USART_INACK 0x0 +#endif + +// ISO7816 Disable Successive Not Acknowledge +// <0x0=> The successive receive NACK is disable. +// <0x1=> The successive receive NACK is enable. +// Define whether NACK will be sent on parity error reception. +// usart_dsnack +#ifndef CONF_SERCOM_4_USART_DSNACK +#define CONF_SERCOM_4_USART_DSNACK 0x0 +#endif + +// ISO7816 Maximum Iterations<0-7> +// Define the maximum number of retransmit iterations. +// usart_maxiter +#ifndef CONF_SERCOM_4_USART_MAXITER +#define CONF_SERCOM_4_USART_MAXITER 0x7 +#endif + +// ISO7816 Guard Time +// <0x2=> 2-bit times +// <0x3=> 3-bit times +// <0x4=> 4-bit times +// <0x5=> 5-bit times +// <0x6=> 6-bit times +// <0x7=> 7-bit times +// Define the guard time. +// usart_gtime +#ifndef CONF_SERCOM_4_USART_GTIME +#define CONF_SERCOM_4_USART_GTIME 0x2 +#endif + +// Inverse transmission and reception enabled +// Define inverse transmission and reception enabled. +// usart_inverse_enabled +#ifndef CONF_SERCOM_4_USART_INVERSE_ENABLED +#define CONF_SERCOM_4_USART_INVERSE_ENABLED 0x0 +#endif + +#if (CONF_SERCOM_4_USART_INVERSE_ENABLED == 1) +#define CONF_SERCOM_4_USART_RXINV 0x1 +#define CONF_SERCOM_4_USART_TXINV 0x1 +#else +#define CONF_SERCOM_4_USART_RXINV 0x0 +#define CONF_SERCOM_4_USART_TXINV 0x0 +#endif + +// + +// Advanced configuration +// usart_advanced +#ifndef CONF_SERCOM_4_USART_ADVANCED_CONFIG +#define CONF_SERCOM_4_USART_ADVANCED_CONFIG 0 +#endif + +// Run in stand-by +// Keep the module running in standby sleep mode +// usart_arch_runstdby +#ifndef CONF_SERCOM_4_USART_RUNSTDBY +#define CONF_SERCOM_4_USART_RUNSTDBY 0 +#endif + +// Immediate Buffer Overflow Notification +// Controls when the BUFOVF status bit is asserted +// usart_arch_ibon +#ifndef CONF_SERCOM_4_USART_IBON +#define CONF_SERCOM_4_USART_IBON 0 +#endif + +// Start of Frame Detection Enable +// Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled) +// usart_arch_sfde +#ifndef CONF_SERCOM_4_USART_SFDE +#define CONF_SERCOM_4_USART_SFDE 0 +#endif + +// Collision Detection Enable +// Collision detection enable +// usart_arch_cloden +#ifndef CONF_SERCOM_4_USART_CLODEN +#define CONF_SERCOM_4_USART_CLODEN 0 +#endif + +// Operating Mode +// <0x1=>USART with internal clock +// Drive the shift register by an internal clock generated by the baud rate generator. +// usart_arch_clock_mode +#ifndef CONF_SERCOM_4_USART_MODE +#define CONF_SERCOM_4_USART_MODE 0x1 +#endif + +// Data Order +// <0=>MSB is transmitted first +// <1=>LSB is transmitted first +// Data order of the data bits in the frame +// usart_arch_dord +#ifndef CONF_SERCOM_4_USART_DORD +#define CONF_SERCOM_4_USART_DORD 1 +#endif + +// Debug Stop Mode +// Behavior of the baud-rate generator when CPU is halted by external debugger. +// <0=>Keep running +// <1=>Halt +// usart_arch_dbgstop +#ifndef CONF_SERCOM_4_USART_DEBUG_STOP_MODE +#define CONF_SERCOM_4_USART_DEBUG_STOP_MODE 0 +#endif + +// Does not do anything in USRT mode +#define CONF_SERCOM_4_USART_SAMPR 0x0 +#define CONF_SERCOM_4_USART_SAMPA 0x0 +#define CONF_SERCOM_4_USART_FRACTIONAL 0x0 + +// Does not do anything in UART mode +#define CONF_SERCOM_4_USART_CPOL 0 + +// Does not do anything in USRT mode +#define CONF_SERCOM_4_USART_ENC 0 + +// + +#ifndef CONF_SERCOM_4_USART_CMODE +#define CONF_SERCOM_4_USART_CMODE CONF_SERCOM_4_USART_ISO7816_PROTOCOL_T +#endif + +/* RX is on PIN_PB08 */ +#ifndef CONF_SERCOM_4_USART_RXPO +#define CONF_SERCOM_4_USART_RXPO 0 +#endif + +/* TX uses the same pin with RX */ +#ifndef CONF_SERCOM_4_USART_TXPO +#define CONF_SERCOM_4_USART_TXPO 2 +#endif + +/* Set iso7816 mode */ +#define CONF_SERCOM_4_USART_PMODE (CONF_SERCOM_4_USART_PARITY - 1) +#define CONF_SERCOM_4_USART_FORM 7 + +#if CONF_SERCOM_4_USART_CMODE == 0 +// Calculate BAUD register value in UART mode +#if CONF_SERCOM_4_USART_SAMPR == 0 +#ifndef CONF_SERCOM_4_USART_BAUD_RATE +#define CONF_SERCOM_4_USART_BAUD_RATE \ + 65536 - ((65536 * 16.0f * CONF_SERCOM_4_USART_BAUD) / CONF_GCLK_SERCOM4_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_4_USART_SAMPR == 1 +#ifndef CONF_SERCOM_4_USART_BAUD_RATE +#define CONF_SERCOM_4_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM4_CORE_FREQUENCY) / (CONF_SERCOM_4_USART_BAUD * 16)) - (CONF_SERCOM_4_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_4_USART_SAMPR == 2 +#ifndef CONF_SERCOM_4_USART_BAUD_RATE +#define CONF_SERCOM_4_USART_BAUD_RATE \ + 65536 - ((65536 * 8.0f * CONF_SERCOM_4_USART_BAUD) / CONF_GCLK_SERCOM4_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_4_USART_SAMPR == 3 +#ifndef CONF_SERCOM_4_USART_BAUD_RATE +#define CONF_SERCOM_4_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM4_CORE_FREQUENCY) / (CONF_SERCOM_4_USART_BAUD * 8)) - (CONF_SERCOM_4_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_4_USART_SAMPR == 4 +#ifndef CONF_SERCOM_4_USART_BAUD_RATE +#define CONF_SERCOM_4_USART_BAUD_RATE \ + 65536 - ((65536 * 3.0f * CONF_SERCOM_4_USART_BAUD) / CONF_GCLK_SERCOM4_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#endif + +#elif CONF_SERCOM_4_USART_CMODE == 1 +#ifndef CONF_SERCOM_4_USART_BAUD_RATE +// Calculate BAUD register value in USRT mode +#define CONF_SERCOM_4_USART_BAUD_RATE (CONF_GCLK_SERCOM4_CORE_FREQUENCY) / (2 * CONF_SERCOM_4_USART_BAUD) - 1 +#endif + +#ifndef CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_4_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#else +#error CMODE value for SERCOM 4 in USART mode not known +#endif + +#include + +#ifndef CONF_SERCOM_5_USART_ENABLE +#define CONF_SERCOM_5_USART_ENABLE 1 +#endif + +// Basic Configuration + +// Receive buffer enable +// Enable input buffer in SERCOM module +// usart_rx_enable +#ifndef CONF_SERCOM_5_USART_RXEN +#define CONF_SERCOM_5_USART_RXEN 1 +#endif + +// Transmitt buffer enable +// Enable output buffer in SERCOM module +// usart_tx_enable +#ifndef CONF_SERCOM_5_USART_TXEN +#define CONF_SERCOM_5_USART_TXEN 1 +#endif + +// Frame parity +// <0x1=>Even parity +// Parity bit mode for USART frame +// usart_parity +#ifndef CONF_SERCOM_5_USART_PARITY +#define CONF_SERCOM_5_USART_PARITY 1 +#endif + +// Character Size +// <0x0=>8 bits +// <0x1=>9 bits +// <0x5=>5 bits +// <0x6=>6 bits +// <0x7=>7 bits +// Data character size in USART frame +// usart_character_size +#ifndef CONF_SERCOM_5_USART_CHSIZE +#define CONF_SERCOM_5_USART_CHSIZE 0x0 +#endif + +// Stop Bit +// <0=>One stop bit +// <1=>Two stop bits +// Number of stop bits in USART frame +// usart_stop_bit +#ifndef CONF_SERCOM_5_USART_SBMODE +#define CONF_SERCOM_5_USART_SBMODE 0 +#endif + +// Baud rate <1-3000000> +// USART baud rate setting +// usart_baud_rate +#ifndef CONF_SERCOM_5_USART_BAUD +#define CONF_SERCOM_5_USART_BAUD 9600 +#endif +// + +// ISO7816 configuration +// ISO7816 Protocol Type +// <0x1=> T=0 +// <0x0=> T=1 +// Define ISO7816 protocol type as 0. +// usart_iso7816_type +#ifndef CONF_SERCOM_5_USART_ISO7816_PROTOCOL_T +#define CONF_SERCOM_5_USART_ISO7816_PROTOCOL_T 0x1 +#endif + +// ISO7816 Inhibit Not Acknowledge +// <0x0=> NACK is transmitted when a parity error is received. +// <0x1=> NACK is not transmitted when a parity error is received. +// Define whether a NACK is transmitted when a parity error is received. +// usart_inack +#ifndef CONF_SERCOM_5_USART_INACK +#define CONF_SERCOM_5_USART_INACK 0x0 +#endif + +// ISO7816 Disable Successive Not Acknowledge +// <0x0=> The successive receive NACK is disable. +// <0x1=> The successive receive NACK is enable. +// Define whether NACK will be sent on parity error reception. +// usart_dsnack +#ifndef CONF_SERCOM_5_USART_DSNACK +#define CONF_SERCOM_5_USART_DSNACK 0x0 +#endif + +// ISO7816 Maximum Iterations<0-7> +// Define the maximum number of retransmit iterations. +// usart_maxiter +#ifndef CONF_SERCOM_5_USART_MAXITER +#define CONF_SERCOM_5_USART_MAXITER 0x7 +#endif + +// ISO7816 Guard Time +// <0x2=> 2-bit times +// <0x3=> 3-bit times +// <0x4=> 4-bit times +// <0x5=> 5-bit times +// <0x6=> 6-bit times +// <0x7=> 7-bit times +// Define the guard time. +// usart_gtime +#ifndef CONF_SERCOM_5_USART_GTIME +#define CONF_SERCOM_5_USART_GTIME 0x2 +#endif + +// Inverse transmission and reception enabled +// Define inverse transmission and reception enabled. +// usart_inverse_enabled +#ifndef CONF_SERCOM_5_USART_INVERSE_ENABLED +#define CONF_SERCOM_5_USART_INVERSE_ENABLED 0x0 +#endif + +#if (CONF_SERCOM_5_USART_INVERSE_ENABLED == 1) +#define CONF_SERCOM_5_USART_RXINV 0x1 +#define CONF_SERCOM_5_USART_TXINV 0x1 +#else +#define CONF_SERCOM_5_USART_RXINV 0x0 +#define CONF_SERCOM_5_USART_TXINV 0x0 +#endif + +// + +// Advanced configuration +// usart_advanced +#ifndef CONF_SERCOM_5_USART_ADVANCED_CONFIG +#define CONF_SERCOM_5_USART_ADVANCED_CONFIG 0 +#endif + +// Run in stand-by +// Keep the module running in standby sleep mode +// usart_arch_runstdby +#ifndef CONF_SERCOM_5_USART_RUNSTDBY +#define CONF_SERCOM_5_USART_RUNSTDBY 0 +#endif + +// Immediate Buffer Overflow Notification +// Controls when the BUFOVF status bit is asserted +// usart_arch_ibon +#ifndef CONF_SERCOM_5_USART_IBON +#define CONF_SERCOM_5_USART_IBON 0 +#endif + +// Start of Frame Detection Enable +// Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled) +// usart_arch_sfde +#ifndef CONF_SERCOM_5_USART_SFDE +#define CONF_SERCOM_5_USART_SFDE 0 +#endif + +// Collision Detection Enable +// Collision detection enable +// usart_arch_cloden +#ifndef CONF_SERCOM_5_USART_CLODEN +#define CONF_SERCOM_5_USART_CLODEN 0 +#endif + +// Operating Mode +// <0x1=>USART with internal clock +// Drive the shift register by an internal clock generated by the baud rate generator. +// usart_arch_clock_mode +#ifndef CONF_SERCOM_5_USART_MODE +#define CONF_SERCOM_5_USART_MODE 0x1 +#endif + +// Data Order +// <0=>MSB is transmitted first +// <1=>LSB is transmitted first +// Data order of the data bits in the frame +// usart_arch_dord +#ifndef CONF_SERCOM_5_USART_DORD +#define CONF_SERCOM_5_USART_DORD 1 +#endif + +// Debug Stop Mode +// Behavior of the baud-rate generator when CPU is halted by external debugger. +// <0=>Keep running +// <1=>Halt +// usart_arch_dbgstop +#ifndef CONF_SERCOM_5_USART_DEBUG_STOP_MODE +#define CONF_SERCOM_5_USART_DEBUG_STOP_MODE 0 +#endif + +// Does not do anything in USRT mode +#define CONF_SERCOM_5_USART_SAMPR 0x0 +#define CONF_SERCOM_5_USART_SAMPA 0x0 +#define CONF_SERCOM_5_USART_FRACTIONAL 0x0 + +// Does not do anything in UART mode +#define CONF_SERCOM_5_USART_CPOL 0 + +// Does not do anything in USRT mode +#define CONF_SERCOM_5_USART_ENC 0 + +// + +#ifndef CONF_SERCOM_5_USART_CMODE +#define CONF_SERCOM_5_USART_CMODE CONF_SERCOM_5_USART_ISO7816_PROTOCOL_T +#endif + +/* RX is on PIN_PB16 */ +#ifndef CONF_SERCOM_5_USART_RXPO +#define CONF_SERCOM_5_USART_RXPO 0 +#endif + +/* TX uses the same pin with RX */ +#ifndef CONF_SERCOM_5_USART_TXPO +#define CONF_SERCOM_5_USART_TXPO 2 +#endif + +/* Set iso7816 mode */ +#define CONF_SERCOM_5_USART_PMODE (CONF_SERCOM_5_USART_PARITY - 1) +#define CONF_SERCOM_5_USART_FORM 7 + +#if CONF_SERCOM_5_USART_CMODE == 0 +// Calculate BAUD register value in UART mode +#if CONF_SERCOM_5_USART_SAMPR == 0 +#ifndef CONF_SERCOM_5_USART_BAUD_RATE +#define CONF_SERCOM_5_USART_BAUD_RATE \ + 65536 - ((65536 * 16.0f * CONF_SERCOM_5_USART_BAUD) / CONF_GCLK_SERCOM5_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_5_USART_SAMPR == 1 +#ifndef CONF_SERCOM_5_USART_BAUD_RATE +#define CONF_SERCOM_5_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM5_CORE_FREQUENCY) / (CONF_SERCOM_5_USART_BAUD * 16)) - (CONF_SERCOM_5_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_5_USART_SAMPR == 2 +#ifndef CONF_SERCOM_5_USART_BAUD_RATE +#define CONF_SERCOM_5_USART_BAUD_RATE \ + 65536 - ((65536 * 8.0f * CONF_SERCOM_5_USART_BAUD) / CONF_GCLK_SERCOM5_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_5_USART_SAMPR == 3 +#ifndef CONF_SERCOM_5_USART_BAUD_RATE +#define CONF_SERCOM_5_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM5_CORE_FREQUENCY) / (CONF_SERCOM_5_USART_BAUD * 8)) - (CONF_SERCOM_5_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_5_USART_SAMPR == 4 +#ifndef CONF_SERCOM_5_USART_BAUD_RATE +#define CONF_SERCOM_5_USART_BAUD_RATE \ + 65536 - ((65536 * 3.0f * CONF_SERCOM_5_USART_BAUD) / CONF_GCLK_SERCOM5_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#endif + +#elif CONF_SERCOM_5_USART_CMODE == 1 +#ifndef CONF_SERCOM_5_USART_BAUD_RATE +// Calculate BAUD register value in USRT mode +#define CONF_SERCOM_5_USART_BAUD_RATE (CONF_GCLK_SERCOM5_CORE_FREQUENCY) / (2 * CONF_SERCOM_5_USART_BAUD) - 1 +#endif + +#ifndef CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_5_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#else +#error CMODE value for SERCOM 5 in USART mode not known +#endif + +#include + +#ifndef CONF_SERCOM_6_USART_ENABLE +#define CONF_SERCOM_6_USART_ENABLE 1 +#endif + +// Basic Configuration + +// Receive buffer enable +// Enable input buffer in SERCOM module +// usart_rx_enable +#ifndef CONF_SERCOM_6_USART_RXEN +#define CONF_SERCOM_6_USART_RXEN 1 +#endif + +// Transmitt buffer enable +// Enable output buffer in SERCOM module +// usart_tx_enable +#ifndef CONF_SERCOM_6_USART_TXEN +#define CONF_SERCOM_6_USART_TXEN 1 +#endif + +// Frame parity +// <0x1=>Even parity +// Parity bit mode for USART frame +// usart_parity +#ifndef CONF_SERCOM_6_USART_PARITY +#define CONF_SERCOM_6_USART_PARITY 1 +#endif + +// Character Size +// <0x0=>8 bits +// <0x1=>9 bits +// <0x5=>5 bits +// <0x6=>6 bits +// <0x7=>7 bits +// Data character size in USART frame +// usart_character_size +#ifndef CONF_SERCOM_6_USART_CHSIZE +#define CONF_SERCOM_6_USART_CHSIZE 0x0 +#endif + +// Stop Bit +// <0=>One stop bit +// <1=>Two stop bits +// Number of stop bits in USART frame +// usart_stop_bit +#ifndef CONF_SERCOM_6_USART_SBMODE +#define CONF_SERCOM_6_USART_SBMODE 0 +#endif + +// Baud rate <1-3000000> +// USART baud rate setting +// usart_baud_rate +#ifndef CONF_SERCOM_6_USART_BAUD +#define CONF_SERCOM_6_USART_BAUD 9600 +#endif +// + +// ISO7816 configuration +// ISO7816 Protocol Type +// <0x1=> T=0 +// <0x0=> T=1 +// Define ISO7816 protocol type as 0. +// usart_iso7816_type +#ifndef CONF_SERCOM_6_USART_ISO7816_PROTOCOL_T +#define CONF_SERCOM_6_USART_ISO7816_PROTOCOL_T 0x1 +#endif + +// ISO7816 Inhibit Not Acknowledge +// <0x0=> NACK is transmitted when a parity error is received. +// <0x1=> NACK is not transmitted when a parity error is received. +// Define whether a NACK is transmitted when a parity error is received. +// usart_inack +#ifndef CONF_SERCOM_6_USART_INACK +#define CONF_SERCOM_6_USART_INACK 0x0 +#endif + +// ISO7816 Disable Successive Not Acknowledge +// <0x0=> The successive receive NACK is disable. +// <0x1=> The successive receive NACK is enable. +// Define whether NACK will be sent on parity error reception. +// usart_dsnack +#ifndef CONF_SERCOM_6_USART_DSNACK +#define CONF_SERCOM_6_USART_DSNACK 0x0 +#endif + +// ISO7816 Maximum Iterations<0-7> +// Define the maximum number of retransmit iterations. +// usart_maxiter +#ifndef CONF_SERCOM_6_USART_MAXITER +#define CONF_SERCOM_6_USART_MAXITER 0x7 +#endif + +// ISO7816 Guard Time +// <0x2=> 2-bit times +// <0x3=> 3-bit times +// <0x4=> 4-bit times +// <0x5=> 5-bit times +// <0x6=> 6-bit times +// <0x7=> 7-bit times +// Define the guard time. +// usart_gtime +#ifndef CONF_SERCOM_6_USART_GTIME +#define CONF_SERCOM_6_USART_GTIME 0x2 +#endif + +// Inverse transmission and reception enabled +// Define inverse transmission and reception enabled. +// usart_inverse_enabled +#ifndef CONF_SERCOM_6_USART_INVERSE_ENABLED +#define CONF_SERCOM_6_USART_INVERSE_ENABLED 0x0 +#endif + +#if (CONF_SERCOM_6_USART_INVERSE_ENABLED == 1) +#define CONF_SERCOM_6_USART_RXINV 0x1 +#define CONF_SERCOM_6_USART_TXINV 0x1 +#else +#define CONF_SERCOM_6_USART_RXINV 0x0 +#define CONF_SERCOM_6_USART_TXINV 0x0 +#endif + +// + +// Advanced configuration +// usart_advanced +#ifndef CONF_SERCOM_6_USART_ADVANCED_CONFIG +#define CONF_SERCOM_6_USART_ADVANCED_CONFIG 0 +#endif + +// Run in stand-by +// Keep the module running in standby sleep mode +// usart_arch_runstdby +#ifndef CONF_SERCOM_6_USART_RUNSTDBY +#define CONF_SERCOM_6_USART_RUNSTDBY 0 +#endif + +// Immediate Buffer Overflow Notification +// Controls when the BUFOVF status bit is asserted +// usart_arch_ibon +#ifndef CONF_SERCOM_6_USART_IBON +#define CONF_SERCOM_6_USART_IBON 0 +#endif + +// Start of Frame Detection Enable +// Will wake the device from any sleep mode if usart_init and usart_enable was run priort to going to sleep. (receive buffer must be enabled) +// usart_arch_sfde +#ifndef CONF_SERCOM_6_USART_SFDE +#define CONF_SERCOM_6_USART_SFDE 0 +#endif + +// Collision Detection Enable +// Collision detection enable +// usart_arch_cloden +#ifndef CONF_SERCOM_6_USART_CLODEN +#define CONF_SERCOM_6_USART_CLODEN 0 +#endif + +// Operating Mode +// <0x1=>USART with internal clock +// Drive the shift register by an internal clock generated by the baud rate generator. +// usart_arch_clock_mode +#ifndef CONF_SERCOM_6_USART_MODE +#define CONF_SERCOM_6_USART_MODE 0x1 +#endif + +// Data Order +// <0=>MSB is transmitted first +// <1=>LSB is transmitted first +// Data order of the data bits in the frame +// usart_arch_dord +#ifndef CONF_SERCOM_6_USART_DORD +#define CONF_SERCOM_6_USART_DORD 1 +#endif + +// Debug Stop Mode +// Behavior of the baud-rate generator when CPU is halted by external debugger. +// <0=>Keep running +// <1=>Halt +// usart_arch_dbgstop +#ifndef CONF_SERCOM_6_USART_DEBUG_STOP_MODE +#define CONF_SERCOM_6_USART_DEBUG_STOP_MODE 0 +#endif + +// Does not do anything in USRT mode +#define CONF_SERCOM_6_USART_SAMPR 0x0 +#define CONF_SERCOM_6_USART_SAMPA 0x0 +#define CONF_SERCOM_6_USART_FRACTIONAL 0x0 + +// Does not do anything in UART mode +#define CONF_SERCOM_6_USART_CPOL 0 + +// Does not do anything in USRT mode +#define CONF_SERCOM_6_USART_ENC 0 + +// + +#ifndef CONF_SERCOM_6_USART_CMODE +#define CONF_SERCOM_6_USART_CMODE CONF_SERCOM_6_USART_ISO7816_PROTOCOL_T +#endif + +/* RX is on PIN_PC16 */ +#ifndef CONF_SERCOM_6_USART_RXPO +#define CONF_SERCOM_6_USART_RXPO 0 +#endif + +/* TX uses the same pin with RX */ +#ifndef CONF_SERCOM_6_USART_TXPO +#define CONF_SERCOM_6_USART_TXPO 2 +#endif + +/* Set iso7816 mode */ +#define CONF_SERCOM_6_USART_PMODE (CONF_SERCOM_6_USART_PARITY - 1) +#define CONF_SERCOM_6_USART_FORM 7 + +#if CONF_SERCOM_6_USART_CMODE == 0 +// Calculate BAUD register value in UART mode +#if CONF_SERCOM_6_USART_SAMPR == 0 +#ifndef CONF_SERCOM_6_USART_BAUD_RATE +#define CONF_SERCOM_6_USART_BAUD_RATE \ + 65536 - ((65536 * 16.0f * CONF_SERCOM_6_USART_BAUD) / CONF_GCLK_SERCOM6_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_6_USART_SAMPR == 1 +#ifndef CONF_SERCOM_6_USART_BAUD_RATE +#define CONF_SERCOM_6_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM6_CORE_FREQUENCY) / (CONF_SERCOM_6_USART_BAUD * 16)) - (CONF_SERCOM_6_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_6_USART_SAMPR == 2 +#ifndef CONF_SERCOM_6_USART_BAUD_RATE +#define CONF_SERCOM_6_USART_BAUD_RATE \ + 65536 - ((65536 * 8.0f * CONF_SERCOM_6_USART_BAUD) / CONF_GCLK_SERCOM6_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_6_USART_SAMPR == 3 +#ifndef CONF_SERCOM_6_USART_BAUD_RATE +#define CONF_SERCOM_6_USART_BAUD_RATE \ + ((CONF_GCLK_SERCOM6_CORE_FREQUENCY) / (CONF_SERCOM_6_USART_BAUD * 8)) - (CONF_SERCOM_6_USART_FRACTIONAL / 8) +#endif +#ifndef CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#elif CONF_SERCOM_6_USART_SAMPR == 4 +#ifndef CONF_SERCOM_6_USART_BAUD_RATE +#define CONF_SERCOM_6_USART_BAUD_RATE \ + 65536 - ((65536 * 3.0f * CONF_SERCOM_6_USART_BAUD) / CONF_GCLK_SERCOM6_CORE_FREQUENCY) +#endif +#ifndef CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#endif + +#elif CONF_SERCOM_6_USART_CMODE == 1 +#ifndef CONF_SERCOM_6_USART_BAUD_RATE +// Calculate BAUD register value in USRT mode +#define CONF_SERCOM_6_USART_BAUD_RATE (CONF_GCLK_SERCOM6_CORE_FREQUENCY) / (2 * CONF_SERCOM_6_USART_BAUD) - 1 +#endif + +#ifndef CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_6_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#else +#error CMODE value for SERCOM 6 in USART mode not known +#endif + +#include + #ifndef CONF_SERCOM_7_USART_ENABLE #define CONF_SERCOM_7_USART_ENABLE 1 #endif diff --git a/sysmoOCTSIM/config/peripheral_clk_config.h b/sysmoOCTSIM/config/peripheral_clk_config.h index ce68abd..91c5c86 100644 --- a/sysmoOCTSIM/config/peripheral_clk_config.h +++ b/sysmoOCTSIM/config/peripheral_clk_config.h @@ -40,6 +40,566 @@ // Generic clock generator 11 // Select the clock source for CORE. +#ifndef CONF_GCLK_SERCOM0_CORE_SRC +#define CONF_GCLK_SERCOM0_CORE_SRC GCLK_PCHCTRL_GEN_GCLK2_Val +#endif + +// Slow Clock Source +// slow_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the slow clock source. +#ifndef CONF_GCLK_SERCOM0_SLOW_SRC +#define CONF_GCLK_SERCOM0_SLOW_SRC GCLK_PCHCTRL_GEN_GCLK3_Val +#endif + +/** + * \def CONF_GCLK_SERCOM0_CORE_FREQUENCY + * \brief SERCOM0's Core Clock frequency + */ +#ifndef CONF_GCLK_SERCOM0_CORE_FREQUENCY +#define CONF_GCLK_SERCOM0_CORE_FREQUENCY 100000000 +#endif + +/** + * \def CONF_GCLK_SERCOM0_SLOW_FREQUENCY + * \brief SERCOM0's Slow Clock frequency + */ +#ifndef CONF_GCLK_SERCOM0_SLOW_FREQUENCY +#define CONF_GCLK_SERCOM0_SLOW_FREQUENCY 32768 +#endif + +// Core Clock Source +// core_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the clock source for CORE. +#ifndef CONF_GCLK_SERCOM1_CORE_SRC +#define CONF_GCLK_SERCOM1_CORE_SRC GCLK_PCHCTRL_GEN_GCLK2_Val +#endif + +// Slow Clock Source +// slow_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the slow clock source. +#ifndef CONF_GCLK_SERCOM1_SLOW_SRC +#define CONF_GCLK_SERCOM1_SLOW_SRC GCLK_PCHCTRL_GEN_GCLK3_Val +#endif + +/** + * \def CONF_GCLK_SERCOM1_CORE_FREQUENCY + * \brief SERCOM1's Core Clock frequency + */ +#ifndef CONF_GCLK_SERCOM1_CORE_FREQUENCY +#define CONF_GCLK_SERCOM1_CORE_FREQUENCY 100000000 +#endif + +/** + * \def CONF_GCLK_SERCOM1_SLOW_FREQUENCY + * \brief SERCOM1's Slow Clock frequency + */ +#ifndef CONF_GCLK_SERCOM1_SLOW_FREQUENCY +#define CONF_GCLK_SERCOM1_SLOW_FREQUENCY 32768 +#endif + +// Core Clock Source +// core_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the clock source for CORE. +#ifndef CONF_GCLK_SERCOM2_CORE_SRC +#define CONF_GCLK_SERCOM2_CORE_SRC GCLK_PCHCTRL_GEN_GCLK2_Val +#endif + +// Slow Clock Source +// slow_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the slow clock source. +#ifndef CONF_GCLK_SERCOM2_SLOW_SRC +#define CONF_GCLK_SERCOM2_SLOW_SRC GCLK_PCHCTRL_GEN_GCLK3_Val +#endif + +/** + * \def CONF_GCLK_SERCOM2_CORE_FREQUENCY + * \brief SERCOM2's Core Clock frequency + */ +#ifndef CONF_GCLK_SERCOM2_CORE_FREQUENCY +#define CONF_GCLK_SERCOM2_CORE_FREQUENCY 100000000 +#endif + +/** + * \def CONF_GCLK_SERCOM2_SLOW_FREQUENCY + * \brief SERCOM2's Slow Clock frequency + */ +#ifndef CONF_GCLK_SERCOM2_SLOW_FREQUENCY +#define CONF_GCLK_SERCOM2_SLOW_FREQUENCY 32768 +#endif + +// Core Clock Source +// core_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the clock source for CORE. +#ifndef CONF_GCLK_SERCOM3_CORE_SRC +#define CONF_GCLK_SERCOM3_CORE_SRC GCLK_PCHCTRL_GEN_GCLK2_Val +#endif + +// Slow Clock Source +// slow_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the slow clock source. +#ifndef CONF_GCLK_SERCOM3_SLOW_SRC +#define CONF_GCLK_SERCOM3_SLOW_SRC GCLK_PCHCTRL_GEN_GCLK3_Val +#endif + +/** + * \def CONF_GCLK_SERCOM3_CORE_FREQUENCY + * \brief SERCOM3's Core Clock frequency + */ +#ifndef CONF_GCLK_SERCOM3_CORE_FREQUENCY +#define CONF_GCLK_SERCOM3_CORE_FREQUENCY 100000000 +#endif + +/** + * \def CONF_GCLK_SERCOM3_SLOW_FREQUENCY + * \brief SERCOM3's Slow Clock frequency + */ +#ifndef CONF_GCLK_SERCOM3_SLOW_FREQUENCY +#define CONF_GCLK_SERCOM3_SLOW_FREQUENCY 32768 +#endif + +// Core Clock Source +// core_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the clock source for CORE. +#ifndef CONF_GCLK_SERCOM4_CORE_SRC +#define CONF_GCLK_SERCOM4_CORE_SRC GCLK_PCHCTRL_GEN_GCLK2_Val +#endif + +// Slow Clock Source +// slow_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the slow clock source. +#ifndef CONF_GCLK_SERCOM4_SLOW_SRC +#define CONF_GCLK_SERCOM4_SLOW_SRC GCLK_PCHCTRL_GEN_GCLK3_Val +#endif + +/** + * \def CONF_GCLK_SERCOM4_CORE_FREQUENCY + * \brief SERCOM4's Core Clock frequency + */ +#ifndef CONF_GCLK_SERCOM4_CORE_FREQUENCY +#define CONF_GCLK_SERCOM4_CORE_FREQUENCY 100000000 +#endif + +/** + * \def CONF_GCLK_SERCOM4_SLOW_FREQUENCY + * \brief SERCOM4's Slow Clock frequency + */ +#ifndef CONF_GCLK_SERCOM4_SLOW_FREQUENCY +#define CONF_GCLK_SERCOM4_SLOW_FREQUENCY 32768 +#endif + +// Core Clock Source +// core_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the clock source for CORE. +#ifndef CONF_GCLK_SERCOM5_CORE_SRC +#define CONF_GCLK_SERCOM5_CORE_SRC GCLK_PCHCTRL_GEN_GCLK2_Val +#endif + +// Slow Clock Source +// slow_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the slow clock source. +#ifndef CONF_GCLK_SERCOM5_SLOW_SRC +#define CONF_GCLK_SERCOM5_SLOW_SRC GCLK_PCHCTRL_GEN_GCLK3_Val +#endif + +/** + * \def CONF_GCLK_SERCOM5_CORE_FREQUENCY + * \brief SERCOM5's Core Clock frequency + */ +#ifndef CONF_GCLK_SERCOM5_CORE_FREQUENCY +#define CONF_GCLK_SERCOM5_CORE_FREQUENCY 100000000 +#endif + +/** + * \def CONF_GCLK_SERCOM5_SLOW_FREQUENCY + * \brief SERCOM5's Slow Clock frequency + */ +#ifndef CONF_GCLK_SERCOM5_SLOW_FREQUENCY +#define CONF_GCLK_SERCOM5_SLOW_FREQUENCY 32768 +#endif + +// Core Clock Source +// core_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the clock source for CORE. +#ifndef CONF_GCLK_SERCOM6_CORE_SRC +#define CONF_GCLK_SERCOM6_CORE_SRC GCLK_PCHCTRL_GEN_GCLK2_Val +#endif + +// Slow Clock Source +// slow_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the slow clock source. +#ifndef CONF_GCLK_SERCOM6_SLOW_SRC +#define CONF_GCLK_SERCOM6_SLOW_SRC GCLK_PCHCTRL_GEN_GCLK3_Val +#endif + +/** + * \def CONF_GCLK_SERCOM6_CORE_FREQUENCY + * \brief SERCOM6's Core Clock frequency + */ +#ifndef CONF_GCLK_SERCOM6_CORE_FREQUENCY +#define CONF_GCLK_SERCOM6_CORE_FREQUENCY 100000000 +#endif + +/** + * \def CONF_GCLK_SERCOM6_SLOW_FREQUENCY + * \brief SERCOM6's Slow Clock frequency + */ +#ifndef CONF_GCLK_SERCOM6_SLOW_FREQUENCY +#define CONF_GCLK_SERCOM6_SLOW_FREQUENCY 32768 +#endif + +// Core Clock Source +// core_gclk_selection + +// Generic clock generator 0 + +// Generic clock generator 1 + +// Generic clock generator 2 + +// Generic clock generator 3 + +// Generic clock generator 4 + +// Generic clock generator 5 + +// Generic clock generator 6 + +// Generic clock generator 7 + +// Generic clock generator 8 + +// Generic clock generator 9 + +// Generic clock generator 10 + +// Generic clock generator 11 + +// Select the clock source for CORE. #ifndef CONF_GCLK_SERCOM7_CORE_SRC #define CONF_GCLK_SERCOM7_CORE_SRC GCLK_PCHCTRL_GEN_GCLK2_Val #endif diff --git a/sysmoOCTSIM/driver_init.c b/sysmoOCTSIM/driver_init.c index 4ab622f..a196791 100644 --- a/sysmoOCTSIM/driver_init.c +++ b/sysmoOCTSIM/driver_init.c @@ -12,10 +12,45 @@ #include /*! The buffer size for USART */ +#define SIM0_BUFFER_SIZE 16 + +/*! The buffer size for USART */ +#define SIM1_BUFFER_SIZE 16 + +/*! The buffer size for USART */ +#define SIM2_BUFFER_SIZE 16 + +/*! The buffer size for USART */ +#define SIM3_BUFFER_SIZE 16 + +/*! The buffer size for USART */ +#define SIM4_BUFFER_SIZE 16 + +/*! The buffer size for USART */ +#define SIM5_BUFFER_SIZE 16 + +/*! The buffer size for USART */ +#define SIM6_BUFFER_SIZE 16 + +/*! The buffer size for USART */ #define UART_DEBUG_BUFFER_SIZE 16 +struct usart_async_descriptor SIM0; +struct usart_async_descriptor SIM1; +struct usart_async_descriptor SIM2; +struct usart_async_descriptor SIM3; +struct usart_async_descriptor SIM4; +struct usart_async_descriptor SIM5; +struct usart_async_descriptor SIM6; struct usart_async_descriptor UART_debug; +static uint8_t SIM0_buffer[SIM0_BUFFER_SIZE]; +static uint8_t SIM1_buffer[SIM1_BUFFER_SIZE]; +static uint8_t SIM2_buffer[SIM2_BUFFER_SIZE]; +static uint8_t SIM3_buffer[SIM3_BUFFER_SIZE]; +static uint8_t SIM4_buffer[SIM4_BUFFER_SIZE]; +static uint8_t SIM5_buffer[SIM5_BUFFER_SIZE]; +static uint8_t SIM6_buffer[SIM6_BUFFER_SIZE]; static uint8_t UART_debug_buffer[UART_DEBUG_BUFFER_SIZE]; /** @@ -23,6 +58,265 @@ * * Enables register interface and peripheral clock */ +void SIM0_CLOCK_init() +{ + + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM0_GCLK_ID_CORE, CONF_GCLK_SERCOM0_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM0_GCLK_ID_SLOW, CONF_GCLK_SERCOM0_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + + hri_mclk_set_APBAMASK_SERCOM0_bit(MCLK); +} + +/** + * \brief USART pinmux initialization function + * + * Set each required pin to USART functionality + */ +void SIM0_PORT_init() +{ + + gpio_set_pin_function(SIM0_IO, PINMUX_PA04D_SERCOM0_PAD0); +} + +/** + * \brief USART initialization function + * + * Enables USART peripheral, clocks and initializes USART driver + */ +void SIM0_init(void) +{ + SIM0_CLOCK_init(); + usart_async_init(&SIM0, SERCOM0, SIM0_buffer, SIM0_BUFFER_SIZE, (void *)NULL); + SIM0_PORT_init(); +} + +/** + * \brief USART Clock initialization function + * + * Enables register interface and peripheral clock + */ +void SIM1_CLOCK_init() +{ + + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM1_GCLK_ID_CORE, CONF_GCLK_SERCOM1_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM1_GCLK_ID_SLOW, CONF_GCLK_SERCOM1_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + + hri_mclk_set_APBAMASK_SERCOM1_bit(MCLK); +} + +/** + * \brief USART pinmux initialization function + * + * Set each required pin to USART functionality + */ +void SIM1_PORT_init() +{ + + gpio_set_pin_function(SIM1_IO, PINMUX_PA16C_SERCOM1_PAD0); +} + +/** + * \brief USART initialization function + * + * Enables USART peripheral, clocks and initializes USART driver + */ +void SIM1_init(void) +{ + SIM1_CLOCK_init(); + usart_async_init(&SIM1, SERCOM1, SIM1_buffer, SIM1_BUFFER_SIZE, (void *)NULL); + SIM1_PORT_init(); +} + +/** + * \brief USART Clock initialization function + * + * Enables register interface and peripheral clock + */ +void SIM2_CLOCK_init() +{ + + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM2_GCLK_ID_CORE, CONF_GCLK_SERCOM2_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM2_GCLK_ID_SLOW, CONF_GCLK_SERCOM2_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + + hri_mclk_set_APBBMASK_SERCOM2_bit(MCLK); +} + +/** + * \brief USART pinmux initialization function + * + * Set each required pin to USART functionality + */ +void SIM2_PORT_init() +{ + + gpio_set_pin_function(SIM2_IO, PINMUX_PA09D_SERCOM2_PAD0); +} + +/** + * \brief USART initialization function + * + * Enables USART peripheral, clocks and initializes USART driver + */ +void SIM2_init(void) +{ + SIM2_CLOCK_init(); + usart_async_init(&SIM2, SERCOM2, SIM2_buffer, SIM2_BUFFER_SIZE, (void *)NULL); + SIM2_PORT_init(); +} + +/** + * \brief USART Clock initialization function + * + * Enables register interface and peripheral clock + */ +void SIM3_CLOCK_init() +{ + + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM3_GCLK_ID_CORE, CONF_GCLK_SERCOM3_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM3_GCLK_ID_SLOW, CONF_GCLK_SERCOM3_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + + hri_mclk_set_APBBMASK_SERCOM3_bit(MCLK); +} + +/** + * \brief USART pinmux initialization function + * + * Set each required pin to USART functionality + */ +void SIM3_PORT_init() +{ + + gpio_set_pin_function(SIM3_IO, PINMUX_PB20C_SERCOM3_PAD0); +} + +/** + * \brief USART initialization function + * + * Enables USART peripheral, clocks and initializes USART driver + */ +void SIM3_init(void) +{ + SIM3_CLOCK_init(); + usart_async_init(&SIM3, SERCOM3, SIM3_buffer, SIM3_BUFFER_SIZE, (void *)NULL); + SIM3_PORT_init(); +} + +/** + * \brief USART Clock initialization function + * + * Enables register interface and peripheral clock + */ +void SIM4_CLOCK_init() +{ + + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM4_GCLK_ID_CORE, CONF_GCLK_SERCOM4_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM4_GCLK_ID_SLOW, CONF_GCLK_SERCOM4_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + + hri_mclk_set_APBDMASK_SERCOM4_bit(MCLK); +} + +/** + * \brief USART pinmux initialization function + * + * Set each required pin to USART functionality + */ +void SIM4_PORT_init() +{ + + gpio_set_pin_function(SIM4_IO, PINMUX_PB08D_SERCOM4_PAD0); +} + +/** + * \brief USART initialization function + * + * Enables USART peripheral, clocks and initializes USART driver + */ +void SIM4_init(void) +{ + SIM4_CLOCK_init(); + usart_async_init(&SIM4, SERCOM4, SIM4_buffer, SIM4_BUFFER_SIZE, (void *)NULL); + SIM4_PORT_init(); +} + +/** + * \brief USART Clock initialization function + * + * Enables register interface and peripheral clock + */ +void SIM5_CLOCK_init() +{ + + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM5_GCLK_ID_CORE, CONF_GCLK_SERCOM5_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM5_GCLK_ID_SLOW, CONF_GCLK_SERCOM5_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + + hri_mclk_set_APBDMASK_SERCOM5_bit(MCLK); +} + +/** + * \brief USART pinmux initialization function + * + * Set each required pin to USART functionality + */ +void SIM5_PORT_init() +{ + + gpio_set_pin_function(SIM5_IO, PINMUX_PB16C_SERCOM5_PAD0); +} + +/** + * \brief USART initialization function + * + * Enables USART peripheral, clocks and initializes USART driver + */ +void SIM5_init(void) +{ + SIM5_CLOCK_init(); + usart_async_init(&SIM5, SERCOM5, SIM5_buffer, SIM5_BUFFER_SIZE, (void *)NULL); + SIM5_PORT_init(); +} + +/** + * \brief USART Clock initialization function + * + * Enables register interface and peripheral clock + */ +void SIM6_CLOCK_init() +{ + + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM6_GCLK_ID_CORE, CONF_GCLK_SERCOM6_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM6_GCLK_ID_SLOW, CONF_GCLK_SERCOM6_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + + hri_mclk_set_APBDMASK_SERCOM6_bit(MCLK); +} + +/** + * \brief USART pinmux initialization function + * + * Set each required pin to USART functionality + */ +void SIM6_PORT_init() +{ + + gpio_set_pin_function(SIM6_IO, PINMUX_PC16C_SERCOM6_PAD0); +} + +/** + * \brief USART initialization function + * + * Enables USART peripheral, clocks and initializes USART driver + */ +void SIM6_init(void) +{ + SIM6_CLOCK_init(); + usart_async_init(&SIM6, SERCOM6, SIM6_buffer, SIM6_BUFFER_SIZE, (void *)NULL); + SIM6_PORT_init(); +} + +/** + * \brief USART Clock initialization function + * + * Enables register interface and peripheral clock + */ void UART_debug_CLOCK_init() { @@ -312,6 +606,13 @@ gpio_set_pin_function(USER_LED, GPIO_PIN_FUNCTION_OFF); + SIM0_init(); + SIM1_init(); + SIM2_init(); + SIM3_init(); + SIM4_init(); + SIM5_init(); + SIM6_init(); UART_debug_init(); USB_DEVICE_INSTANCE_init(); diff --git a/sysmoOCTSIM/driver_init.h b/sysmoOCTSIM/driver_init.h index 25e6370..a0fbb88 100644 --- a/sysmoOCTSIM/driver_init.h +++ b/sysmoOCTSIM/driver_init.h @@ -22,11 +22,53 @@ #include #include +#include +#include +#include +#include +#include +#include +#include #include "hal_usb_device.h" +extern struct usart_async_descriptor SIM0; +extern struct usart_async_descriptor SIM1; +extern struct usart_async_descriptor SIM2; +extern struct usart_async_descriptor SIM3; +extern struct usart_async_descriptor SIM4; +extern struct usart_async_descriptor SIM5; +extern struct usart_async_descriptor SIM6; extern struct usart_async_descriptor UART_debug; +void SIM0_PORT_init(void); +void SIM0_CLOCK_init(void); +void SIM0_init(void); + +void SIM1_PORT_init(void); +void SIM1_CLOCK_init(void); +void SIM1_init(void); + +void SIM2_PORT_init(void); +void SIM2_CLOCK_init(void); +void SIM2_init(void); + +void SIM3_PORT_init(void); +void SIM3_CLOCK_init(void); +void SIM3_init(void); + +void SIM4_PORT_init(void); +void SIM4_CLOCK_init(void); +void SIM4_init(void); + +void SIM5_PORT_init(void); +void SIM5_CLOCK_init(void); +void SIM5_init(void); + +void SIM6_PORT_init(void); +void SIM6_CLOCK_init(void); +void SIM6_init(void); + void UART_debug_PORT_init(void); void UART_debug_CLOCK_init(void); void UART_debug_init(void); diff --git a/sysmoOCTSIM/examples/driver_examples.c b/sysmoOCTSIM/examples/driver_examples.c index 8384c87..14f1ae5 100644 --- a/sysmoOCTSIM/examples/driver_examples.c +++ b/sysmoOCTSIM/examples/driver_examples.c @@ -11,6 +11,209 @@ #include "utils.h" /** + * Example of using SIM0 to write "Hello World" using the IO abstraction. + * + * Since the driver is asynchronous we need to use statically allocated memory for string + * because driver initiates transfer and then returns before the transmission is completed. + * + * Once transfer has been completed the tx_cb function will be called. + */ + +static uint8_t example_SIM0[12] = "Hello World!"; + +static void tx_cb_SIM0(const struct usart_async_descriptor *const io_descr) +{ + /* Transfer completed */ +} + +void SIM0_example(void) +{ + struct io_descriptor *io; + + usart_async_register_callback(&SIM0, USART_ASYNC_TXC_CB, tx_cb_SIM0); + /*usart_async_register_callback(&SIM0, USART_ASYNC_RXC_CB, rx_cb); + usart_async_register_callback(&SIM0, USART_ASYNC_ERROR_CB, err_cb);*/ + usart_async_get_io_descriptor(&SIM0, &io); + usart_async_enable(&SIM0); + + io_write(io, example_SIM0, 12); +} + +/** + * Example of using SIM1 to write "Hello World" using the IO abstraction. + * + * Since the driver is asynchronous we need to use statically allocated memory for string + * because driver initiates transfer and then returns before the transmission is completed. + * + * Once transfer has been completed the tx_cb function will be called. + */ + +static uint8_t example_SIM1[12] = "Hello World!"; + +static void tx_cb_SIM1(const struct usart_async_descriptor *const io_descr) +{ + /* Transfer completed */ +} + +void SIM1_example(void) +{ + struct io_descriptor *io; + + usart_async_register_callback(&SIM1, USART_ASYNC_TXC_CB, tx_cb_SIM1); + /*usart_async_register_callback(&SIM1, USART_ASYNC_RXC_CB, rx_cb); + usart_async_register_callback(&SIM1, USART_ASYNC_ERROR_CB, err_cb);*/ + usart_async_get_io_descriptor(&SIM1, &io); + usart_async_enable(&SIM1); + + io_write(io, example_SIM1, 12); +} + +/** + * Example of using SIM2 to write "Hello World" using the IO abstraction. + * + * Since the driver is asynchronous we need to use statically allocated memory for string + * because driver initiates transfer and then returns before the transmission is completed. + * + * Once transfer has been completed the tx_cb function will be called. + */ + +static uint8_t example_SIM2[12] = "Hello World!"; + +static void tx_cb_SIM2(const struct usart_async_descriptor *const io_descr) +{ + /* Transfer completed */ +} + +void SIM2_example(void) +{ + struct io_descriptor *io; + + usart_async_register_callback(&SIM2, USART_ASYNC_TXC_CB, tx_cb_SIM2); + /*usart_async_register_callback(&SIM2, USART_ASYNC_RXC_CB, rx_cb); + usart_async_register_callback(&SIM2, USART_ASYNC_ERROR_CB, err_cb);*/ + usart_async_get_io_descriptor(&SIM2, &io); + usart_async_enable(&SIM2); + + io_write(io, example_SIM2, 12); +} + +/** + * Example of using SIM3 to write "Hello World" using the IO abstraction. + * + * Since the driver is asynchronous we need to use statically allocated memory for string + * because driver initiates transfer and then returns before the transmission is completed. + * + * Once transfer has been completed the tx_cb function will be called. + */ + +static uint8_t example_SIM3[12] = "Hello World!"; + +static void tx_cb_SIM3(const struct usart_async_descriptor *const io_descr) +{ + /* Transfer completed */ +} + +void SIM3_example(void) +{ + struct io_descriptor *io; + + usart_async_register_callback(&SIM3, USART_ASYNC_TXC_CB, tx_cb_SIM3); + /*usart_async_register_callback(&SIM3, USART_ASYNC_RXC_CB, rx_cb); + usart_async_register_callback(&SIM3, USART_ASYNC_ERROR_CB, err_cb);*/ + usart_async_get_io_descriptor(&SIM3, &io); + usart_async_enable(&SIM3); + + io_write(io, example_SIM3, 12); +} + +/** + * Example of using SIM4 to write "Hello World" using the IO abstraction. + * + * Since the driver is asynchronous we need to use statically allocated memory for string + * because driver initiates transfer and then returns before the transmission is completed. + * + * Once transfer has been completed the tx_cb function will be called. + */ + +static uint8_t example_SIM4[12] = "Hello World!"; + +static void tx_cb_SIM4(const struct usart_async_descriptor *const io_descr) +{ + /* Transfer completed */ +} + +void SIM4_example(void) +{ + struct io_descriptor *io; + + usart_async_register_callback(&SIM4, USART_ASYNC_TXC_CB, tx_cb_SIM4); + /*usart_async_register_callback(&SIM4, USART_ASYNC_RXC_CB, rx_cb); + usart_async_register_callback(&SIM4, USART_ASYNC_ERROR_CB, err_cb);*/ + usart_async_get_io_descriptor(&SIM4, &io); + usart_async_enable(&SIM4); + + io_write(io, example_SIM4, 12); +} + +/** + * Example of using SIM5 to write "Hello World" using the IO abstraction. + * + * Since the driver is asynchronous we need to use statically allocated memory for string + * because driver initiates transfer and then returns before the transmission is completed. + * + * Once transfer has been completed the tx_cb function will be called. + */ + +static uint8_t example_SIM5[12] = "Hello World!"; + +static void tx_cb_SIM5(const struct usart_async_descriptor *const io_descr) +{ + /* Transfer completed */ +} + +void SIM5_example(void) +{ + struct io_descriptor *io; + + usart_async_register_callback(&SIM5, USART_ASYNC_TXC_CB, tx_cb_SIM5); + /*usart_async_register_callback(&SIM5, USART_ASYNC_RXC_CB, rx_cb); + usart_async_register_callback(&SIM5, USART_ASYNC_ERROR_CB, err_cb);*/ + usart_async_get_io_descriptor(&SIM5, &io); + usart_async_enable(&SIM5); + + io_write(io, example_SIM5, 12); +} + +/** + * Example of using SIM6 to write "Hello World" using the IO abstraction. + * + * Since the driver is asynchronous we need to use statically allocated memory for string + * because driver initiates transfer and then returns before the transmission is completed. + * + * Once transfer has been completed the tx_cb function will be called. + */ + +static uint8_t example_SIM6[12] = "Hello World!"; + +static void tx_cb_SIM6(const struct usart_async_descriptor *const io_descr) +{ + /* Transfer completed */ +} + +void SIM6_example(void) +{ + struct io_descriptor *io; + + usart_async_register_callback(&SIM6, USART_ASYNC_TXC_CB, tx_cb_SIM6); + /*usart_async_register_callback(&SIM6, USART_ASYNC_RXC_CB, rx_cb); + usart_async_register_callback(&SIM6, USART_ASYNC_ERROR_CB, err_cb);*/ + usart_async_get_io_descriptor(&SIM6, &io); + usart_async_enable(&SIM6); + + io_write(io, example_SIM6, 12); +} + +/** * Example of using UART_debug to write "Hello World" using the IO abstraction. * * Since the driver is asynchronous we need to use statically allocated memory for string diff --git a/sysmoOCTSIM/examples/driver_examples.h b/sysmoOCTSIM/examples/driver_examples.h index 7bb60eb..4f2ce98 100644 --- a/sysmoOCTSIM/examples/driver_examples.h +++ b/sysmoOCTSIM/examples/driver_examples.h @@ -12,6 +12,20 @@ extern "C" { #endif +void SIM0_example(void); + +void SIM1_example(void); + +void SIM2_example(void); + +void SIM3_example(void); + +void SIM4_example(void); + +void SIM5_example(void); + +void SIM6_example(void); + void UART_debug_example(void); #ifdef __cplusplus diff --git a/sysmoOCTSIM/hpl/sercom/hpl_sercom.c b/sysmoOCTSIM/hpl/sercom/hpl_sercom.c index 535ebc6..f235115 100644 --- a/sysmoOCTSIM/hpl/sercom/hpl_sercom.c +++ b/sysmoOCTSIM/hpl/sercom/hpl_sercom.c @@ -163,6 +163,20 @@ }; #endif +static struct _usart_async_device *_sercom0_dev = NULL; + +static struct _usart_async_device *_sercom1_dev = NULL; + +static struct _usart_async_device *_sercom2_dev = NULL; + +static struct _usart_async_device *_sercom3_dev = NULL; + +static struct _usart_async_device *_sercom4_dev = NULL; + +static struct _usart_async_device *_sercom5_dev = NULL; + +static struct _usart_async_device *_sercom6_dev = NULL; + static struct _usart_async_device *_sercom7_dev = NULL; static uint8_t _get_sercom_index(const void *const hw); @@ -626,6 +640,34 @@ static void _sercom_init_irq_param(const void *const hw, void *dev) { + if (hw == SERCOM0) { + _sercom0_dev = (struct _usart_async_device *)dev; + } + + if (hw == SERCOM1) { + _sercom1_dev = (struct _usart_async_device *)dev; + } + + if (hw == SERCOM2) { + _sercom2_dev = (struct _usart_async_device *)dev; + } + + if (hw == SERCOM3) { + _sercom3_dev = (struct _usart_async_device *)dev; + } + + if (hw == SERCOM4) { + _sercom4_dev = (struct _usart_async_device *)dev; + } + + if (hw == SERCOM5) { + _sercom5_dev = (struct _usart_async_device *)dev; + } + + if (hw == SERCOM6) { + _sercom6_dev = (struct _usart_async_device *)dev; + } + if (hw == SERCOM7) { _sercom7_dev = (struct _usart_async_device *)dev; } @@ -2392,6 +2434,209 @@ /** * \internal Sercom interrupt handler */ +void SERCOM0_0_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom0_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM0_1_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom0_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM0_2_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom0_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM0_3_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom0_dev); +} + +/** + * \internal Sercom interrupt handler + */ +void SERCOM1_0_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom1_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM1_1_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom1_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM1_2_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom1_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM1_3_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom1_dev); +} + +/** + * \internal Sercom interrupt handler + */ +void SERCOM2_0_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom2_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM2_1_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom2_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM2_2_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom2_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM2_3_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom2_dev); +} + +/** + * \internal Sercom interrupt handler + */ +void SERCOM3_0_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom3_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM3_1_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom3_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM3_2_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom3_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM3_3_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom3_dev); +} + +/** + * \internal Sercom interrupt handler + */ +void SERCOM4_0_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom4_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM4_1_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom4_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM4_2_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom4_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM4_3_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom4_dev); +} + +/** + * \internal Sercom interrupt handler + */ +void SERCOM5_0_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom5_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM5_1_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom5_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM5_2_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom5_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM5_3_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom5_dev); +} + +/** + * \internal Sercom interrupt handler + */ +void SERCOM6_0_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom6_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM6_1_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom6_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM6_2_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom6_dev); +} +/** + * \internal Sercom interrupt handler + */ +void SERCOM6_3_Handler(void) +{ + _sercom_usart_interrupt_handler(_sercom6_dev); +} + +/** + * \internal Sercom interrupt handler + */ void SERCOM7_0_Handler(void) { _sercom_usart_interrupt_handler(_sercom7_dev); -- To view, visit https://gerrit.osmocom.org/12811 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I3f1411ec5bc2ed7dfa714550d041f52be665132a Gerrit-Change-Number: 12811 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 16:08:23 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Thu, 7 Feb 2019 16:08:23 +0000 Subject: Change in osmo-ccid-firmware[master]: add debug welcome message output In-Reply-To: References: Message-ID: K?vin Redon has submitted this change and it was merged. ( https://gerrit.osmocom.org/12812 ) Change subject: add debug welcome message output ...................................................................... add debug welcome message output Change-Id: I8dde644caa56152b17da674e187006726991ff9c --- M sysmoOCTSIM/main.c 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c index f2584d2..d74153d 100644 --- a/sysmoOCTSIM/main.c +++ b/sysmoOCTSIM/main.c @@ -44,6 +44,8 @@ usb_start(); + const char* welcome = "\r\n\r\nsysmocom sysmoOCTSIM\r\n"; + while (io_write(&UART_debug.io, (const uint8_t*)welcome, strlen(welcome)) != strlen(welcome)); // print welcome message while (true) { // main loop if (data_arrived) { // input on UART debug data_arrived = false; // clear flag -- To view, visit https://gerrit.osmocom.org/12812 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I8dde644caa56152b17da674e187006726991ff9c Gerrit-Change-Number: 12812 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 16:08:40 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Thu, 7 Feb 2019 16:08:40 +0000 Subject: Change in osmo-ccid-firmware[master]: relocate application to after the DFU bootloader In-Reply-To: References: Message-ID: K?vin Redon has submitted this change and it was merged. ( https://gerrit.osmocom.org/12813 ) Change subject: relocate application to after the DFU bootloader ...................................................................... relocate application to after the DFU bootloader without this relocation the DFU bootloader can jump to the application but following executed code would not be the one from the application. Change-Id: Ieeefcf80918fd10e48debab6ff08505f6588811c --- M sysmoOCTSIM/gcc/Makefile R sysmoOCTSIM/gcc/gcc/same54n19a_dfu.ld D sysmoOCTSIM/gcc/gcc/same54p20a_sram.ld 3 files changed, 5 insertions(+), 167 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sysmoOCTSIM/gcc/Makefile b/sysmoOCTSIM/gcc/Makefile index 7bc5fd3..572fb21 100644 --- a/sysmoOCTSIM/gcc/Makefile +++ b/sysmoOCTSIM/gcc/Makefile @@ -184,7 +184,7 @@ $(QUOTE)arm-none-eabi-gcc$(QUOTE) -o $(OUTPUT_FILE_NAME).elf $(OBJS_AS_ARGS) -Wl,--start-group -lm -Wl,--end-group -mthumb \ -Wl,-Map="$(OUTPUT_FILE_NAME).map" --specs=nano.specs -Wl,--gc-sections -mcpu=cortex-m4 \ \ --T"../gcc/gcc/same54n19a_flash.ld" \ +-T"../gcc/gcc/same54n19a_dfu.ld" \ -L"../gcc/gcc" @echo Finished building target: $@ diff --git a/sysmoOCTSIM/gcc/gcc/same54p20a_flash.ld b/sysmoOCTSIM/gcc/gcc/same54n19a_dfu.ld similarity index 95% rename from sysmoOCTSIM/gcc/gcc/same54p20a_flash.ld rename to sysmoOCTSIM/gcc/gcc/same54n19a_dfu.ld index 08099d2..7d76cc2 100644 --- a/sysmoOCTSIM/gcc/gcc/same54p20a_flash.ld +++ b/sysmoOCTSIM/gcc/gcc/same54n19a_dfu.ld @@ -1,7 +1,7 @@ /** * \file * - * \brief Linker script for running in internal FLASH on the SAME54P20A + * \brief Linker script for running in internal FLASH on the SAME54N19A * * Copyright (c) 2018 Microchip Technology Inc. * @@ -35,14 +35,14 @@ /* Memory Spaces Definitions */ MEMORY { - rom (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 - ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 + rom (rx) : ORIGIN = 0x00000000 + 16K, LENGTH = 0x00080000 - 16K + ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00030000 bkupram (rwx) : ORIGIN = 0x47000000, LENGTH = 0x00002000 qspi (rwx) : ORIGIN = 0x04000000, LENGTH = 0x01000000 } /* The stack size used by the application. NOTE: you need to adjust according to your application. */ -STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0x10000; +STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0xC000; /* Section Definitions */ SECTIONS diff --git a/sysmoOCTSIM/gcc/gcc/same54p20a_sram.ld b/sysmoOCTSIM/gcc/gcc/same54p20a_sram.ld deleted file mode 100644 index b3be5b3..0000000 --- a/sysmoOCTSIM/gcc/gcc/same54p20a_sram.ld +++ /dev/null @@ -1,162 +0,0 @@ -/** - * \file - * - * \brief Linker script for running in internal SRAM on the SAME54P20A - * - * Copyright (c) 2018 Microchip Technology Inc. - * - * \asf_license_start - * - * \page License - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the Licence at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an AS IS BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * \asf_license_stop - * - */ - - -OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm") -OUTPUT_ARCH(arm) -SEARCH_DIR(.) - -/* Memory Spaces Definitions */ -MEMORY -{ - ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 - bkupram (rwx) : ORIGIN = 0x47000000, LENGTH = 0x00002000 - qspi (rwx) : ORIGIN = 0x04000000, LENGTH = 0x01000000 -} - -/* The stack size used by the application. NOTE: you need to adjust according to your application. */ -STACK_SIZE = DEFINED(STACK_SIZE) ? STACK_SIZE : DEFINED(__stack_size__) ? __stack_size__ : 0x10000; - -/* Section Definitions */ -SECTIONS -{ - .text : - { - . = ALIGN(4); - _sfixed = .; - KEEP(*(.vectors .vectors.*)) - *(.text .text.* .gnu.linkonce.t.*) - *(.glue_7t) *(.glue_7) - *(.rodata .rodata* .gnu.linkonce.r.*) - *(.ARM.extab* .gnu.linkonce.armextab.*) - - /* Support C constructors, and C destructors in both user code - and the C library. This also provides support for C++ code. */ - . = ALIGN(4); - KEEP(*(.init)) - . = ALIGN(4); - __preinit_array_start = .; - KEEP (*(.preinit_array)) - __preinit_array_end = .; - - . = ALIGN(4); - __init_array_start = .; - KEEP (*(SORT(.init_array.*))) - KEEP (*(.init_array)) - __init_array_end = .; - - . = ALIGN(4); - KEEP (*crtbegin.o(.ctors)) - KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) - KEEP (*(SORT(.ctors.*))) - KEEP (*crtend.o(.ctors)) - - . = ALIGN(4); - KEEP(*(.fini)) - - . = ALIGN(4); - __fini_array_start = .; - KEEP (*(.fini_array)) - KEEP (*(SORT(.fini_array.*))) - __fini_array_end = .; - - KEEP (*crtbegin.o(.dtors)) - KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) - KEEP (*(SORT(.dtors.*))) - KEEP (*crtend.o(.dtors)) - - . = ALIGN(4); - _efixed = .; /* End of text section */ - } > ram - - /* .ARM.exidx is sorted, so has to go in its own output section. */ - PROVIDE_HIDDEN (__exidx_start = .); - .ARM.exidx : - { - *(.ARM.exidx* .gnu.linkonce.armexidx.*) - } > ram - PROVIDE_HIDDEN (__exidx_end = .); - - . = ALIGN(4); - _etext = .; - - .relocate : AT (_etext) - { - . = ALIGN(4); - _srelocate = .; - *(.ramfunc .ramfunc.*); - *(.data .data.*); - . = ALIGN(4); - _erelocate = .; - } > ram - - .bkupram (NOLOAD): - { - . = ALIGN(8); - _sbkupram = .; - *(.bkupram .bkupram.*); - . = ALIGN(8); - _ebkupram = .; - } > bkupram - - .qspi (NOLOAD): - { - . = ALIGN(8); - _sqspi = .; - *(.qspi .qspi.*); - . = ALIGN(8); - _eqspi = .; - } > qspi - - /* .bss section which is used for uninitialized data */ - .bss (NOLOAD) : - { - . = ALIGN(4); - _sbss = . ; - _szero = .; - *(.bss .bss.*) - *(COMMON) - . = ALIGN(4); - _ebss = . ; - _ezero = .; - } > ram - - /* stack section */ - .stack (NOLOAD): - { - . = ALIGN(8); - _sstack = .; - . = . + STACK_SIZE; - . = ALIGN(8); - _estack = .; - } > ram - - . = ALIGN(4); - _end = . ; -} -- To view, visit https://gerrit.osmocom.org/12813 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ieeefcf80918fd10e48debab6ff08505f6588811c Gerrit-Change-Number: 12813 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 16:18:14 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 16:18:14 +0000 Subject: Change in osmo-ccid-firmware[master]: add GPLv2 license In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12858 ) Change subject: add GPLv2 license ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12858 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I761b3af3db43aa0da679c2f83aa89c92a7aae668 Gerrit-Change-Number: 12858 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Thu, 07 Feb 2019 16:18:14 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 16:18:26 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 16:18:26 +0000 Subject: Change in osmo-ccid-firmware[master]: add README file In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12859 ) Change subject: add README file ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12859 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9286493e4e2d20f00a33e7b565adde10198f179a Gerrit-Change-Number: 12859 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Thu, 07 Feb 2019 16:18:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 16:18:28 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 16:18:28 +0000 Subject: Change in osmo-ccid-firmware[master]: add GPLv2 license In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12858 ) Change subject: add GPLv2 license ...................................................................... add GPLv2 license Change-Id: I761b3af3db43aa0da679c2f83aa89c92a7aae668 --- A sysmoOCTSIM/LICENSE 1 file changed, 488 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sysmoOCTSIM/LICENSE b/sysmoOCTSIM/LICENSE new file mode 100644 index 0000000..f15a3c0 --- /dev/null +++ b/sysmoOCTSIM/LICENSE @@ -0,0 +1,488 @@ +The sysmocom sysmoOCTSIM firmware is under the GPLv2 or later license. +It uses the Microchip ASFv4 library under the ASF license. +The CMSIS definitions are under the Apache-2.0 license +The header of each file indicates under which license the corresponding source code is. +You can find the complete text of the licenses below. + += GPLv2 + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + += ASF + +Subject to your compliance with these terms, you may use Microchip +software and any derivatives exclusively with Microchip products. +It is your responsibility to comply with third party license terms applicable +to your use of third party software (including open source software) that +may accompany Microchip software. + +THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, +WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, +INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, +AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE +LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL +LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE +SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE +POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT +ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY +RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, +THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + += Apache-2.0 + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS -- To view, visit https://gerrit.osmocom.org/12858 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I761b3af3db43aa0da679c2f83aa89c92a7aae668 Gerrit-Change-Number: 12858 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 16:18:29 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 7 Feb 2019 16:18:29 +0000 Subject: Change in osmo-ccid-firmware[master]: add README file In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12859 ) Change subject: add README file ...................................................................... add README file Change-Id: I9286493e4e2d20f00a33e7b565adde10198f179a --- A sysmoOCTSIM/README.md 1 file changed, 46 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sysmoOCTSIM/README.md b/sysmoOCTSIM/README.md new file mode 100644 index 0000000..1927255 --- /dev/null +++ b/sysmoOCTSIM/README.md @@ -0,0 +1,46 @@ +The sysmocom sysmoOCTSIM is a USB CCID device with eight smart card slots. +This is the open source firmware for this device. + +Hardware +======== + +The sysmocom sysmoOCTSIM hardware is proprietary. + +It has the following specifications: + +- 8 smart cards slots for 2FF cards (e.g. normal SIM format) +- each slot is driven individually (e.g. they are not multiplexed) +- each card can be operated in class A (5.0 V), B (3.0 V), or C (1.8 V) +- the ISO/IEC 7816-4 T=0 communication protocol is used +- each card can be clock up to 20 MHz (e.g. maximum allowed by the standard) + +For more detailed specification refer to the USB description of the device. + +Firmware +======== + +Compiling +--------- + +GNU make and the arm-none-eabi-gcc compiler are required to build the firmware. + +The compile the firmware, run the following commands: + +``` +cd sysmoOCTSIM/gcc +make +``` + +The `sysmoOCTSIM/gcc/AtmelStart.bin` file is the resulting firmware for the device. + +Flashing +-------- + +The device comes pre-flash with a USB DFU bootloader (e.g. [osmo-asf4-dfu](https://git.osmocom.org/osmo-asf4-dfu/)). +To start the USB DFU bootloader, press on the button on the front right of the panel while powering up the device. + +Use the [dfu-util](http://dfu-util.sourceforge.net/) utility to flash the firmware onto the device: + +``` +dfu-util --device 1d50:6141 --download sysmoOCTSIM/gcc/AtmelStart.bin +``` -- To view, visit https://gerrit.osmocom.org/12859 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I9286493e4e2d20f00a33e7b565adde10198f179a Gerrit-Change-Number: 12859 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 16:20:32 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 7 Feb 2019 16:20:32 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/12625 ) Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... Patch Set 8: (1 comment) https://gerrit.osmocom.org/#/c/12625/8/include/osmocom/bsc/gsm_data.h File include/osmocom/bsc/gsm_data.h: https://gerrit.osmocom.org/#/c/12625/8/include/osmocom/bsc/gsm_data.h at 104 PS8, Line 104: bool full_rate; > We ignore the MS channel preference on purpose and do "late assignment" instead. [?] I hope I understood this right, though. My reply above talks about Channel Request coming in from the MS. I think you were instead referring to an Assignment Command from the MSC with GSM0808_CHAN_SIGN? I think osmo-msc currently never sends Assignment Command with CHAN_SIGN, does it?? In what situations? -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy Gerrit-CC: tnt Gerrit-Comment-Date: Thu, 07 Feb 2019 16:20:32 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 16:36:39 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 7 Feb 2019 16:36:39 +0000 Subject: Change in libosmo-netif[master]: Stream client: report reconnection event as INFO In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12854 ) Change subject: Stream client: report reconnection event as INFO ...................................................................... Stream client: report reconnection event as INFO This helps to avoid unnecessary debug output in reconnection logic tests in follow-up patches. Change-Id: Ic96430a9e9294e72de23b0bbacdbf3e99a453f1d --- M src/stream.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/stream.c b/src/stream.c index 7b97d2a..1880e25 100644 --- a/src/stream.c +++ b/src/stream.c @@ -172,11 +172,11 @@ osmo_stream_cli_close(cli); if (cli->reconnect_timeout < 0) { - LOGSCLI(cli, LOGL_DEBUG, "not reconnecting, disabled.\n"); + LOGSCLI(cli, LOGL_INFO, "not reconnecting, disabled.\n"); return; } - LOGSCLI(cli, LOGL_DEBUG, "retrying in %d seconds...\n", + LOGSCLI(cli, LOGL_INFO, "retrying in %d seconds...\n", cli->reconnect_timeout); osmo_timer_schedule(&cli->timer, cli->reconnect_timeout, 0); cli->state = STREAM_CLI_STATE_CONNECTING; -- To view, visit https://gerrit.osmocom.org/12854 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic96430a9e9294e72de23b0bbacdbf3e99a453f1d Gerrit-Change-Number: 12854 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 16:41:15 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 7 Feb 2019 16:41:15 +0000 Subject: Change in osmo-sysmon[master]: Introduce generic host config and related helpers In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12761 ) Change subject: Introduce generic host config and related helpers ...................................................................... Patch Set 6: (6 comments) This change is ready for review. https://gerrit.osmocom.org/#/c/12761/5/contrib/jenkins.sh File contrib/jenkins.sh: https://gerrit.osmocom.org/#/c/12761/5/contrib/jenkins.sh at 27 PS5, Line 27: > why is this line needed? Done https://gerrit.osmocom.org/#/c/12761/5/src/client.c File src/client.c: https://gerrit.osmocom.org/#/c/12761/5/src/client.c at 34 PS5, Line 34: { > can be simplified: #define MATCH(a, b) (strcmp(a,b) == 0) [?] Done https://gerrit.osmocom.org/#/c/12761/5/src/client.c at 38 PS5, Line 38: switch (k) { > separate lines please. Done https://gerrit.osmocom.org/#/c/12761/5/src/client.c at 56 PS5, Line 56: struct host_cfg *cfg = talloc_zero(ctx, struct host_cfg); > This is basically a constructor/allocator, so better name it like we usually do, like talloc_host_cf [?] Done https://gerrit.osmocom.org/#/c/12761/5/src/client.c at 79 PS5, Line 79: > It's allocating something and the method is not const, so I'd better name it "create_authority" or " [?] Done https://gerrit.osmocom.org/#/c/12761/5/src/client.c at 81 PS5, Line 81: > Is this really needed? Yes, it's easier to use it that way because it's used by both logging and polling code. -- To view, visit https://gerrit.osmocom.org/12761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie321655a92cdbefbfaa056ac0d583397c83beccb Gerrit-Change-Number: 12761 Gerrit-PatchSet: 6 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 07 Feb 2019 16:41:15 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 16:45:30 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 7 Feb 2019 16:45:30 +0000 Subject: Change in osmo-sysmon[master]: Add OpenVPN probe In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12763 ) Change subject: Add OpenVPN probe ...................................................................... Patch Set 7: (13 comments) This change is ready for review. https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c File src/osysmon_openvpn.c: https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 68 PS5, Line 68: > get_authority memleak, Done https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 74 PS5, Line 74: return NULL; > get_authority memleak. Done https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 79 PS5, Line 79: > if that's a string, then you can simply use osmo_strlcpy afaik. Done https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 82 PS5, Line 82: for (tok = strtok(tmp, ","); tok && i < MAX_RESP_COMPONENTS; tok = strtok(NULL, ",")) { > add missing {}, otherwise it's confusing. [?] Done https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 83 PS5, Line 83: /* The string format is documented in https://openvpn.net/community-resources/management-interface/ */ > if I understand correctly, first time switch is checked against i=0 (because it's incremented afterw [?] Done https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 127 PS5, Line 127: { > (!msg) Done https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 134 PS5, Line 134: } > mem leak, get_authority allocates stuff. [?] Done https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 149 PS5, Line 149: struct openvpn_client *vpn = openvpn_client_find_or_make(os, host, port); > that's weird from API point of view. [?] Done https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 159 PS5, Line 159: vpn->cfg = host_cfg_alloc(vpn, name, host, port); > Instead of talloc_free + return false in lots of places, use a goto to end of function. Done https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 178 PS5, Line 178: if (osmo_stream_cli_open(vpn->mgmt) < 0) { > was this already fixed? otherwise please open a ticket and put the ticket number in the commit for l [?] libosmo-netif patches are under review ATM https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 263 PS5, Line 263: > possible memleak of remote later on, to be checked. What makes you think that? It should be automatically cleaned by talloc on vty refresh. https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 267 PS5, Line 267: osmo_stream_cli_send(vpn->mgmt, msg); > Not sure what is this for. Not what you're referring to: - msgb_printf is to print stuff into msgb, documented in libosmocore - osmo_stream_cli_send is to send msgb, documented in libosmo-netif https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 287 PS5, Line 287: struct value_node *vn_vpn = value_node_add(parent, "OpenVPN", NULL); > No need to count, just check if the list is not empty. Done -- To view, visit https://gerrit.osmocom.org/12763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4493e19b9a09dcebd289457eacd1719f7f8cc31c Gerrit-Change-Number: 12763 Gerrit-PatchSet: 7 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 07 Feb 2019 16:45:30 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 17:19:37 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 7 Feb 2019 17:19:37 +0000 Subject: Change in osmo-sysmon[master]: Introduce generic host config and related helpers In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12761 ) Change subject: Introduce generic host config and related helpers ...................................................................... Patch Set 6: Code-Review-1 (1 comment) https://gerrit.osmocom.org/#/c/12761/6/src/simple_ctrl.c File src/simple_ctrl.c: https://gerrit.osmocom.org/#/c/12761/6/src/simple_ctrl.c at 42 PS6, Line 42: fprintf(stderr, "CTRL %s error: " fmt, make_authority(sch, &sch->cfg), ##args) memleak of make_authority. At least until you free sch. I don't really like unnecesarily leaking stuff for a while for no good reason. do { foo = make_authority(); fprintf(... , foo); talloc_free(foo); } while(0); -- To view, visit https://gerrit.osmocom.org/12761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie321655a92cdbefbfaa056ac0d583397c83beccb Gerrit-Change-Number: 12761 Gerrit-PatchSet: 6 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 07 Feb 2019 17:19:37 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 17:29:06 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 7 Feb 2019 17:29:06 +0000 Subject: Change in osmo-sysmon[master]: Add OpenVPN probe In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12763 ) Change subject: Add OpenVPN probe ...................................................................... Patch Set 7: (5 comments) https://gerrit.osmocom.org/#/c/12763/7/src/osysmon_main.c File src/osysmon_main.c: https://gerrit.osmocom.org/#/c/12763/7/src/osysmon_main.c at 252 PS7, Line 252: sleep(1); why not always polling osmocom event loop with a timeout of 1 second instead of instant polling + sleep? https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c File src/osysmon_openvpn.c: https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 263 PS5, Line 263: > What makes you think that? It should be automatically cleaned by talloc on vty refresh. Why keeping it until then if it's not longer needed? Do we believe on garbage collectors now? https://gerrit.osmocom.org/#/c/12763/7/src/osysmon_openvpn.c File src/osysmon_openvpn.c: https://gerrit.osmocom.org/#/c/12763/7/src/osysmon_openvpn.c at 45 PS7, Line 45: fprintf(stderr, "OpenVPN [%s]: " fmt, make_authority(ctx, vpn->cfg), ##args) make_authority memleaks here, or at least unnecesarily delays its free. https://gerrit.osmocom.org/#/c/12763/7/src/osysmon_openvpn.c at 67 PS7, Line 67: uint8_t *m = msgb_data(msg); would be clearer to cast here already if we know it's a string: char *m = (char*) msgb_data(msg); then you can remove the cast in line 80. https://gerrit.osmocom.org/#/c/12763/7/src/osysmon_openvpn.c at 104 PS7, Line 104: static struct openvpn_client *openvpn_client_find_or_make(const struct osysmon_state *os, that's not making aything, its only finding. -- To view, visit https://gerrit.osmocom.org/12763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4493e19b9a09dcebd289457eacd1719f7f8cc31c Gerrit-Change-Number: 12763 Gerrit-PatchSet: 7 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 07 Feb 2019 17:29:06 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 17:29:40 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 7 Feb 2019 17:29:40 +0000 Subject: Change in osmo-sysmon[master]: Add OpenVPN probe In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12763 ) Change subject: Add OpenVPN probe ...................................................................... Patch Set 7: Code-Review-1 Some of my previous comments are not fixed despite being marked as "Done". -- To view, visit https://gerrit.osmocom.org/12763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4493e19b9a09dcebd289457eacd1719f7f8cc31c Gerrit-Change-Number: 12763 Gerrit-PatchSet: 7 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 07 Feb 2019 17:29:40 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 7 17:30:14 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 7 Feb 2019 17:30:14 +0000 Subject: Change in libusrp[master]: Avoid compiler warning 'dynamic exception specifications are deprecat... In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12853 ) Change subject: Avoid compiler warning 'dynamic exception specifications are deprecated in C++11 [-Wdeprecated]' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12853 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libusrp Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie472e6f92944cfe1af7d63cd644879573d080ca2 Gerrit-Change-Number: 12853 Gerrit-PatchSet: 1 Gerrit-Owner: Alexander Huemer Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 07 Feb 2019 17:30:14 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 8 08:31:42 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 8 Feb 2019 08:31:42 +0000 Subject: Change in libosmocore[master]: gsm/gsm0480: introduce gsm0480_create_release_complete() In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/12839 ) Change subject: gsm/gsm0480: introduce gsm0480_create_release_complete() ...................................................................... gsm/gsm0480: introduce gsm0480_create_release_complete() In OsmoMSC, it's required to be able to specify a particular GSM 04.07 transaction ID for GSM 04.80 Release complete message instead of the hard-coded value, that is used gsm0480_create_ussd_release_complete(). Let's finally deprecate gsm0480_create_ussd_release_complete(), and introduce a new function without USSD prefix, as this message is also used in other "structured" supplementary services. Change-Id: Ie3ac85fcef90a5e532334ba3482804d5305c88d7 --- M include/osmocom/gsm/gsm0480.h M src/gsm/gsm0480.c M src/gsm/libosmogsm.map 3 files changed, 26 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gsm/gsm0480.h b/include/osmocom/gsm/gsm0480.h index 827464e..4200189 100644 --- a/include/osmocom/gsm/gsm0480.h +++ b/include/osmocom/gsm/gsm0480.h @@ -117,7 +117,9 @@ struct msgb *gsm0480_create_unstructuredSS_Notify(int alertPattern, const char *text); struct msgb *gsm0480_create_notifySS(const char *text); struct msgb *gsm0480_create_ussd_notify(int level, const char *text); -struct msgb *gsm0480_create_ussd_release_complete(void); +struct msgb *gsm0480_create_ussd_release_complete(void) + OSMO_DEPRECATED("Use gsm0480_create_release_complete() instead."); +struct msgb *gsm0480_create_release_complete(uint8_t trans_id); int gsm0480_wrap_invoke(struct msgb *msg, int op, int link_id); int gsm0480_wrap_facility(struct msgb *msg); diff --git a/src/gsm/gsm0480.c b/src/gsm/gsm0480.c index b5c9844..9f546cc 100644 --- a/src/gsm/gsm0480.c +++ b/src/gsm/gsm0480.c @@ -921,6 +921,7 @@ return msg; } +/*! Deprecated, use gsm0480_create_release_complete() instead. */ struct msgb *gsm0480_create_ussd_release_complete(void) { struct msgb *msg; @@ -936,3 +937,23 @@ return msg; } + +/*! Create a GSM 04.80 Release complete (see 2.5) message, prefixed + * by GSM 04.08 L3 header with a given transaction ID. + * \param[in] trans_id GSM 04.07 transaction identifier (and TI flag) + * \return message buffer containing the Release complete message + */ +struct msgb *gsm0480_create_release_complete(uint8_t trans_id) +{ + struct msgb *msg; + + msg = gsm0480_msgb_alloc_name("TS 04.80 USSD REL COMPL"); + if (!msg) + return NULL; + + /* Push the L3 header */ + gsm48_push_l3hdr_tid(msg, GSM48_PDISC_NC_SS, + trans_id, GSM0480_MTYPE_RELEASE_COMPLETE); + + return msg; +} diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 602c7a6..ae7c0a1 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -89,6 +89,8 @@ gsm0480_create_ussd_resp; gsm0480_create_ussd_notify; gsm0480_create_ussd_release_complete; +gsm0480_create_release_complete; + gsm0480_extract_ie_by_tag; gsm0480_parse_facility_ie; gsm0480_decode_ussd_request; -- To view, visit https://gerrit.osmocom.org/12839 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie3ac85fcef90a5e532334ba3482804d5305c88d7 Gerrit-Change-Number: 12839 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 8 09:49:03 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 8 Feb 2019 09:49:03 +0000 Subject: Change in osmo-ci[master]: Add timeout wrapper to regular gerrit verification jobs In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12857 ) Change subject: Add timeout wrapper to regular gerrit verification jobs ...................................................................... Patch Set 1: Code-Review-1 (2 comments) https://gerrit.osmocom.org/#/c/12857/1/jobs/gerrit-verifications.yml File jobs/gerrit-verifications.yml: https://gerrit.osmocom.org/#/c/12857/1/jobs/gerrit-verifications.yml at 23 PS1, Line 23: 15m How about we put the 15m into a variable at the top, that can be overridden by each job? Then we could easily change the default if necessary. I wasn't sure if 15 minutes is a good default btw, but looking at https://jenkins.osmocom.org/jenkins/view/gerrit/ and sorting by last duration, the longest job takes 11 minutes currently. So it seems to be a sane choice. https://gerrit.osmocom.org/#/c/12857/1/jobs/gerrit-verifications.yml at 43 PS1, Line 43: osmocom:amd64 /build/contrib/jenkins.sh I would suggest to add this line to the Docker jobs, too. You can add it like this: osmocom:amd64 timeout 15m /build/contrib/jenkins.sh -- To view, visit https://gerrit.osmocom.org/12857 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9d0eb6b9eddf3e17120e74d7570d42291c0750ae Gerrit-Change-Number: 12857 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 08 Feb 2019 09:49:03 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 8 09:58:59 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 8 Feb 2019 09:58:59 +0000 Subject: Change in libosmo-netif[master]: Add stream client/server test In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12837 ) Change subject: Add stream client/server test ...................................................................... Patch Set 18: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I336f79970982ed8e1d73b73d54fa4c27ba8bce8e Gerrit-Change-Number: 12837 Gerrit-PatchSet: 18 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 08 Feb 2019 09:58:59 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 8 10:15:25 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 8 Feb 2019 10:15:25 +0000 Subject: Change in libosmo-netif[master]: Deprecate osmo_stream_cli_open2() In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12845 ) Change subject: Deprecate osmo_stream_cli_open2() ...................................................................... Patch Set 6: Code-Review-1 (2 comments) Code looks good, just some formatting things. https://gerrit.osmocom.org/#/c/12845/6/include/osmocom/netif/stream.h File include/osmocom/netif/stream.h: https://gerrit.osmocom.org/#/c/12845/6/include/osmocom/netif/stream.h at 74 PS6, Line 74: int osmo_stream_cli_open2(struct osmo_stream_cli *cli, int reconnect) OSMO_DEPRECATED("Use osmo_stream_cli_set_reconnect_timeout() or osmo_stream_cli_reconnect() instead"); line too long https://gerrit.osmocom.org/#/c/12845/6/tests/stream/stream_test.c File tests/stream/stream_test.c: https://gerrit.osmocom.org/#/c/12845/6/tests/stream/stream_test.c at 197 PS6, Line 197: */ This is probably just a matter of taste, and I am not sure how this is usually handled in the Osmocom code base. But I would have placed that whole comment block in a file in doc/ and referenced it below. Then people can read it if they are interested, but it keeps a big chunk of dead code out of this c file. -- To view, visit https://gerrit.osmocom.org/12845 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id988ed0274b363db049f59cbf6a193727c8c3c8a Gerrit-Change-Number: 12845 Gerrit-PatchSet: 6 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 08 Feb 2019 10:15:25 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 8 10:55:26 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 8 Feb 2019 10:55:26 +0000 Subject: Change in libosmocore[master]: GSUP: add inter-MSC handover related msgs and IEs Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/12860 Change subject: GSUP: add inter-MSC handover related msgs and IEs ...................................................................... GSUP: add inter-MSC handover related msgs and IEs Based on a draft created by Neels, which is the result of reading a MAP trace of two MSCs negotiating inter-MSC handovers, and of reading the TS 29.002, TS 29.010 and related specs: https://lists.osmocom.org/pipermail/openbsc/2019-January/012653.html I figured out that the "Handover Number" mentioned in the specifications is the same as the MSISDN IE that we already have, so we can use that instead of creating a new IE (example usage in tests/gsup/gsup_test.c). Related: OS#3774 Change-Id: Ic00b0601eacff6d72927cea51767801142ee75db --- M include/osmocom/gsm/gsup.h A include/osmocom/gsm/gsup_handover.h M src/gsm/Makefile.am M src/gsm/gsup.c A src/gsm/gsup_handover.c M src/gsm/libosmogsm.map M tests/gsup/gsup_test.c M tests/gsup/gsup_test.err M tests/gsup/gsup_test.ok 9 files changed, 599 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/60/12860/1 diff --git a/include/osmocom/gsm/gsup.h b/include/osmocom/gsm/gsup.h index 29ea11a..8cd737b 100644 --- a/include/osmocom/gsm/gsup.h +++ b/include/osmocom/gsm/gsup.h @@ -40,9 +40,12 @@ #include #include +#include #include #include +#include #include +#include #include #define OSMO_GSUP_PORT 4222 @@ -102,6 +105,14 @@ OSMO_GSUP_IMEI_IE = 0x50, OSMO_GSUP_IMEI_RESULT_IE = 0x51, + /* Inter-MSC handover related */ + OSMO_GSUP_SOURCE_NAME_IE = 0x60, + OSMO_GSUP_DESTINATION_NAME_IE = 0x61, + OSMO_GSUP_AN_APDU_IE = 0x62, + OSMO_GSUP_CAUSE_RR_IE = 0x63, + OSMO_GSUP_CAUSE_BSSAP_IE = 0x64, + OSMO_GSUP_CAUSE_SM_IE = 0x65, + _OSMO_GSUP_IEI_END_MARKER }; @@ -163,6 +174,27 @@ OSMO_GSUP_MSGT_CHECK_IMEI_REQUEST = 0b00110000, OSMO_GSUP_MSGT_CHECK_IMEI_ERROR = 0b00110001, OSMO_GSUP_MSGT_CHECK_IMEI_RESULT = 0b00110010, + + OSMO_GSUP_MSGT_E_PREPARE_HANDOVER_REQUEST = 0b001100100, + OSMO_GSUP_MSGT_E_PREPARE_HANDOVER_ERROR = 0b001100101, + OSMO_GSUP_MSGT_E_PREPARE_HANDOVER_RESULT = 0b001100110, + + OSMO_GSUP_MSGT_E_PREPARE_SUBSEQUENT_HANDOVER_REQUEST = 0b001101000, + OSMO_GSUP_MSGT_E_PREPARE_SUBSEQUENT_HANDOVER_ERROR = 0b001101001, + OSMO_GSUP_MSGT_E_PREPARE_SUBSEQUENT_HANDOVER_RESULT = 0b001101010, + + OSMO_GSUP_MSGT_E_PREPARE_SEND_END_SIGNAL_REQUEST = 0b001101100, + OSMO_GSUP_MSGT_E_PREPARE_SEND_END_SIGNAL_ERROR = 0b001101101, + OSMO_GSUP_MSGT_E_PREPARE_SEND_END_SIGNAL_RESULT = 0b001101110, + + OSMO_GSUP_MSGT_E_PROCESS_ACCESS_SIGNALLING_REQUEST = 0b001110000, + OSMO_GSUP_MSGT_E_PROCESS_ACCESS_SIGNALLING_ERROR = 0b001110010, + + OSMO_GSUP_MSGT_E_FORWARD_ACCESS_SIGNALLING_REQUEST = 0b001110100, + OSMO_GSUP_MSGT_E_FORWARD_ACCESS_SIGNALLING_ERROR = 0b001110110, + + OSMO_GSUP_MSGT_E_CLOSE = 0b001110111, + OSMO_GSUP_MSGT_E_ABORT = 0b001111011, }; #define OSMO_GSUP_IS_MSGT_REQUEST(msgt) (((msgt) & 0b00000011) == 0b00) @@ -189,6 +221,12 @@ OSMO_GSUP_IMEI_RESULT_NACK = 2, /* on wire: 1 */ }; +/* 3GPP 29.002 AccessNetworkProtocolId */ +enum osmo_gsup_access_network_protocol { + OSMO_GSUP_ACCESS_NETWORK_PROTOCOL_TS3G_48006 = 1, + OSMO_GSUP_ACCESS_NETWORK_PROTOCOL_TS3G_25413 = 2, +}; + /*! TCAP-like session state */ enum osmo_gsup_session_state { /*! Undefined session state */ @@ -229,6 +267,12 @@ size_t pdp_charg_enc_len; }; +struct osmo_gsup_an_apdu { + enum osmo_gsup_access_network_protocol access_network_proto; + void *data; + size_t data_len; +}; + /*! parsed/decoded GSUP protocol message */ struct osmo_gsup_message { enum osmo_gsup_message_type message_type; @@ -286,6 +330,15 @@ const uint8_t *imei_enc; size_t imei_enc_len; enum osmo_gsup_imei_result imei_result; + + const uint8_t *source_name; + size_t source_name_len; + const uint8_t *destination_name; + size_t destination_name_len; + struct osmo_gsup_an_apdu an_apdu; + uint8_t cause_rr; + enum gsm0808_cause cause_bssap; + enum gsm48_gsm_cause cause_sm; }; int osmo_gsup_decode(const uint8_t *data, size_t data_len, diff --git a/include/osmocom/gsm/gsup_handover.h b/include/osmocom/gsm/gsup_handover.h new file mode 100644 index 0000000..acb6b65 --- /dev/null +++ b/include/osmocom/gsm/gsup_handover.h @@ -0,0 +1,21 @@ +#pragma once + +/*! \addtogroup gsup + * @{ + * + * This header defines the handover extensions for Osmocom GSUP (Generic + * Subscriber Update Protocol). The scope of this module is defined by + * 3GPP TS 29.002, section 19.2. + * + * \file gsup_handover.h + * Handover extensions for Osmocom GSUP. */ + +#include + +struct osmo_gsup_message; +struct msgb; + +int osmo_gsup_handover_encode_an_apdu(struct msgb *msg, const struct osmo_gsup_message *gsup_msg); +int osmo_gsup_handover_decode_an_apdu(struct osmo_gsup_message *gsup_msg, uint8_t *data, size_t data_len); + +/*! @} */ diff --git a/src/gsm/Makefile.am b/src/gsm/Makefile.am index 9066500..12d8fa0 100644 --- a/src/gsm/Makefile.am +++ b/src/gsm/Makefile.am @@ -30,7 +30,7 @@ auth_milenage.c milenage/aes-encblock.c gea.c \ milenage/aes-internal.c milenage/aes-internal-enc.c \ milenage/milenage.c gan.c ipa.c gsm0341.c apn.c \ - gsup.c gsup_sms.c gprs_gea.c gsm0503_conv.c oap.c gsm0808_utils.c \ + gsup.c gsup_handover.c gsup_sms.c gprs_gea.c gsm0503_conv.c oap.c gsm0808_utils.c \ gsm23003.c mncc.c bts_features.c oap_client.c \ gsm29118.c libgsmint_la_LDFLAGS = -no-undefined diff --git a/src/gsm/gsup.c b/src/gsm/gsup.c index a089322..1df1f1b 100644 --- a/src/gsm/gsup.c +++ b/src/gsm/gsup.c @@ -83,6 +83,27 @@ OSMO_VALUE_STRING(OSMO_GSUP_MSGT_CHECK_IMEI_ERROR), OSMO_VALUE_STRING(OSMO_GSUP_MSGT_CHECK_IMEI_RESULT), + OSMO_VALUE_STRING(OSMO_GSUP_MSGT_E_PREPARE_HANDOVER_REQUEST), + OSMO_VALUE_STRING(OSMO_GSUP_MSGT_E_PREPARE_HANDOVER_ERROR), + OSMO_VALUE_STRING(OSMO_GSUP_MSGT_E_PREPARE_HANDOVER_RESULT), + + OSMO_VALUE_STRING(OSMO_GSUP_MSGT_E_PREPARE_SUBSEQUENT_HANDOVER_REQUEST), + OSMO_VALUE_STRING(OSMO_GSUP_MSGT_E_PREPARE_SUBSEQUENT_HANDOVER_ERROR), + OSMO_VALUE_STRING(OSMO_GSUP_MSGT_E_PREPARE_SUBSEQUENT_HANDOVER_RESULT), + + OSMO_VALUE_STRING(OSMO_GSUP_MSGT_E_PREPARE_SEND_END_SIGNAL_REQUEST), + OSMO_VALUE_STRING(OSMO_GSUP_MSGT_E_PREPARE_SEND_END_SIGNAL_ERROR), + OSMO_VALUE_STRING(OSMO_GSUP_MSGT_E_PREPARE_SEND_END_SIGNAL_RESULT), + + OSMO_VALUE_STRING(OSMO_GSUP_MSGT_E_PROCESS_ACCESS_SIGNALLING_REQUEST), + OSMO_VALUE_STRING(OSMO_GSUP_MSGT_E_PROCESS_ACCESS_SIGNALLING_ERROR), + + OSMO_VALUE_STRING(OSMO_GSUP_MSGT_E_FORWARD_ACCESS_SIGNALLING_REQUEST), + OSMO_VALUE_STRING(OSMO_GSUP_MSGT_E_FORWARD_ACCESS_SIGNALLING_ERROR), + + OSMO_VALUE_STRING(OSMO_GSUP_MSGT_E_CLOSE), + OSMO_VALUE_STRING(OSMO_GSUP_MSGT_E_ABORT), + { 0, NULL } }; @@ -477,6 +498,35 @@ gsup_msg->imei_result = osmo_decode_big_endian(value, value_len) + 1; break; + case OSMO_GSUP_SOURCE_NAME_IE: + gsup_msg->source_name = value; + gsup_msg->source_name_len = value_len; + break; + + case OSMO_GSUP_DESTINATION_NAME_IE: + gsup_msg->destination_name = value; + gsup_msg->destination_name_len = value_len; + break; + + case OSMO_GSUP_AN_APDU_IE: + rc = osmo_gsup_handover_decode_an_apdu(gsup_msg, value, value_len); + if (rc) + return rc; + break; + + case OSMO_GSUP_CAUSE_RR_IE: + gsup_msg->cause_rr = osmo_decode_big_endian(value, value_len); + break; + + case OSMO_GSUP_CAUSE_BSSAP_IE: + gsup_msg->cause_bssap = osmo_decode_big_endian(value, value_len); + break; + + case OSMO_GSUP_CAUSE_SM_IE: + gsup_msg->cause_sm = osmo_decode_big_endian(value, value_len); + break; + + default: LOGP(DLGSUP, LOGL_NOTICE, "GSUP IE type %d unknown\n", iei); @@ -718,6 +768,31 @@ msgb_tlv_put(msg, OSMO_GSUP_IMEI_RESULT_IE, sizeof(u8), &u8); } + if (gsup_msg->source_name) + msgb_tlv_put(msg, OSMO_GSUP_SOURCE_NAME_IE, gsup_msg->source_name_len, gsup_msg->source_name); + + if (gsup_msg->destination_name) + msgb_tlv_put(msg, OSMO_GSUP_DESTINATION_NAME_IE, gsup_msg->destination_name_len, + gsup_msg->destination_name); + + if (gsup_msg->an_apdu.access_network_proto || gsup_msg->an_apdu.data_len) { + rc = osmo_gsup_handover_encode_an_apdu(msg, gsup_msg); + if (rc) { + LOGP(DLGSUP, LOGL_ERROR, "Failed to encode AN-apdu IE \n"); + return -EINVAL; + } + } + + if ((u8 = gsup_msg->cause_rr)) + msgb_tlv_put(msg, OSMO_GSUP_CAUSE_RR_IE, sizeof(u8), &u8); + + if ((u8 = gsup_msg->cause_bssap)) + msgb_tlv_put(msg, OSMO_GSUP_CAUSE_BSSAP_IE, sizeof(u8), &u8); + + if ((u8 = gsup_msg->cause_sm)) + msgb_tlv_put(msg, OSMO_GSUP_CAUSE_SM_IE, sizeof(u8), &u8); + + return 0; } diff --git a/src/gsm/gsup_handover.c b/src/gsm/gsup_handover.c new file mode 100644 index 0000000..a9a478f --- /dev/null +++ b/src/gsm/gsup_handover.c @@ -0,0 +1,79 @@ +/* + * (C) 2019 by Oliver Smith + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +#include +#include +#include + +#include +#include + +#include +#include + +/*! \addtogroup gsup + * @{ + * \file gsup_handover.c + * Handover extensions for Osmocom GSUP. + */ + +/*! Encode AN-apdu (see 7.6.9.1). + * \param[out] msg target message buffer (caller-allocated) + * \param[in] gsup_msg abstract GSUP message structure + * \returns 0 in case of success, negative in case of error + */ +int osmo_gsup_handover_encode_an_apdu(struct msgb *msg, const struct osmo_gsup_message *gsup_msg) +{ + const struct osmo_gsup_an_apdu an_apdu = gsup_msg->an_apdu; + + /* Tag and total length */ + msgb_tv_put(msg, OSMO_GSUP_AN_APDU_IE, 1 + an_apdu.data_len); + + /* Put access_network_proto */ + msgb_v_put(msg, an_apdu.access_network_proto); + + /* Put data */ + uint8_t* buf = msgb_put(msg, an_apdu.data_len); + memcpy(buf, an_apdu.data, an_apdu.data_len); + + return 0; +} + +/*! Decode AN-apdu (see 7.6.9.1). + * \param[out] gsup_msg abstract GSUP message structure + * \param[in] data pointer to the raw IE payload + * \param[in] data_len length of IE pointed by \ref data + * \returns 0 in case of success, negative in case of error + */ +int osmo_gsup_handover_decode_an_apdu(struct osmo_gsup_message *gsup_msg, uint8_t *data, size_t data_len) +{ + if (data_len < 1) { + LOGP(DLGSUP, LOGL_ERROR, "Corrupted an_apdu message (length must be >= 1)\n"); + return -EINVAL; + } + + gsup_msg->an_apdu.access_network_proto = data[0]; + gsup_msg->an_apdu.data_len = data_len -1; + gsup_msg->an_apdu.data = data + 1; + + return 0; +} + +/*! @} */ diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index ae7c0a1..0c4ebbd 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -548,6 +548,9 @@ osmo_gsup_session_state_names; osmo_gsup_get_err_msg_type; +osmo_gsup_handover_encode_an_apdu; +osmo_gsup_handover_decode_an_apdu; + osmo_gsup_sms_encode_sm_rp_da; osmo_gsup_sms_decode_sm_rp_da; osmo_gsup_sms_encode_sm_rp_oa; diff --git a/tests/gsup/gsup_test.c b/tests/gsup/gsup_test.c index 4ad7431..49981c5 100644 --- a/tests/gsup/gsup_test.c +++ b/tests/gsup/gsup_test.c @@ -9,8 +9,14 @@ /* Tests for osmo_gsup_messages.c */ +/* Complete IEs used multiple times (sorted alphabetically) + * 1st byte: IEI from osmo_gsup_iei, 2nd byte: length */ +#define TEST_AN_APDU_IE 0x62, 0x05, 0x01, 0x42, 0x42, 0x42, 0x42 +#define TEST_DESTINATION_NAME_IE 0x61, 0x05, 'M', 'S', 'C', '-', 'B' #define TEST_IMSI_IE 0x01, 0x08, 0x21, 0x43, 0x65, 0x87, 0x09, 0x21, 0x43, 0xf5 #define TEST_IMSI_STR "123456789012345" +#define TEST_MSISDN_IE 0x08, 0x07, 0x91, 0x94, 0x61, 0x46, 0x32, 0x24, 0x43 +#define TEST_SOURCE_NAME_IE 0x60, 0x05, 'M', 'S', 'C', '-', 'A' static void test_gsup_messages_dec_enc(void) { @@ -64,8 +70,7 @@ static const uint8_t update_location_res[] = { 0x06, TEST_IMSI_IE, - 0x08, 0x07, /* MSISDN of the subscriber */ - 0x91, 0x94, 0x61, 0x46, 0x32, 0x24, 0x43, + TEST_MSISDN_IE, 0x09, 0x07, /* HLR-Number of the subscriber */ 0x91, 0x83, 0x52, 0x38, 0x48, 0x83, 0x93, 0x04, 0x00, /* PDP info complete */ @@ -310,6 +315,229 @@ 0x00, /* OSMO_GSUP_IMEI_RESULT_ACK */ }; + /* Handover related test messages. Oftentimes they only differ in the + * AN_APDU_IE, which is mostly a blob in GSUP. To give a better example + * of how the messages can be used, I've added the information an_apdu + * holds in brackets (see osmo-msc.git's doc/interMSC_HO_GSUP_msgs.txt). + * The session states are from the ASCII art in this e-mail: + * https://lists.osmocom.org/pipermail/openbsc/2019-January/012653.html */ + static const uint8_t send_e_prepare_handover_req [] = { + 0x64, /* OSMO_GSUP_MSGT_E_PREPARE_HANDOVER_REQUEST */ + TEST_IMSI_IE, + TEST_MSISDN_IE, + + /* Session ID and state (begin) */ + 0x30, 0x04, 0xd3, 0xad, 0xbe, 0xef, + 0x31, 0x01, 0x01, + + TEST_SOURCE_NAME_IE, + TEST_DESTINATION_NAME_IE, + TEST_AN_APDU_IE, /* (Handover Request) */ + }; + + static const uint8_t send_e_prepare_handover_err [] = { + 0x65, /* OSMO_GSUP_MSGT_E_PREPARE_HANDOVER_ERROR */ + TEST_IMSI_IE, + + /* Session ID and state (continue) */ + 0x30, 0x04, 0xd3, 0xad, 0xbe, 0xef, + 0x31, 0x01, 0x02, + + TEST_SOURCE_NAME_IE, + TEST_DESTINATION_NAME_IE, + + /* cause_bssap */ + 0x64, 0x01, + 0x51, /* GSM0808_CAUSE_INVALID_MESSAGE_CONTENTS */ + }; + + static const uint8_t send_e_prepare_handover_res [] = { + 0x66, /* OSMO_GSUP_MSGT_E_PREPARE_HANDOVER_RESULT */ + TEST_IMSI_IE, + TEST_MSISDN_IE, + + /* Session ID and state (continue) */ + 0x30, 0x04, 0xd3, 0xad, 0xbe, 0xef, + 0x31, 0x01, 0x02, + + TEST_SOURCE_NAME_IE, + TEST_DESTINATION_NAME_IE, + TEST_AN_APDU_IE, /* (Handover Request Ack) */ + }; + + static const uint8_t send_e_prepare_subsequent_handover_req [] = { + 0x68, /* OSMO_GSUP_MSGT_E_PREPARE_SUBSEQUENT_HANDOVER_REQUEST */ + TEST_IMSI_IE, + TEST_MSISDN_IE, + + /* Session ID and state (begin) */ + 0x30, 0x04, 0xd3, 0xad, 0xbe, 0xef, + 0x31, 0x01, 0x01, + + TEST_SOURCE_NAME_IE, + TEST_DESTINATION_NAME_IE, + TEST_AN_APDU_IE, /* (Handover Required) */ + }; + + static const uint8_t send_e_prepare_subsequent_handover_err [] = { + 0x69, /* OSMO_GSUP_MSGT_E_PREPARE_SUBSEQUENT_HANDOVER_ERROR */ + TEST_IMSI_IE, + + /* Session ID and state (continue) */ + 0x30, 0x04, 0xd3, 0xad, 0xbe, 0xef, + 0x31, 0x01, 0x02, + + TEST_SOURCE_NAME_IE, + TEST_DESTINATION_NAME_IE, + + /* cause_bssap */ + 0x64, 0x01, + 0x51, /* GSM0808_CAUSE_INVALID_MESSAGE_CONTENTS */ + }; + + static const uint8_t send_e_prepare_subsequent_handover_res [] = { + 0x6A, /* OSMO_GSUP_MSGT_E_PREPARE_SUBSEQUENT_HANDOVER_RESULT */ + TEST_IMSI_IE, + TEST_MSISDN_IE, + + /* Session ID and state (continue) */ + 0x30, 0x04, 0xd3, 0xad, 0xbe, 0xef, + 0x31, 0x01, 0x02, + + TEST_SOURCE_NAME_IE, + TEST_DESTINATION_NAME_IE, + TEST_AN_APDU_IE, /* (Handover Request Ack) */ + }; + + static const uint8_t send_e_prepare_send_end_signal_req [] = { + 0x6C, /* OSMO_GSUP_MSGT_E_PREPARE_SEND_END_SIGNAL_REQUEST */ + TEST_IMSI_IE, + TEST_MSISDN_IE, + + /* Session ID and state (end) */ + 0x30, 0x04, 0xd3, 0xad, 0xbe, 0xef, + 0x31, 0x01, 0x03, + + TEST_SOURCE_NAME_IE, + TEST_DESTINATION_NAME_IE, + TEST_AN_APDU_IE, /* (Handover Complete) */ + }; + + static const uint8_t send_e_prepare_send_end_signal_err [] = { + 0x6D, /* OSMO_GSUP_MSGT_E_PREPARE_SEND_END_SIGNAL_ERROR */ + TEST_IMSI_IE, + + /* Session ID and state (continue) */ + 0x30, 0x04, 0xd3, 0xad, 0xbe, 0xef, + 0x31, 0x01, 0x02, + + TEST_SOURCE_NAME_IE, + TEST_DESTINATION_NAME_IE, + + /* cause_bssap */ + 0x64, 0x01, + 0x51, /* GSM0808_CAUSE_INVALID_MESSAGE_CONTENTS */ + }; + + static const uint8_t send_e_prepare_send_end_signal_res [] = { + 0x6E, /* OSMO_GSUP_MSGT_E_PREPARE_SEND_END_SIGNAL_RESULT */ + TEST_IMSI_IE, + TEST_MSISDN_IE, + + /* Session ID and state (end) */ + 0x30, 0x04, 0xd3, 0xad, 0xbe, 0xef, + 0x31, 0x01, 0x03, + + TEST_SOURCE_NAME_IE, + TEST_DESTINATION_NAME_IE, + TEST_AN_APDU_IE, /* (Handover Complete) */ + }; + + static const uint8_t send_e_process_access_signalling_req [] = { + 0x70, /* OSMO_GSUP_MSGT_E_PROCESS_ACCESS_SIGNALLING_REQUEST */ + TEST_IMSI_IE, + TEST_MSISDN_IE, + + /* Session ID and state (continue) */ + 0x30, 0x04, 0xd3, 0xad, 0xbe, 0xef, + 0x31, 0x01, 0x02, + + TEST_SOURCE_NAME_IE, + TEST_DESTINATION_NAME_IE, + TEST_AN_APDU_IE, /* (Handover Detect) */ + }; + + static const uint8_t send_e_process_access_signalling_err [] = { + 0x71, /* OSMO_GSUP_MSGT_E_PROCESS_ACCESS_SIGNALLING_ERROR */ + TEST_IMSI_IE, + + /* Session ID and state (continue) */ + 0x30, 0x04, 0xd3, 0xad, 0xbe, 0xef, + 0x31, 0x01, 0x02, + + TEST_SOURCE_NAME_IE, + TEST_DESTINATION_NAME_IE, + + /* cause_bssap */ + 0x64, 0x01, + 0x51, /* GSM0808_CAUSE_INVALID_MESSAGE_CONTENTS */ + }; + + static const uint8_t send_e_forward_access_signalling_req [] = { + 0x74, /* OSMO_GSUP_MSGT_E_FORWARD_ACCESS_SIGNALLING_REQUEST */ + TEST_IMSI_IE, + TEST_MSISDN_IE, + + /* Session ID and state (continue) */ + 0x30, 0x04, 0xd3, 0xad, 0xbe, 0xef, + 0x31, 0x01, 0x02, + + TEST_SOURCE_NAME_IE, + TEST_DESTINATION_NAME_IE, + TEST_AN_APDU_IE, /* (DTAP, e.g. CC, SMS, ...) */ + }; + + static const uint8_t send_e_forward_access_signalling_err [] = { + 0x75, /* OSMO_GSUP_MSGT_E_FORWARD_ACCESS_SIGNALLING_ERROR */ + TEST_IMSI_IE, + + /* Session ID and state (continue) */ + 0x30, 0x04, 0xd3, 0xad, 0xbe, 0xef, + 0x31, 0x01, 0x02, + + TEST_SOURCE_NAME_IE, + TEST_DESTINATION_NAME_IE, + + /* cause_bssap */ + 0x64, 0x01, + 0x51, /* GSM0808_CAUSE_INVALID_MESSAGE_CONTENTS */ + }; + + static const uint8_t send_e_close[] = { + 0x77, /* OSMO_GSUP_MSGT_E_CLOSE */ + TEST_IMSI_IE, + + /* Session ID and state (end) */ + 0x30, 0x04, 0xd3, 0xad, 0xbe, 0xef, + 0x31, 0x01, 0x03, + + TEST_SOURCE_NAME_IE, + TEST_DESTINATION_NAME_IE, + }; + + static const uint8_t send_e_abort[] = { + 0x7B, /* OSMO_GSUP_MSGT_E_ABORT */ + TEST_IMSI_IE, + + /* Session ID and state (end) */ + 0x30, 0x04, 0xd3, 0xad, 0xbe, 0xef, + 0x31, 0x01, 0x03, + + /* cause_bssap */ + 0x64, 0x01, + 0x51, /* GSM0808_CAUSE_INVALID_MESSAGE_CONTENTS */ + }; + static const struct test { char *name; const uint8_t *data; @@ -365,6 +593,36 @@ send_check_imei_err, sizeof(send_check_imei_err)}, {"Check IMEI Result", send_check_imei_res, sizeof(send_check_imei_res)}, + {"E Prepare Handover Request", + send_e_prepare_handover_req, sizeof(send_e_prepare_handover_req)}, + {"E Prepare Handover Error", + send_e_prepare_handover_err, sizeof(send_e_prepare_handover_err)}, + {"E Prepare Handover Result", + send_e_prepare_handover_res, sizeof(send_e_prepare_handover_res)}, + {"E Prepare Subsequent Handover Request", + send_e_prepare_subsequent_handover_req, sizeof(send_e_prepare_subsequent_handover_req)}, + {"E Prepare Subsequent Handover Error", + send_e_prepare_subsequent_handover_err, sizeof(send_e_prepare_subsequent_handover_err)}, + {"E Prepare Subsequent Handover Result", + send_e_prepare_subsequent_handover_res, sizeof(send_e_prepare_subsequent_handover_res)}, + {"E Prepare Send End Signal Request", + send_e_prepare_send_end_signal_req, sizeof(send_e_prepare_send_end_signal_req)}, + {"E Prepare Send End Signal Error", + send_e_prepare_send_end_signal_err, sizeof(send_e_prepare_send_end_signal_err)}, + {"E Prepare Send End Signal Result", + send_e_prepare_send_end_signal_res, sizeof(send_e_prepare_send_end_signal_res)}, + {"E Process Access Signalling Request", + send_e_process_access_signalling_req, sizeof(send_e_process_access_signalling_req)}, + {"E Process Access Signalling Error", + send_e_process_access_signalling_err, sizeof(send_e_process_access_signalling_err)}, + {"E Forward Access Signalling Request", + send_e_forward_access_signalling_req, sizeof(send_e_forward_access_signalling_req)}, + {"E Forward Access Signalling Error", + send_e_forward_access_signalling_err, sizeof(send_e_forward_access_signalling_err)}, + {"E Close", + send_e_close, sizeof(send_e_close)}, + {"E Abort", + send_e_abort, sizeof(send_e_abort)}, }; printf("Test GSUP message decoding/encoding\n"); diff --git a/tests/gsup/gsup_test.err b/tests/gsup/gsup_test.err index 225735e..0adb538 100644 --- a/tests/gsup/gsup_test.err +++ b/tests/gsup/gsup_test.err @@ -73,6 +73,51 @@ generated message: 32 01 08 21 43 65 87 09 21 43 f5 51 01 00 original message: 32 01 08 21 43 65 87 09 21 43 f5 51 01 00 IMSI: 123456789012345 + generated message: 64 01 08 21 43 65 87 09 21 43 f5 08 07 91 94 61 46 32 24 43 30 04 d3 ad be ef 31 01 01 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 62 05 01 42 42 42 42 + original message: 64 01 08 21 43 65 87 09 21 43 f5 08 07 91 94 61 46 32 24 43 30 04 d3 ad be ef 31 01 01 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 62 05 01 42 42 42 42 + IMSI: 123456789012345 + generated message: 65 01 08 21 43 65 87 09 21 43 f5 30 04 d3 ad be ef 31 01 02 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 64 01 51 + original message: 65 01 08 21 43 65 87 09 21 43 f5 30 04 d3 ad be ef 31 01 02 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 64 01 51 + IMSI: 123456789012345 + generated message: 66 01 08 21 43 65 87 09 21 43 f5 08 07 91 94 61 46 32 24 43 30 04 d3 ad be ef 31 01 02 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 62 05 01 42 42 42 42 + original message: 66 01 08 21 43 65 87 09 21 43 f5 08 07 91 94 61 46 32 24 43 30 04 d3 ad be ef 31 01 02 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 62 05 01 42 42 42 42 + IMSI: 123456789012345 + generated message: 68 01 08 21 43 65 87 09 21 43 f5 08 07 91 94 61 46 32 24 43 30 04 d3 ad be ef 31 01 01 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 62 05 01 42 42 42 42 + original message: 68 01 08 21 43 65 87 09 21 43 f5 08 07 91 94 61 46 32 24 43 30 04 d3 ad be ef 31 01 01 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 62 05 01 42 42 42 42 + IMSI: 123456789012345 + generated message: 69 01 08 21 43 65 87 09 21 43 f5 30 04 d3 ad be ef 31 01 02 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 64 01 51 + original message: 69 01 08 21 43 65 87 09 21 43 f5 30 04 d3 ad be ef 31 01 02 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 64 01 51 + IMSI: 123456789012345 + generated message: 6a 01 08 21 43 65 87 09 21 43 f5 08 07 91 94 61 46 32 24 43 30 04 d3 ad be ef 31 01 02 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 62 05 01 42 42 42 42 + original message: 6a 01 08 21 43 65 87 09 21 43 f5 08 07 91 94 61 46 32 24 43 30 04 d3 ad be ef 31 01 02 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 62 05 01 42 42 42 42 + IMSI: 123456789012345 + generated message: 6c 01 08 21 43 65 87 09 21 43 f5 08 07 91 94 61 46 32 24 43 30 04 d3 ad be ef 31 01 03 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 62 05 01 42 42 42 42 + original message: 6c 01 08 21 43 65 87 09 21 43 f5 08 07 91 94 61 46 32 24 43 30 04 d3 ad be ef 31 01 03 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 62 05 01 42 42 42 42 + IMSI: 123456789012345 + generated message: 6d 01 08 21 43 65 87 09 21 43 f5 30 04 d3 ad be ef 31 01 02 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 64 01 51 + original message: 6d 01 08 21 43 65 87 09 21 43 f5 30 04 d3 ad be ef 31 01 02 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 64 01 51 + IMSI: 123456789012345 + generated message: 6e 01 08 21 43 65 87 09 21 43 f5 08 07 91 94 61 46 32 24 43 30 04 d3 ad be ef 31 01 03 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 62 05 01 42 42 42 42 + original message: 6e 01 08 21 43 65 87 09 21 43 f5 08 07 91 94 61 46 32 24 43 30 04 d3 ad be ef 31 01 03 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 62 05 01 42 42 42 42 + IMSI: 123456789012345 + generated message: 70 01 08 21 43 65 87 09 21 43 f5 08 07 91 94 61 46 32 24 43 30 04 d3 ad be ef 31 01 02 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 62 05 01 42 42 42 42 + original message: 70 01 08 21 43 65 87 09 21 43 f5 08 07 91 94 61 46 32 24 43 30 04 d3 ad be ef 31 01 02 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 62 05 01 42 42 42 42 + IMSI: 123456789012345 + generated message: 71 01 08 21 43 65 87 09 21 43 f5 30 04 d3 ad be ef 31 01 02 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 64 01 51 + original message: 71 01 08 21 43 65 87 09 21 43 f5 30 04 d3 ad be ef 31 01 02 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 64 01 51 + IMSI: 123456789012345 + generated message: 74 01 08 21 43 65 87 09 21 43 f5 08 07 91 94 61 46 32 24 43 30 04 d3 ad be ef 31 01 02 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 62 05 01 42 42 42 42 + original message: 74 01 08 21 43 65 87 09 21 43 f5 08 07 91 94 61 46 32 24 43 30 04 d3 ad be ef 31 01 02 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 62 05 01 42 42 42 42 + IMSI: 123456789012345 + generated message: 75 01 08 21 43 65 87 09 21 43 f5 30 04 d3 ad be ef 31 01 02 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 64 01 51 + original message: 75 01 08 21 43 65 87 09 21 43 f5 30 04 d3 ad be ef 31 01 02 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 64 01 51 + IMSI: 123456789012345 + generated message: 77 01 08 21 43 65 87 09 21 43 f5 30 04 d3 ad be ef 31 01 03 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 + original message: 77 01 08 21 43 65 87 09 21 43 f5 30 04 d3 ad be ef 31 01 03 60 05 4d 53 43 2d 41 61 05 4d 53 43 2d 42 + IMSI: 123456789012345 + generated message: 7b 01 08 21 43 65 87 09 21 43 f5 30 04 d3 ad be ef 31 01 03 64 01 51 + original message: 7b 01 08 21 43 65 87 09 21 43 f5 30 04 d3 ad be ef 31 01 03 64 01 51 + IMSI: 123456789012345 message 0: tested 11 truncations, 11 parse failures message 1: tested 14 truncations, 13 parse failures message 2: tested 83 truncations, 81 parse failures @@ -98,19 +143,34 @@ message 22: tested 22 truncations, 21 parse failures message 23: tested 14 truncations, 13 parse failures message 24: tested 14 truncations, 13 parse failures + message 25: tested 50 truncations, 44 parse failures + message 26: tested 37 truncations, 32 parse failures + message 27: tested 50 truncations, 44 parse failures + message 28: tested 50 truncations, 44 parse failures + message 29: tested 37 truncations, 32 parse failures + message 30: tested 50 truncations, 44 parse failures + message 31: tested 50 truncations, 44 parse failures + message 32: tested 37 truncations, 32 parse failures + message 33: tested 50 truncations, 44 parse failures + message 34: tested 50 truncations, 44 parse failures + message 35: tested 37 truncations, 32 parse failures + message 36: tested 50 truncations, 44 parse failures + message 37: tested 37 truncations, 32 parse failures + message 38: tested 34 truncations, 30 parse failures + message 39: tested 23 truncations, 20 parse failures DLGSUP Stopping DLGSUP logging message 0: tested 2816 modifications, 510 parse failures message 1: tested 3584 modifications, 770 parse failures message 2: tested 21248 modifications, 2575 parse failures message 3: tested 2816 modifications, 510 parse failures message 4: tested 3584 modifications, 770 parse failures - message 5: tested 20736 modifications, 4022 parse failures + message 5: tested 20736 modifications, 4023 parse failures message 6: tested 3584 modifications, 771 parse failures message 7: tested 3584 modifications, 770 parse failures message 8: tested 2816 modifications, 510 parse failures message 9: tested 2816 modifications, 510 parse failures message 10: tested 3584 modifications, 770 parse failures - message 11: tested 3328 modifications, 769 parse failures + message 11: tested 3328 modifications, 770 parse failures message 12: tested 54016 modifications, 4626 parse failures message 13: tested 11520 modifications, 1026 parse failures message 14: tested 5120 modifications, 1030 parse failures @@ -124,3 +184,18 @@ message 22: tested 5632 modifications, 771 parse failures message 23: tested 3584 modifications, 770 parse failures message 24: tested 3584 modifications, 771 parse failures + message 25: tested 12800 modifications, 2058 parse failures + message 26: tested 9472 modifications, 1804 parse failures + message 27: tested 12800 modifications, 2058 parse failures + message 28: tested 12800 modifications, 2058 parse failures + message 29: tested 9472 modifications, 1804 parse failures + message 30: tested 12800 modifications, 2058 parse failures + message 31: tested 12800 modifications, 2058 parse failures + message 32: tested 9472 modifications, 1804 parse failures + message 33: tested 12800 modifications, 2058 parse failures + message 34: tested 12800 modifications, 2058 parse failures + message 35: tested 9472 modifications, 1804 parse failures + message 36: tested 12800 modifications, 2058 parse failures + message 37: tested 9472 modifications, 1804 parse failures + message 38: tested 8704 modifications, 1547 parse failures + message 39: tested 5888 modifications, 1288 parse failures diff --git a/tests/gsup/gsup_test.ok b/tests/gsup/gsup_test.ok index 70f723c..74ca028 100644 --- a/tests/gsup/gsup_test.ok +++ b/tests/gsup/gsup_test.ok @@ -49,4 +49,34 @@ Check IMEI Error OK Testing Check IMEI Result Check IMEI Result OK + Testing E Prepare Handover Request + E Prepare Handover Request OK + Testing E Prepare Handover Error + E Prepare Handover Error OK + Testing E Prepare Handover Result + E Prepare Handover Result OK + Testing E Prepare Subsequent Handover Request + E Prepare Subsequent Handover Request OK + Testing E Prepare Subsequent Handover Error + E Prepare Subsequent Handover Error OK + Testing E Prepare Subsequent Handover Result + E Prepare Subsequent Handover Result OK + Testing E Prepare Send End Signal Request + E Prepare Send End Signal Request OK + Testing E Prepare Send End Signal Error + E Prepare Send End Signal Error OK + Testing E Prepare Send End Signal Result + E Prepare Send End Signal Result OK + Testing E Process Access Signalling Request + E Process Access Signalling Request OK + Testing E Process Access Signalling Error + E Process Access Signalling Error OK + Testing E Forward Access Signalling Request + E Forward Access Signalling Request OK + Testing E Forward Access Signalling Error + E Forward Access Signalling Error OK + Testing E Close + E Close OK + Testing E Abort + E Abort OK Done. -- To view, visit https://gerrit.osmocom.org/12860 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic00b0601eacff6d72927cea51767801142ee75db Gerrit-Change-Number: 12860 Gerrit-PatchSet: 1 Gerrit-Owner: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 8 10:57:32 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 8 Feb 2019 10:57:32 +0000 Subject: Change in libosmocore[master]: GSUP: add inter-MSC handover related msgs and IEs In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12860 ) Change subject: GSUP: add inter-MSC handover related msgs and IEs ...................................................................... Patch Set 1: Note: when I started this patch, it seemed like a new handover number IE also needs to be decoded and encoded. That is why I created gsup_handover.c. Now it contains only the an_apdu de/encoder. If you think it is better to merge it back to gsup.*, let me know. -- To view, visit https://gerrit.osmocom.org/12860 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic00b0601eacff6d72927cea51767801142ee75db Gerrit-Change-Number: 12860 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith Gerrit-CC: Jenkins Builder (1000002) Gerrit-Comment-Date: Fri, 08 Feb 2019 10:57:32 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 8 11:04:16 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 8 Feb 2019 11:04:16 +0000 Subject: Change in libosmo-netif[master]: Add stream client/server test In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12837 ) Change subject: Add stream client/server test ...................................................................... Patch Set 18: Code-Review+1 I don't really understand why you need the -no-install flag, but then it's just to compile a test, so... -- To view, visit https://gerrit.osmocom.org/12837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I336f79970982ed8e1d73b73d54fa4c27ba8bce8e Gerrit-Change-Number: 12837 Gerrit-PatchSet: 18 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 08 Feb 2019 11:04:16 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 8 11:57:46 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 8 Feb 2019 11:57:46 +0000 Subject: Change in libosmocore[master]: GSUP: add inter-MSC handover related msgs and IEs In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12860 ) Change subject: GSUP: add inter-MSC handover related msgs and IEs ...................................................................... Patch Set 1: Code-Review-1 (3 comments) https://gerrit.osmocom.org/#/c/12860/1/include/osmocom/gsm/gsup.h File include/osmocom/gsm/gsup.h: https://gerrit.osmocom.org/#/c/12860/1/include/osmocom/gsm/gsup.h at 178 PS1, Line 178: OSMO_GSUP_MSGT_E_PREPARE_HANDOVER_REQUEST = 0b001100100, These are all 9 bit long - typo? osmo_gsup_{en,de}code all assume 8-bit message types. Just continue with 0b001101xx? https://gerrit.osmocom.org/#/c/12860/1/src/gsm/gsup_handover.c File src/gsm/gsup_handover.c: https://gerrit.osmocom.org/#/c/12860/1/src/gsm/gsup_handover.c at 2 PS1, Line 2: * (C) 2019 by Oliver Smith Last I heard copyright should be assigned like this: * (C) 2019 by sysmocom - s.f.m.c. GmbH * Author: Oliver Smith * All Rights Reserved Including SPDX-License-Identifier: GPL-2.0+ would also be nice. https://gerrit.osmocom.org/#/c/12860/1/src/gsm/gsup_handover.c at 46 PS1, Line 46: /* Tag and total length */ Should we check if there's enough space in msg before encoding? Then returning int in this function would make more sense. :-) -- To view, visit https://gerrit.osmocom.org/12860 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic00b0601eacff6d72927cea51767801142ee75db Gerrit-Change-Number: 12860 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 08 Feb 2019 11:57:46 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 8 12:12:21 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 8 Feb 2019 12:12:21 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC_Tests: make sure SGs tests don't interfere In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12856 ) Change subject: MSC_Tests: make sure SGs tests don't interfere ...................................................................... Patch Set 1: Code-Review+1 Do you think it makes sense to modify f_init_pars to have a static variable that assigns a unique imsi_suffix if none is passed to it? Then we could avoid managing/incrementing imsi_suffix manually in the code each time we add a test. -- To view, visit https://gerrit.osmocom.org/12856 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I417d9c5f0fbab7483d1b31dc20a99f63ee1bbfe6 Gerrit-Change-Number: 12856 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 08 Feb 2019 12:12:21 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 8 12:20:27 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 8 Feb 2019 12:20:27 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC_Tests: Enable SGs interface by default In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12855 ) Change subject: MSC_Tests: Enable SGs interface by default ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12855 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6a07000ef52c9774fd603e2be914e6f2a6a3cce4 Gerrit-Change-Number: 12855 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 08 Feb 2019 12:20:27 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 8 12:43:59 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 8 Feb 2019 12:43:59 +0000 Subject: Change in libosmocore[master]: GSUP: add inter-MSC handover related msgs and IEs In-Reply-To: References: Message-ID: Hello Vadim Yanitskiy, daniel, Max, Neels Hofmeyr, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12860 to look at the new patch set (#2). Change subject: GSUP: add inter-MSC handover related msgs and IEs ...................................................................... GSUP: add inter-MSC handover related msgs and IEs Based on a draft created by Neels, which is the result of reading a MAP trace of two MSCs negotiating inter-MSC handovers, and of reading the TS 29.002, TS 29.010 and related specs: https://lists.osmocom.org/pipermail/openbsc/2019-January/012653.html I figured out that the "Handover Number" mentioned in the specifications is the same as the MSISDN IE that we already have, so we can use that instead of creating a new IE (example usage in tests/gsup/gsup_test.c). Related: OS#3774 Change-Id: Ic00b0601eacff6d72927cea51767801142ee75db --- M include/Makefile.am M include/osmocom/gsm/gsup.h A include/osmocom/gsm/gsup_handover.h M src/gsm/Makefile.am M src/gsm/gsup.c A src/gsm/gsup_handover.c M src/gsm/libosmogsm.map M tests/gsup/gsup_test.c M tests/gsup/gsup_test.err M tests/gsup/gsup_test.ok 10 files changed, 608 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/60/12860/2 -- To view, visit https://gerrit.osmocom.org/12860 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ic00b0601eacff6d72927cea51767801142ee75db Gerrit-Change-Number: 12860 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 8 12:44:21 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 8 Feb 2019 12:44:21 +0000 Subject: Change in libosmocore[master]: GSUP: add inter-MSC handover related msgs and IEs In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12860 ) Change subject: GSUP: add inter-MSC handover related msgs and IEs ...................................................................... Patch Set 1: (3 comments) https://gerrit.osmocom.org/#/c/12860/1/include/osmocom/gsm/gsup.h File include/osmocom/gsm/gsup.h: https://gerrit.osmocom.org/#/c/12860/1/include/osmocom/gsm/gsup.h at 178 PS1, Line 178: OSMO_GSUP_MSGT_E_PREPARE_HANDOVER_REQUEST = 0b001100100, > These are all 9 bit long - typo? [?] Oh yes, made a typo the first time and then continued it. Fixed, thanks for finding this! https://gerrit.osmocom.org/#/c/12860/1/src/gsm/gsup_handover.c File src/gsm/gsup_handover.c: https://gerrit.osmocom.org/#/c/12860/1/src/gsm/gsup_handover.c at 2 PS1, Line 2: * (C) 2019 by Oliver Smith > Last I heard copyright should be assigned like this: [?] Done https://gerrit.osmocom.org/#/c/12860/1/src/gsm/gsup_handover.c at 46 PS1, Line 46: /* Tag and total length */ > Should we check if there's enough space in msg before encoding? [?] Good point, fixed. -- To view, visit https://gerrit.osmocom.org/12860 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic00b0601eacff6d72927cea51767801142ee75db Gerrit-Change-Number: 12860 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 08 Feb 2019 12:44:21 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Fri Feb 8 14:18:31 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 8 Feb 2019 14:18:31 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-trx_=C2=BB_--with-ss?= =?UTF-8?Q?e,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#870?= Message-ID: <1818575664.141.1549635511510.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 108.05 KB...] Searching INPUT for files to process... Reading and parsing tag files Parsing files Building group list... Building directory list... Building namespace list... Building file list... Building class list... Associating documentation with classes... Computing nesting relations for classes... Building example list... Searching for enumerations... Searching for documented typedefs... Searching for members imported via using declarations... Searching for included using directives... Searching for documented variables... Building interface member list... Building member list... Searching for friends... Searching for documented defines... Computing class inheritance relations... Computing class usage relations... Flushing cached template relations that have become invalid... Computing class relations... Add enum values to enums... Searching for member function documentation... Creating members for template instances... Building page list... Search for main page... Computing page relations... Determining the scope of groups... Sorting lists... Freeing entry tree Determining which enums are documented Computing member relations... Building full member lists recursively... Adding members to member groups. Computing member references... Inheriting documentation... Generating disk names... Adding source references... Adding xrefitems... Sorting member lists... Computing dependencies between directories... Generating citations page... Counting data structures... Resolving user defined references... Finding anchors and sections in the documentation... Transferring function references... Combining using relations... Adding members to index pages... Generating style sheet... Generating search indices... Generating example documentation... Generating file sources... Generating file documentation... Generating page documentation... Generating group documentation... Generating class documentation... Generating namespace index... Generating graph info page... Generating directory documentation... Generating index page... Generating page index... Generating module index... Generating namespace index... Generating namespace member index... Generating annotated compound index... Generating alphabetical compound index... Generating hierarchical class index... Generating graphical class hierarchy... Generating member index... Generating file index... Generating file member index... Generating example index... finalizing index lists... writing tag file... Running dot... Running dot for graph 1/1 lookup cache used 0/65536 hits=0 misses=0 finished... make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_guide.html /usr/bin/install -c -m 644 ../README ' cp -r html make[5]: Leaving directory ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in firmware make[2]: Entering directory ' Making install in include make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_i2c_addr.h usrp_spi_defs.h fpga_regs_common.h fpga_regs_standard.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' Making install in lib make[3]: Entering directory ' sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c delay.c -o delay.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c fx2utils.c -o fx2utils.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c i2c.c -o i2c.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c isr.c -o isr.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c timer.c -o timer.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c usb_common.c -o usb_common.rel usb_common.c:65: warning 196: pointer target lost const qualifier usb_common.c:66: warning 196: pointer target lost const qualifier usb_common.c:67: warning 196: pointer target lost const qualifier usb_common.c:68: warning 196: pointer target lost const qualifier usb_common.c:71: warning 196: pointer target lost const qualifier usb_common.c:72: warning 196: pointer target lost const qualifier usb_common.c:73: warning 196: pointer target lost const qualifier usb_common.c:74: warning 196: pointer target lost const qualifier timer.c:45: warning 158: overflow in implicit constant conversion isr.c:73: warning 94: comparison is always false due to limited range of data type -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'int fixed' to type 'volatile-unsigned-char xdata* xdata' isr.c:100: warning 94: comparison is always false due to limited range of data type usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:217: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:226: warning 126: unreachable code usb_common.c:184: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG usb_common.c:315: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG rm -f libfx2.lib touch libfx2.lib for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done make[3]: Leaving directory ' Making install in src make[3]: Entering directory ' Making install in common make[4]: Entering directory ' make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory ' make[4]: Leaving directory ' Making install in usrp2 make[4]: Entering directory ' test -f `basename 'eeprom_boot.a51'` || ln -s 'eeprom_boot.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_init.rel `test -f 'eeprom_init.c' || echo './'`eeprom_init.c test -f `basename '_startup.a51'` || ln -s '_startup.a51' . test -f `basename 'vectors.a51'` || ln -s 'vectors.a51' . srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_common.rel `test -f 'usrp_common.c' || echo './'`usrp_common.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o board_specific.rel `test -f 'board_specific.c' || echo './'`board_specific.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_load.rel `test -f 'fpga_load.c' || echo './'`fpga_load.c test -f ../common/`basename 'eeprom_boot.a51'` -o \ \! -f `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` \ || ln -s `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` ../common/`basename 'eeprom_boot.a51'` test -f ../common/`basename 'vectors.a51'` -o \ \! -f `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` \ || ln -s `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` ../common/`basename 'vectors.a51'` test -f ../common/`basename '_startup.a51'` -o \ \! -f `dirname '_startup.a51'`/../common/`basename '_startup.a51'` \ || ln -s `dirname '_startup.a51'`/../common/`basename '_startup.a51'` ../common/`basename '_startup.a51'` sdas8051 -plosgff `basename 'eeprom_boot.a51'` sdas8051 -plosgff `basename 'vectors.a51'` sdas8051 -plosgff `basename '_startup.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_rev2.rel `test -f 'fpga_rev2.c' || echo './'`fpga_rev2.c ../common/fpga_load.c:139: warning 85: in function clock_out_config_byte unreferenced function argument : 'bits' sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o init_gpif.rel `test -f 'init_gpif.c' || echo './'`init_gpif.c board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'bits' board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'mask' ../common/fpga_load.c:181: warning 126: unreachable code srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h test -f `basename 'usb_descriptors.a51'` || ln -s 'usb_descriptors.a51' . test -f ../common/`basename 'usb_descriptors.a51'` -o \ \! -f `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` \ || ln -s `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` ../common/`basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o spi.rel `test -f 'spi.c' || echo './'`spi.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_io.rel `test -f 'eeprom_io.c' || echo './'`eeprom_io.c sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o eeprom_boot.ihx eeprom_boot.rel eeprom_init.rel _startup.rel sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_main.rel `test -f 'usrp_main.c' || echo './'`usrp_main.c sdas8051 -plosgff `basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_gpif.rel `test -f 'usrp_gpif.c' || echo './'`usrp_gpif.c usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:194: warning 158: overflow in implicit constant conversion ./../common/build_eeprom.py -p -r2 eeprom_boot.ihx > burn-usrp2-eeprom usrp_gpif.c:201: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion ./../common/build_eeprom.py -p -r4 eeprom_boot.ihx > burn-usrp4-eeprom chmod +x burn-usrp4-eeprom chmod +x burn-usrp2-eeprom usrp_main.c:223: warning 112: function 'setup_flowstate_common' implicit declaration usrp_main.c:260: warning 112: function 'setup_flowstate_write' implicit declaration usrp_main.c:282: warning 112: function 'setup_flowstate_read' implicit declaration usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o std.ihx vectors.rel usrp_main.rel usrp_common.rel board_specific.rel fpga_load.rel fpga_rev2.rel init_gpif.rel usrp_gpif.rel usb_descriptors.rel spi.rel eeprom_io.rel _startup.rel ?ASlink-Warning-Undefined Global '_setup_flowstate_read' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_write' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_common' referenced by module 'usrp_main' Makefile:688: recipe for target 'std.ihx' failed make[4]: *** [std.ihx] Error 1 make[4]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[3]: *** [install-recursive] Error 1 make[3]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[2]: *** [install-recursive] Error 1 make[2]: Leaving directory ' Makefile:628: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:925: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Feb 8 15:10:06 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 8 Feb 2019 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#395?= In-Reply-To: <1107776897.129.1549552206829.JavaMail.jenkins@jenkins.osmocom.org> References: <1107776897.129.1549552206829.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1723494188.143.1549638607012.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.76 KB...] checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs mkdir .libs mkdir: cannot create directory '.libs': File exists gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Fri Feb 8 15:49:30 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 8 Feb 2019 15:49:30 +0000 Subject: Change in osmo-mgw[master]: install: keep existing / modified etc/osmocom/*.cfg files Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/12861 Change subject: install: keep existing / modified etc/osmocom/*.cfg files ...................................................................... install: keep existing / modified etc/osmocom/*.cfg files make install: If $prefix/etc/osmocom/*.cfg already exists, do not overwrite it. make uninstall: If $prefix/etc/osmocom/*.cfg is modified, do not remove it. Related: OS#3794 Change-Id: I95c9b5dc6117b3dd7a095b34437f5030a141c93b --- M configure.ac M doc/examples/Makefile.am 2 files changed, 43 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/61/12861/1 diff --git a/configure.ac b/configure.ac index 15976e6..6243d12 100644 --- a/configure.ac +++ b/configure.ac @@ -186,6 +186,11 @@ [AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])]) AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$with_systemdsystemunitdir" != "xno"]) +AC_CHECK_PROG(DIFF_PROGRAM,diff,yes) +if test "x$DIFF_PROGRAM" != "xyes" ; then + AC_MSG_ERROR([Need 'diff' for 'make uninstall' to not remove modified cfg files]) +fi + AC_MSG_RESULT([CFLAGS="$CFLAGS"]) AC_MSG_RESULT([CPPFLAGS="$CPPFLAGS"]) diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am index da504f4..3c185c9 100644 --- a/doc/examples/Makefile.am +++ b/doc/examples/Makefile.am @@ -1,30 +1,53 @@ -OSMOCONF_FILES = \ - osmo-mgw/osmo-mgw.cfg +ETC_OSMOCOM_CFG = \ + $(srcdir)/osmo-mgw/osmo-mgw.cfg \ + $(NULL) -osmoconfdir = $(sysconfdir)/osmocom -osmoconf_DATA = $(OSMOCONF_FILES) - -EXTRA_DIST = $(OSMOCONF_FILES) - -CFG_FILES = find $(srcdir) -name '*.cfg*' | sed -e 's,^$(srcdir),,' +ALL_CFG = find $(srcdir) -name '*.cfg*' | sed -e 's,^$(srcdir),,' dist-hook: - for f in $$($(CFG_FILES)); do \ + for f in $$($(ALL_CFG)); do \ j="$(distdir)/$$f" && \ mkdir -p "$$(dirname $$j)" && \ $(INSTALL_DATA) $(srcdir)/$$f $$j; \ done -install-data-hook: - for f in $$($(CFG_FILES)); do \ +install_etc_osmocom_cfg: + for f in $(ETC_OSMOCOM_CFG); do \ + bn="$$(basename "$$f")"; \ + dst="$(DESTDIR)$(sysconfdir)/osmocom/$$bn"; \ + test -e "$$dst" && echo "Already installed, not overwriting: $$dst" && continue || true; \ + echo "Installing new cfg: $$dst" ; \ + mkdir -p "$$(dirname "$$dst")" && \ + $(INSTALL_DATA) "$$f" "$$dst"; \ + done + +# uninstall only the $prefix/etc/osmocom cfg files that are not modified +uninstall_etc_osmocom_cfg: + for f in $(ETC_OSMOCOM_CFG); do \ + bn="$$(basename "$$f")"; \ + dst="$(DESTDIR)$(sysconfdir)/osmocom/$$bn"; \ + diff -q "$$f" "$$dst" || continue; \ + $(RM) "$$dst"; \ + done + +install_share_doc_cfg_examples: + for f in $$($(ALL_CFG)); do \ j="$(DESTDIR)$(docdir)/examples/$$f" && \ mkdir -p "$$(dirname $$j)" && \ $(INSTALL_DATA) $(srcdir)/$$f $$j; \ done +uninstall_share_doc_cfg_examples: + for f in $$($(ALL_CFG)); do \ + j="$(DESTDIR)$(docdir)/examples/$$f" && \ + $(RM) $$j; \ + done + +install-data-hook: \ + install_etc_osmocom_cfg \ + install_share_doc_cfg_examples + uninstall-hook: @$(PRE_UNINSTALL) - for f in $$($(CFG_FILES)); do \ - j="$(DESTDIR)$(docdir)/examples/$$f" && \ - $(RM) $$j; \ - done + $(MAKE) uninstall_etc_osmocom_cfg + $(MAKE) uninstall_share_doc_cfg_examples -- To view, visit https://gerrit.osmocom.org/12861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I95c9b5dc6117b3dd7a095b34437f5030a141c93b Gerrit-Change-Number: 12861 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 8 17:21:40 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 8 Feb 2019 17:21:40 +0000 Subject: Change in osmo-mgw[master]: install: keep existing / modified etc/osmocom/*.cfg files In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/12861 ) Change subject: install: keep existing / modified etc/osmocom/*.cfg files ...................................................................... Patch Set 1: Code-Review-1 See also discussion at OS#3794 -- To view, visit https://gerrit.osmocom.org/12861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I95c9b5dc6117b3dd7a095b34437f5030a141c93b Gerrit-Change-Number: 12861 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Fri, 08 Feb 2019 17:21:40 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 8 20:49:49 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 8 Feb 2019 20:49:49 +0000 Subject: Change in osmo-mgw[master]: install: keep existing / modified etc/osmocom/*.cfg files In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12861 ) Change subject: install: keep existing / modified etc/osmocom/*.cfg files ...................................................................... Patch Set 1: Code-Review-1 I don't really like this patch, I can imagine lots of future issues with build systems due to this kind of unusual behavior. -- To view, visit https://gerrit.osmocom.org/12861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I95c9b5dc6117b3dd7a095b34437f5030a141c93b Gerrit-Change-Number: 12861 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Fri, 08 Feb 2019 20:49:49 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 8 21:28:06 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Feb 2019 21:28:06 +0000 Subject: Change in osmo-bts[master]: OML: some more comments on what functions do Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12862 Change subject: OML: some more comments on what functions do ...................................................................... OML: some more comments on what functions do Change-Id: I5f30f6c556968fab60283ff1948966af28dc6e83 --- M src/common/oml.c 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/62/12862/1 diff --git a/src/common/oml.c b/src/common/oml.c index 41debc1..ce59865 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -102,6 +102,7 @@ talloc_free(rep); } +/* Push OM header in front of msgb and send it */ int oml_send_msg(struct msgb *msg, int is_manuf) { struct abis_om_hdr *omh; @@ -363,6 +364,8 @@ return rc; } +/* Send an ACK or NACK response from 'mo' to BSC, deriving message + * type from 'orig_msg_type'. ACK is sent if cause == 0; NACK otherwise */ int oml_mo_fom_ack_nack(struct gsm_abis_mo *mo, uint8_t orig_msg_type, uint8_t cause) { @@ -417,6 +420,9 @@ return oml_mo_fom_ack_nack(mo, NM_MT_OPSTART, nack_cause); } +/* Send an ACK or NACK response for 'msg' to BSC, deriving message + * type, obj class, obj inst from 'msg' and copying all attributes + * contained in 'msg'. ACK is sent if cause == 0; NACK otherwise */ int oml_fom_ack_nack(struct msgb *old_msg, uint8_t cause) { struct abis_om_hdr *old_oh = msgb_l2(old_msg); -- To view, visit https://gerrit.osmocom.org/12862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5f30f6c556968fab60283ff1948966af28dc6e83 Gerrit-Change-Number: 12862 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 8 21:28:06 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Feb 2019 21:28:06 +0000 Subject: Change in osmo-bts[master]: OML: Return attributes in ACK/NACK messages Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12863 Change subject: OML: Return attributes in ACK/NACK messages ...................................................................... OML: Return attributes in ACK/NACK messages As per 3GPP TS 12.21 Section 8.2 "ACK messages shall return all the attributes in the original message". OsmoBTS fails to do so but simply sends no attributes at all in the ACK. TS 12.21 is a bit vague whether or not the attributes shall also be achoed in the NACK. Let's do it and append the CAUSE in this case. Closes: OS#3788 Change-Id: Ifb305fe75f8305bb04872f26492b8b1bb8c27f49 --- M src/common/oml.c 1 file changed, 5 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/63/12863/1 diff --git a/src/common/oml.c b/src/common/oml.c index ce59865..0424c58 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -425,26 +425,19 @@ * contained in 'msg'. ACK is sent if cause == 0; NACK otherwise */ int oml_fom_ack_nack(struct msgb *old_msg, uint8_t cause) { - struct abis_om_hdr *old_oh = msgb_l2(old_msg); - struct abis_om_fom_hdr *old_foh = msgb_l3(old_msg); struct msgb *msg; struct abis_om_fom_hdr *foh; - int is_manuf = 0; - msg = oml_msgb_alloc(); + msg = msgb_copy(old_msg, "OML_fom_ack_nack"); if (!msg) return -ENOMEM; - /* make sure to respond with MANUF if request was MANUF */ - if (old_oh->mdisc == ABIS_OM_MDISC_MANUF) - is_manuf = 1; + /* remove any l2/l1 that may be present in copy */ + msgb_pull_to_l2(msg); msg->trx = old_msg->trx; - /* copy over old FOM-Header and later only change the msg_type */ - msg->l3h = msgb_push(msg, sizeof(*foh)); foh = (struct abis_om_fom_hdr *) msg->l3h; - memcpy(foh, old_foh, sizeof(*foh)); /* alter message type */ if (cause) { @@ -458,7 +451,8 @@ foh->msg_type++; /* ack */ } - return oml_send_msg(msg, is_manuf); + /* we cannot use oml_send_msg() as we already have the OML header */ + return abis_oml_sendmsg(msg); } /* -- To view, visit https://gerrit.osmocom.org/12863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ifb305fe75f8305bb04872f26492b8b1bb8c27f49 Gerrit-Change-Number: 12863 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 8 21:28:06 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Feb 2019 21:28:06 +0000 Subject: Change in osmo-bts[master]: OML: Ensure MOs are initialized with valid "Administrative State' Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12864 Change subject: OML: Ensure MOs are initialized with valid "Administrative State' ...................................................................... OML: Ensure MOs are initialized with valid "Administrative State' When osmo-bts connects to the BSC, it sends a ton of "State Change Event Report" messages indicating the Operational State (NULL), Availability status (power off) and [as an osmocom extension] also the Administrative State. However, the value of the administrative state is "0", which is not defined in TS 12.21 Section 9.4.4 Change-Id: I03f8a4b08b266cd40036076c76f9dc7e8bf08da2 Closes: OS#3785 --- M src/common/gsm_data_shared.c 1 file changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/64/12864/1 diff --git a/src/common/gsm_data_shared.c b/src/common/gsm_data_shared.c index 2d9af78..58b2503 100644 --- a/src/common/gsm_data_shared.c +++ b/src/common/gsm_data_shared.c @@ -38,6 +38,7 @@ { mo->nm_state.operational = NM_OPSTATE_NULL; mo->nm_state.availability = NM_AVSTATE_POWER_OFF; + mo->nm_state.administrative = NM_STATE_LOCKED; } static void gsm_mo_init(struct gsm_abis_mo *mo, struct gsm_bts *bts, @@ -222,10 +223,12 @@ trx->bts = bts; trx->nr = bts->num_trx++; - trx->mo.nm_state.administrative = NM_STATE_UNLOCKED; gsm_mo_init(&trx->mo, bts, NM_OC_RADIO_CARRIER, bts->nr, trx->nr, 0xff); + /* FIXME: Why would the TRX come up unlocked? */ + trx->mo.nm_state.administrative = NM_STATE_UNLOCKED; + gsm_mo_init(&trx->bb_transc.mo, bts, NM_OC_BASEB_TRANSC, bts->nr, trx->nr, 0xff); -- To view, visit https://gerrit.osmocom.org/12864 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I03f8a4b08b266cd40036076c76f9dc7e8bf08da2 Gerrit-Change-Number: 12864 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 8 21:28:51 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 8 Feb 2019 21:28:51 +0000 Subject: Change in osmo-bts[master]: OML: some more comments on what functions do In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12862 ) Change subject: OML: some more comments on what functions do ...................................................................... Patch Set 1: Code-Review+2 trivial -- To view, visit https://gerrit.osmocom.org/12862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5f30f6c556968fab60283ff1948966af28dc6e83 Gerrit-Change-Number: 12862 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Fri, 08 Feb 2019 21:28:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 8 22:59:05 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 8 Feb 2019 22:59:05 +0000 Subject: Change in osmo-bts[master]: OML: Return attributes in ACK/NACK messages In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12863 ) Change subject: OML: Return attributes in ACK/NACK messages ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifb305fe75f8305bb04872f26492b8b1bb8c27f49 Gerrit-Change-Number: 12863 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Fri, 08 Feb 2019 22:59:05 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 8 23:07:06 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 8 Feb 2019 23:07:06 +0000 Subject: Change in osmo-bts[master]: OML: Return attributes in ACK/NACK messages In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12863 ) Change subject: OML: Return attributes in ACK/NACK messages ...................................................................... Patch Set 1: Code-Review-1 (1 comment) https://gerrit.osmocom.org/#/c/12863/1/src/common/oml.c File src/common/oml.c: https://gerrit.osmocom.org/#/c/12863/1/src/common/oml.c at 448 PS1, Line 448: msgb_tv_put(msg, NM_ATT_NACK_CAUSES, cause); Don't you need to update omh->length after putting more info? Since you are not longer calling oml_send_msg anymore, which does the update: omh->length = msgb_l3len(msg); -- To view, visit https://gerrit.osmocom.org/12863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifb305fe75f8305bb04872f26492b8b1bb8c27f49 Gerrit-Change-Number: 12863 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Fri, 08 Feb 2019 23:07:06 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 8 23:07:40 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 8 Feb 2019 23:07:40 +0000 Subject: Change in osmo-bts[master]: OML: some more comments on what functions do In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12862 ) Change subject: OML: some more comments on what functions do ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5f30f6c556968fab60283ff1948966af28dc6e83 Gerrit-Change-Number: 12862 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Fri, 08 Feb 2019 23:07:40 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Fri Feb 8 23:59:28 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 8 Feb 2019 23:59:28 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-pcu_=C2=BB_ma?= =?UTF-8?Q?ster,1,osmocom-master-debian9,none,False_#1242?= Message-ID: <907671323.144.1549670368387.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 30.57 KB...] checking whether struct tm has tm_gmtoff member... yes checking for TALLOC... yes checking for PCSC... yes checking for LIBGNUTLS... yes checking whether to enable VTY/CTRL tests... no checking whether C compiler accepts -mavx2... yes checking whether C compiler accepts -mssse3... yes checking whether C compiler accepts -msse4.1... yes checking whether gcc has __builtin_cpu_supports built-in... yes CFLAGS="-g -O2 -DBUILDING_LIBOSMOCORE -Wall" CPPFLAGS=" -DBUILDING_LIBOSMOCORE -Wall" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmocore.pc config.status: creating libosmocodec.pc config.status: creating libosmocoding.pc config.status: creating libosmovty.pc config.status: creating libosmogsm.pc config.status: creating libosmogb.pc config.status: creating libosmoctrl.pc config.status: creating libosmosim.pc config.status: creating include/Makefile config.status: creating src/Makefile config.status: creating src/vty/Makefile config.status: creating src/codec/Makefile config.status: creating src/coding/Makefile config.status: creating src/sim/Makefile config.status: creating src/gsm/Makefile config.status: creating src/gb/Makefile config.status: creating src/ctrl/Makefile config.status: creating src/pseudotalloc/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating utils/Makefile config.status: creating Doxyfile.core config.status: creating Doxyfile.gsm config.status: creating Doxyfile.vty config.status: creating Doxyfile.codec config.status: creating Doxyfile.coding config.status: creating Doxyfile.gb config.status: creating Doxyfile.ctrl config.status: creating Makefile config.status: creating config.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands configure: WARNING: unrecognized options: --with-systemdsystemunitdir + make -j 8 install echo 1.0.1.34-6b489 > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory ' Making install in include make[2]: Entering directory ' GEN osmocom/gsm/gsm0503.h Generating header file... Generate 'xcch' declaration Generate 'rach' declaration Generate 'rach_ext' declaration Generate 'sch' declaration Generate 'cs2' declaration Generate 'cs3' declaration Generate 'cs2_np' declaration Generate 'cs3_np' declaration Generate 'tch_afs_12_2' declaration Generate 'tch_afs_10_2' declaration Generate 'tch_afs_7_95' declaration Generate 'tch_afs_7_4' declaration Generate 'tch_afs_6_7' declaration Generate 'tch_afs_5_9' declaration Generate 'tch_afs_5_15' declaration Generate 'tch_afs_4_75' declaration Generate 'tch_fr' declaration Generate 'tch_hr' declaration Generate 'tch_ahs_7_95' declaration Generate 'tch_ahs_7_4' declaration Generate 'tch_ahs_6_7' declaration Generate 'tch_ahs_5_9' declaration Generate 'tch_ahs_5_15' declaration Generate 'tch_ahs_4_75' declaration Generate 'mcs1_dl_hdr' declaration Generate 'mcs1_ul_hdr' declaration Generate 'mcs1' declaration Generate 'mcs2' declaration Generate 'mcs3' declaration Generate 'mcs4' declaration Generate 'mcs5_dl_hdr' declaration Generate 'mcs5_ul_hdr' declaration Generate 'mcs5' declaration Generate 'mcs6' declaration Generate 'mcs7_dl_hdr' declaration Generate 'mcs7_ul_hdr' declaration Generate 'mcs7' declaration Generate 'mcs8' declaration Generate 'mcs9' declaration Generation complete. make install-am make[3]: Entering directory ' GEN osmocom/core/bit16gen.h GEN osmocom/core/bit32gen.h GEN osmocom/core/bit64gen.h GEN osmocom/core/crc64gen.h GEN osmocom/core/crc32gen.h GEN osmocom/core/crc8gen.h GEN osmocom/core/crc16gen.h GEN osmocom/core/bit16gen.h GEN osmocom/core/bit32gen.h GEN osmocom/core/bit64gen.h GEN osmocom/core/crc16gen.h GEN osmocom/core/crc8gen.h GEN osmocom/core/crc64gen.h GEN osmocom/core/crc32gen.h make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/core/application.h osmocom/core/backtrace.h osmocom/core/bit16gen.h osmocom/core/bit32gen.h osmocom/core/bit64gen.h osmocom/core/bits.h osmocom/core/bitvec.h osmocom/core/bitcomp.h osmocom/core/byteswap.h osmocom/core/conv.h osmocom/core/counter.h osmocom/core/crc16.h osmocom/core/crc16gen.h osmocom/core/crc32gen.h osmocom/core/crc64gen.h osmocom/core/crc8gen.h osmocom/core/crcgen.h osmocom/core/endian.h osmocom/core/defs.h osmocom/core/fsm.h osmocom/core/gsmtap.h osmocom/core/gsmtap_util.h osmocom/core/isdnhdlc.h osmocom/core/linuxlist.h osmocom/core/linuxrbtree.h osmocom/core/logging.h osmocom/core/loggingrb.h osmocom/core/stats.h osmocom/core/macaddr.h osmocom/core/msgb.h osmocom/core/panic.h osmocom/core/prbs.h osmocom/core/prim.h osmocom/core/process.h osmocom/core/rate_ctr.h osmocom/core/stat_item.h osmocom/core/select.h osmocom/core/sercomm.h osmocom/core/signal.h osmocom/core/socket.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/gsm/a5.h osmocom/gsm/abis_nm.h osmocom/gsm/apn.h osmocom/gsm/bts_features.h osmocom/gsm/comp128.h osmocom/gsm/comp128v23.h osmocom/gsm/bitvec_gsm.h osmocom/gsm/gan.h osmocom/gsm/gsm0341.h osmocom/gsm/gsm0411_smc.h osmocom/gsm/gsm0411_smr.h osmocom/gsm/gsm0411_utils.h osmocom/gsm/gsm0480.h osmocom/gsm/gsm0502.h osmocom/gsm/gsm0503.h osmocom/gsm/gsm0808.h osmocom/gsm/gsm29205.h osmocom/gsm/gsm0808_utils.h osmocom/gsm/gsm23003.h osmocom/gsm/gsm29118.h osmocom/gsm/gsm48.h osmocom/gsm/gsm48_arfcn_range_encode.h osmocom/gsm/gsm48_ie.h osmocom/gsm/gsm48_rest_octets.h osmocom/gsm/gsm_utils.h osmocom/gsm/gsup.h osmocom/gsm/gsup_sms.h osmocom/gsm/ipa.h osmocom/gsm/lapd_core.h osmocom/gsm/lapdm.h osmocom/gsm/meas_rep.h osmocom/gsm/mncc.h osmocom/gsm/prim.h osmocom/gsm/l1sap.h osmocom/gsm/oap.h osmocom/gsm/oap_client.h osmocom/gsm/rsl.h osmocom/gsm/rxlev_stat.h osmocom/gsm/sysinfo.h osmocom/gsm/tlv.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/coding/gsm0503_tables.h osmocom/coding/gsm0503_parity.h osmocom/coding/gsm0503_mapping.h osmocom/coding/gsm0503_interleaving.h osmocom/coding/gsm0503_coding.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/core/statistics.h osmocom/core/strrb.h osmocom/core/talloc.h osmocom/core/tdef.h osmocom/core/timer.h osmocom/core/timer_compat.h osmocom/core/utils.h osmocom/core/write_queue.h osmocom/core/plugin.h osmocom/core/msgfile.h osmocom/core/serial.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/vty/buffer.h osmocom/vty/command.h osmocom/vty/logging.h osmocom/vty/stats.h osmocom/vty/misc.h osmocom/vty/telnet_interface.h osmocom/vty/vector.h osmocom/vty/vty.h osmocom/vty/ports.h osmocom/vty/tdef_vty.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/gsm/protocol/gsm_03_40.h osmocom/gsm/protocol/gsm_03_41.h osmocom/gsm/protocol/gsm_04_08.h osmocom/gsm/protocol/gsm_04_08_gprs.h osmocom/gsm/protocol/gsm_04_11.h osmocom/gsm/protocol/gsm_04_12.h osmocom/gsm/protocol/gsm_04_14.h osmocom/gsm/protocol/gsm_04_80.h osmocom/gsm/protocol/gsm_08_08.h osmocom/gsm/protocol/gsm_08_58.h osmocom/gsm/protocol/gsm_09_02.h osmocom/gsm/protocol/gsm_12_21.h osmocom/gsm/protocol/gsm_23_003.h osmocom/gsm/protocol/gsm_29_118.h osmocom/gsm/protocol/gsm_44_318.h osmocom/gsm/protocol/ipaccess.h osmocom/gsm/protocol/smpp34_osmocom.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/sim/class_tables.h osmocom/sim/sim.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/gprs/gprs_bssgp.h osmocom/gprs/gprs_bssgp_bss.h osmocom/gprs/gprs_msgb.h osmocom/gprs/gprs_ns.h osmocom/gprs/gprs_ns_frgre.h osmocom/gprs/gprs_rlc.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/crypt/auth.h osmocom/crypt/gprs_cipher.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/ctrl/control_cmd.h osmocom/ctrl/control_if.h osmocom/ctrl/ports.h osmocom/ctrl/control_vty.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/gprs/protocol/gsm_04_60.h osmocom/gprs/protocol/gsm_08_16.h osmocom/gprs/protocol/gsm_08_18.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/codec/ecu.h osmocom/codec/codec.h osmocom/codec/gsm610_bits.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in src make[2]: Entering directory ' GEN crc32gen.c GEN crc16gen.c GEN crc8gen.c GEN crc64gen.c make install-am make[3]: Entering directory ' CC timer.lo CC timer_gettimeofday.lo CC select.lo CC timer_clockgettime.lo CC bitvec.lo CC msgb.lo CC bits.lo CC signal.lo CC bitcomp.lo CC counter.lo CC fsm.lo CC write_queue.lo CC utils.lo CC socket.lo CC logging.lo CC logging_syslog.lo CC logging_gsmtap.lo CC rate_ctr.lo CC gsmtap_util.lo CC crc16.lo CC panic.lo CC backtrace.lo CC conv.lo CC application.lo CC rbtree.lo CC strrb.lo CC loggingrb.lo CC crc8gen.lo CC crc16gen.lo CC crc32gen.lo CC crc64gen.lo CC macaddr.lo CC stat_item.lo CC stats.lo CC stats_statsd.lo CC prim.lo CC conv_acc.lo CC conv_acc_generic.lo CC sercomm.lo CC prbs.lo CC isdnhdlc.lo CC tdef.lo CC conv_acc_sse.lo CC conv_acc_sse_avx.lo CC plugin.lo CC msgfile.lo CC serial.lo CCLD libosmocore.la make[4]: Entering directory ' make[4]: Nothing to be done for 'install-data-am'. /bin/mkdir -p ' /bin/bash ../libtool --mode=install /usr/bin/install -c libosmocore.la ' libtool: install: /usr/bin/install -c .libs/libosmocore.so.12.0.1 libtool: install: (cd && { ln -s -f libosmocore.so.12.0.1 libosmocore.so.12 || { rm -f libosmocore.so.12 && ln -s libosmocore.so.12.0.1 libosmocore.so.12; }; }) libtool: install: (cd && { ln -s -f libosmocore.so.12.0.1 libosmocore.so || { rm -f libosmocore.so && ln -s libosmocore.so.12.0.1 libosmocore.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmocore.lai libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/sbin" ldconfig -n ---------------------------------------------------------------------- Libraries have been installed in: If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in src/vty make[2]: Entering directory ' CC buffer.lo CC command.lo CC vty.lo CC vector.lo CC utils.lo CC logging_vty.lo CC stats_vty.lo CC telnet_interface.lo /bin/bash: line 2: 19170 Segmentation fault /bin/bash ../../libtool --silent --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -DBUILDING_LIBOSMOCORE -Wall -Wall -g -O2 -DBUILDING_LIBOSMOCORE -Wall -MT telnet_interface.lo -MD -MP -MF $depbase.Tpo -c -o telnet_interface.lo telnet_interface.c Makefile:489: recipe for target 'telnet_interface.lo' failed make[2]: *** [telnet_interface.lo] Error 139 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:625: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:924: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Sat Feb 9 07:03:46 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Feb 2019 07:03:46 +0000 Subject: Change in osmo-bts[master]: scheduler_trx: Fix erroneous multiply-by-four In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12699 ) Change subject: scheduler_trx: Fix erroneous multiply-by-four ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/12699 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9f980236ea1cd635cb229290e187747cc8c86d8d Gerrit-Change-Number: 12699 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: dexter Gerrit-Comment-Date: Sat, 09 Feb 2019 07:03:46 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 9 07:03:47 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Feb 2019 07:03:47 +0000 Subject: Change in osmo-bts[master]: scheduler_trx: Fix erroneous multiply-by-four In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12699 ) Change subject: scheduler_trx: Fix erroneous multiply-by-four ...................................................................... scheduler_trx: Fix erroneous multiply-by-four Commit acefd0586e5d463b2e7a6a039131994bc12573fc introduced the "toa256" resolution change. Before the change, _sched_compose_ph_data_ind() used quarter-bits as units, so multiplying the old "toa" value by four made sense. However, after said change, the value is in 1/256th of bits, and hence we need to report the toa256 value without any multiply-by-four. Change-Id: I9f980236ea1cd635cb229290e187747cc8c86d8d Related: OS#2977 --- M src/osmo-bts-trx/scheduler_trx.c 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: Harald Welte: Looks good to me, approved dexter: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index fa3aed2..1b0ba73 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -846,7 +846,7 @@ ber10k = compute_ber10k(n_bits_total, n_errors); return _sched_compose_ph_data_ind(l1t, tn, *first_fn, chan, l2, l2_len, *rssi_sum / *rssi_num, - 4 * (*toa256_sum) / *toa_num, 0, ber10k, + *toa256_sum / *toa_num, 0, ber10k, PRES_INFO_UNKNOWN); } @@ -947,7 +947,7 @@ } ber10k = compute_ber10k(n_bits_total, n_errors); return _sched_compose_ph_data_ind(l1t, tn, (fn + GSM_HYPERFRAME - 3) % GSM_HYPERFRAME, chan, - l2, rc, *rssi_sum / *rssi_num, 4 * (*toa256_sum) / *toa_num, 0, + l2, rc, *rssi_sum / *rssi_num, *toa256_sum / *toa_num, 0, ber10k, PRES_INFO_BOTH); } @@ -1071,7 +1071,7 @@ if (rc == GSM_MACBLOCK_LEN) { uint16_t ber10k = compute_ber10k(n_bits_total, n_errors); _sched_compose_ph_data_ind(l1t, tn, (fn + GSM_HYPERFRAME - 7) % GSM_HYPERFRAME, chan, - tch_data + amr, GSM_MACBLOCK_LEN, rssi, 4 * toa256, 0, + tch_data + amr, GSM_MACBLOCK_LEN, rssi, toa256, 0, ber10k, PRES_INFO_UNKNOWN); bfi: if (rsl_cmode == RSL_CMOD_SPD_SPEECH) { @@ -1263,7 +1263,7 @@ uint16_t ber10k = compute_ber10k(n_bits_total, n_errors); _sched_compose_ph_data_ind(l1t, tn, (fn + GSM_HYPERFRAME - 10 - ((fn % 26) >= 19)) % GSM_HYPERFRAME, chan, - tch_data + amr, GSM_MACBLOCK_LEN, rssi, toa256/64, 0, + tch_data + amr, GSM_MACBLOCK_LEN, rssi, toa256, 0, ber10k, PRES_INFO_UNKNOWN); bfi: if (rsl_cmode == RSL_CMOD_SPD_SPEECH) { -- To view, visit https://gerrit.osmocom.org/12699 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I9f980236ea1cd635cb229290e187747cc8c86d8d Gerrit-Change-Number: 12699 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 9 07:03:49 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Feb 2019 07:03:49 +0000 Subject: Change in osmo-bts[master]: OML: some more comments on what functions do In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12862 ) Change subject: OML: some more comments on what functions do ...................................................................... OML: some more comments on what functions do Change-Id: I5f30f6c556968fab60283ff1948966af28dc6e83 --- M src/common/oml.c 1 file changed, 6 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/common/oml.c b/src/common/oml.c index 41debc1..ce59865 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -102,6 +102,7 @@ talloc_free(rep); } +/* Push OM header in front of msgb and send it */ int oml_send_msg(struct msgb *msg, int is_manuf) { struct abis_om_hdr *omh; @@ -363,6 +364,8 @@ return rc; } +/* Send an ACK or NACK response from 'mo' to BSC, deriving message + * type from 'orig_msg_type'. ACK is sent if cause == 0; NACK otherwise */ int oml_mo_fom_ack_nack(struct gsm_abis_mo *mo, uint8_t orig_msg_type, uint8_t cause) { @@ -417,6 +420,9 @@ return oml_mo_fom_ack_nack(mo, NM_MT_OPSTART, nack_cause); } +/* Send an ACK or NACK response for 'msg' to BSC, deriving message + * type, obj class, obj inst from 'msg' and copying all attributes + * contained in 'msg'. ACK is sent if cause == 0; NACK otherwise */ int oml_fom_ack_nack(struct msgb *old_msg, uint8_t cause) { struct abis_om_hdr *old_oh = msgb_l2(old_msg); -- To view, visit https://gerrit.osmocom.org/12862 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5f30f6c556968fab60283ff1948966af28dc6e83 Gerrit-Change-Number: 12862 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 9 07:11:45 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Feb 2019 07:11:45 +0000 Subject: Change in osmo-bts[master]: OML: Return attributes in ACK/NACK messages In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12863 ) Change subject: OML: Return attributes in ACK/NACK messages ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12863/1/src/common/oml.c File src/common/oml.c: https://gerrit.osmocom.org/#/c/12863/1/src/common/oml.c at 448 PS1, Line 448: msgb_tv_put(msg, NM_ATT_NACK_CAUSES, cause); > Don't you need to update omh->length after putting more info? Since you are not longer calling oml_s [?] nice catch! Indeed I didn't yet have a TTCN-3 test for testing the omh->length yet at all. Thanks! -- To view, visit https://gerrit.osmocom.org/12863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifb305fe75f8305bb04872f26492b8b1bb8c27f49 Gerrit-Change-Number: 12863 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sat, 09 Feb 2019 07:11:45 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sat Feb 9 07:32:07 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 9 Feb 2019 07:32:07 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-pcu_?= =?UTF-8?Q?=C2=BB_master,1,osmocom-master-debian9,none,False_#1243?= In-Reply-To: <907671323.144.1549670368387.JavaMail.jenkins@jenkins.osmocom.org> References: <907671323.144.1549670368387.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1652640407.154.1549697527621.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Sat Feb 9 08:26:02 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Feb 2019 08:26:02 +0000 Subject: Change in osmo-bts[master]: OML: Don't overwrite MO instance before oml_tx_failure_event_rep() Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12865 Change subject: OML: Don't overwrite MO instance before oml_tx_failure_event_rep() ...................................................................... OML: Don't overwrite MO instance before oml_tx_failure_event_rep() In Change-Id Ic163bcfb6361a8ebd39e0bc0f238ef51e2cb214e we introduced several additional calls to oml_tx_failure_event_rep() during OML messaeg processing. However, for some reason, we *overwrite* the bts_nt/trx_nr/ts_nr of the TRX MO. This is clearly wrong. The "address" of a managed object doesn't change at runtime! Change-Id: Idfb80ccd6dd485d52dc006867fae3dde3fb005f3 --- M src/common/oml.c 1 file changed, 1 insertion(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/65/12865/1 diff --git a/src/common/oml.c b/src/common/oml.c index 6952d75..6d8bc4b 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1078,12 +1078,8 @@ foh->msg_type)); LOGPC(DOML, LOGL_ERROR, "\n"); trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr); - if (trx) { - trx->mo.obj_inst.bts_nr = 0; - trx->mo.obj_inst.trx_nr = foh->obj_inst.trx_nr; - trx->mo.obj_inst.ts_nr = 0xff; + if (trx) mo = &trx->mo; - } oml_tx_failure_event_rep(mo, OSMO_EVT_MAJ_UKWN_MSG, form, foh->obj_inst.bts_nr, get_value_string(abis_nm_msgtype_names, foh->msg_type)); @@ -1103,9 +1099,6 @@ LOGP(DOML, LOGL_NOTICE, "Formatted O&M message too short\n"); trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr); if (trx) { - trx->mo.obj_inst.bts_nr = 0; - trx->mo.obj_inst.trx_nr = foh->obj_inst.trx_nr; - trx->mo.obj_inst.ts_nr = 0xff; oml_tx_failure_event_rep(&trx->mo, OSMO_EVT_MAJ_UKWN_MSG, "Formatted O&M message too short"); } @@ -1150,9 +1143,6 @@ foh->msg_type); trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr); if (trx) { - trx->mo.obj_inst.bts_nr = 0; - trx->mo.obj_inst.trx_nr = foh->obj_inst.trx_nr; - trx->mo.obj_inst.ts_nr = 0xff; oml_tx_failure_event_rep(&trx->mo, OSMO_EVT_MAJ_UKWN_MSG, "unknown Formatted O&M " "msg_type 0x%02x", -- To view, visit https://gerrit.osmocom.org/12865 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Idfb80ccd6dd485d52dc006867fae3dde3fb005f3 Gerrit-Change-Number: 12865 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 9 08:26:01 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Feb 2019 08:26:01 +0000 Subject: Change in osmo-bts[master]: OML: Return attributes in ACK/NACK messages In-Reply-To: References: Message-ID: Hello Pau Espin Pedrol, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12863 to look at the new patch set (#2). Change subject: OML: Return attributes in ACK/NACK messages ...................................................................... OML: Return attributes in ACK/NACK messages As per 3GPP TS 12.21 Section 8.2 "ACK messages shall return all the attributes in the original message". OsmoBTS fails to do so but simply sends no attributes at all in the ACK. TS 12.21 is a bit vague whether or not the attributes shall also be achoed in the NACK. Let's do it and append the CAUSE in this case. Closes: OS#3788 Change-Id: Ifb305fe75f8305bb04872f26492b8b1bb8c27f49 --- M src/common/oml.c 1 file changed, 8 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/63/12863/2 -- To view, visit https://gerrit.osmocom.org/12863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ifb305fe75f8305bb04872f26492b8b1bb8c27f49 Gerrit-Change-Number: 12863 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 9 08:26:02 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Feb 2019 08:26:02 +0000 Subject: Change in osmo-bts[master]: OML: remove double-logging on oml_tx_failure_event_rep() Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12866 Change subject: OML: remove double-logging on oml_tx_failure_event_rep() ...................................................................... OML: remove double-logging on oml_tx_failure_event_rep() When we send an OML failure event report using oml_tx_failure_event_rep(), the function itself will not only send the report to the BSC but also log it. So there's no need to both have an explicit LOGP() and a call to oml_tx_failure_event_rep(). Change-Id: Ib3fd06b3266d896aebeed4ebe42ac71ff173bb5c --- M src/common/oml.c 1 file changed, 0 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/66/12866/1 diff --git a/src/common/oml.c b/src/common/oml.c index 6d8bc4b..82d12c7 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -558,7 +558,6 @@ } if (!TLVP_PRES_LEN(&tp, NM_ATT_LIST_REQ_ATTR, 1)) { - LOGP(DOML, LOGL_ERROR, "O&M Get Attributes message without Attribute List?!\n"); oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UNSUP_ATTR, "Get Attribute without Attribute List"); return oml_fom_ack_nack(msg, NM_NACK_INCORR_STRUCT); } @@ -1074,9 +1073,6 @@ "Unexpected BTS %d in manufacturer O&M %s (exp. 0 or 0xFF)"; if (foh->obj_inst.bts_nr != 0 && foh->obj_inst.bts_nr != 0xff) { - LOGP(DOML, LOGL_ERROR, form, foh->obj_inst.bts_nr, get_value_string(abis_nm_msgtype_names, - foh->msg_type)); - LOGPC(DOML, LOGL_ERROR, "\n"); trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr); if (trx) mo = &trx->mo; @@ -1139,8 +1135,6 @@ ret = oml_rx_get_attr(bts, msg); break; default: - LOGP(DOML, LOGL_INFO, "unknown Formatted O&M msg_type 0x%02x\n", - foh->msg_type); trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr); if (trx) { oml_tx_failure_event_rep(&trx->mo, OSMO_EVT_MAJ_UKWN_MSG, -- To view, visit https://gerrit.osmocom.org/12866 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib3fd06b3266d896aebeed4ebe42ac71ff173bb5c Gerrit-Change-Number: 12866 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 9 08:26:03 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Feb 2019 08:26:03 +0000 Subject: Change in osmo-bts[master]: WIP: send proper OML alert in case of errors Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12867 Change subject: WIP: send proper OML alert in case of errors ...................................................................... WIP: send proper OML alert in case of errors Change-Id: I5b19b82a4874617c7c584cf3eac55eb9c756710a --- M src/common/oml.c 1 file changed, 15 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/67/12867/1 diff --git a/src/common/oml.c b/src/common/oml.c index 82d12c7..6d44710 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1411,8 +1411,15 @@ ret = oml_ipa_set_attr(bts, msg); break; default: - LOGP(DOML, LOGL_INFO, "Manufacturer Formatted O&M msg_type 0x%02x\n", - foh->msg_type); + trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr); + if (trx) { + oml_tx_failure_event_rep(&trx->mo, OSMO_EVT_MAJ_UKWN_MSG, + "unknown Manufacturer O&M msg_type 0x%02x", + foh->msg_type); + } else + oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG, + "unknown Manufacturer O&M msg_type 0x%02x", + foh->msg_type); ret = oml_fom_ack_nack(msg, NM_NACK_MSGTYPE_INVAL); } @@ -1435,7 +1442,8 @@ switch (oh->mdisc) { case ABIS_OM_MDISC_FOM: if (msgb_l2len(msg) < sizeof(*oh)) { - LOGP(DOML, LOGL_NOTICE, "Formatted O&M message too short\n"); + oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG, + "Formatted O&M message too short\n"); ret = -EIO; break; } @@ -1443,15 +1451,16 @@ break; case ABIS_OM_MDISC_MANUF: if (msgb_l2len(msg) < sizeof(*oh)) { - LOGP(DOML, LOGL_NOTICE, "Manufacturer O&M message too short\n"); + oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG, + "Manufacturer O&M message too short\n"); ret = -EIO; break; } ret = down_mom(bts, msg); break; default: - LOGP(DOML, LOGL_NOTICE, "unknown OML msg_discr 0x%02x\n", - oh->mdisc); + oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG, + "unknown O&M msg_disc 0x%02x\n", oh->mdisc); ret = -EINVAL; } -- To view, visit https://gerrit.osmocom.org/12867 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5b19b82a4874617c7c584cf3eac55eb9c756710a Gerrit-Change-Number: 12867 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 9 08:26:03 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Feb 2019 08:26:03 +0000 Subject: Change in osmo-bts[master]: OML: Reduce code duplication in down_mom/down_fom Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12868 Change subject: OML: Reduce code duplication in down_mom/down_fom ...................................................................... OML: Reduce code duplication in down_mom/down_fom Simply use a "mo" variable on the stack rather than having duplicate but otherwise identical calls to oml_tx_failure_event_rep() Change-Id: Ibe6c79e95405b13d041047549d2ffa39aa355eb2 --- M src/common/oml.c 1 file changed, 10 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/68/12868/1 diff --git a/src/common/oml.c b/src/common/oml.c index 6d44710..cbd2e1b 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1089,6 +1089,7 @@ { struct abis_om_fom_hdr *foh = msgb_l3(msg); struct gsm_bts_trx *trx; + struct gsm_abis_mo *mo = &bts->mo; int ret; if (msgb_l2len(msg) < sizeof(*foh)) { @@ -1136,16 +1137,10 @@ break; default: trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr); - if (trx) { - oml_tx_failure_event_rep(&trx->mo, OSMO_EVT_MAJ_UKWN_MSG, - "unknown Formatted O&M " - "msg_type 0x%02x", - foh->msg_type); - } else - oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG, - "unknown Formatted O&M " - "msg_type 0x%02x", - foh->msg_type); + if (trx) + mo = &trx->mo; + oml_tx_failure_event_rep(mo, OSMO_EVT_MAJ_UKWN_MSG, "unknown Formatted O&M " + "msg_type 0x%02x", foh->msg_type); ret = oml_fom_ack_nack(msg, NM_NACK_MSGTYPE_INVAL); } @@ -1371,6 +1366,7 @@ static int down_mom(struct gsm_bts *bts, struct msgb *msg) { struct abis_om_hdr *oh = msgb_l2(msg); + struct gsm_abis_mo *mo = &bts->mo; struct abis_om_fom_hdr *foh; struct gsm_bts_trx *trx; uint8_t idstrlen = oh->data[0]; @@ -1412,14 +1408,10 @@ break; default: trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr); - if (trx) { - oml_tx_failure_event_rep(&trx->mo, OSMO_EVT_MAJ_UKWN_MSG, - "unknown Manufacturer O&M msg_type 0x%02x", - foh->msg_type); - } else - oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG, - "unknown Manufacturer O&M msg_type 0x%02x", - foh->msg_type); + if (trx) + mo = &trx->mo; + oml_tx_failure_event_rep(mo, OSMO_EVT_MAJ_UKWN_MSG, "unknown Manufacturer O&M " + "msg_type 0x%02x", foh->msg_type); ret = oml_fom_ack_nack(msg, NM_NACK_MSGTYPE_INVAL); } -- To view, visit https://gerrit.osmocom.org/12868 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ibe6c79e95405b13d041047549d2ffa39aa355eb2 Gerrit-Change-Number: 12868 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 9 08:26:03 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Feb 2019 08:26:03 +0000 Subject: Change in osmo-bts[master]: OML: Report short messages even for invalid TRX numbers in down_fom() Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12869 Change subject: OML: Report short messages even for invalid TRX numbers in down_fom() ...................................................................... OML: Report short messages even for invalid TRX numbers in down_fom() Change-Id: I65b57d3fc714814db3ae3fd34398f307413fece8 --- M src/common/oml.c 1 file changed, 3 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/69/12869/1 diff --git a/src/common/oml.c b/src/common/oml.c index cbd2e1b..a3227f5 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1093,12 +1093,10 @@ int ret; if (msgb_l2len(msg) < sizeof(*foh)) { - LOGP(DOML, LOGL_NOTICE, "Formatted O&M message too short\n"); trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr); - if (trx) { - oml_tx_failure_event_rep(&trx->mo, OSMO_EVT_MAJ_UKWN_MSG, - "Formatted O&M message too short"); - } + if (trx) + mo = &trx->mo; + oml_tx_failure_event_rep(mo, OSMO_EVT_MAJ_UKWN_MSG, "Formatted O&M message too short"); return -EIO; } -- To view, visit https://gerrit.osmocom.org/12869 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I65b57d3fc714814db3ae3fd34398f307413fece8 Gerrit-Change-Number: 12869 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 9 08:26:04 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Feb 2019 08:26:04 +0000 Subject: Change in osmo-bts[master]: OML: Use 'const struct abis_oml_mo *' whenever users only read Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12870 Change subject: OML: Use 'const struct abis_oml_mo *' whenever users only read ...................................................................... OML: Use 'const struct abis_oml_mo *' whenever users only read Try to constrain the code a bit further by making all read-only accesses use 'const *'. Change-Id: I5a61e6d1b4e5e083bb24017166186dc87d035cd0 --- M include/osmo-bts/oml.h M src/common/oml.c 2 files changed, 22 insertions(+), 22 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/70/12870/1 diff --git a/include/osmo-bts/oml.h b/include/osmo-bts/oml.h index 139464e..4dca2f8 100644 --- a/include/osmo-bts/oml.h +++ b/include/osmo-bts/oml.h @@ -14,11 +14,11 @@ struct msgb *oml_msgb_alloc(void); int oml_send_msg(struct msgb *msg, int is_mauf); -int oml_mo_send_msg(struct gsm_abis_mo *mo, struct msgb *msg, uint8_t msg_type); -int oml_mo_opstart_ack(struct gsm_abis_mo *mo); -int oml_mo_opstart_nack(struct gsm_abis_mo *mo, uint8_t nack_cause); -int oml_mo_statechg_ack(struct gsm_abis_mo *mo); -int oml_mo_statechg_nack(struct gsm_abis_mo *mo, uint8_t nack_cause); +int oml_mo_send_msg(const struct gsm_abis_mo *mo, struct msgb *msg, uint8_t msg_type); +int oml_mo_opstart_ack(const struct gsm_abis_mo *mo); +int oml_mo_opstart_nack(const struct gsm_abis_mo *mo, uint8_t nack_cause); +int oml_mo_statechg_ack(const struct gsm_abis_mo *mo); +int oml_mo_statechg_nack(const struct gsm_abis_mo *mo, uint8_t nack_cause); /* Change the state and send STATE CHG REP */ int oml_mo_state_chg(struct gsm_abis_mo *mo, int op_state, int avail_state); @@ -31,13 +31,13 @@ int success); /* Transmit STATE CHG REP even if there was no state change */ -int oml_tx_state_changed(struct gsm_abis_mo *mo); +int oml_tx_state_changed(const struct gsm_abis_mo *mo); -int oml_mo_tx_sw_act_rep(struct gsm_abis_mo *mo); +int oml_mo_tx_sw_act_rep(const struct gsm_abis_mo *mo); int oml_fom_ack_nack(struct msgb *old_msg, uint8_t cause); -int oml_mo_fom_ack_nack(struct gsm_abis_mo *mo, uint8_t orig_msg_type, +int oml_mo_fom_ack_nack(const struct gsm_abis_mo *mo, uint8_t orig_msg_type, uint8_t cause); /* Configure LAPDm T200 timers for this lchan according to OML */ diff --git a/src/common/oml.c b/src/common/oml.c index a3227f5..4dfaaf4 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -67,7 +67,7 @@ } /* 3GPP TS 12.21 ? 8.8.2 */ -static int oml_tx_failure_event_rep(struct gsm_abis_mo *mo, uint16_t cause_value, +static int oml_tx_failure_event_rep(const struct gsm_abis_mo *mo, uint16_t cause_value, const char *fmt, ...) { struct msgb *nmsg; @@ -129,7 +129,7 @@ return abis_oml_sendmsg(msg); } -int oml_mo_send_msg(struct gsm_abis_mo *mo, struct msgb *msg, uint8_t msg_type) +int oml_mo_send_msg(const struct gsm_abis_mo *mo, struct msgb *msg, uint8_t msg_type) { struct abis_om_fom_hdr *foh; @@ -307,7 +307,7 @@ } /* 8.8.1 sending State Changed Event Report */ -int oml_tx_state_changed(struct gsm_abis_mo *mo) +int oml_tx_state_changed(const struct gsm_abis_mo *mo) { struct msgb *nmsg; @@ -366,7 +366,7 @@ /* Send an ACK or NACK response from 'mo' to BSC, deriving message * type from 'orig_msg_type'. ACK is sent if cause == 0; NACK otherwise */ -int oml_mo_fom_ack_nack(struct gsm_abis_mo *mo, uint8_t orig_msg_type, +int oml_mo_fom_ack_nack(const struct gsm_abis_mo *mo, uint8_t orig_msg_type, uint8_t cause) { struct msgb *msg; @@ -386,7 +386,7 @@ return oml_mo_send_msg(mo, msg, new_msg_type); } -int oml_mo_statechg_ack(struct gsm_abis_mo *mo) +int oml_mo_statechg_ack(const struct gsm_abis_mo *mo) { struct msgb *msg; int rc = 0; @@ -405,17 +405,17 @@ return oml_tx_state_changed(mo); } -int oml_mo_statechg_nack(struct gsm_abis_mo *mo, uint8_t nack_cause) +int oml_mo_statechg_nack(const struct gsm_abis_mo *mo, uint8_t nack_cause) { return oml_mo_fom_ack_nack(mo, NM_MT_CHG_ADM_STATE, nack_cause); } -int oml_mo_opstart_ack(struct gsm_abis_mo *mo) +int oml_mo_opstart_ack(const struct gsm_abis_mo *mo) { return oml_mo_fom_ack_nack(mo, NM_MT_OPSTART, 0); } -int oml_mo_opstart_nack(struct gsm_abis_mo *mo, uint8_t nack_cause) +int oml_mo_opstart_nack(const struct gsm_abis_mo *mo, uint8_t nack_cause) { return oml_mo_fom_ack_nack(mo, NM_MT_OPSTART, nack_cause); } @@ -463,7 +463,7 @@ */ /* 8.3.7 sending SW Activated Report */ -int oml_mo_tx_sw_act_rep(struct gsm_abis_mo *mo) +int oml_mo_tx_sw_act_rep(const struct gsm_abis_mo *mo) { struct msgb *nmsg; @@ -1067,7 +1067,7 @@ static inline bool report_bts_number_incorrect(struct gsm_bts *bts, const struct abis_om_fom_hdr *foh, bool is_formatted) { struct gsm_bts_trx *trx; - struct gsm_abis_mo *mo = &bts->mo; + const struct gsm_abis_mo *mo = &bts->mo; const char *form = is_formatted ? "Unexpected BTS %d in formatted O&M %s (exp. 0 or 0xFF)" : "Unexpected BTS %d in manufacturer O&M %s (exp. 0 or 0xFF)"; @@ -1089,7 +1089,7 @@ { struct abis_om_fom_hdr *foh = msgb_l3(msg); struct gsm_bts_trx *trx; - struct gsm_abis_mo *mo = &bts->mo; + const struct gsm_abis_mo *mo = &bts->mo; int ret; if (msgb_l2len(msg) < sizeof(*foh)) { @@ -1268,7 +1268,7 @@ return 0; } -static int oml_ipa_mo_set_attr(struct gsm_bts *bts, struct gsm_abis_mo *mo, +static int oml_ipa_mo_set_attr(struct gsm_bts *bts, const struct gsm_abis_mo *mo, void *obj, struct tlv_parsed *tp) { int rc; @@ -1293,7 +1293,7 @@ static int oml_ipa_set_attr(struct gsm_bts *bts, struct msgb *msg) { struct abis_om_fom_hdr *foh = msgb_l3(msg); - struct gsm_abis_mo *mo; + const struct gsm_abis_mo *mo; struct tlv_parsed tp; void *obj; int rc; @@ -1364,7 +1364,7 @@ static int down_mom(struct gsm_bts *bts, struct msgb *msg) { struct abis_om_hdr *oh = msgb_l2(msg); - struct gsm_abis_mo *mo = &bts->mo; + const struct gsm_abis_mo *mo = &bts->mo; struct abis_om_fom_hdr *foh; struct gsm_bts_trx *trx; uint8_t idstrlen = oh->data[0]; -- To view, visit https://gerrit.osmocom.org/12870 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5a61e6d1b4e5e083bb24017166186dc87d035cd0 Gerrit-Change-Number: 12870 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 9 08:36:40 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Feb 2019 08:36:40 +0000 Subject: Change in osmo-bts[master]: OML: Reject segmented OML messages Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12871 Change subject: OML: Reject segmented OML messages ...................................................................... OML: Reject segmented OML messages TS 12.21 describes segmenting of OML messages using placement fist/middle/last and the "sequence' number of the OML header. We don't implement this and hence must ignore or reject any related messages. Before this patch however, we simply treated such segments as if they were a complete OML message. Let's fix that. Change-Id: Idd42cf4edc1bf9ab366853bd9b0f7afd9c060910 Closes: OS#3795 --- M src/common/oml.c 1 file changed, 9 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/71/12871/1 diff --git a/src/common/oml.c b/src/common/oml.c index 4dfaaf4..2ae5af5 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1422,13 +1422,21 @@ struct abis_om_hdr *oh = msgb_l2(msg); int ret = 0; - if (msgb_l2len(msg) < 1) { + if (msgb_l2len(msg) < sizeof(*oh)) { LOGP(DOML, LOGL_NOTICE, "OML message too short\n"); msgb_free(msg); return -EIO; } msg->l3h = (unsigned char *)oh + sizeof(*oh); + /* We don't implement de-segmentation of segmented OML messages */ + if (oh->placement != ABIS_OM_PLACEMENT_ONLY || oh->sequence != 0) { + oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG, + "Unsupported segmented O&M message\n"); + msgb_free(msg); + return -EIO; + } + switch (oh->mdisc) { case ABIS_OM_MDISC_FOM: if (msgb_l2len(msg) < sizeof(*oh)) { -- To view, visit https://gerrit.osmocom.org/12871 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Idd42cf4edc1bf9ab366853bd9b0f7afd9c060910 Gerrit-Change-Number: 12871 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 9 08:36:40 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Feb 2019 08:36:40 +0000 Subject: Change in osmo-bts[master]: OML: Send Failure Event Report on short OML messages Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12872 Change subject: OML: Send Failure Event Report on short OML messages ...................................................................... OML: Send Failure Event Report on short OML messages It's much more likely to get noticed if it shows up in the Abis protocol trace and/or the BSC log than some local log at the BTS. Change-Id: I4a1b64aa35fa7051d9eb190f3f6f5ea0b28bab8f --- M src/common/oml.c 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/72/12872/1 diff --git a/src/common/oml.c b/src/common/oml.c index 2ae5af5..4697086 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1423,7 +1423,8 @@ int ret = 0; if (msgb_l2len(msg) < sizeof(*oh)) { - LOGP(DOML, LOGL_NOTICE, "OML message too short\n"); + oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG, + "OML message too short\n"); msgb_free(msg); return -EIO; } -- To view, visit https://gerrit.osmocom.org/12872 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I4a1b64aa35fa7051d9eb190f3f6f5ea0b28bab8f Gerrit-Change-Number: 12872 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 9 08:39:40 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sat, 9 Feb 2019 08:39:40 +0000 Subject: Change in libosmocore[master]: GSUP: add inter-MSC handover related msgs and IEs In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12860 ) Change subject: GSUP: add inter-MSC handover related msgs and IEs ...................................................................... Patch Set 2: (6 comments) https://gerrit.osmocom.org/#/c/12860/2/include/osmocom/gsm/gsup.h File include/osmocom/gsm/gsup.h: https://gerrit.osmocom.org/#/c/12860/2/include/osmocom/gsm/gsup.h at 196 PS2, Line 196: OSMO_GSUP_MSGT_E_CLOSE As far as I can see, this comes from TCAP. And we already have the session state IE, why not to extend it with ABORT? https://gerrit.osmocom.org/#/c/12860/2/include/osmocom/gsm/gsup.h at 338 PS2, Line 338: an_apdu I would use a pointer here. The osmo_gsup_message is already quite big... https://gerrit.osmocom.org/#/c/12860/2/include/osmocom/gsm/gsup.h at 341 PS2, Line 341: cause_sm Does SM mean "Short Message"? If yes, we already have "sm_rp_cause". https://gerrit.osmocom.org/#/c/12860/2/include/osmocom/gsm/gsup_handover.h File include/osmocom/gsm/gsup_handover.h: https://gerrit.osmocom.org/#/c/12860/2/include/osmocom/gsm/gsup_handover.h at 19 PS2, Line 19: uint8_t const? https://gerrit.osmocom.org/#/c/12860/2/src/gsm/gsup.c File src/gsm/gsup.c: https://gerrit.osmocom.org/#/c/12860/2/src/gsm/gsup.c at 789 PS2, Line 789: u8 = gsup_msg->cause_bssap One wouldn't be able to encode GSM0808_CAUSE_RADIO_INTERFACE_MESSAGE_FAILURE == 0x00 this way. This is why I was talking about pointers. https://gerrit.osmocom.org/#/c/12860/2/tests/gsup/gsup_test.c File tests/gsup/gsup_test.c: https://gerrit.osmocom.org/#/c/12860/2/tests/gsup/gsup_test.c at 338 PS2, Line 338: [] We don't have this space usually. -- To view, visit https://gerrit.osmocom.org/12860 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic00b0601eacff6d72927cea51767801142ee75db Gerrit-Change-Number: 12860 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Sat, 09 Feb 2019 08:39:40 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sat Feb 9 09:46:04 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 9 Feb 2019 09:46:04 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-trx_=C2=BB_--wit?= =?UTF-8?Q?h-sse,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#871?= In-Reply-To: <1818575664.141.1549635511510.JavaMail.jenkins@jenkins.osmocom.org> References: <1818575664.141.1549635511510.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1474827671.156.1549705564108.JavaMail.jenkins@jenkins.osmocom.org> See From jenkins at lists.osmocom.org Sat Feb 9 15:10:06 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 9 Feb 2019 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#396?= In-Reply-To: <1723494188.143.1549638607012.JavaMail.jenkins@jenkins.osmocom.org> References: <1723494188.143.1549638607012.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1147595962.158.1549725006997.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.76 KB...] checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs mkdir .libs mkdir: cannot create directory '.libs': File exists gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Sat Feb 9 16:06:41 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 9 Feb 2019 16:06:41 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_mas?= =?UTF-8?Q?ter-osmo-hlr_=C2=BB_a1=3Ddefault,a2=3D?= =?UTF-8?Q?default,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#2031?= Message-ID: <403889120.159.1549728401604.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 90.92 KB...] Generate 'tch_afs_7_95' test vector Generate 'tch_afs_7_4' test vector Generate 'tch_afs_6_7' test vector Generate 'tch_afs_5_9' test vector Generate 'tch_afs_5_15' test vector Generate 'tch_afs_4_75' test vector Generate 'tch_fr' test vector Generate 'tch_hr' test vector Generate 'tch_ahs_7_95' test vector Generate 'tch_ahs_7_4' test vector Generate 'tch_ahs_6_7' test vector Generate 'tch_ahs_5_9' test vector Generate 'tch_ahs_5_15' test vector Generate 'tch_ahs_4_75' test vector Generate 'mcs1_dl_hdr' test vector Generate 'mcs1_ul_hdr' test vector Generate 'mcs1' test vector Generate 'mcs2' test vector Generate 'mcs3' test vector Generate 'mcs4' test vector Generate 'mcs5_dl_hdr' test vector Generate 'mcs5_ul_hdr' test vector Generate 'mcs5' test vector Generate 'mcs6' test vector Generate 'mcs7_dl_hdr' test vector Generate 'mcs7_ul_hdr' test vector Generate 'mcs7' test vector Generate 'mcs8' test vector Generate 'mcs9' test vector Generation complete. make install-am make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' make[2]: Entering directory ' make[3]: Entering directory ' /bin/mkdir -p ' /bin/mkdir -p ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmo-release.mk ' /usr/bin/install -c osmo-release.sh ' /usr/bin/install -c -m 644 libosmocore.pc libosmocodec.pc libosmovty.pc libosmogsm.pc libosmogb.pc libosmoctrl.pc libosmocoding.pc libosmosim.pc ' make install-data-hook make[4]: Entering directory ' make[4]: Nothing to be done for 'install-data-hook'. make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' make[1]: Leaving directory ' + STOW_DIR= stow --restow libosmocore + osmo-build-dep.sh libosmo-abis =============================== libosmo-abis =============================== + mkdir -p + cd + osmo-deps.sh libosmo-abis + project=libosmo-abis + branch=master + git branch -a + grep -c remotes/origin/master$ + [ x1 != x0 ] + branch=origin/master + test -d libosmo-abis + cd libosmo-abis + git fetch --tags origin + git fetch origin + deps= osmo-clean-workspace.sh + chmod -R +w . + git checkout -f HEAD + git clean -dxf + [ -d ] + [ -d layer1-headers ] + git checkout -f origin/master HEAD is now at 3a2aa09... Log peer's port in accept callback + git rev-parse HEAD 3a2aa0975a4bdc005d424a70496ca85169a73817 + cd libosmo-abis + mkdir -p + autoreconf --install --force libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, '.'. libtoolize: copying file './ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'. libtoolize: copying file 'm4/libtool.m4' libtoolize: copying file 'm4/ltoptions.m4' libtoolize: copying file 'm4/ltsugar.m4' libtoolize: copying file 'm4/ltversion.m4' libtoolize: copying file 'm4/lt~obsolete.m4' configure.ac:20: installing './compile' configure.ac:22: installing './config.guess' configure.ac:22: installing './config.sub' configure.ac:8: installing './install-sh' configure.ac:8: installing './missing' src/Makefile.am: installing './depcomp' + ./configure --prefix= --with-systemdsystemunitdir= configure: WARNING: unrecognized options: --with-systemdsystemunitdir checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking whether make sets $(MAKE)... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /bin/dd checking how to truncate binary pipes... /bin/dd bs=4096 count=1 checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking if gcc supports -fvisibility=hidden... yes checking for LIBOSMOCORE... yes checking for LIBOSMOVTY... yes checking for LIBOSMOGSM... yes checking for ORTP... yes checking dahdi/user.h usability... no checking dahdi/user.h presence... no checking for dahdi/user.h... no configure: WARNING: DAHDI input driver will not be built CFLAGS="-g -O2 -Wall" CPPFLAGS=" -Wall" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmoabis.pc config.status: creating libosmotrau.pc config.status: creating include/Makefile config.status: creating src/Makefile config.status: creating tests/Makefile config.status: creating Makefile config.status: creating config.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands configure: WARNING: unrecognized options: --with-systemdsystemunitdir + make -j 8 install echo 0.6.0.2-3a2a > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory ' Making install in include make[2]: Entering directory ' make[3]: Entering directory ' make[3]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/abis/ipa.h osmocom/abis/trau_frame.h osmocom/abis/ipa_proxy.h osmocom/abis/ipaccess.h osmocom/abis/abis.h osmocom/abis/subchan_demux.h osmocom/abis/e1_input.h osmocom/abis/lapd.h osmocom/abis/lapd_pcap.h osmocom/abis/unixsocket_proto.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/trau/osmo_ortp.h ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in src make[2]: Entering directory ' CC e1_input.lo CC init.lo CC e1_input_vty.lo CC subchan_demux.lo CC ipa_proxy.lo CC trau_frame.lo CC input/dahdi.lo CC input/ipa.lo /bin/bash: line 2: 28387 Segmentation fault /bin/bash ../libtool --silent --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I.. -Wall -Wall -I -I -I -g -O2 -Wall -MT input/dahdi.lo -MD -MP -MF $depbase.Tpo -c -o input/dahdi.lo input/dahdi.c Makefile:527: recipe for target 'input/dahdi.lo' failed make[2]: *** [input/dahdi.lo] Error 139 make[2]: *** Waiting for unfinished jobs.... /bin/bash: line 2: 28339 Segmentation fault /bin/bash ../libtool --silent --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I.. -Wall -Wall -I -I -I -g -O2 -Wall -MT trau_frame.lo -MD -MP -MF $depbase.Tpo -c -o trau_frame.lo trau_frame.c /bin/bash: line 2: 28390 Segmentation fault /bin/bash ../libtool --silent --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I.. -Wall -Wall -I -I -I -g -O2 -Wall -MT input/ipa.lo -MD -MP -MF $depbase.Tpo -c -o input/ipa.lo input/ipa.c Makefile:527: recipe for target 'trau_frame.lo' failed make[2]: *** [trau_frame.lo] Error 139 Makefile:527: recipe for target 'input/ipa.lo' failed make[2]: *** [input/ipa.lo] Error 139 make[2]: Leaving directory ' Makefile:470: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:769: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Sat Feb 9 16:10:59 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 9 Feb 2019 16:10:59 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_mas?= =?UTF-8?Q?ter-osmo-iuh_=C2=BB_a1=3Ddefault,a2=3D?= =?UTF-8?Q?default,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#3082?= Message-ID: <1569163002.160.1549728659499.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 688.63 KB...] Didn't find any information element for message: RAB-SetupOrModifyItem-IEs Didn't find any information element for message: PrivateMessage-IEs Didn't find any information element for message: DirectTransferInformationItemIEs-RANAP-RelocInf Didn't find any information element for message: SRVCC-CSKeysRequestIEs Didn't find any information element for message: UeRadioCapabilityMatchRequestIEs sed -i 's,^#include "ranap_ies_defs.h",#include ,' ranap_encoder.c ranap_decoder.c sed -i 's,^#include "ranap_common.h",#include ,' ranap_encoder.c ranap_decoder.c ranap_ies_defs.h mv ranap_ies_defs.h ../include/osmocom/ranap/ touch ../src/gen_ranap.stamp make all-recursive make[3]: Entering directory ' Making all in hnbap make[4]: Entering directory ' CC Criticality.o CC ProcedureCode.o CC PrivateIE-ID.o CC Presence.o CC TriggeringMessage.o CC IE-Extensions.o CC ProtocolIE-ID.o CC Access-stratum-release-indicator.o CC AccessResult.o CC AltitudeAndDirection.o CC BackoffTimer.o CC BindingID.o CC Cause.o CC CauseRadioNetwork.o CC CauseProtocol.o CC CauseTransport.o CC CauseMisc.o CC CellIdentity.o CC CELL-FACHMobilitySupport.o CC Context-ID.o CC CriticalityDiagnostics.o CC CriticalityDiagnostics-IE-List.o CC CSG-ID.o CC CSG-Capability.o In file included from :8:0, from ../../include/osmocom/hnbap/CriticalityDiagnostics-IE-List.h:15, from ../../include/osmocom/hnbap/CriticalityDiagnostics.h:52, from CriticalityDiagnostics.c:8: ../../include/osmocom/hnbap/CriticalityDiagnostics-IE-List.h:31:23: warning: ?struct Member? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct Member { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../../include/osmocom/hnbap/CriticalityDiagnostics-IE-List.h:31:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct Member { ^~~~~~~~~~~~~ In file included from :8:0, from ../../include/osmocom/hnbap/CriticalityDiagnostics-IE-List.h:15, from CriticalityDiagnostics-IE-List.c:8: ../../include/osmocom/hnbap/CriticalityDiagnostics-IE-List.h:31:23: warning: ?struct Member? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct Member { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../../include/osmocom/hnbap/CriticalityDiagnostics-IE-List.h:31:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct Member { ^~~~~~~~~~~~~ CC CSGMembershipStatus.o CC CGI.o CC CI.o CC CN-DomainIndicator.o CC ESN.o CC GeographicalLocation.o CC GeographicalCoordinates.o CC GTP-TEI.o CC HNBCapacity.o CC HNB-Cell-Access-Mode.o CC HNB-Cell-Identifier.o CC HNB-GWResponse.o CC HNB-RNL-Identity.o CC HNBConfigInfo.o CC HNBConfigurationInformationProvided.o CC ConfigurationInformation.o CC HNBConfigurationInformationMissing.o CC HNB-Location-Information.o CC HNB-Identity-Info.o CC HNB-Identity.o CC IMSI.o CC IMEI.o CC IMSIDS41.o CC IMSIESN.o CC IP-Address.o CC Ipv4Address.o CC Ipv6Address.o CC Iurh-Signalling-TNL-AddressList.o CC LAC.o CC LAI.o CC MacroCoverageInformation.o CC MacroCellID.o CC MuxPortNumber.o CC NeighbourCellIdentityList.o CC NeighbourIdentity.o CC NeighbourInfoList.o CC AdditionalNeighbourInfoList.o CC NeighbourInfoRequestList.o CC NeighbourInfoRequestItem.o CC PLMNidentity.o CC PSC.o CC PTMSI.o CC PTMSIRAI.o CC RAB-ID.o CC RABList.o CC RABListItem.o CC RAC.o CC Registration-Cause.o CC RAI.o CC RNC-ID.o CC SAC.o CC S-RNTIPrefix.o CC TMSILAI.o CC TMSIDS41.o CC TransportInfo.o CC TransportLayerAddress.o CC Tunnel-Information.o CC TypeOfError.o CC UDP-Port-Number.o CC UE-Capabilities.o CC UTRANCellID.o CC UE-Identity.o CC Update-cause.o CC URAIdentityList.o CC URAIdentity.o CC U-RNTI.o CC UnknownU-RNTIIndication.o CC HNBAP-PDU.o CC InitiatingMessage.o CC SuccessfulOutcome.o CC UnsuccessfulOutcome.o CC HNBRegisterRequest.o CC HNBRegisterAccept.o CC HNBRegisterReject.o CC UERegisterRequest.o CC UERegisterAccept.o CC UERegisterReject.o CC UEDe-Register.o CC ErrorIndication.o CC HNBDe-Register.o CC CSGMembershipUpdate.o CC TNLUpdateResponse.o CC TNLUpdateRequest.o CC TNLUpdateFailure.o CC HNBConfigTransferRequest.o CC HNBConfigTransferResponse.o CC RelocationComplete.o CC U-RNTIQueryRequest.o CC U-RNTIQueryResponse.o CC PrivateMessage.o CC IE.o AR libosmo-asn1-hnbap.a ar: `u' modifier ignored since `D' is the default (see `U') make[4]: Leaving directory ' Making all in rua make[4]: Entering directory ' CC RUA_Criticality.o CC RUA_ProtocolIE-ID.o CC RUA_Presence.o CC RUA_ProcedureCode.o CC RUA_PrivateIE-ID.o CC RUA_TriggeringMessage.o CC RUA_IE-Extensions.o CC RUA_CN-DomainIndicator.o CC RUA_Establishment-Cause.o CC RUA_CSGMembershipStatus.o CC RUA_Context-ID.o CC RUA_IntraDomainNasNodeSelector.o CC RUA_Gsm-map-IDNNS.o CC RUA_Ansi-41-IDNNS.o CC RUA_RANAP-Message.o CC RUA_RoutingParameter.o CC RUA_CauseRadioNetwork.o CC RUA_Cause.o CC RUA_CauseTransport.o CC RUA_CauseProtocol.o CC RUA_CauseMisc.o CC RUA_CriticalityDiagnostics.o CC RUA_CriticalityDiagnostics-IE-List.o CC RUA_TypeOfError.o CC RUA_RUA-PDU.o In file included from :8:0, from ../../include/osmocom/rua/RUA_CriticalityDiagnostics-IE-List.h:14, from ../../include/osmocom/rua/RUA_CriticalityDiagnostics.h:17, from RUA_CriticalityDiagnostics.c:7: ../../include/osmocom/rua/RUA_CriticalityDiagnostics-IE-List.h:28:23: warning: ?struct Member? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct Member { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../../include/osmocom/rua/RUA_CriticalityDiagnostics-IE-List.h:28:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct Member { ^~~~~~~~~~~~~ In file included from :8:0, from ../../include/osmocom/rua/RUA_CriticalityDiagnostics-IE-List.h:14, from RUA_CriticalityDiagnostics-IE-List.c:7: ../../include/osmocom/rua/RUA_CriticalityDiagnostics-IE-List.h:28:23: warning: ?struct Member? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct Member { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../../include/osmocom/rua/RUA_CriticalityDiagnostics-IE-List.h:28:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct Member { ^~~~~~~~~~~~~ CC RUA_InitiatingMessage.o CC RUA_SuccessfulOutcome.o CC RUA_UnsuccessfulOutcome.o CC RUA_Connect.o CC RUA_DirectTransfer.o CC RUA_Disconnect.o CC RUA_ConnectionlessTransfer.o CC RUA_ErrorIndication.o CC RUA_PrivateMessage.o CC RUA_IE.o AR libosmo-asn1-rua.a ar: `u' modifier ignored since `D' is the default (see `U') make[4]: Leaving directory ' Making all in ranap make[4]: Entering directory ' CC RANAP_Criticality.lo CC RANAP_Presence.lo CC RANAP_PrivateIE-ID.lo CC RANAP_ProtocolExtensionID.lo CC RANAP_ProtocolIE-ID.lo CC RANAP_IE-Extensions.lo CC RANAP_TriggeringMessage.lo CC RANAP_ProcedureCode.lo /bin/bash: line 1: 8175 Segmentation fault /bin/bash ../../libtool --silent --tag=CC --mode=compile gcc -DPACKAGE_NAME=\"osmo-iuh\" -DPACKAGE_TARNAME=\"osmo-iuh\" -DPACKAGE_VERSION=\"0.4.0.1-04b5\" -DPACKAGE_STRING=\"osmo-iuh\ 0.4.0.1-04b5\" -DPACKAGE_BUGREPORT=\"openbsc at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-iuh\" -DVERSION=\"0.4.0.1-04b5\" -DSTDC_HEADERS=1 -I. -fsanitize=address -fsanitize=undefined -Wall -I../../include -I -I -I -g -O2 -fsanitize=address -fsanitize=undefined -Wall -MT RANAP_PrivateIE-ID.lo -MD -MP -MF .deps/RANAP_PrivateIE-ID.Tpo -c -o RANAP_PrivateIE-ID.lo RANAP_PrivateIE-ID.c Makefile:2506: recipe for target 'RANAP_PrivateIE-ID.lo' failed make[4]: *** [RANAP_PrivateIE-ID.lo] Error 139 make[4]: *** Waiting for unfinished jobs.... make[4]: Leaving directory ' Makefile:642: recipe for target 'all-recursive' failed make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory ' Makefile:454: recipe for target 'all' failed make[2]: *** [all] Error 2 make[2]: Leaving directory ' Makefile:458: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:382: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Sat Feb 9 16:36:27 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 9 Feb 2019 16:36:27 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal?= =?UTF-8?Q?_:_master-osmo-hlr_=C2=BB_a1=3Ddefault?= =?UTF-8?Q?,a2=3Ddefault,a3=3Ddefault,a4=3Ddefau?= =?UTF-8?Q?lt,osmocom-master-debian9_#2032?= In-Reply-To: <403889120.159.1549728401604.JavaMail.jenkins@jenkins.osmocom.org> References: <403889120.159.1549728401604.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <631452185.161.1549730187330.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Sat Feb 9 20:29:31 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Feb 2019 20:29:31 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC_Tests: Enable SGs interface by default In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12855 ) Change subject: MSC_Tests: Enable SGs interface by default ...................................................................... Patch Set 1: I had discussed this at some point last week on IRC: The problem with this is that it applies to *both* the tests running against master and against latest. As a result, I would expect all tests on latest to fail suddenly :/ We need a way to pass this information to the ttcn3-msc-test container from the outside. -- To view, visit https://gerrit.osmocom.org/12855 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6a07000ef52c9774fd603e2be914e6f2a6a3cce4 Gerrit-Change-Number: 12855 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-CC: Harald Welte Gerrit-Comment-Date: Sat, 09 Feb 2019 20:29:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 9 20:29:34 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Feb 2019 20:29:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC_Tests: Enable SGs interface by default In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12855 ) Change subject: MSC_Tests: Enable SGs interface by default ...................................................................... Patch Set 1: Code-Review-1 -- To view, visit https://gerrit.osmocom.org/12855 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6a07000ef52c9774fd603e2be914e6f2a6a3cce4 Gerrit-Change-Number: 12855 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-Comment-Date: Sat, 09 Feb 2019 20:29:34 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 9 20:29:51 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Feb 2019 20:29:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC_Tests: make sure SGs tests don't interfere In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12856 ) Change subject: MSC_Tests: make sure SGs tests don't interfere ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12856 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I417d9c5f0fbab7483d1b31dc20a99f63ee1bbfe6 Gerrit-Change-Number: 12856 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-Comment-Date: Sat, 09 Feb 2019 20:29:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 9 21:07:21 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Feb 2019 21:07:21 +0000 Subject: Change in osmo-bts[master]: OML: Properly reject short messages and truncate over-long messages Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12873 Change subject: OML: Properly reject short messages and truncate over-long messages ...................................................................... OML: Properly reject short messages and truncate over-long messages For OML, what matters is the length indicated in the OML message header. If we don't have sufficient bytes, reject the message and send a failure event report. If we have more bytes, truncate the message at the number of bytes indicated in the OML length header. Change-Id: Ib98f0d7c2cff9172714ed18667c02564540d65d7 --- M src/common/oml.c 1 file changed, 15 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/73/12873/1 diff --git a/src/common/oml.c b/src/common/oml.c index 4697086..1de8054 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1438,6 +1438,21 @@ return -EIO; } + if (msgb_l3len(msg) < oh->length) { + oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG, + "Short OML message: %u < %u\n", + msgb_l3len(msg), oh->length); + msgb_free(msg); + return -EIO; + } + + if (msgb_l3len(msg) > oh->length) { + LOGP(DOML, LOGL_NOTICE, "OML message with %u extraneous bytes at end: %s\n", + msgb_l3len(msg) - oh->length, msgb_hexdump(msg)); + /* remove extra bytes at end */ + msgb_l3trim(msg, oh->length); + } + switch (oh->mdisc) { case ABIS_OM_MDISC_FOM: if (msgb_l2len(msg) < sizeof(*oh)) { -- To view, visit https://gerrit.osmocom.org/12873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib98f0d7c2cff9172714ed18667c02564540d65d7 Gerrit-Change-Number: 12873 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 9 22:03:06 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 9 Feb 2019 22:03:06 +0000 Subject: Change in osmo-bts[master]: OML: Ensure minimum required attributes are set before accepting OPSTART Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12874 Change subject: OML: Ensure minimum required attributes are set before accepting OPSTART ...................................................................... OML: Ensure minimum required attributes are set before accepting OPSTART There are some vital configuration bits such as ARFCN, BSIC, channel config, .. for which there are no reasonable defaults. As a result, the BSC must set those attributes before issuing OPSTART. Prior to this patch we would blindly accept OPSTART and then transmit on ARFCN 0, which is definitely not the intended behavior. Closes: OS#3789 Change-Id: I3a818f8eceb6abef1b20d2b3892a749dbc9e4b05 --- M src/common/oml.c 1 file changed, 53 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/74/12874/1 diff --git a/src/common/oml.c b/src/common/oml.c index 1de8054..560c262 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -993,6 +993,54 @@ return bts_model_apply_oml(bts, msg, tp_merged, NM_OC_CHANNEL, ts); } +/* return a list of mandatory attributes for given object class */ +static unsigned int get_mand_attr_for_obj_class(uint8_t obj_class, const uint8_t **attr) +{ + static const uint8_t bts_mand_attr[] = { NM_ATT_BCCH_ARFCN, NM_ATT_BSIC }; + static const uint8_t trx_mand_attr[] = { NM_ATT_ARFCN_LIST, NM_ATT_RF_MAXPOWR_R }; + static const uint8_t ts_mand_attr[] = { NM_ATT_CHAN_COMB }; + static const uint8_t nse_mand_attr[] = { NM_ATT_IPACC_NSEI }; + static const uint8_t cell_mand_attr[] = { NM_ATT_IPACC_BVCI, NM_ATT_IPACC_RAC }; + static const uint8_t nsvc_mand_attr[] = { NM_ATT_IPACC_NSVCI, NM_ATT_IPACC_NS_LINK_CFG }; + + switch (obj_class) { + case NM_OC_BTS: + *attr = bts_mand_attr; + return sizeof(bts_mand_attr); + case NM_OC_RADIO_CARRIER: + *attr = trx_mand_attr; + return sizeof(trx_mand_attr); + case NM_OC_CHANNEL: + *attr = ts_mand_attr; + return sizeof(ts_mand_attr); + case NM_OC_GPRS_NSE: + *attr = nse_mand_attr; + return sizeof(nse_mand_attr); + case NM_OC_GPRS_CELL: + *attr = cell_mand_attr; + return sizeof(cell_mand_attr); + case NM_OC_GPRS_NSVC: + *attr = nsvc_mand_attr; + return sizeof(nsvc_mand_attr); + default: + return 0; + } +} + +/* Verify if a given OML MO has the minimal attributes set to enable it */ +static bool oml_mo_has_minimal_attributes(const struct gsm_abis_mo *mo) +{ + unsigned int i; + const uint8_t *mand_attr = NULL; + unsigned int num_mand_attr = get_mand_attr_for_obj_class(mo->obj_class, &mand_attr); + + for (i = 0; i < num_mand_attr; i++) { + if (!mo->nm_attr || !TLVP_PRESENT(mo->nm_attr, mand_attr[i])) + return false; + } + return true; +} + /* 8.9.2 Opstart has been received */ static int oml_rx_opstart(struct gsm_bts *bts, struct msgb *msg) { @@ -1015,7 +1063,11 @@ return oml_mo_opstart_ack(mo); } - /* Step 3: Ask BTS driver to apply the opstart */ + /* Step 3: Check if all mandatory minimum attributes have been set */ + if (!oml_mo_has_minimal_attributes(mo)) + return oml_fom_ack_nack(msg, NM_NACK_CANT_PERFORM); + + /* Step 4: Ask BTS driver to apply the opstart */ return bts_model_opstart(bts, mo, obj); } -- To view, visit https://gerrit.osmocom.org/12874 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I3a818f8eceb6abef1b20d2b3892a749dbc9e4b05 Gerrit-Change-Number: 12874 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sun Feb 10 00:19:23 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sun, 10 Feb 2019 00:19:23 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal?= =?UTF-8?Q?_:_master-osmo-iuh_=C2=BB_a1=3Ddefault?= =?UTF-8?Q?,a2=3Ddefault,a3=3Ddefault,a4=3Ddefau?= =?UTF-8?Q?lt,osmocom-master-debian9_#3083?= In-Reply-To: <1569163002.160.1549728659499.JavaMail.jenkins@jenkins.osmocom.org> References: <1569163002.160.1549728659499.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <493767533.162.1549757963398.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Sun Feb 10 13:07:18 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 10 Feb 2019 13:07:18 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/11992 ) Change subject: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions ...................................................................... Patch Set 10: (4 comments) https://gerrit.osmocom.org/#/c/11992/10//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/11992/10//COMMIT_MSG at 9 PS10, Line 9: ESME > EUSE? Ahh, sure. Thanks! https://gerrit.osmocom.org/#/c/11992/10/include/osmocom/msc/transaction.h File include/osmocom/msc/transaction.h: https://gerrit.osmocom.org/#/c/11992/10/include/osmocom/msc/transaction.h at 89 PS10, Line 89: watchdog; > in the CC sub-struct above we call it "timer_guard". [?] Done. https://gerrit.osmocom.org/#/c/11992/10/src/libmsc/gsm_09_11.c File src/libmsc/gsm_09_11.c: https://gerrit.osmocom.org/#/c/11992/10/src/libmsc/gsm_09_11.c at 153 PS10, Line 153: if (conn->network->ncss_guard_timeout > 0) { > This seems like possible race condition if you disable the ncss_guard_timeout from VTY while USSD se [?] Hmm, I am not sure if we really need to care about changing the configuration at run-time... https://gerrit.osmocom.org/#/c/11992/10/src/libmsc/gsm_09_11.c at 156 PS10, Line 156: } > else if (osmo_timer_pending(&trans->ss.watchdog)) { [?] This solution wouldn't help if the timer is disabled from the VTY, but there is no any activity on a given session. A proper solution would be to reschedule all NCSS timers from the VTY command handler... -- To view, visit https://gerrit.osmocom.org/11992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icf4d87c45e90324764073e8230e0fb9cb96dd9cb Gerrit-Change-Number: 11992 Gerrit-PatchSet: 10 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-CC: Stefan Sperling Gerrit-Comment-Date: Sun, 10 Feb 2019 13:07:18 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 10 13:08:42 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 10 Feb 2019 13:08:42 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_80.c: use gsm0480_create_release_complete() In-Reply-To: References: Message-ID: Hello daniel, Max, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12840 to look at the new patch set (#3). Change subject: libmsc/gsm_04_80.c: use gsm0480_create_release_complete() ...................................................................... libmsc/gsm_04_80.c: use gsm0480_create_release_complete() The previous implementation of msc_send_ussd_release_complete() was based on gsm0480_create_ussd_release_complete(), that doesn't allow to specify GSM 04.07 transaction identifier. The ability to specify particular transaction identifier is required for handling multiple SS/USSD transactions. Change-Id: Id2975c3383f18e83124ba38927c03980d67ddadb Depends Change-Id: (libosmocore) Ie3ac85fcef90a5e532334ba3482804d5305c88d7 --- M include/osmocom/msc/gsm_04_80.h M src/libmsc/gsm_04_80.c M src/libmsc/msc_vty.c 3 files changed, 8 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/40/12840/3 -- To view, visit https://gerrit.osmocom.org/12840 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Id2975c3383f18e83124ba38927c03980d67ddadb Gerrit-Change-Number: 12840 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 10 13:08:42 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 10 Feb 2019 13:08:42 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_80.c: add msc_send_ussd_release_complete_cause() In-Reply-To: References: Message-ID: Hello daniel, Max, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12843 to look at the new patch set (#3). Change subject: libmsc/gsm_04_80.c: add msc_send_ussd_release_complete_cause() ...................................................................... libmsc/gsm_04_80.c: add msc_send_ussd_release_complete_cause() According to GSM 04.80, section 2.5.1, Release complete message may have an optional Cause IE. Let's add a new function, that allows to specify cause location and value. This function will be used by the upcoming changes. Change-Id: I3b9e8e4f473d113d5b9e9e5d33f7914202077203 Depends Change-Id: (libosmocore) Ie3ac85fcef90a5e532334ba3482804d5305c88d7 --- M include/osmocom/msc/gsm_04_80.h M src/libmsc/gsm_04_80.c 2 files changed, 31 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/43/12843/3 -- To view, visit https://gerrit.osmocom.org/12843 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I3b9e8e4f473d113d5b9e9e5d33f7914202077203 Gerrit-Change-Number: 12843 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 10 13:08:42 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 10 Feb 2019 13:08:42 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions In-Reply-To: References: Message-ID: Hello daniel, Max, Neels Hofmeyr, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/11992 to look at the new patch set (#11). Change subject: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions ...................................................................... libmsc/gsm_09_11.c: implement guard timer for NCSS sessions It may happen that either the MS or an EUSE would become unresponsive during a call independent SS session, e.g. due to a bug, or a dropped message. In such cases, the corresponding transaction would remain unfreed forever. This change introduces a guard timer, that prevents keeping 'stalled' NCSS sessions forever. As soon as it expires, both sides (i.e. MS and EUSE) are getting notified, and the transaction is being released. By default, the timer expires after 30 seconds. As soon as either the MS, or an EUSE initiates any activity, the watchdog timer is rescheduled. The timeout value can be configured from the VTY: msc ... ! Use 0 to disable this timer ncss guard-timeout 30 This change makes TC_lu_and_ss_session_timeout pass. Change-Id: Icf4d87c45e90324764073e8230e0fb9cb96dd9cb Related Change-Id: (TTCN) I3e1791773d56617172ae27a46889a1ae4d400e2f Related: OS#3655 --- M include/osmocom/msc/gsm_data.h M include/osmocom/msc/transaction.h M src/libmsc/gsm_09_11.c M src/libmsc/msc_vty.c M src/libmsc/osmo_msc.c M tests/test_nodes.vty 6 files changed, 86 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/92/11992/11 -- To view, visit https://gerrit.osmocom.org/11992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Icf4d87c45e90324764073e8230e0fb9cb96dd9cb Gerrit-Change-Number: 11992 Gerrit-PatchSet: 11 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-CC: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sun Feb 10 15:10:07 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sun, 10 Feb 2019 15:10:07 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#397?= In-Reply-To: <1147595962.158.1549725006997.JavaMail.jenkins@jenkins.osmocom.org> References: <1147595962.158.1549725006997.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1098488699.174.1549811407031.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.94 KB...] checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs mkdir .libs mkdir .libs mkdir .libs mkdir: cannot create directory '.libs': File exists mkdir: cannot create directory '.libs': File exists mkdir: cannot create directory '.libs': File exists gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Sun Feb 10 16:42:13 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sun, 10 Feb 2019 16:42:13 +0000 Subject: Change in osmo-bts[master]: OML: Return attributes in ACK/NACK messages In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12863 ) Change subject: OML: Return attributes in ACK/NACK messages ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifb305fe75f8305bb04872f26492b8b1bb8c27f49 Gerrit-Change-Number: 12863 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sun, 10 Feb 2019 16:42:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 10 16:45:41 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sun, 10 Feb 2019 16:45:41 +0000 Subject: Change in osmo-bts[master]: OML: Don't overwrite MO instance before oml_tx_failure_event_rep() In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12865 ) Change subject: OML: Don't overwrite MO instance before oml_tx_failure_event_rep() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12865 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Idfb80ccd6dd485d52dc006867fae3dde3fb005f3 Gerrit-Change-Number: 12865 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sun, 10 Feb 2019 16:45:41 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 10 16:46:52 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sun, 10 Feb 2019 16:46:52 +0000 Subject: Change in osmo-bts[master]: OML: remove double-logging on oml_tx_failure_event_rep() In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12866 ) Change subject: OML: remove double-logging on oml_tx_failure_event_rep() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12866 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib3fd06b3266d896aebeed4ebe42ac71ff173bb5c Gerrit-Change-Number: 12866 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sun, 10 Feb 2019 16:46:52 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 10 16:53:31 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sun, 10 Feb 2019 16:53:31 +0000 Subject: Change in osmo-bts[master]: WIP: send proper OML alert in case of errors In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12867 ) Change subject: WIP: send proper OML alert in case of errors ...................................................................... Patch Set 1: Why is this one marked as WIP? -- To view, visit https://gerrit.osmocom.org/12867 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5b19b82a4874617c7c584cf3eac55eb9c756710a Gerrit-Change-Number: 12867 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Sun, 10 Feb 2019 16:53:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 10 16:54:15 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sun, 10 Feb 2019 16:54:15 +0000 Subject: Change in osmo-bts[master]: OML: Reduce code duplication in down_mom/down_fom In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12868 ) Change subject: OML: Reduce code duplication in down_mom/down_fom ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12868 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ibe6c79e95405b13d041047549d2ffa39aa355eb2 Gerrit-Change-Number: 12868 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sun, 10 Feb 2019 16:54:15 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 10 16:55:15 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sun, 10 Feb 2019 16:55:15 +0000 Subject: Change in osmo-bts[master]: OML: Report short messages even for invalid TRX numbers in down_fom() In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12869 ) Change subject: OML: Report short messages even for invalid TRX numbers in down_fom() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12869 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I65b57d3fc714814db3ae3fd34398f307413fece8 Gerrit-Change-Number: 12869 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sun, 10 Feb 2019 16:55:15 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 10 16:56:01 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sun, 10 Feb 2019 16:56:01 +0000 Subject: Change in osmo-bts[master]: OML: Use 'const struct abis_oml_mo *' whenever users only read In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12870 ) Change subject: OML: Use 'const struct abis_oml_mo *' whenever users only read ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12870 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5a61e6d1b4e5e083bb24017166186dc87d035cd0 Gerrit-Change-Number: 12870 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sun, 10 Feb 2019 16:56:01 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 10 16:58:45 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sun, 10 Feb 2019 16:58:45 +0000 Subject: Change in osmo-bts[master]: OML: Reject segmented OML messages In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12871 ) Change subject: OML: Reject segmented OML messages ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12871 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Idd42cf4edc1bf9ab366853bd9b0f7afd9c060910 Gerrit-Change-Number: 12871 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sun, 10 Feb 2019 16:58:45 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 10 16:59:35 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sun, 10 Feb 2019 16:59:35 +0000 Subject: Change in osmo-bts[master]: OML: Send Failure Event Report on short OML messages In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12872 ) Change subject: OML: Send Failure Event Report on short OML messages ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12872 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4a1b64aa35fa7051d9eb190f3f6f5ea0b28bab8f Gerrit-Change-Number: 12872 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sun, 10 Feb 2019 16:59:35 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 10 17:06:05 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sun, 10 Feb 2019 17:06:05 +0000 Subject: Change in osmo-bts[master]: OML: Properly reject short messages and truncate over-long messages In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12873 ) Change subject: OML: Properly reject short messages and truncate over-long messages ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12873/1/src/common/oml.c File src/common/oml.c: https://gerrit.osmocom.org/#/c/12873/1/src/common/oml.c at 1453 PS1, Line 1453: msgb_l3trim(msg, oh->length); That's weird imho, I'd drop it with oml_tx_failure_event_rep(), since attempting decoding potentially corrupted message could end up in tragedy. -- To view, visit https://gerrit.osmocom.org/12873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib98f0d7c2cff9172714ed18667c02564540d65d7 Gerrit-Change-Number: 12873 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Sun, 10 Feb 2019 17:06:05 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 10 17:10:49 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sun, 10 Feb 2019 17:10:49 +0000 Subject: Change in osmo-bts[master]: OML: Ensure minimum required attributes are set before accepting OPSTART In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12874 ) Change subject: OML: Ensure minimum required attributes are set before accepting OPSTART ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12874/1/src/common/oml.c File src/common/oml.c: https://gerrit.osmocom.org/#/c/12874/1/src/common/oml.c at 1009 PS1, Line 1009: return sizeof(bts_mand_attr); picky: due to being a list of uint8_t, sizeof() is same as num of elements, but it'd be more correct semantically to use OSMO_ARRAY_SIZE() or alike, specially if somebody decides later on to use another int data type for this list in the future. -- To view, visit https://gerrit.osmocom.org/12874 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3a818f8eceb6abef1b20d2b3892a749dbc9e4b05 Gerrit-Change-Number: 12874 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Sun, 10 Feb 2019 17:10:49 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 10 20:05:21 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Feb 2019 20:05:21 +0000 Subject: Change in osmo-bts[master]: OML: Return attributes in ACK/NACK messages In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12863 ) Change subject: OML: Return attributes in ACK/NACK messages ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifb305fe75f8305bb04872f26492b8b1bb8c27f49 Gerrit-Change-Number: 12863 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sun, 10 Feb 2019 20:05:21 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 10 20:05:31 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Feb 2019 20:05:31 +0000 Subject: Change in osmo-bts[master]: OML: Don't overwrite MO instance before oml_tx_failure_event_rep() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12865 ) Change subject: OML: Don't overwrite MO instance before oml_tx_failure_event_rep() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12865 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Idfb80ccd6dd485d52dc006867fae3dde3fb005f3 Gerrit-Change-Number: 12865 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sun, 10 Feb 2019 20:05:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 10 20:05:36 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Feb 2019 20:05:36 +0000 Subject: Change in osmo-bts[master]: OML: remove double-logging on oml_tx_failure_event_rep() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12866 ) Change subject: OML: remove double-logging on oml_tx_failure_event_rep() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12866 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib3fd06b3266d896aebeed4ebe42ac71ff173bb5c Gerrit-Change-Number: 12866 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sun, 10 Feb 2019 20:05:36 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 10 20:05:46 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Feb 2019 20:05:46 +0000 Subject: Change in osmo-bts[master]: OML: Ensure MOs are initialized with valid "Administrative State' In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12864 ) Change subject: OML: Ensure MOs are initialized with valid "Administrative State' ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/12864 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I03f8a4b08b266cd40036076c76f9dc7e8bf08da2 Gerrit-Change-Number: 12864 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sun, 10 Feb 2019 20:05:46 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 10 20:05:54 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Feb 2019 20:05:54 +0000 Subject: Change in osmo-bts[master]: OML: Return attributes in ACK/NACK messages In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12863 ) Change subject: OML: Return attributes in ACK/NACK messages ...................................................................... OML: Return attributes in ACK/NACK messages As per 3GPP TS 12.21 Section 8.2 "ACK messages shall return all the attributes in the original message". OsmoBTS fails to do so but simply sends no attributes at all in the ACK. TS 12.21 is a bit vague whether or not the attributes shall also be achoed in the NACK. Let's do it and append the CAUSE in this case. Closes: OS#3788 Change-Id: Ifb305fe75f8305bb04872f26492b8b1bb8c27f49 --- M src/common/oml.c 1 file changed, 8 insertions(+), 11 deletions(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/common/oml.c b/src/common/oml.c index ce59865..6952d75 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -425,26 +425,19 @@ * contained in 'msg'. ACK is sent if cause == 0; NACK otherwise */ int oml_fom_ack_nack(struct msgb *old_msg, uint8_t cause) { - struct abis_om_hdr *old_oh = msgb_l2(old_msg); - struct abis_om_fom_hdr *old_foh = msgb_l3(old_msg); struct msgb *msg; struct abis_om_fom_hdr *foh; - int is_manuf = 0; - msg = oml_msgb_alloc(); + msg = msgb_copy(old_msg, "OML_fom_ack_nack"); if (!msg) return -ENOMEM; - /* make sure to respond with MANUF if request was MANUF */ - if (old_oh->mdisc == ABIS_OM_MDISC_MANUF) - is_manuf = 1; + /* remove any l2/l1 that may be present in copy */ + msgb_pull_to_l2(msg); msg->trx = old_msg->trx; - /* copy over old FOM-Header and later only change the msg_type */ - msg->l3h = msgb_push(msg, sizeof(*foh)); foh = (struct abis_om_fom_hdr *) msg->l3h; - memcpy(foh, old_foh, sizeof(*foh)); /* alter message type */ if (cause) { @@ -453,12 +446,16 @@ foh->msg_type += 2; /* nack */ /* add cause */ msgb_tv_put(msg, NM_ATT_NACK_CAUSES, cause); + /* update the length as we just made the message larger */ + struct abis_om_hdr *omh = (struct abis_om_hdr *) msgb_l2(msg); + omh->length = msgb_l3len(msg); } else { LOGP(DOML, LOGL_DEBUG, "Sending FOM ACK.\n"); foh->msg_type++; /* ack */ } - return oml_send_msg(msg, is_manuf); + /* we cannot use oml_send_msg() as we already have the OML header */ + return abis_oml_sendmsg(msg); } /* -- To view, visit https://gerrit.osmocom.org/12863 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ifb305fe75f8305bb04872f26492b8b1bb8c27f49 Gerrit-Change-Number: 12863 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 10 20:05:55 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Feb 2019 20:05:55 +0000 Subject: Change in osmo-bts[master]: OML: Ensure MOs are initialized with valid "Administrative State' In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12864 ) Change subject: OML: Ensure MOs are initialized with valid "Administrative State' ...................................................................... OML: Ensure MOs are initialized with valid "Administrative State' When osmo-bts connects to the BSC, it sends a ton of "State Change Event Report" messages indicating the Operational State (NULL), Availability status (power off) and [as an osmocom extension] also the Administrative State. However, the value of the administrative state is "0", which is not defined in TS 12.21 Section 9.4.4 Change-Id: I03f8a4b08b266cd40036076c76f9dc7e8bf08da2 Closes: OS#3785 --- M src/common/gsm_data_shared.c 1 file changed, 4 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/common/gsm_data_shared.c b/src/common/gsm_data_shared.c index 2d9af78..58b2503 100644 --- a/src/common/gsm_data_shared.c +++ b/src/common/gsm_data_shared.c @@ -38,6 +38,7 @@ { mo->nm_state.operational = NM_OPSTATE_NULL; mo->nm_state.availability = NM_AVSTATE_POWER_OFF; + mo->nm_state.administrative = NM_STATE_LOCKED; } static void gsm_mo_init(struct gsm_abis_mo *mo, struct gsm_bts *bts, @@ -222,10 +223,12 @@ trx->bts = bts; trx->nr = bts->num_trx++; - trx->mo.nm_state.administrative = NM_STATE_UNLOCKED; gsm_mo_init(&trx->mo, bts, NM_OC_RADIO_CARRIER, bts->nr, trx->nr, 0xff); + /* FIXME: Why would the TRX come up unlocked? */ + trx->mo.nm_state.administrative = NM_STATE_UNLOCKED; + gsm_mo_init(&trx->bb_transc.mo, bts, NM_OC_BASEB_TRANSC, bts->nr, trx->nr, 0xff); -- To view, visit https://gerrit.osmocom.org/12864 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I03f8a4b08b266cd40036076c76f9dc7e8bf08da2 Gerrit-Change-Number: 12864 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 10 20:05:55 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Feb 2019 20:05:55 +0000 Subject: Change in osmo-bts[master]: OML: Don't overwrite MO instance before oml_tx_failure_event_rep() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12865 ) Change subject: OML: Don't overwrite MO instance before oml_tx_failure_event_rep() ...................................................................... OML: Don't overwrite MO instance before oml_tx_failure_event_rep() In Change-Id Ic163bcfb6361a8ebd39e0bc0f238ef51e2cb214e we introduced several additional calls to oml_tx_failure_event_rep() during OML messaeg processing. However, for some reason, we *overwrite* the bts_nt/trx_nr/ts_nr of the TRX MO. This is clearly wrong. The "address" of a managed object doesn't change at runtime! Change-Id: Idfb80ccd6dd485d52dc006867fae3dde3fb005f3 --- M src/common/oml.c 1 file changed, 1 insertion(+), 11 deletions(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/common/oml.c b/src/common/oml.c index 6952d75..6d8bc4b 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1078,12 +1078,8 @@ foh->msg_type)); LOGPC(DOML, LOGL_ERROR, "\n"); trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr); - if (trx) { - trx->mo.obj_inst.bts_nr = 0; - trx->mo.obj_inst.trx_nr = foh->obj_inst.trx_nr; - trx->mo.obj_inst.ts_nr = 0xff; + if (trx) mo = &trx->mo; - } oml_tx_failure_event_rep(mo, OSMO_EVT_MAJ_UKWN_MSG, form, foh->obj_inst.bts_nr, get_value_string(abis_nm_msgtype_names, foh->msg_type)); @@ -1103,9 +1099,6 @@ LOGP(DOML, LOGL_NOTICE, "Formatted O&M message too short\n"); trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr); if (trx) { - trx->mo.obj_inst.bts_nr = 0; - trx->mo.obj_inst.trx_nr = foh->obj_inst.trx_nr; - trx->mo.obj_inst.ts_nr = 0xff; oml_tx_failure_event_rep(&trx->mo, OSMO_EVT_MAJ_UKWN_MSG, "Formatted O&M message too short"); } @@ -1150,9 +1143,6 @@ foh->msg_type); trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr); if (trx) { - trx->mo.obj_inst.bts_nr = 0; - trx->mo.obj_inst.trx_nr = foh->obj_inst.trx_nr; - trx->mo.obj_inst.ts_nr = 0xff; oml_tx_failure_event_rep(&trx->mo, OSMO_EVT_MAJ_UKWN_MSG, "unknown Formatted O&M " "msg_type 0x%02x", -- To view, visit https://gerrit.osmocom.org/12865 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Idfb80ccd6dd485d52dc006867fae3dde3fb005f3 Gerrit-Change-Number: 12865 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 10 20:05:56 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Feb 2019 20:05:56 +0000 Subject: Change in osmo-bts[master]: OML: remove double-logging on oml_tx_failure_event_rep() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12866 ) Change subject: OML: remove double-logging on oml_tx_failure_event_rep() ...................................................................... OML: remove double-logging on oml_tx_failure_event_rep() When we send an OML failure event report using oml_tx_failure_event_rep(), the function itself will not only send the report to the BSC but also log it. So there's no need to both have an explicit LOGP() and a call to oml_tx_failure_event_rep(). Change-Id: Ib3fd06b3266d896aebeed4ebe42ac71ff173bb5c --- M src/common/oml.c 1 file changed, 0 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/common/oml.c b/src/common/oml.c index 6d8bc4b..82d12c7 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -558,7 +558,6 @@ } if (!TLVP_PRES_LEN(&tp, NM_ATT_LIST_REQ_ATTR, 1)) { - LOGP(DOML, LOGL_ERROR, "O&M Get Attributes message without Attribute List?!\n"); oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UNSUP_ATTR, "Get Attribute without Attribute List"); return oml_fom_ack_nack(msg, NM_NACK_INCORR_STRUCT); } @@ -1074,9 +1073,6 @@ "Unexpected BTS %d in manufacturer O&M %s (exp. 0 or 0xFF)"; if (foh->obj_inst.bts_nr != 0 && foh->obj_inst.bts_nr != 0xff) { - LOGP(DOML, LOGL_ERROR, form, foh->obj_inst.bts_nr, get_value_string(abis_nm_msgtype_names, - foh->msg_type)); - LOGPC(DOML, LOGL_ERROR, "\n"); trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr); if (trx) mo = &trx->mo; @@ -1139,8 +1135,6 @@ ret = oml_rx_get_attr(bts, msg); break; default: - LOGP(DOML, LOGL_INFO, "unknown Formatted O&M msg_type 0x%02x\n", - foh->msg_type); trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr); if (trx) { oml_tx_failure_event_rep(&trx->mo, OSMO_EVT_MAJ_UKWN_MSG, -- To view, visit https://gerrit.osmocom.org/12866 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib3fd06b3266d896aebeed4ebe42ac71ff173bb5c Gerrit-Change-Number: 12866 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 10 22:23:59 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 10 Feb 2019 22:23:59 +0000 Subject: Change in osmo-bts[master]: OML: Properly reject short messages and truncate over-long messages In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12873 ) Change subject: OML: Properly reject short messages and truncate over-long messages ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12873/1/src/common/oml.c File src/common/oml.c: https://gerrit.osmocom.org/#/c/12873/1/src/common/oml.c at 1453 PS1, Line 1453: msgb_l3trim(msg, oh->length); > That's weird imho, I'd drop it with oml_tx_failure_event_rep(), since attempting decoding potentiall [?] To me it's quite clear: The OML protocol states there's 10 bytes of payload (IEs), and that's what we have to parse. Extra data at the end of the message should not concern us. In Ethernet, small frames get a trailer at the end. In LLC, there's a CRC at the end. I think this is generally customary that you use the length value from the protocol/header you currently work on and ignore any extra data at the end. -- To view, visit https://gerrit.osmocom.org/12873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib98f0d7c2cff9172714ed18667c02564540d65d7 Gerrit-Change-Number: 12873 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Sun, 10 Feb 2019 22:23:59 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 10 22:30:01 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Sun, 10 Feb 2019 22:30:01 +0000 Subject: Change in libosmo-netif[master]: Add stream client/server test In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12837 ) Change subject: Add stream client/server test ...................................................................... Patch Set 18: Code-Review+2 > I don't really understand why you need the -no-install flag, but then it's just to compile a test, so... In theory autogenerated libtool wrapper script should be equivalent. Not sure why it made a difference in my case, but using static binary instead of srapper script (effect of -no-install flag) seems like a safe bet anyway. -- To view, visit https://gerrit.osmocom.org/12837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I336f79970982ed8e1d73b73d54fa4c27ba8bce8e Gerrit-Change-Number: 12837 Gerrit-PatchSet: 18 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Sun, 10 Feb 2019 22:30:01 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 10 22:30:04 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Sun, 10 Feb 2019 22:30:04 +0000 Subject: Change in libosmo-netif[master]: Add stream client/server test In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12837 ) Change subject: Add stream client/server test ...................................................................... Add stream client/server test Previously stream client and server code were only used in examples which means regressions could be easily introduced unnoticed until they trigger bugs in external code which relies on osmo_stream_*() Fix this by adding basic client-server interaction tests with and without reconnection. Change-Id: I336f79970982ed8e1d73b73d54fa4c27ba8bce8e --- M .gitignore M tests/Makefile.am A tests/stream/stream_test.c A tests/stream/stream_test.err A tests/stream/stream_test.ok M tests/testsuite.at 6 files changed, 418 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified osmith: Looks good to me, but someone else must approve daniel: Looks good to me, but someone else must approve Max: Looks good to me, approved diff --git a/.gitignore b/.gitignore index 672708d..e2f2fb9 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,4 @@ jibuf_test jibuf_tool osmux_test2 +stream_test diff --git a/tests/Makefile.am b/tests/Makefile.am index 03a7a3c..c3628ac 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,7 +1,7 @@ AM_CFLAGS = -Wall -I$(top_srcdir)/include $(LIBOSMOCORE_CFLAGS) -g AM_LDFLAGS = $(LIBOSMOCORE_LDFLAGS) -check_PROGRAMS = osmux/osmux_test osmux/osmux_test2 jibuf/jibuf_test +check_PROGRAMS = osmux/osmux_test osmux/osmux_test2 stream/stream_test jibuf/jibuf_test check_HEADERS = osmux_osmux_test_SOURCES = osmux/osmux_test.c @@ -10,6 +10,10 @@ osmux_osmux_test2_SOURCES = osmux/osmux_test2.c osmux_osmux_test2_LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS) $(top_builddir)/src/libosmonetif.la +stream_stream_test_SOURCES = stream/stream_test.c +stream_stream_test_LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS) $(top_builddir)/src/libosmonetif.la +stream_stream_test_LDFLAGS = -no-install + jibuf_jibuf_test_SOURCES = jibuf/jibuf_test.c jibuf_jibuf_test_LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS) $(top_builddir)/src/libosmonetif.la @@ -57,6 +61,8 @@ EXTRA_DIST = testsuite.at $(srcdir)/package.m4 $(TESTSUITE) \ osmux/osmux_test.ok \ osmux/osmux_test2.ok \ + stream/stream_test.ok \ + stream/stream_test.err \ jibuf/jibuf_test.ok DISTCLEANFILES = atconfig diff --git a/tests/stream/stream_test.c b/tests/stream/stream_test.c new file mode 100644 index 0000000..1a0c555 --- /dev/null +++ b/tests/stream/stream_test.c @@ -0,0 +1,309 @@ +/* + * (C) 2019 by sysmocom - s.f.m.c. GmbH. + * Author: Max Suraev + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + */ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include + +#define DSTREAMTEST 0 +struct log_info_cat osmo_stream_test_cat[] = { + [DSTREAMTEST] = { + .name = "DSTREAMTEST", + .description = "STREAM test", + .enabled = 1, .loglevel = LOGL_INFO, + }, +}; + +const struct log_info osmo_stream_test_log_info = { + .filter_fn = NULL, + .cat = osmo_stream_test_cat, + .num_cat = ARRAY_SIZE(osmo_stream_test_cat), +}; + +static struct msgb *make_msgb(const char *m) +{ + struct msgb *msg = msgb_alloc(512, "STREAM test"); + if (!msg) { + printf("Unable to allocate message\n"); + return NULL; + } + + if (m) + msgb_printf(msg, "%s", m); + + return msg; +} + +#define ASTR(rec) ((rec) ? "autoreconnecting" : "non-reconnecting") + +/* client defs */ +#define LOGCLI(cli, fmt, args...) \ + printf("[%s] Client's %s(): " fmt, osmo_stream_cli_get_data(cli) ? "OK" : "NA", __func__, ##args) + +#define CLI_SND(cli, m) do { \ + struct msgb *msg = make_msgb(m); \ + LOGCLI(cli, "sent %d bytes message: %s\n", \ + msg->len, msgb_hexdump(msg)); \ + osmo_stream_cli_send(cli, msg); \ + } while(0) + +/* client callbacks */ +static int connect_cb_cli(struct osmo_stream_cli *cli) +{ + void *recon = osmo_stream_cli_get_data(cli); + LOGCLI(cli, "callback triggered <%s>\n", recon ? "reconnected" : "initial"); + if (recon) { + LOGCLI(cli, "closing connection\n"); + osmo_stream_cli_close(cli); + } else + CLI_SND(cli, "Hi! from connect callback :-P"); + + return 0; +} + +static int read_cb_cli(struct osmo_stream_cli *cli) +{ + int bytes; + void *cli_data = osmo_stream_cli_get_data(cli); + struct msgb *msg = make_msgb(NULL); + if (!msg) + return -ENOMEM; + + LOGCLI(cli, "callback triggered\n"); + + bytes = osmo_stream_cli_recv(cli, msg); + if (bytes < 0) { + LOGCLI(cli, "unable to receive message\n"); + return -EINVAL; + } + + if (bytes) + LOGCLI(cli, "received %d(%d) bytes: %s\n", bytes, msg->len, msgb_hexdump(msg)); + else { + /* N. B: normally receiving 0 bytes means that we should close the connection and re-establish it + but to test autoreconnection logic we ignore it in here to let the test run till completion */ + LOGCLI(cli, "0-byte read, auto-reconnect will be triggered if enabled\n"); + } + + if (!cli_data) { + LOGCLI(cli, "initial read, contacting server\n"); + + osmo_stream_cli_set_data(cli, msg); + CLI_SND(cli, "Doh, responding to server :-D"); + } + + return 0; +} + +/* client helpers */ +static struct osmo_stream_cli *init_client_reconnection(struct osmo_stream_cli *cli, bool autoreconnect) +{ + /* setting negative timeout ensures that we disable reconnection logic */ + osmo_stream_cli_set_reconnect_timeout(cli, autoreconnect ? 9 : -1); + + if (osmo_stream_cli_open(cli) < 0) { + LOGCLI(cli, "unable to open client\n"); + return NULL; + } + + return cli; +} + +static struct osmo_stream_cli *make_client(void *ctx, const char *host, unsigned port, bool autoreconnect) +{ + struct osmo_stream_cli *cli = osmo_stream_cli_create(ctx); + if (!cli) { + printf("Unable to create client\n"); + return NULL; + } + + printf("Prepare %s stream client...\n", ASTR(autoreconnect)); + + osmo_stream_cli_set_addr(cli, host); + osmo_stream_cli_set_port(cli, port); + osmo_stream_cli_set_connect_cb(cli, connect_cb_cli); + osmo_stream_cli_set_read_cb(cli, read_cb_cli); + + return init_client_reconnection(cli, autoreconnect); +} + +/* server defs */ +#define LOGLNK(lnk, fmt, args...) \ + printf("[%s] Server's %s(): " fmt, osmo_stream_srv_link_get_data(lnk) ? "OK" : "NA", __func__, ##args) + +#define LOGSRV(srv, fmt, args...) \ + printf("[%s|%s] Server's %s(): " fmt, osmo_stream_srv_get_data(srv) ? "OK" : "NA", \ + osmo_stream_srv_link_get_data(osmo_stream_srv_get_master(srv)) ? "OK" : "NA", __func__, ##args) + +#define SRV_SND(srv, m) do { \ + struct msgb *msg = make_msgb(m); \ + LOGSRV(srv, "sent %d bytes message: %s\n", \ + msg->len, msgb_hexdump(msg)); \ + osmo_stream_srv_send(srv, msg); \ + } while(0) + +/* server helpers */ +static bool subsequent_read(struct osmo_stream_srv *srv) +{ + if (osmo_stream_srv_get_data(srv)) + return true; + + osmo_stream_srv_set_data(srv, srv); + + return false; +} + +static void request_test_stop(struct osmo_stream_srv *srv) +{ + osmo_stream_srv_link_set_data(osmo_stream_srv_get_master(srv), NULL); +} + +static bool test_stop_requested(struct osmo_stream_srv_link *lnk) +{ + if (osmo_stream_srv_link_get_data(lnk)) + return false; + return true; +} + +/* server callbacks */ +int read_cb_srv(struct osmo_stream_srv *srv) +{ + int bytes; + struct msgb *msg = make_msgb(NULL); + if (!msg) + return -ENOMEM; + + LOGSRV(srv, "callback triggered\n"); + + bytes = osmo_stream_srv_recv(srv, msg); + if (bytes <= 0) { + if (bytes < 0) + LOGSRV(srv, "unable to receive message: %s\n", strerror(-bytes)); + else { + LOGSRV(srv, "client have already closed connection\n"); + + /* if client have already closed the connection, + than it must be subsequent (after reconnect) call */ + request_test_stop(srv); + } + osmo_stream_srv_destroy(srv); + return -EINVAL; + } else { + LOGSRV(srv, "received %d(%d) bytes: %s\n", bytes, msg->len, msgb_hexdump(msg)); + SRV_SND(srv, __func__); + } + + msgb_free(msg); + + if (subsequent_read(srv)) { + LOGSRV(srv, "force client disconnect on subsequent call\n"); + osmo_stream_srv_destroy(srv); + } else + LOGSRV(srv, "keep initial client connection\n"); + + return 0; +} + +static int close_cb_srv(struct osmo_stream_srv *ignored) +{ + return 0; +} + +static int accept_cb_srv(struct osmo_stream_srv_link *lnk, int fd) +{ + struct osmo_stream_srv *srv = osmo_stream_srv_create(osmo_stream_srv_link_get_data(lnk), lnk, fd, + read_cb_srv, close_cb_srv, NULL); + if (!srv) { + LOGLNK(lnk, "error while creating connection\n"); + return -EINVAL; + } + + return 0; +} + + +static void test_recon(void *ctx, const char *host, unsigned port, unsigned steps, struct osmo_stream_srv_link *lnk, + bool autoreconnect) +{ + struct osmo_stream_cli *cli = make_client(ctx, host, port, autoreconnect); + if (!cli) + return; + + printf("=======================================\n"); + printf("Client/Server entering %s event loop...\n", ASTR(autoreconnect)); + printf("=======================================\n"); + + osmo_stream_srv_link_set_data(lnk, ctx); + + while(steps--) { + osmo_select_main(0); + fprintf(stderr, "\n%s test step %u [client %s, server %s], FD reg %u\n", ASTR(autoreconnect), steps, + osmo_stream_cli_get_data(cli) ? "OK" : "NA", + osmo_stream_srv_link_get_data(lnk) ? "OK" : "NA", + osmo_fd_is_registered(osmo_stream_cli_get_ofd(cli))); + + if (test_stop_requested(lnk)) { + printf("Server requested test termination\n"); + steps = 0; + } + } + + osmo_stream_cli_destroy(cli); + printf("%s test complete.\n\n", ASTR(autoreconnect)); +} + + +int main(void) +{ + struct osmo_stream_srv_link *srv; + char *host = "127.0.0.11"; + unsigned port = 1111; + void *tall_test = talloc_named_const(NULL, 1, "osmo_stream_test"); + msgb_talloc_ctx_init(tall_test, 0); + osmo_init_logging2(tall_test, &osmo_stream_test_log_info); + log_set_log_level(osmo_stderr_target, LOGL_INFO); + log_set_use_color(osmo_stderr_target, 0); + log_set_print_category_hex(osmo_stderr_target, 0); + log_set_print_filename(osmo_stderr_target, 0); + + printf("Preparing stream server...\n"); + srv = osmo_stream_srv_link_create(tall_test); + if (!srv) { + printf("Unable to create server\n"); + return EXIT_FAILURE; + } + + osmo_stream_srv_link_set_addr(srv, host); + osmo_stream_srv_link_set_port(srv, port); + osmo_stream_srv_link_set_accept_cb(srv, accept_cb_srv); + + if (osmo_stream_srv_link_open(srv) < 0) { + printf("Unable to open server\n"); + return EXIT_FAILURE; + } + + test_recon(tall_test, host, port, 12, srv, true); + test_recon(tall_test, host, port, 8, srv, false); + + osmo_stream_srv_link_destroy(srv); + printf("Stream tests completed\n"); + + return EXIT_SUCCESS; +} diff --git a/tests/stream/stream_test.err b/tests/stream/stream_test.err new file mode 100644 index 0000000..07cc7b0 --- /dev/null +++ b/tests/stream/stream_test.err @@ -0,0 +1,43 @@ + +autoreconnecting test step 11 [client NA, server OK], FD reg 1 + +autoreconnecting test step 10 [client NA, server OK], FD reg 1 + +autoreconnecting test step 9 [client NA, server OK], FD reg 1 + +autoreconnecting test step 8 [client NA, server OK], FD reg 1 + +autoreconnecting test step 7 [client OK, server OK], FD reg 1 + +autoreconnecting test step 6 [client OK, server OK], FD reg 1 + +autoreconnecting test step 5 [client OK, server OK], FD reg 1 +[ CONNECTED] osmo_stream_cli_recv(): connection closed with srv +[ NONE] osmo_stream_cli_reconnect(): retrying in 9 seconds... + +autoreconnecting test step 4 [client OK, server OK], FD reg 0 + +autoreconnecting test step 3 [client OK, server OK], FD reg 1 + +autoreconnecting test step 2 [client OK, server OK], FD reg 0 +connection closed with srv + +autoreconnecting test step 1 [client OK, server NA], FD reg 0 + +non-reconnecting test step 7 [client NA, server OK], FD reg 1 + +non-reconnecting test step 6 [client NA, server OK], FD reg 1 + +non-reconnecting test step 5 [client NA, server OK], FD reg 1 + +non-reconnecting test step 4 [client NA, server OK], FD reg 1 + +non-reconnecting test step 3 [client OK, server OK], FD reg 1 + +non-reconnecting test step 2 [client OK, server OK], FD reg 1 + +non-reconnecting test step 1 [client OK, server OK], FD reg 1 +[ CONNECTED] osmo_stream_cli_recv(): connection closed with srv +[ NONE] osmo_stream_cli_reconnect(): not reconnecting, disabled. + +non-reconnecting test step 0 [client OK, server OK], FD reg 0 diff --git a/tests/stream/stream_test.ok b/tests/stream/stream_test.ok new file mode 100644 index 0000000..7b6fb95 --- /dev/null +++ b/tests/stream/stream_test.ok @@ -0,0 +1,51 @@ +Preparing stream server... +Prepare autoreconnecting stream client... +======================================= +Client/Server entering autoreconnecting event loop... +======================================= +[NA] Client's connect_cb_cli(): callback triggered +[NA] Client's connect_cb_cli(): sent 29 bytes message: 48 69 21 20 66 72 6f 6d 20 63 6f 6e 6e 65 63 74 20 63 61 6c 6c 62 61 63 6b 20 3a 2d 50 +[NA|OK] Server's read_cb_srv(): callback triggered +[NA|OK] Server's read_cb_srv(): received 29(29) bytes: 48 69 21 20 66 72 6f 6d 20 63 6f 6e 6e 65 63 74 20 63 61 6c 6c 62 61 63 6b 20 3a 2d 50 +[NA|OK] Server's read_cb_srv(): sent 11 bytes message: 72 65 61 64 5f 63 62 5f 73 72 76 +[OK|OK] Server's read_cb_srv(): keep initial client connection +[NA] Client's read_cb_cli(): callback triggered +[NA] Client's read_cb_cli(): received 11(11) bytes: 72 65 61 64 5f 63 62 5f 73 72 76 +[NA] Client's read_cb_cli(): initial read, contacting server +[OK] Client's read_cb_cli(): sent 29 bytes message: 44 6f 68 2c 20 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 73 65 72 76 65 72 20 3a 2d 44 +[OK|OK] Server's read_cb_srv(): callback triggered +[OK|OK] Server's read_cb_srv(): received 29(29) bytes: 44 6f 68 2c 20 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 73 65 72 76 65 72 20 3a 2d 44 +[OK|OK] Server's read_cb_srv(): sent 11 bytes message: 72 65 61 64 5f 63 62 5f 73 72 76 +[OK|OK] Server's read_cb_srv(): force client disconnect on subsequent call +[OK] Client's read_cb_cli(): callback triggered +[OK] Client's read_cb_cli(): 0-byte read, auto-reconnect will be triggered if enabled +[OK] Client's connect_cb_cli(): callback triggered +[OK] Client's connect_cb_cli(): closing connection +[NA|OK] Server's read_cb_srv(): callback triggered +[NA|OK] Server's read_cb_srv(): client have already closed connection +Server requested test termination +autoreconnecting test complete. + +Prepare non-reconnecting stream client... +======================================= +Client/Server entering non-reconnecting event loop... +======================================= +[NA] Client's connect_cb_cli(): callback triggered +[NA] Client's connect_cb_cli(): sent 29 bytes message: 48 69 21 20 66 72 6f 6d 20 63 6f 6e 6e 65 63 74 20 63 61 6c 6c 62 61 63 6b 20 3a 2d 50 +[NA|OK] Server's read_cb_srv(): callback triggered +[NA|OK] Server's read_cb_srv(): received 29(29) bytes: 48 69 21 20 66 72 6f 6d 20 63 6f 6e 6e 65 63 74 20 63 61 6c 6c 62 61 63 6b 20 3a 2d 50 +[NA|OK] Server's read_cb_srv(): sent 11 bytes message: 72 65 61 64 5f 63 62 5f 73 72 76 +[OK|OK] Server's read_cb_srv(): keep initial client connection +[NA] Client's read_cb_cli(): callback triggered +[NA] Client's read_cb_cli(): received 11(11) bytes: 72 65 61 64 5f 63 62 5f 73 72 76 +[NA] Client's read_cb_cli(): initial read, contacting server +[OK] Client's read_cb_cli(): sent 29 bytes message: 44 6f 68 2c 20 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 73 65 72 76 65 72 20 3a 2d 44 +[OK|OK] Server's read_cb_srv(): callback triggered +[OK|OK] Server's read_cb_srv(): received 29(29) bytes: 44 6f 68 2c 20 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 73 65 72 76 65 72 20 3a 2d 44 +[OK|OK] Server's read_cb_srv(): sent 11 bytes message: 72 65 61 64 5f 63 62 5f 73 72 76 +[OK|OK] Server's read_cb_srv(): force client disconnect on subsequent call +[OK] Client's read_cb_cli(): callback triggered +[OK] Client's read_cb_cli(): 0-byte read, auto-reconnect will be triggered if enabled +non-reconnecting test complete. + +Stream tests completed diff --git a/tests/testsuite.at b/tests/testsuite.at index 67b91c6..8eb389d 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -1,6 +1,13 @@ AT_INIT AT_BANNER([Regression tests.]) +AT_SETUP([stream_test]) +AT_KEYWORDS([stream_test]) +cat $abs_srcdir/stream/stream_test.ok > expout +cat $abs_srcdir/stream/stream_test.err > experr +AT_CHECK([$abs_top_builddir/tests/stream/stream_test], [0], [expout], [experr]) +AT_CLEANUP + AT_SETUP([osmux_test]) AT_KEYWORDS([osmux_test]) cat $abs_srcdir/osmux/osmux_test.ok > expout -- To view, visit https://gerrit.osmocom.org/12837 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I336f79970982ed8e1d73b73d54fa4c27ba8bce8e Gerrit-Change-Number: 12837 Gerrit-PatchSet: 18 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 01:06:34 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 11 Feb 2019 01:06:34 +0000 Subject: Change in osmo-dev[master]: run.sh: more userfriendly "stale configs" message In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/12733 ) Change subject: run.sh: more userfriendly "stale configs" message ...................................................................... Patch Set 3: Code-Review+2 (1 comment) https://gerrit.osmocom.org/#/c/12733/2/net/tmpl_std/run.sh File net/tmpl_std/run.sh: https://gerrit.osmocom.org/#/c/12733/2/net/tmpl_std/run.sh at 7 PS2, Line 7: echo " * Hit ^C and run 'make regen' to regenerate your configs" > Even with the Makefile in place? The idea was, that the user only needs to remember "make regen" for [?] i see it so that the Makefile is just a shim for if you can't remember what is really happening... UI wise it's slightly bad to offer two ways to achieve the same. But since this is just some message in a tool with three users... -- To view, visit https://gerrit.osmocom.org/12733 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-dev Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If225e094619a07a228e0e2f337153ee18cdb420c Gerrit-Change-Number: 12733 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 11 Feb 2019 01:06:34 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 02:25:48 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 11 Feb 2019 02:25:48 +0000 Subject: Change in libosmocore[master]: GSUP: add inter-MSC handover related msgs and IEs In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/12860 ) Change subject: GSUP: add inter-MSC handover related msgs and IEs ...................................................................... Patch Set 2: (24 comments) In general, I would like to keep this patch unmerged before I have osmo-msc's inter-MSC HO pretty much complete and working. Likely more insights and needs about the protocol will arise from chiseling out the details. But it would be nice to continue the review process nevertheless; just not merge it yet (so we don't need to worry about api compat later). https://gerrit.osmocom.org/#/c/12860/2/include/osmocom/gsm/gsup.h File include/osmocom/gsm/gsup.h: https://gerrit.osmocom.org/#/c/12860/2/include/osmocom/gsm/gsup.h at 191 PS2, Line 191: OSMO_GSUP_MSGT_E_PROCESS_ACCESS_SIGNALLING_ERROR = 0b01000010, the Process Access Signalling and Forward Access Signalling will never return an Error. I know there was some obscure reason, but can't we get around having to define them? https://gerrit.osmocom.org/#/c/12860/2/include/osmocom/gsm/gsup.h at 196 PS2, Line 196: OSMO_GSUP_MSGT_E_CLOSE > As far as I can see, this comes from TCAP. [?] actually, I did model an "abort" message in my osmo-msc/doc/interMSC_HO_GSUP_msgs.txt, and ... https://gerrit.osmocom.org/#/c/12860/2/include/osmocom/gsm/gsup.h at 197 PS2, Line 197: OSMO_GSUP_MSGT_E_ABORT = 0b01001011, ... and here is an Abort message. @vadim, what do you mean? https://gerrit.osmocom.org/#/c/12860/2/include/osmocom/gsm/gsup.h at 338 PS2, Line 338: an_apdu > I would use a pointer here. The osmo_gsup_message is already quite big... size is IMHO not a good reason. Is there another one? Otherwise, no need to extract two ints and a pointer. https://gerrit.osmocom.org/#/c/12860/2/include/osmocom/gsm/gsup.h at 341 PS2, Line 341: cause_sm > Does SM mean "Short Message"? If yes, we already have "sm_rp_cause". apparently means "Session Management" :( gsm48_gsm_cause in gsm_04_08_gprs.h says: "definition in 3GPP TS 24.008 10.5.6.6 / Table 10.5.157" I was going to call it cause_rr or something, but the spec does have this as a name. https://gerrit.osmocom.org/#/c/12860/2/include/osmocom/gsm/gsup_handover.h File include/osmocom/gsm/gsup_handover.h: https://gerrit.osmocom.org/#/c/12860/2/include/osmocom/gsm/gsup_handover.h at 19 PS2, Line 19: uint8_t > const? agree https://gerrit.osmocom.org/#/c/12860/2/include/osmocom/gsm/gsup_handover.h at 20 PS2, Line 20: if this is all there is to this API, then let's just place these in the common gsup.[hc]? https://gerrit.osmocom.org/#/c/12860/2/src/gsm/gsup.c File src/gsm/gsup.c: https://gerrit.osmocom.org/#/c/12860/2/src/gsm/gsup.c at 786 PS2, Line 786: if ((u8 = gsup_msg->cause_rr)) RR cause also have a zero value, see vadim's remark below https://gerrit.osmocom.org/#/c/12860/2/src/gsm/gsup.c at 789 PS2, Line 789: u8 = gsup_msg->cause_bssap > One wouldn't be able to encode GSM0808_CAUSE_RADIO_INTERFACE_MESSAGE_FAILURE == 0x00 this way. [?] I'm not remembering the details right now ... if it is all on the stack, and if you agree with vadim, then it could be ok to use pointers. But if each cause value would need a dynamically allocated pointer, then rather use bool presence flags. The size of the struct is of no concern, straight forward simplicity to allow encoding zero cause values is the goal. You choose... https://gerrit.osmocom.org/#/c/12860/2/src/gsm/gsup_handover.c File src/gsm/gsup_handover.c: https://gerrit.osmocom.org/#/c/12860/2/src/gsm/gsup_handover.c at 37 PS2, Line 37: * Handover extensions for Osmocom GSUP. Take a look at https://osmocom.org/projects/cellular-infrastructure/wiki/Guidelines_for_API_documentation#Files-and-Groups https://gerrit.osmocom.org/#/c/12860/2/src/gsm/gsup_handover.c at 43 PS2, Line 43: * \returns 0 in case of success, negative in case of error (please get in the habit of ending everything with a dot) https://gerrit.osmocom.org/#/c/12860/2/src/gsm/gsup_handover.c at 47 PS2, Line 47: const struct osmo_gsup_an_apdu an_apdu = gsup_msg->an_apdu; (this is actually copying the struct. It's not much, but doesn't seem intentional.) https://gerrit.osmocom.org/#/c/12860/2/src/gsm/gsup_handover.c at 61 PS2, Line 61: uint8_t* buf = msgb_put(msg, an_apdu.data_len); ( "uint8_t *buf" ) https://gerrit.osmocom.org/#/c/12860/2/src/gsm/libosmogsm.map File src/gsm/libosmogsm.map: https://gerrit.osmocom.org/#/c/12860/2/src/gsm/libosmogsm.map at 552 PS2, Line 552: osmo_gsup_handover_decode_an_apdu; (why not put it after the end of gsup_sms? thinking alphabetically?) https://gerrit.osmocom.org/#/c/12860/2/tests/gsup/gsup_test.c File tests/gsup/gsup_test.c: https://gerrit.osmocom.org/#/c/12860/2/tests/gsup/gsup_test.c at 327 PS2, Line 327: TEST_MSISDN_IE, no msisdn in this msg. The response sends the handover_number back, but the request doesn't include any. It is always MSC-B or MSC-B' sending a handover number to MSC-A. Also below, drop MSISDN everywhere except for the prepareHandover response msg. https://gerrit.osmocom.org/#/c/12860/2/tests/gsup/gsup_test.c at 357 PS2, Line 357: TEST_MSISDN_IE, /* (Handover Number) */ https://gerrit.osmocom.org/#/c/12860/2/tests/gsup/gsup_test.c at 371 PS2, Line 371: TEST_MSISDN_IE, (same, no msisdn here) https://gerrit.osmocom.org/#/c/12860/2/tests/gsup/gsup_test.c at 413 PS2, Line 413: 0x3C, /* OSMO_GSUP_MSGT_E_PREPARE_SEND_END_SIGNAL_REQUEST */ drop the "_PREPARE" https://gerrit.osmocom.org/#/c/12860/2/tests/gsup/gsup_test.c at 415 PS2, Line 415: TEST_MSISDN_IE, no https://gerrit.osmocom.org/#/c/12860/2/tests/gsup/gsup_test.c at 427 PS2, Line 427: 0x3D, /* OSMO_GSUP_MSGT_E_PREPARE_SEND_END_SIGNAL_ERROR */ drop _PREPARE https://gerrit.osmocom.org/#/c/12860/2/tests/gsup/gsup_test.c at 467 PS2, Line 467: TEST_AN_APDU_IE, /* (Handover Detect) */ (would make sense to put Handover Detect above the Handover Complete) https://gerrit.osmocom.org/#/c/12860/2/tests/gsup/gsup_test.c at 471 PS2, Line 471: 0x41, /* OSMO_GSUP_MSGT_E_PROCESS_ACCESS_SIGNALLING_ERROR */ doesn't exist https://gerrit.osmocom.org/#/c/12860/2/tests/gsup/gsup_test.c at 501 PS2, Line 501: 0x45, /* OSMO_GSUP_MSGT_E_FORWARD_ACCESS_SIGNALLING_ERROR */ doesn't exist https://gerrit.osmocom.org/#/c/12860/2/tests/gsup/gsup_test.c at 608 PS2, Line 608: {"E Prepare Send End Signal Request", no "Prepare" below here -- To view, visit https://gerrit.osmocom.org/12860 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic00b0601eacff6d72927cea51767801142ee75db Gerrit-Change-Number: 12860 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 11 Feb 2019 02:25:48 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 02:25:58 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 11 Feb 2019 02:25:58 +0000 Subject: Change in libosmocore[master]: GSUP: add inter-MSC handover related msgs and IEs In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/12860 ) Change subject: GSUP: add inter-MSC handover related msgs and IEs ...................................................................... Patch Set 2: Code-Review-1 -- To view, visit https://gerrit.osmocom.org/12860 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic00b0601eacff6d72927cea51767801142ee75db Gerrit-Change-Number: 12860 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 11 Feb 2019 02:25:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 08:49:56 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Feb 2019 08:49:56 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Add TTCN-3 definition of GSM Abis OML protocol (TS 12.21) Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12875 Change subject: Add TTCN-3 definition of GSM Abis OML protocol (TS 12.21) ...................................................................... Add TTCN-3 definition of GSM Abis OML protocol (TS 12.21) Change-Id: I65f71bf7f54cbe3290757e810b1df1e54929bdd1 --- A library/AbisOML_Types.ttcn 1 file changed, 1,212 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/75/12875/1 diff --git a/library/AbisOML_Types.ttcn b/library/AbisOML_Types.ttcn new file mode 100644 index 0000000..a1a9370 --- /dev/null +++ b/library/AbisOML_Types.ttcn @@ -0,0 +1,1212 @@ +module AbisOML_Types { + +/* AbisOML_Types, defining abstract TTCN-3 data types for the A-bis OML protocol. + * + * A-bis OML is a 3GP standard protocol used between BTS and BSC in a GSM network; + * it is specified in 3GPP TS 12.21. + * + * (C) 2019 by Harald Welte + * All rights reserved. + * + * Released under the terms of the GNU General Public License, Version 2 or + * (at your option) any later version. + */ + +import from General_Types all; +import from Osmocom_Types all; +import from GSM_Types all; + +type enumerated OML_MessageDiscriminator { + ABIS_OM_MDISC_FOM ('80'H), + ABIS_OM_MDISC_MMI ('40'H), + ABIS_OM_MDISC_TRAU ('20'H), + ABIS_OM_MDISC_MANUF ('10'H) +} with { variant "FIELDLENGTH(8)" }; + +type enumerated OML_Placement { + ABIS_OM_PLACEMENT_ONLY ('80'H), + ABIS_OM_PLACEMENT_FIRST ('40'H), + ABIS_OM_PLACEMENT_MIDDLE ('20'H), + ABIS_OM_PLACEMENT_LAST ('10'H) +} with { variant "FIELDLENGTH(8)" }; + +type union OML_Union { + OML_FOM fom, + OML_MANUF manuf, + octetstring other +}; + +type record OML_PDU { + OML_MessageDiscriminator mdisc, + OML_Placement placement, + uint8_t sequence, + OML_Union u +} with { + variant (u) "CROSSTAG( + fom, mdisc = ABIS_OM_MDISC_FOM; + manuf, mdisc = ABIS_OM_MDISC_MANUF; + other, OTHERWISE; + )" }; + + +type record OML_FOM_ObjectInstance { + uint8_t bts_nr, + uint8_t trx_nr, + uint8_t ts_nr +}; + + +type record OML_FOM_Header { + OML_FOM_MessageType msg_type, + OML_FOM_ObjectClass obj_class, + OML_FOM_ObjectInstance obj_inst +}; + +/* Section 9.1 */ +type enumerated OML_FOM_MessageType { + /* SW Download Management Messages */ + NM_MT_LOAD_INIT ('01'H), + NM_MT_LOAD_INIT_ACK ('02'H), + NM_MT_LOAD_INIT_NACK ('03'H), + NM_MT_LOAD_SEG ('04'H), + NM_MT_LOAD_SEG_ACK ('05'H), + NM_MT_LOAD_ABORT ('06'H), + NM_MT_LOAD_END ('07'H), + NM_MT_LOAD_END_ACK ('08'H), + NM_MT_LOAD_END_NACK ('09'H), + NM_MT_SW_ACT_REQ ('0a'H), + NM_MT_SW_ACT_REQ_ACK ('0b'H), + NM_MT_SW_ACT_REQ_NACK ('0c'H), + NM_MT_ACTIVATE_SW ('0d'H), + NM_MT_ACTIVATE_SW_ACK ('0e'H), + NM_MT_ACTIVATE_SW_NACK ('0f'H), + NM_MT_SW_ACTIVATED_REP ('10'H), + + /* A-bis Interface Management Messages */ + NM_MT_ESTABLISH_TEI ('21'H), + NM_MT_ESTABLISH_TEI_ACK ('22'H), + NM_MT_ESTABLISH_TEI_NACK ('23'H), + NM_MT_CONN_TERR_SIGN ('24'H), + NM_MT_CONN_TERR_SIGN_ACK ('25'H), + NM_MT_CONN_TERR_SIGN_NACK ('26'H), + NM_MT_DISC_TERR_SIGN ('27'H), + NM_MT_DISC_TERR_SIGN_ACK ('28'H), + NM_MT_DISC_TERR_SIGN_NACK ('29'H), + NM_MT_CONN_TERR_TRAF ('2a'H), + NM_MT_CONN_TERR_TRAF_ACK ('2b'H), + NM_MT_CONN_TERR_TRAF_NACK ('2c'H), + NM_MT_DISC_TERR_TRAF ('2d'H), + NM_MT_DISC_TERR_TRAF_ACK ('2e'H), + NM_MT_DISC_TERR_TRAF_NACK ('2f'H), + /* Transmission Management Messages */ + NM_MT_CONN_MDROP_LINK ('31'H), + NM_MT_CONN_MDROP_LINK_ACK ('32'H), + NM_MT_CONN_MDROP_LINK_NACK ('33'H), + NM_MT_DISC_MDROP_LINK ('34'H), + NM_MT_DISC_MDROP_LINK_ACK ('35'H), + NM_MT_DISC_MDROP_LINK_NACK ('36'H), + /* Air Interface Management Messages */ + NM_MT_SET_BTS_ATTR ('41'H), + NM_MT_SET_BTS_ATTR_ACK ('42'H), + NM_MT_SET_BTS_ATTR_NACK ('43'H), + NM_MT_SET_RADIO_ATTR ('44'H), + NM_MT_SET_RADIO_ATTR_ACK ('45'H), + NM_MT_SET_RADIO_ATTR_NACK ('46'H), + NM_MT_SET_CHAN_ATTR ('47'H), + NM_MT_SET_CHAN_ATTR_ACK ('48'H), + NM_MT_SET_CHAN_ATTR_NACK ('49'H), + /* Test Management Messages */ + NM_MT_PERF_TEST ('51'H), + NM_MT_PERF_TEST_ACK ('52'H), + NM_MT_PERF_TEST_NACK ('53'H), + NM_MT_TEST_REP ('54'H), + NM_MT_SEND_TEST_REP ('55'H), + NM_MT_SEND_TEST_REP_ACK ('56'H), + NM_MT_SEND_TEST_REP_NACK ('57'H), + NM_MT_STOP_TEST ('58'H), + NM_MT_STOP_TEST_ACK ('59'H), + NM_MT_STOP_TEST_NACK ('5a'H), + /* State Management and Event Report Messages */ + NM_MT_STATECHG_EVENT_REP ('61'H), + NM_MT_FAILURE_EVENT_REP ('62'H), + NM_MT_STOP_EVENT_REP ('63'H), + NM_MT_STOP_EVENT_REP_ACK ('64'H), + NM_MT_STOP_EVENT_REP_NACK ('65'H), + NM_MT_REST_EVENT_REP ('66'H), + NM_MT_REST_EVENT_REP_ACK ('67'H), + NM_MT_REST_EVENT_REP_NACK ('68'H), + NM_MT_CHG_ADM_STATE ('69'H), + NM_MT_CHG_ADM_STATE_ACK ('6a'H), + NM_MT_CHG_ADM_STATE_NACK ('6b'H), + NM_MT_CHG_ADM_STATE_REQ ('6c'H), + NM_MT_CHG_ADM_STATE_REQ_ACK ('6d'H), + NM_MT_CHG_ADM_STATE_REQ_NACK ('6e'H), + + NM_MT_REP_OUTST_ALARMS ('93'H), + NM_MT_REP_OUTST_ALARMS_ACK ('94'H), + NM_MT_REP_OUTST_ALARMS_NACK ('95'H), + + /* Equipment Management Messages */ + NM_MT_CHANGEOVER ('71'H), + NM_MT_CHANGEOVER_ACK ('72'H), + NM_MT_CHANGEOVER_NACK ('73'H), + NM_MT_OPSTART ('74'H), + NM_MT_OPSTART_ACK ('75'H), + NM_MT_OPSTART_NACK ('76'H), + NM_MT_REINIT ('77'H), + NM_MT_REINIT_ACK ('78'H), + NM_MT_REINIT_NACK ('79'H), + NM_MT_SET_SITE_OUT ('7a'H), + NM_MT_SET_SITE_OUT_ACK ('7b'H), + NM_MT_SET_SITE_OUT_NACK ('7c'H), + + NM_MT_CHG_HW_CONF ('90'H), + NM_MT_CHG_HW_CONF_ACK ('91'H), + NM_MT_CHG_HW_CONF_NACK ('92'H), + + /* Measurement Management Messages */ + NM_MT_MEAS_RES_REQ ('8a'H), + NM_MT_MEAS_RES_RESP ('8b'H), + NM_MT_STOP_MEAS ('8c'H), + NM_MT_START_MEAS ('8d'H), + + /* Other Messages */ + NM_MT_GET_ATTR ('81'H), + NM_MT_GET_ATTR_RESP ('82'H), + NM_MT_GET_ATTR_NACK ('83'H), + NM_MT_SET_ALARM_THRES ('84'H), + NM_MT_SET_ALARM_THRES_ACK ('85'H), + NM_MT_SET_ALARM_THRES_NACK ('86'H), + + /* IPA specific messages */ + NM_MT_IPACC_RESTART ('87'H), + NM_MT_IPACC_RESTART_ACK ('88'H), + NM_MT_IPACC_RESTART_NACK ('89'H), + + NM_MT_IPACC_RSL_CONNECT ('e0'H), + NM_MT_IPACC_RSL_CONNECT_ACK ('e1'H), + NM_MT_IPACC_RSL_CONNECT_NACK ('e2'H), + NM_MT_IPACC_RSL_DISCONNECT ('e3'H), + NM_MT_IPACC_RSL_DISCONNECT_ACK ('e4'H), + NM_MT_IPACC_RSL_DISCONNECT_NACK ('e5'H), + NM_MT_IPACC_CONN_TRAF ('e6'H), + NM_MT_IPACC_CONN_TRAF_ACK ('e7'H), + NM_MT_IPACC_CONN_TRAF_NACK ('e8'H), + NM_MT_IPACC_DEF_BOOT_SW ('ec'H), + NM_MT_IPACC_DEF_BOOT_SW_ACK ('ed'H), + MN_MT_IPACC_DEF_BOOT_SW_NACK ('ee'H), + NM_MT_IPACC_SET_NVATTR ('ef'H), + NM_MT_IPACC_SET_NVATTR_ACK ('f0'H), + NM_MT_IPACC_SET_NVATTR_NACK ('f1'H), + NM_MT_IPACC_GET_NVATTR ('f2'H), + NM_MT_IPACC_GET_NVATTR_ACK ('f3'H), + NM_MT_IPACC_GET_NVATTR_NACK ('f4'H), + NM_MT_IPACC_SET_ATTR ('f5'H), + NM_MT_IPACC_SET_ATTR_ACK ('f6'H), + NM_MT_IPACC_SET_ATTR_NACK ('f7'H) + +} with { variant "FIELDLENGTH(8)" }; + +/* Section 9.2 */ +type enumerated OML_FOM_ObjectClass { + NM_OC_SITE_MANAGER ('00'H), + NM_OC_BTS ('01'H), + NM_OC_RADIO_CARRIER ('02'H), + NM_OC_CHANNEL ('03'H), + NM_OC_BASEB_TRANSC ('04'H), + + NM_OC_IPAC_E1_TRUNK ('0e'H), + NM_OC_IPAC_E1_PORT ('0f'H), + NM_OC_IPAC_E1_CHAN ('10'H), + NM_OC_IPAC_CLK_MODULE ('22'H), + + NM_OC_GPRS_NSE ('f0'H), + NM_OC_GPRS_CELL ('f1'H), + NM_OC_GPRS_NSVC ('f2'H), + + NM_OC_NULL ('ff'H) +} with { variant "FIELDLENGTH(8)" }; + +/* Section 9.4 */ +type enumerated OML_FOM_IE_Type { + NM_ATT_ABIS_CHANNEL ('01'H), + NM_ATT_ADD_INFO ('02'H), + NM_ATT_ADD_TEXT ('03'H), + NM_ATT_ADM_STATE ('04'H), + NM_ATT_ARFCN_LIST ('05'H), + NM_ATT_AUTON_REPORT ('06'H), + NM_ATT_AVAIL_STATUS ('07'H), + NM_ATT_BCCH_ARFCN ('08'H), + NM_ATT_BSIC ('09'H), + NM_ATT_BTS_AIR_TIMER ('0a'H), + NM_ATT_CCCH_L_I_P ('0b'H), + NM_ATT_CCCH_L_T ('0c'H), + NM_ATT_CHAN_COMB ('0d'H), + NM_ATT_CONN_FAIL_CRIT ('0e'H), + NM_ATT_DEST ('0f'H), + /* res */ + NM_ATT_EVENT_TYPE ('11'H), + NM_ATT_FILE_ID ('12'H), + NM_ATT_FILE_VERSION ('13'H), + NM_ATT_GSM_TIME ('14'H), + NM_ATT_HSN ('15'H), + NM_ATT_HW_CONFIG ('16'H), + NM_ATT_HW_DESC ('17'H), + NM_ATT_INTAVE_PARAM ('18'H), + NM_ATT_INTERF_BOUND ('19'H), + NM_ATT_LIST_REQ_ATTR ('1a'H), + NM_ATT_MAIO ('1b'H), + NM_ATT_MANUF_STATE ('1c'H), + NM_ATT_MANUF_THRESH ('1d'H), + NM_ATT_MANUF_ID ('1e'H), + NM_ATT_MAX_TA ('1f'H), + NM_ATT_MDROP_LINK ('20'H), + NM_ATT_MDROP_NEXT ('21'H), + NM_ATT_NACK_CAUSES ('22'H), + NM_ATT_NY1 ('23'H), + NM_ATT_OPER_STATE ('24'H), + NM_ATT_OVERL_PERIOD ('25'H), + NM_ATT_PHYS_CONF ('26'H), + NM_ATT_POWER_CLASS ('27'H), + NM_ATT_POWER_THRESH ('28'H), + NM_ATT_PROB_CAUSE ('29'H), + NM_ATT_RACH_B_THRESH ('2a'H), + NM_ATT_LDAVG_SLOTS ('2b'H), + NM_ATT_RAD_SUBC ('2c'H), + NM_ATT_RF_MAXPOWR_R ('2d'H), + NM_ATT_SITE_INPUTS ('2e'H), + NM_ATT_SITE_OUTPUTS ('2f'H), + NM_ATT_SOURCE ('30'H), + NM_ATT_SPEC_PROB ('31'H), + NM_ATT_START_TIME ('32'H), + NM_ATT_T200 ('33'H), + NM_ATT_TEI ('34'H), + NM_ATT_TEST_DUR ('35'H), + NM_ATT_TEST_NO ('36'H), + NM_ATT_TEST_REPORT ('37'H), + NM_ATT_VSWR_THRESH ('38'H), + NM_ATT_WINDOW_SIZE ('39'H), + /* res */ + NM_ATT_BS11_RSSI_OFFS ('3d'H), + NM_ATT_BS11_TXPWR ('3e'H), + NM_ATT_BS11_DIVERSITY ('3f'H), + /* res */ + NM_ATT_TSC ('40'H), + NM_ATT_SW_CONFIG ('41'H), + NM_ATT_SW_DESCR ('42'H), + NM_ATT_SEVERITY ('43'H), + NM_ATT_GET_ARI ('44'H), + NM_ATT_HW_CONF_CHG ('45'H), + NM_ATT_OUTST_ALARM ('46'H), + NM_ATT_FILE_DATA ('47'H), + NM_ATT_MEAS_RES ('48'H), + NM_ATT_MEAS_TYPE ('49'H), + /* res */ + NM_ATT_BS11_ESN_FW_CODE_NO ('4c'H), + NM_ATT_BS11_ESN_HW_CODE_NO ('4f'H), + /* res */ + NM_ATT_BS11_ESN_PCB_SERIAL ('55'H), + NM_ATT_BS11_EXCESSIVE_DISTANCE ('58'H), + NM_ATT_BS11_ALL_TEST_CATG ('60'H), + NM_ATT_BS11_BTSLS_HOPPING ('61'H), + NM_ATT_BS11_CELL_ALLOC_NR ('62'H), + NM_ATT_BS11_CELL_GLOBAL_ID ('63'H), + + NM_ATT_BS11_ENA_INTERF_CLASS ('66'H), + NM_ATT_BS11_ENA_INT_INTEC_HANDO ('67'H), + NM_ATT_BS11_ENA_INT_INTRC_HANDO ('68'H), + NM_ATT_BS11_ENA_MS_PWR_CTRL ('69'H), + NM_ATT_BS11_ENA_PWR_BDGT_HO ('6a'H), + NM_ATT_BS11_ENA_PWR_CTRL_RLFW ('6b'H), + NM_ATT_BS11_ENA_RXLEV_HO ('6c'H), + NM_ATT_BS11_ENA_RXQUAL_HO ('6d'H), + NM_ATT_BS11_FACCH_QUAL ('6e'H), + + NM_ATT_IPACC_DST_IP ('80'H), + NM_ATT_IPACC_DST_IP_PORT ('81'H), + NM_ATT_IPACC_SSRC ('82'H), + NM_ATT_IPACC_RTP_PAYLD_TYPE ('83'H), + NM_ATT_IPACC_BASEB_ID ('84'H), + NM_ATT_IPACC_STREAM_ID ('85'H), + NM_ATT_IPACC_NV_FLAGS ('86'H), + NM_ATT_IPACC_FREQ_CTRL ('87'H), + NM_ATT_IPACC_PRIM_OML_CFG ('88'H), + NM_ATT_IPACC_SEC_OML_CFG ('89'H), + NM_ATT_IPACC_IP_IF_CFG ('8a'H), + NM_ATT_IPACC_IP_GW_CFG ('8b'H), + NM_ATT_IPACC_IN_SERV_TIME ('8c'H), + NM_ATT_IPACC_TRX_BTS_ASS ('8d'H), + NM_ATT_IPACC_LOCATION ('8e'H), /* string describing location */ + NM_ATT_IPACC_PAGING_CFG ('8f'H), + NM_ATT_IPACC_FILE_DATA ('90'H), + NM_ATT_IPACC_UNIT_ID ('91'H), /* Site/BTS/TRX */ + NM_ATT_IPACC_PARENT_UNIT_ID ('92'H), + NM_ATT_IPACC_UNIT_NAME ('93'H), /* default: nbts- */ + NM_ATT_IPACC_SNMP_CFG ('94'H), + NM_ATT_IPACC_PRIM_OML_CFG_LIST ('95'H), + NM_ATT_IPACC_PRIM_OML_FB_TOUT ('96'H), + NM_ATT_IPACC_CUR_SW_CFG ('97'H), + NM_ATT_IPACC_TIMING_BUS ('98'H), + NM_ATT_IPACC_CGI ('99'H), + NM_ATT_IPACC_RAC ('9a'H), + NM_ATT_IPACC_OBJ_VERSION ('9b'H), + NM_ATT_IPACC_GPRS_PAGING_CFG ('9c'H), + NM_ATT_IPACC_NSEI ('9d'H), + NM_ATT_IPACC_BVCI ('9e'H), + NM_ATT_IPACC_NSVCI ('9f'H), + NM_ATT_IPACC_NS_CFG ('a0'H), + NM_ATT_IPACC_BSSGP_CFG ('a1'H), + NM_ATT_IPACC_NS_LINK_CFG ('a2'H), + NM_ATT_IPACC_RLC_CFG ('a3'H), + NM_ATT_IPACC_ALM_THRESH_LIST ('a4'H), + NM_ATT_IPACC_MONIT_VAL_LIST ('a5'H), + NM_ATT_IPACC_TIB_CONTROL ('a6'H), + NM_ATT_IPACC_SUPP_FEATURES ('a7'H), + NM_ATT_IPACC_CODING_SCHEMES ('a8'H), + NM_ATT_IPACC_RLC_CFG_2 ('a9'H), + NM_ATT_IPACC_HEARTB_TOUT ('aa'H), + NM_ATT_IPACC_UPTIME ('ab'H), + NM_ATT_IPACC_RLC_CFG_3 ('ac'H), + NM_ATT_IPACC_SSL_CFG ('ad'H), + NM_ATT_IPACC_SEC_POSSIBLE ('ae'H), + NM_ATT_IPACC_IML_SSL_STATE ('af'H), + NM_ATT_IPACC_REVOC_DATE ('b0'H), + + +/* + NM_ATT_BS11_RF_RES_IND_PER ('8f'H), + + NM_ATT_BS11_RX_LEV_MIN_CELL ('90'H), + NM_ATT_BS11_ABIS_EXT_TIME ('91'H), + NM_ATT_BS11_TIMER_HO_REQUEST ('92'H), + NM_ATT_BS11_TIMER_NCELL ('93'H), + NM_ATT_BS11_TSYNC ('94'H), + NM_ATT_BS11_TTRAU ('95'H), + NM_ATT_BS11_EMRG_CFG_MEMBER ('9b'H), + NM_ATT_BS11_TRX_AREA ('9f'H), + + NM_ATT_BS11_BCCH_RECONF ('d7'H), + NM_ATT_BS11_BIT_ERR_THESH ('a0'H), + NM_ATT_BS11_BOOT_SW_VERS ('a1'H), + NM_ATT_BS11_CCLK_ACCURACY ('a3'H), + NM_ATT_BS11_CCLK_TYPE ('a4'H), + NM_ATT_BS11_INP_IMPEDANCE ('aa'H), + NM_ATT_BS11_L1_PROT_TYPE ('ab'H), + NM_ATT_BS11_LINE_CFG ('ac'H), + NM_ATT_BS11_LI_PORT_1 ('ad'H), + NM_ATT_BS11_LI_PORT_2 ('ae'H), + + NM_ATT_BS11_L1_REM_ALM_TYPE ('b0'H), + NM_ATT_BS11_SW_LOAD_INTENDED ('bb'H), + NM_ATT_BS11_SW_LOAD_SAFETY ('bc'H), + NM_ATT_BS11_SW_LOAD_STORED ('bd'H), + + NM_ATT_BS11_VENDOR_NAME ('c1'H), + NM_ATT_BS11_HOPPING_MODE ('c5'H), + NM_ATT_BS11_LMT_LOGON_SESSION ('c6'H), + NM_ATT_BS11_LMT_LOGIN_TIME ('c7'H), + NM_ATT_BS11_LMT_USER_ACC_LEV ('c8'H), + NM_ATT_BS11_LMT_USER_NAME ('c9'H), + + NM_ATT_BS11_L1_CONTROL_TS ('d8'H), + NM_ATT_BS11_RADIO_MEAS_GRAN ('dc'H), + NM_ATT_BS11_RADIO_MEAS_REP ('dd'H), + + NM_ATT_BS11_SH_LAPD_INT_TIMER ('e8'H), + + NM_ATT_BS11_BTS_STATE ('f0'H), + NM_ATT_BS11_E1_STATE ('f1'H), + NM_ATT_BS11_PLL ('f2'H), + NM_ATT_BS11_RX_OFFSET ('f3'H), + NM_ATT_BS11_ANT_TYPE ('f4'H), + NM_ATT_BS11_PLL_MODE ('fc'H), + NM_ATT_BS11_PASSWORD ('fd'H), +*/ + + /* osmocom (osmo-bts) specific attributes, used in combination + * with the "org.osmocom" manufacturer identification */ + NM_ATT_OSMO_REDUCEPOWER ('fe'H) /* TLV_TYPE_TV */ + +} with { variant "FIELDLENGTH(8)" }; + +/* Section 9.4.4 */ +type enumerated OML_FOM_AdministrativeState { + NM_STATE_LOCKED ('01'H), + NM_STATE_UNLOCKED ('02'H), + NM_STATE_SHUTDOWN ('03'H), + NM_STATE_NULL ('ff'H) +} with { variant "FIELDLENGTH(8)" }; + +/* Section 9.4.7 */ +type enumerated OML_FOM_AvailabilityStatus { + NM_AVSTATE_IN_TEST (1), + NM_AVSTATE_POWER_OFF (2), + NM_AVSTATE_OFF_LINE (3), + NM_AVSTATE_DEPENDENCY (5), + NM_AVSTATE_DEGRADED (6), + NM_AVSTATE_NOT_INSTALLED (7), + NM_AVSTATE_OK (255) +} with { variant "FIELDLENGTH(8)" }; + +type enumerated OML_FOM_OperationalState { + NM_OPSTATE_DISABLED (1), + NM_OPSTATE_ENABLED (2), + NM_OPSTATE_NULL (255) +} with { variant "FIELDLENGTH(8)" }; + +/* Section 9.4.13 */ +type enumerated OML_ChannelCombination { + NM_CHANC_TCHFull ('00'H), /* TCH/F + TCH/H + SACCH/TF */ + NM_CHANC_TCHHalf ('01'H), /* TCH/H(0,1) + FACCH/H(0,1) + SACCH/TH(0,1) */ + NM_CHANC_TCHHalf2 ('02'H), /* TCH/H(0) + FACCH/H(0) + SACCH/TH(0) + TCH/H(1) */ + NM_CHANC_SDCCH ('03'H), /* SDCCH/8 + SACCH/8 */ + NM_CHANC_mainBCCH ('04'H), /* FCCH + SCH + BCCH + CCCH */ + NM_CHANC_BCCHComb ('05'H), /* FCCH + SCH + BCCH + CCCH + SDCCH/4 + SACCH/C4 */ + NM_CHANC_BCCH ('06'H), /* BCCH + CCCH */ + NM_CHANC_BCCH_CBCH ('07'H), /* CHANC_BCCHComb + CBCH */ + NM_CHANC_SDCCH_CBCH ('08'H), /* CHANC_SDCCH8 + CBCH */ + /* ip.access + Osmocom */ + NM_CHANC_IPAC_bPDCH ('0b'H), /* PBCCH + PCCCH + PDTCH/F + PACCH/F + PTCCH/F */ + NM_CHANC_IPAC_cPDCH ('0c'H), /* PBCCH + PDTCH/F + PACCH/F + PTCCH/F */ + NM_CHANC_IPAC_PDCH ('0d'H), /* PDTCH/F + PACCH/F + PTCCH/F */ + NM_CHANC_IPAC_TCHFull_PDCH ('80'H), + NM_CHANC_IPAC_TCHFull_TCHHalf ('81'H), + /* Osmocom */ + NM_CHANC_OSMO_TCHFull_TCHHalf_PDCH ('90'H) +} with { variant "FIELDLENGTH(8)" }; + +/* Section 9.4.16 */ +type enumerated OML_FOM_EventType { + NM_EVT_COMM_FAIL (1), + NM_EVT_QOS_FAIL (2), + NM_EVT_PROC_FAIL (3), + NM_EVT_EQUIP_FAIL (4), + NM_EVT_ENV_FAIL (5) +} with { variant "FIELDLENGTH(8)" }; + +/* Section 9.4.63 */ +type enumerated OML_FOM_Severity { + NM_SEVER_CEASED (0), + NM_SEVER_CRITICAL (1), + NM_SEVER_MAJOR (2), + NM_SEVER_MINOR (3), + NM_SEVER_WARNING (4), + NM_SEVER_INDETERMINATE (5) +} with { variant "FIELDLENGTH(8)" }; + +/* Section 9.4.36 */ +type enumerated OML_FOM_NackCause { + /* General Nack Causes */ + NM_NACK_INCORR_STRUCT ('01'H), + NM_NACK_MSGTYPE_INVAL ('02'H), + NM_NACK_OBJCLASS_INVAL ('05'H), + NM_NACK_OBJCLASS_NOTSUPP ('06'H), + NM_NACK_BTSNR_UNKN ('07'H), + NM_NACK_TRXNR_UNKN ('08'H), + NM_NACK_OBJINST_UNKN ('09'H), + NM_NACK_ATTRID_INVAL ('0c'H), + NM_NACK_ATTRID_NOTSUPP ('0d'H), + NM_NACK_PARAM_RANGE ('0e'H), + NM_NACK_ATTRLIST_INCONSISTENT ('0f'H), + NM_NACK_SPEC_IMPL_NOTSUPP ('10'H), + NM_NACK_CANT_PERFORM ('11'H), + /* Specific Nack Causes */ + NM_NACK_RES_NOTIMPL ('19'H), + NM_NACK_RES_NOTAVAIL ('1a'H), + NM_NACK_FREQ_NOTAVAIL ('1b'H), + NM_NACK_TEST_NOTSUPP ('1c'H), + NM_NACK_CAPACITY_RESTR ('1d'H), + NM_NACK_PHYSCFG_NOTPERFORM ('1e'H), + NM_NACK_TEST_NOTINIT ('1f'H), + NM_NACK_PHYSCFG_NOTRESTORE ('20'H), + NM_NACK_TEST_NOSUCH ('21'H), + NM_NACK_TEST_NOSTOP ('22'H), + NM_NACK_MSGINCONSIST_PHYSCFG ('23'H), + NM_NACK_FILE_INCOMPLETE ('25'H), + NM_NACK_FILE_NOTAVAIL ('26'H), + NM_NACK_FILE_NOTACTIVATE ('27'H), + NM_NACK_REQ_NOT_GRANT ('28'H), + NM_NACK_WAIT ('29'H), + NM_NACK_NOTH_REPORT_EXIST ('2a'H), + NM_NACK_MEAS_NOTSUPP ('2b'H), + NM_NACK_MEAS_NOTSTART ('2c'H) +} with { variant "FIELDLENGTH(8)" }; + + + +type record OML_FOM { + uint8_t len, + OML_FOM_Header hdr, + OML_FOM_IE_List ies optional +} with { variant (len) "LENGTHTO(hdr,ies)" }; + +type record OML_IE_LV { + uint8_t len, + octetstring payload +} with { variant (len) "LENGTHTO(payload)" }; + +type record OML_IE_L16V { + uint16_t len, + octetstring payload +} with { variant (len) "LENGTHTO(payload)" }; + +template (value) OML_IE_L16V ts_OML_IE_L16V(template (value) uint16_t len, template (value) octetstring payload) := { + len := len, + payload := payload +} +template OML_IE_L16V tr_OML_IE_L16V(template uint16_t len, template octetstring payload) := { + len := len, + payload := payload +} + + +type record OML_IE_AvailStatus { + uint16_t len, + OML_FOM_AvailabilityStatus avail_status +} with { variant (len) "LENGTHTO(avail_status)" }; + +/* Section 9.4.1 */ +type record OML_FOM_AbisChannel { + uint8_t bts_port_nr, + uint8_t timeslot_nr, + OML_FOM_Subslot subslot_nr +}; +type enumerated OML_FOM_Subslot { + NM_SUBSLOT_A (0), + NM_SUBSLOT_B (1), + NM_SUBSLOT_C (2), + NM_SUBSLOT_D (3), + NM_SUBSLOT_64k (255) +} with { variant "FIELDLENGTH(8)" }; + +/* Section 9.4.5 */ +type record of uint16_t OML_ArfcnList; +type record OML_IE_ArfcnList { + uint16_t len, + OML_ArfcnList arfcn_list +}; + +/* Section 9.4.25 */ +type record length(6) of uint8_t OML_FOM_InterfLevBoundaries; + +/* Section 9.4.42 */ +type record length(3) of uint8_t OML_FOM_PowerOuthputThresholds; + +/* Section 9.4.43 */ +type enumerated OML_FOM_ProbableCauseType { + NM_PCAUSE_T_X721 (1), + NM_PCAUSE_T_GSM (2), + NM_PCAUSE_T_MANUF (3) +} with { variant "FIELDLENGTH(8)" }; +type record OML_FOM_ProbableCause { + OML_FOM_ProbableCauseType cause_type, + OCT2 cause_value +}; + +/* Section 9.4.53 */ +type record OML_FOM_T200 { + uint8_t sdcch_5ms, + uint8_t facch_f_5ms, + uint8_t facch_h_5ms, + uint8_t sacch_tch_sapi0_10ms, + uint8_t sacch_sdcch_10ms, + uint8_t sdcch_sapi3_5ms, + uint8_t sacch_rch_sapi3_10ms +}; + +type union OML_FOM_IE_Body { + OML_FOM_AbisChannel abis_channel, + OML_FOM_AdministrativeState adm_state, + OCT1 auton_report, + uint16_t bcch_arfcn, + uint8_t bsic, + uint8_t air_timer, + uint8_t load_ind_period, + uint8_t load_threshold, + OML_ChannelCombination chan_comb, + OML_FOM_EventType event_type, + uint16_t gsm_time, + uint8_t hsn, + uint8_t intave_param, + OML_FOM_InterfLevBoundaries interf_bound, + uint8_t maio, + uint8_t manuf_state, + uint8_t max_ta, + OML_FOM_NackCause nack_causes, + uint8_t ny1, + OML_FOM_OperationalState opstate, + uint8_t power_class, + OML_FOM_PowerOuthputThresholds power_thresh, + OML_FOM_ProbableCause prob_cause, + uint8_t rach_b_thresh, + uint16_t loadavg_slots, + uint8_t radio_subch, + uint8_t rf_maxpwr_r, + uint8_t spec_prob, + uint16_t start_time, + OML_FOM_T200 t200, + uint8_t tei, + uint8_t test_no, + OCT2 vswr_thresh, + uint8_t window_size, + uint8_t tsc, + OML_FOM_Severity severity, + uint8_t outst_alarm, + uint8_t meas_type, + + OML_IE_AvailStatus avail_status, + OML_IE_ArfcnList arfcn_list, + + uint32_t ip, + uint16_t portnr, + uint8_t stream_id, + OCT6 sec_oml_cfg, + OCT8 ip_if_cfg, + OCT12 ip_gw_cfg, + uint32_t in_serv_time, + uint16_t paging_cfg, + OCT2 freq_ctrl, + + OML_IE_L16V other +}; + +type record OML_FOM_IE { + OML_FOM_IE_Type iei, + OML_FOM_IE_Body body +} with { variant (body) "CROSSTAG( + abis_channel, iei = NM_ATT_ABIS_CHANNEL; + adm_state, iei = NM_ATT_ADM_STATE; + auton_report, iei = NM_ATT_AUTON_REPORT; + bcch_arfcn, iei = NM_ATT_BCCH_ARFCN; + bsic, iei = NM_ATT_BSIC; + air_timer, iei = NM_ATT_BTS_AIR_TIMER; + load_ind_period, iei = NM_ATT_CCCH_L_I_P; + load_threshold, iei = NM_ATT_CCCH_L_T; + chan_comb, iei = NM_ATT_CHAN_COMB; + event_type, iei = NM_ATT_EVENT_TYPE; + gsm_time, iei = NM_ATT_GSM_TIME; + hsn, iei = NM_ATT_HSN; + intave_param, iei = NM_ATT_INTAVE_PARAM; + interf_bound, iei = NM_ATT_INTERF_BOUND; + maio, iei = NM_ATT_MAIO; + manuf_state, iei = NM_ATT_MANUF_STATE; + max_ta, iei = NM_ATT_MAX_TA; + nack_causes, iei = NM_ATT_NACK_CAUSES; + ny1, iei = NM_ATT_NY1; + opstate, iei = NM_ATT_OPER_STATE; + power_class, iei = NM_ATT_POWER_CLASS; + power_thresh, iei = NM_ATT_POWER_THRESH; + prob_cause, iei = NM_ATT_PROB_CAUSE; + rach_b_thresh, iei = NM_ATT_RACH_B_THRESH; + loadavg_slots, iei = NM_ATT_LDAVG_SLOTS; + radio_subch, iei = NM_ATT_RAD_SUBC; + rf_maxpwr_r, iei = NM_ATT_RF_MAXPOWR_R; + spec_prob, iei = NM_ATT_SPEC_PROB; + start_time, iei = NM_ATT_START_TIME; + t200, iei = NM_ATT_T200; + tei, iei = NM_ATT_TEI; + test_no, iei = NM_ATT_TEST_NO; + vswr_thresh, iei = NM_ATT_VSWR_THRESH; + window_size, iei = NM_ATT_WINDOW_SIZE; + tsc, iei = NM_ATT_TSC; + severity, iei = NM_ATT_SEVERITY; + outst_alarm, iei = NM_ATT_OUTST_ALARM; + meas_type, iei = NM_ATT_MEAS_TYPE; + + avail_status, iei = NM_ATT_AVAIL_STATUS; + arfcn_list, iei = NM_ATT_ARFCN_LIST; + + ip, iei = NM_ATT_IPACC_DST_IP; + portnr, iei = NM_ATT_IPACC_DST_IP_PORT; + stream_id, iei = NM_ATT_IPACC_STREAM_ID; + sec_oml_cfg, iei = NM_ATT_IPACC_SEC_OML_CFG; + ip_if_cfg, iei = NM_ATT_IPACC_IP_IF_CFG; + ip_gw_cfg, iei = NM_ATT_IPACC_IP_GW_CFG; + in_serv_time, iei = NM_ATT_IPACC_IN_SERV_TIME; + paging_cfg, iei = NM_ATT_IPACC_PAGING_CFG; + freq_ctrl, iei = NM_ATT_IPACC_FREQ_CTRL; + + other, OTHERWISE; + )" }; + +type record of OML_FOM_IE OML_FOM_IE_List; + +type record OML_MANUF_IPA { + uint8_t len, + uint8_t str_len, + charstring manuf_str, + OML_FOM_Header hdr, + OML_FOM_IE_List ies optional +} with { variant (len) "LENGTHTO(hdr,ies)" + variant (str_len) "LENGTHTO(manuf_str)" }; + +type union OML_MANUF { + OML_MANUF_IPA ipa +}; + + +external function enc_OML_PDU(in OML_PDU msg) return octetstring + with { extension "prototype(convert) encode(RAW)" }; +external function dec_OML_PDU(in octetstring stream) return OML_PDU + with { extension "prototype(convert) decode(RAW)" }; + + + +template (value) OML_FOM_IE ts_OML_IE(OML_FOM_IE_Type iei, template (value) OML_FOM_IE_Body body) := { + iei := iei, + body := body +} +template OML_FOM_IE tr_OML_IE(OML_FOM_IE_Type iei, template OML_FOM_IE_Body body) := { + iei := ?, + body := body +} + +template OML_PDU tr_OML_FOM_only := { + mdisc := ABIS_OM_MDISC_FOM, + placement := ABIS_OM_PLACEMENT_ONLY, + sequence := 0, + u := ? +} + +template OML_PDU tr_OML_MsgType(template OML_FOM_MessageType msg_type, + template OML_FOM_ObjectClass obj_class := ?, + template OML_FOM_ObjectInstance obj_inst := ?, + template OML_FOM_IE_List ies := *) +modifies tr_OML_FOM_only := { + u := { + fom := { + hdr := { + msg_type := msg_type, + obj_class := obj_class, + obj_inst := obj_inst + }, + ies := ies + } + } +} +template (value) OML_PDU ts_OML_MsgType(template (value) OML_FOM_MessageType msg_type, + template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (omit) OML_FOM_IE_List ies := omit) := { + mdisc := ABIS_OM_MDISC_FOM, + placement := ABIS_OM_PLACEMENT_ONLY, + sequence := 0, + u := { + fom := { + len := 0, /* overwritten */ + hdr := ts_OML_FomHeader(msg_type, obj_class, obj_inst), + ies := ies + } + } +} + + +template (value) OML_FOM_Header ts_OML_FomHeader(template (value) OML_FOM_MessageType msg_type, + template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst) := { + msg_type := msg_type, + obj_class := obj_class, + obj_inst := obj_inst +} +template OML_FOM_Header tr_OML_FomHeader(template OML_FOM_MessageType msg_type, + template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst) := { + msg_type := msg_type, + obj_class := obj_class, + obj_inst := obj_inst +} + + +template (value) OML_FOM_ObjectInstance ts_OML_ObjectInstance(uint8_t bts, uint8_t trx, uint8_t ts) := { + bts_nr := bts, + trx_nr := trx, + ts_nr := ts +} +template OML_FOM_ObjectInstance tr_OML_ObjectInstance(template uint8_t bts, template uint8_t trx, + template uint8_t ts) := { + bts_nr := bts, + trx_nr := trx, + ts_nr := ts +} + + + +template (value) OML_PDU ts_OML_IPA_MsgType(template (value) OML_FOM_MessageType msg_type, + template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (omit) OML_FOM_IE_List ies := omit) := { + mdisc := ABIS_OM_MDISC_MANUF, + placement := ABIS_OM_PLACEMENT_ONLY, + sequence := 0, + u := { + manuf := { + ipa := { + len := 0, /* overwritten */ + str_len := 13, + manuf_str := "com.ipaccess" & char(0,0,0,0), + hdr := ts_OML_FomHeader(msg_type, obj_class, obj_inst), + ies := ies + } + } + } +} +template OML_PDU tr_OML_IPA_MsgType(template OML_FOM_MessageType msg_type := ?, + template OML_FOM_ObjectClass obj_class := ?, + template OML_FOM_ObjectInstance obj_inst := ?, + template OML_FOM_IE_List ies := *) := { + mdisc := ABIS_OM_MDISC_MANUF, + placement := ABIS_OM_PLACEMENT_ONLY, + sequence := 0, + u := { + manuf := { + ipa := { + len := ?, + str_len := 13, + manuf_str := "com.ipaccess" & char(0,0,0,0), + hdr := tr_OML_FomHeader(msg_type, obj_class, obj_inst), + ies := ies + } + } + } +} + +/* 8.8.1 State Changed Event Report */ +template (value) OML_PDU ts_OML_StateChgEvtRep(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (value) OML_FOM_OperationalState opstate, + template (value) OML_FOM_AvailabilityStatus avstate) := + ts_OML_MsgType(NM_MT_STATECHG_EVENT_REP, obj_class, obj_inst, { + ts_OML_IE(NM_ATT_OPER_STATE, OML_FOM_IE_Body:{opstate := opstate}), + ts_OML_IE(NM_ATT_AVAIL_STATUS, OML_FOM_IE_Body:{avail_status := {len:= 1, avail_status := avstate}}) + }); +template OML_PDU tr_OML_StateChgEvtRep(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst, + template OML_FOM_OperationalState opstate := ?, + template OML_FOM_AvailabilityStatus avstate := ?) := + tr_OML_MsgType(NM_MT_STATECHG_EVENT_REP, obj_class, obj_inst, { + tr_OML_IE(NM_ATT_OPER_STATE, OML_FOM_IE_Body:{opstate := opstate}), + tr_OML_IE(NM_ATT_AVAIL_STATUS, OML_FOM_IE_Body:{avail_status := {len := 1, avail_status := avstate}}) + }); + +/* 8.8.2 Failure Event Report */ +template (value) OML_PDU ts_OML_FailureEvtRep(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (value) OML_FOM_EventType evt_type, + template (value) OML_FOM_Severity severity, + template (value) OML_FOM_ProbableCause cause) := + ts_OML_MsgType(NM_MT_FAILURE_EVENT_REP, obj_class, obj_inst, { + ts_OML_IE(NM_ATT_EVENT_TYPE, OML_FOM_IE_Body:{event_type := evt_type}), + ts_OML_IE(NM_ATT_SEVERITY, OML_FOM_IE_Body:{severity := severity}), + ts_OML_IE(NM_ATT_PROB_CAUSE, OML_FOM_IE_Body:{prob_cause := cause}) + }); +template OML_PDU tr_OML_FailureEvtRep(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst, + template OML_FOM_EventType evt_type, + template OML_FOM_Severity severity, + template OML_FOM_ProbableCause cause) := + tr_OML_MsgType(NM_MT_FAILURE_EVENT_REP, obj_class, obj_inst, { + tr_OML_IE(NM_ATT_EVENT_TYPE, OML_FOM_IE_Body:{event_type := evt_type}), + tr_OML_IE(NM_ATT_SEVERITY, OML_FOM_IE_Body:{severity := severity}), + tr_OML_IE(NM_ATT_PROB_CAUSE, OML_FOM_IE_Body:{prob_cause := cause}), + * + }); + +/* 8.8.5 Change Administrative State */ +template (value) OML_PDU ts_OML_ChangeAdmState(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (value) OML_FOM_AdministrativeState adm_st) := + ts_OML_MsgType(NM_MT_CHG_ADM_STATE, obj_class, obj_inst, { + ts_OML_IE(NM_ATT_ADM_STATE, OML_FOM_IE_Body:{adm_state := adm_st}) + }); +template OML_PDU tr_OML_ChangeAdmState(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst, + template OML_FOM_AdministrativeState adm_st) := + tr_OML_MsgType(NM_MT_CHG_ADM_STATE, obj_class, obj_inst, { + tr_OML_IE(NM_ATT_ADM_STATE, OML_FOM_IE_Body:{adm_state := adm_st}) + }); + +template (value) OML_PDU ts_OML_ChangeAdmStateACK(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (value) OML_FOM_AdministrativeState adm_st) := + ts_OML_MsgType(NM_MT_CHG_ADM_STATE_ACK, obj_class, obj_inst, { + ts_OML_IE(NM_ATT_ADM_STATE, OML_FOM_IE_Body:{adm_state := adm_st}) + }); +template OML_PDU tr_OML_ChangeAdmStateACK(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst, + template OML_FOM_AdministrativeState adm_st) := + tr_OML_MsgType(NM_MT_CHG_ADM_STATE_ACK, obj_class, obj_inst, { + tr_OML_IE(NM_ATT_ADM_STATE, OML_FOM_IE_Body:{adm_state := adm_st}) + }); +template (value) OML_PDU ts_OML_ChangeAdmStateNACK(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (value) OML_FOM_NackCause cause) := + ts_OML_MsgType(NM_MT_CHG_ADM_STATE_NACK, obj_class, obj_inst, { + ts_OML_IE(NM_ATT_NACK_CAUSES, OML_FOM_IE_Body:{nack_causes := cause}) + }); +template OML_PDU tr_OML_ChangeAdmStateNACK(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst, + template OML_FOM_NackCause cause := ?) := + tr_OML_MsgType(NM_MT_CHG_ADM_STATE_NACK, obj_class, obj_inst, { + *, + tr_OML_IE(NM_ATT_NACK_CAUSES, OML_FOM_IE_Body:{nack_causes := cause}) + }); + + + + + +/* 8.9.2 Opstart */ +template (value) OML_PDU ts_OML_Opstart(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst) := + ts_OML_MsgType(NM_MT_OPSTART, obj_class, obj_inst); +template OML_PDU tr_OML_Opstart(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst) := + tr_OML_MsgType(NM_MT_OPSTART, obj_class, obj_inst); + +template (value) OML_PDU ts_OML_OpstartACK(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst) := + ts_OML_MsgType(NM_MT_OPSTART_ACK, obj_class, obj_inst); +template OML_PDU tr_OML_OpstartACK(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst) := + tr_OML_MsgType(NM_MT_OPSTART_ACK, obj_class, obj_inst); + +template (value) OML_PDU ts_OML_OpstartNACK(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (value) OML_FOM_NackCause cause) := + ts_OML_MsgType(NM_MT_OPSTART_NACK, obj_class, obj_inst, { + ts_OML_IE(NM_ATT_NACK_CAUSES, OML_FOM_IE_Body:{nack_causes := cause}) + }); +template OML_PDU tr_OML_OpstartNACK(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst, + template OML_FOM_NackCause cause := ?) := + tr_OML_MsgType(NM_MT_OPSTART_NACK, obj_class, obj_inst, { + tr_OML_IE(NM_ATT_NACK_CAUSES, OML_FOM_IE_Body:{nack_causes := cause}) + }); + +/* 8.3.5 SW Activate Request */ +template (value) OML_PDU ts_OML_SwActReq(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (value) octetstring hw_config, + template (value) octetstring sw_config) := + ts_OML_MsgType(NM_MT_SW_ACT_REQ, obj_class, obj_inst, { + ts_OML_IE(NM_ATT_HW_CONFIG, OML_FOM_IE_Body:{other := ts_OML_IE_L16V(0, hw_config)}), + ts_OML_IE(NM_ATT_SW_CONFIG, OML_FOM_IE_Body:{other := ts_OML_IE_L16V(0, sw_config)}) + }); +template OML_PDU tr_OML_SwActReq(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst, + template octetstring hw_config, + template octetstring sw_config) := + tr_OML_MsgType(NM_MT_SW_ACT_REQ, obj_class, obj_inst, { + tr_OML_IE(NM_ATT_HW_CONFIG, OML_FOM_IE_Body:{other := tr_OML_IE_L16V(?, hw_config)}), + tr_OML_IE(NM_ATT_SW_CONFIG, OML_FOM_IE_Body:{other := tr_OML_IE_L16V(?, sw_config)}) + }); + +template (value) OML_PDU ts_OML_SwActReqACK(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (value) octetstring hw_config, + template (value) octetstring sw_config) := + ts_OML_MsgType(NM_MT_SW_ACT_REQ_ACK, obj_class, obj_inst, { + ts_OML_IE(NM_ATT_HW_CONFIG, OML_FOM_IE_Body:{other := ts_OML_IE_L16V(0, hw_config)}), + ts_OML_IE(NM_ATT_SW_CONFIG, OML_FOM_IE_Body:{other := ts_OML_IE_L16V(0, sw_config)}) + }); +template OML_PDU tr_OML_SwActReqACK(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst, + template octetstring hw_config, + template octetstring sw_config) := + tr_OML_MsgType(NM_MT_SW_ACT_REQ_ACK, obj_class, obj_inst, { + tr_OML_IE(NM_ATT_HW_CONFIG, OML_FOM_IE_Body:{other := tr_OML_IE_L16V(?, hw_config)}), + tr_OML_IE(NM_ATT_SW_CONFIG, OML_FOM_IE_Body:{other := tr_OML_IE_L16V(?, sw_config)}) + }); + +/* 8.3.6 Activate SW */ +template (value) OML_PDU ts_OML_ActivateSw(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (value) octetstring file_id, + template (value) octetstring sw_desc) := + ts_OML_MsgType(NM_MT_ACTIVATE_SW, obj_class, obj_inst, { + ts_OML_IE(NM_ATT_FILE_ID, OML_FOM_IE_Body:{other := ts_OML_IE_L16V(0, file_id)}), + ts_OML_IE(NM_ATT_SW_DESCR, OML_FOM_IE_Body:{other := ts_OML_IE_L16V(0, sw_desc)}) + }); +template OML_PDU tr_OML_ActivateSw(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst, + template octetstring file_id, + template octetstring sw_desc) := + tr_OML_MsgType(NM_MT_ACTIVATE_SW, obj_class, obj_inst, { + tr_OML_IE(NM_ATT_FILE_ID, OML_FOM_IE_Body:{other := tr_OML_IE_L16V(?, file_id)}), + tr_OML_IE(NM_ATT_SW_DESCR, OML_FOM_IE_Body:{other := tr_OML_IE_L16V(?, sw_desc)}) + }); + +template (value) OML_PDU ts_OML_ActivateSwACK(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (value) octetstring file_id, + template (value) octetstring sw_desc) := + ts_OML_MsgType(NM_MT_ACTIVATE_SW_ACK, obj_class, obj_inst, { + ts_OML_IE(NM_ATT_FILE_ID, OML_FOM_IE_Body:{other := ts_OML_IE_L16V(0, file_id)}), + ts_OML_IE(NM_ATT_SW_DESCR, OML_FOM_IE_Body:{other := ts_OML_IE_L16V(0, sw_desc)}) + }); +template OML_PDU tr_OML_ActivateSwACK(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst, + template octetstring file_id, + template octetstring sw_desc) := + tr_OML_MsgType(NM_MT_ACTIVATE_SW_ACK, obj_class, obj_inst, { + tr_OML_IE(NM_ATT_FILE_ID, OML_FOM_IE_Body:{other := tr_OML_IE_L16V(?, file_id)}), + tr_OML_IE(NM_ATT_SW_DESCR, OML_FOM_IE_Body:{other := tr_OML_IE_L16V(?, sw_desc)}) + }); + +/* 8.6.1 Set BTS Attributes */ +template (value) OML_PDU ts_OML_SetBtsAttr(template (value) OML_FOM_ObjectInstance obj_inst, + template (value) OML_FOM_IE_List ies) := + ts_OML_MsgType(NM_MT_SET_BTS_ATTR, NM_OC_BTS, obj_inst, ies); +template OML_PDU tr_OML_SetBtsAttr(template OML_FOM_ObjectInstance obj_inst, + template OML_FOM_IE_List ies) := + tr_OML_MsgType(NM_MT_SET_BTS_ATTR, NM_OC_BTS, obj_inst, ies); + + +/* 8.6.2 Set Radio Carrier Attributes */ +template (value) OML_PDU ts_OML_SetRadioAttr(template (value) OML_FOM_ObjectInstance obj_inst, + template (value) uint8_t maxpwr_r, + template (value) OML_ArfcnList arfcn_list) := + ts_OML_MsgType(NM_MT_SET_RADIO_ATTR, NM_OC_RADIO_CARRIER, obj_inst, { + ts_OML_IE(NM_ATT_RF_MAXPOWR_R, OML_FOM_IE_Body:{rf_maxpwr_r := maxpwr_r}), + ts_OML_IE(NM_ATT_ARFCN_LIST, OML_FOM_IE_Body:{arfcn_list := {len:=0, arfcn_list:=arfcn_list}}) + }); +template OML_PDU tr_OML_SetRadioAttr(template OML_FOM_ObjectInstance obj_inst, + template uint8_t maxpwr_r, + template OML_ArfcnList arfcn_list) := + tr_OML_MsgType(NM_MT_SET_RADIO_ATTR, NM_OC_RADIO_CARRIER, obj_inst, { + tr_OML_IE(NM_ATT_RF_MAXPOWR_R, OML_FOM_IE_Body:{rf_maxpwr_r := maxpwr_r}), + tr_OML_IE(NM_ATT_ARFCN_LIST, OML_FOM_IE_Body:{arfcn_list := {len:=0, arfcn_list:=arfcn_list}}) + }); + + +/* 8.6.3 Set Channel Attributes */ +template (value) OML_PDU ts_OML_SetChanAttr(template (value) OML_FOM_ObjectInstance obj_inst, + template (value) OML_ChannelCombination chan_comb, + template (value) uint8_t tsc) := + ts_OML_MsgType(NM_MT_SET_CHAN_ATTR, NM_OC_CHANNEL, obj_inst, { + ts_OML_IE(NM_ATT_CHAN_COMB, OML_FOM_IE_Body:{chan_comb := chan_comb}), + ts_OML_IE(NM_ATT_TSC, OML_FOM_IE_Body:{tsc := tsc}) + }); +template OML_PDU tr_OML_SetChanAttr(template OML_FOM_ObjectInstance obj_inst, + template OML_ChannelCombination chan_comb, + template uint8_t tsc) := + tr_OML_MsgType(NM_MT_SET_CHAN_ATTR, NM_OC_CHANNEL, obj_inst, { + tr_OML_IE(NM_ATT_CHAN_COMB, OML_FOM_IE_Body:{chan_comb := chan_comb}), + *, + tr_OML_IE(NM_ATT_TSC, OML_FOM_IE_Body:{tsc := tsc}) + }); + + +/* 8.11.1 Get Attributes */ +template (value) OML_PDU ts_OML_GetAttributes(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (value) octetstring req_attr) := + ts_OML_MsgType(NM_MT_GET_ATTR, obj_class, obj_inst, { + ts_OML_IE(NM_ATT_LIST_REQ_ATTR, OML_FOM_IE_Body:{other := ts_OML_IE_L16V(0, req_attr)}) + }); +template OML_PDU tr_OML_GetAttributes(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst, + template octetstring req_attr) := + tr_OML_MsgType(NM_MT_GET_ATTR, obj_class, obj_inst, { + tr_OML_IE(NM_ATT_LIST_REQ_ATTR, OML_FOM_IE_Body:{other := tr_OML_IE_L16V(?, req_attr)}) + }); + +/* convert a request into an ACK */ +function f_OML_make_ack(OML_PDU orig) return OML_PDU { + var OML_PDU resp := orig; + if (ischosen(resp.u.fom)) { + int2enum(enum2int(orig.u.fom.hdr.msg_type)+1, resp.u.fom.hdr.msg_type); + } else if (ischosen(resp.u.manuf)) { + int2enum(enum2int(orig.u.manuf.ipa.hdr.msg_type)+1, resp.u.manuf.ipa.hdr.msg_type); + } else { + testcase.stop("Unsupported OML in f_OML_make_ack(): ", orig); + } + return resp; +} +function f_OML_make_ack_exp(OML_PDU orig) return template OML_PDU { + var template OML_PDU resp := orig; + var OML_FOM_MessageType msg_t; + if (ischosen(resp.u.fom)) { + resp.u.fom.len := ?; + int2enum(enum2int(orig.u.fom.hdr.msg_type)+1, msg_t); + resp.u.fom.hdr.msg_type := msg_t; + } else if (ischosen(resp.u.manuf)) { + resp.u.manuf.ipa.len := ?; + int2enum(enum2int(orig.u.manuf.ipa.hdr.msg_type)+1, msg_t); + resp.u.manuf.ipa.hdr.msg_type := msg_t; + } else { + testcase.stop("Unsupported OML in f_OML_make_ack(): ", orig); + } + return resp; +} + +/* convert a request into a NACK, appending the cause IE */ +function f_OML_make_nack(OML_PDU orig, OML_FOM_NackCause cause) return OML_PDU { + var OML_PDU resp := orig; + if (ischosen(resp.u.fom)) { + int2enum(enum2int(orig.u.fom.hdr.msg_type)+2, resp.u.fom.hdr.msg_type); + resp.u.fom.ies := orig.u.fom.ies & { + valueof(ts_OML_IE(NM_ATT_NACK_CAUSES, OML_FOM_IE_Body:{nack_causes := cause})) + }; + } else if (ischosen(resp.u.manuf)) { + int2enum(enum2int(orig.u.manuf.ipa.hdr.msg_type)+2, resp.u.manuf.ipa.hdr.msg_type); + resp.u.manuf.ipa.ies := orig.u.manuf.ipa.ies & { + valueof(ts_OML_IE(NM_ATT_NACK_CAUSES, OML_FOM_IE_Body:{nack_causes := cause})) + }; + } else { + testcase.stop("Unsupported OML in f_OML_make_nack(): ", orig); + } + return resp; +} +function f_OML_make_nack_exp(OML_PDU orig, template OML_FOM_NackCause cause) return template OML_PDU { + var template OML_PDU resp := orig; + var OML_FOM_MessageType msg_t; + if (ischosen(resp.u.fom)) { + resp.u.fom.len := ?; + int2enum(enum2int(orig.u.fom.hdr.msg_type)+2, msg_t); + resp.u.fom.hdr.msg_type := msg_t; + resp.u.fom.ies := { *, + tr_OML_IE(NM_ATT_NACK_CAUSES, OML_FOM_IE_Body:{nack_causes := cause}) + }; + } else if (ischosen(resp.u.manuf)) { + resp.u.manuf.ipa.len := ?; + int2enum(enum2int(orig.u.manuf.ipa.hdr.msg_type)+2, msg_t); + resp.u.manuf.ipa.hdr.msg_type := msg_t; + resp.u.manuf.ipa.ies := { *, + tr_OML_IE(NM_ATT_NACK_CAUSES, OML_FOM_IE_Body:{nack_causes := cause}) + }; +/* + resp.u.manuf.ipa.ies := resp.u.manuf.ipa.ies & { + tr_OML_IE(NM_ATT_NACK_CAUSES, OML_FOM_IE_Body:{nack_causes := cause}) + }; +*/ + } else { + testcase.stop("Unsupported OML in f_OML_make_nack_exp(): ", orig); + } + return resp; +} + + + +/*********************************************************************** + * IPA / Osmocom specifics + ***********************************************************************/ + + + +template (value) OML_PDU ts_OML_IPA_RslConnect(uint8_t stream_id, uint16_t port_nr) := + ts_OML_IPA_MsgType(NM_MT_IPACC_RSL_CONNECT, NM_OC_BASEB_TRANSC, ts_OML_ObjectInstance(0,0,255), { + ts_OML_IE(NM_ATT_IPACC_STREAM_ID, OML_FOM_IE_Body:{stream_id := stream_id}), + ts_OML_IE(NM_ATT_IPACC_DST_IP_PORT, OML_FOM_IE_Body:{portnr := port_nr}) + }); +template OML_PDU tr_OML_IPA_RslConnect(template uint8_t stream_id, template uint16_t port_nr) := + tr_OML_IPA_MsgType(NM_MT_IPACC_RSL_CONNECT, NM_OC_BASEB_TRANSC, tr_OML_ObjectInstance(0,0,255), { + tr_OML_IE(NM_ATT_IPACC_STREAM_ID, OML_FOM_IE_Body:{stream_id := stream_id}), + tr_OML_IE(NM_ATT_IPACC_DST_IP_PORT, OML_FOM_IE_Body:{portnr := port_nr}) + }); + + + + + +} with { encode "RAW"; variant "FIELDORDER(msb)" }; -- To view, visit https://gerrit.osmocom.org/12875 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I65f71bf7f54cbe3290757e810b1df1e54929bdd1 Gerrit-Change-Number: 12875 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 08:49:56 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Feb 2019 08:49:56 +0000 Subject: Change in osmo-ttcn3-hacks[master]: IPA_Emulation: Integrate OML decoding/encoding; add OML port Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12876 Change subject: IPA_Emulation: Integrate OML decoding/encoding; add OML port ...................................................................... IPA_Emulation: Integrate OML decoding/encoding; add OML port Change-Id: Id0dabe7eca4f81d22a60b346ac598be81533f53c --- M library/IPA_Emulation.ttcnpp 1 file changed, 47 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/76/12876/1 diff --git a/library/IPA_Emulation.ttcnpp b/library/IPA_Emulation.ttcnpp index 413d290..f556327 100644 --- a/library/IPA_Emulation.ttcnpp +++ b/library/IPA_Emulation.ttcnpp @@ -31,6 +31,10 @@ import from RSL_Types all; #endif +#ifdef IPA_EMULATION_OML +import from AbisOML_Types all; +#endif + #ifdef IPA_EMULATION_MGCP import from MGCP_Types all; #endif @@ -112,6 +116,7 @@ IPAC_PROTO_RSL_TRX2, IPAC_PROTO_RSL_TRX3 ); #endif + /* Client port for general IPA messages, not further decoded */ type port IPA_SP_PT message { inout ASP_IPA_Unitdata, ASP_IPA_Event; @@ -131,6 +136,13 @@ } with { extension "internal" } #endif +#ifdef IPA_EMULATION_OML +/* Client port for A-bis OML inside IPA */ +type port IPA_OML_PT message { + inout OML_PDU, octetstring, ASP_IPA_Event; +} with { extension "internal" } +#endif + /* Client port for CTRL inside IPA */ type port IPA_CTRL_PT message { inout CtrlMessage, ASP_IPA_Event; @@ -167,6 +179,10 @@ /* up-facing port for RSL */ port IPA_RSL_PT IPA_RSL_PORT; #endif +#ifdef IPA_EMULATION_OML + /* up-facing port for OML */ + port IPA_OML_PT IPA_OML_PORT; +#endif /* up-facing port for CTRL */ port IPA_CTRL_PT IPA_CTRL_PORT; #ifdef IPA_EMULATION_GSUP @@ -276,6 +292,11 @@ IPA_RSL_PORT.send(evt); } #endif +#ifdef IPA_EMULATION_OML + if (IPA_OML_PORT.checkstate("Connected")) { + IPA_OML_PORT.send(evt); + } +#endif if (IPA_CTRL_PORT.checkstate("Connected")) { IPA_CTRL_PORT.send(evt); } @@ -437,6 +458,14 @@ } #endif +#ifdef IPA_EMULATION_OML +private function f_from_oml(IPL4asp_Types.ConnectionId connId, OML_PDU oml_tx) return IPA_Send { + var octetstring payload := enc_OML_PDU(oml_tx); + var IPA_Send ret := valueof(t_IPA_Send(connId, IPAC_PROTO_OML, payload)); + return ret; +} +#endif + /* main function to use for a client-side IPA implementation */ function main_client(charstring remote_host, IPL4asp_Types.PortNumber remote_port, charstring local_host, IPL4asp_Types.PortNumber local_port, @@ -527,6 +556,9 @@ #ifdef IPA_EMULATION_RSL var ASP_RSL_Unitdata rsl; #endif +#ifdef IPA_EMULATION_OML + var OML_PDU oml; +#endif #ifdef IPA_EMULATION_RSPRO var RsproPDU rspro; #endif @@ -577,6 +609,12 @@ IPA_RSL_PORT.send(rsl); } #endif +#ifdef IPA_EMULATION_OML + case (IPAC_PROTO_OML) { + oml := dec_OML_PDU(ipa_rx.msg) + IPA_OML_PORT.send(oml); + } +#endif case (IPAC_PROTO_OSMO) { select (ipa_rx.streamIdExt) { #ifdef IPA_EMULATION_MGCP @@ -691,7 +729,15 @@ IPA_PORT.send(f_from_rsl(g_ipa_conn_id, rsl)); } #endif - +#ifdef IPA_EMULATION_OML + /* Received OML -> down into IPA */ + [] IPA_OML_PORT.receive(OML_PDU:?) -> value oml { + IPA_PORT.send(f_from_oml(g_ipa_conn_id, oml)); + } + [] IPA_OML_PORT.receive(octetstring:?) -> value payload { + IPA_PORT.send(t_IPA_Send(g_ipa_conn_id, IPAC_PROTO_OML, payload)); + } +#endif /* Received MISC (OML/CTRL) -> down into IPA */ [] IPA_SP_PORT.receive(ASP_IPA_Unitdata: ?) -> value ipa_ud { IPA_PORT.send(f_from_asp(g_ipa_conn_id, ipa_ud)); -- To view, visit https://gerrit.osmocom.org/12876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id0dabe7eca4f81d22a60b346ac598be81533f53c Gerrit-Change-Number: 12876 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 08:51:58 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Feb 2019 08:51:58 +0000 Subject: Change in osmo-bts[master]: OML: Ensure minimum required attributes are set before accepting OPSTART In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12874 ) Change subject: OML: Ensure minimum required attributes are set before accepting OPSTART ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12874/1/src/common/oml.c File src/common/oml.c: https://gerrit.osmocom.org/#/c/12874/1/src/common/oml.c at 1009 PS1, Line 1009: return sizeof(bts_mand_attr); > picky: due to being a list of uint8_t, sizeof() is same as num of elements, but it'd be more corre [?] I agree in principle. However, in this specific case it's virtually impossible that somebody would ever change the type, given that the IEI (IE identifier) that we compare against is a uint8_t. I can change it, but I really think in this case it's not really worth it. -- To view, visit https://gerrit.osmocom.org/12874 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3a818f8eceb6abef1b20d2b3892a749dbc9e4b05 Gerrit-Change-Number: 12874 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 11 Feb 2019 08:51:58 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 08:52:53 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Feb 2019 08:52:53 +0000 Subject: Change in osmo-bts[master]: WIP: send proper OML alert in case of errors In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12867 ) Change subject: WIP: send proper OML alert in case of errors ...................................................................... Patch Set 1: I think I wanted to keep it WIP in order to read through the OML code once again and check if there are other similar instances. I only fixed those that I spotted coincidentially so far. -- To view, visit https://gerrit.osmocom.org/12867 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5b19b82a4874617c7c584cf3eac55eb9c756710a Gerrit-Change-Number: 12867 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 11 Feb 2019 08:52:53 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 08:54:01 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 11 Feb 2019 08:54:01 +0000 Subject: Change in osmo-bsc[master]: bsc_vty: add features to disable specific lchans via vty In-Reply-To: References: Message-ID: dexter has submitted this change and it was merged. ( https://gerrit.osmocom.org/12624 ) Change subject: bsc_vty: add features to disable specific lchans via vty ...................................................................... bsc_vty: add features to disable specific lchans via vty In some test and debug situations it is useful to have the ability to lock certain lchans in a way that the BSC can not allocate them. One application might be to simulate an exhaustion of all TCH/H channels in order to force the BSC to take one of the available TCH/F. Lets add a command to the vty which alloes us sen lchans from LCHAN_ST_UNUSED to LCHAN_ST_BORKEN and vice versa. Change-Id: I397e68e26d6a1727890353fa34f4897b54795866 Related: OS#3503 --- M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/lchan_fsm.c 2 files changed, 48 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 3830475..357ee9e 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -4788,6 +4788,51 @@ return CMD_SUCCESS; } +/* Debug command to send lchans from state LCHAN_ST_UNUSED to state + * LCHAN_ST_BORKEN and vice versa. */ +DEFUN_HIDDEN(lchan_set_borken, lchan_set_borken_cmd, + "bts <0-255> trx <0-255> timeslot <0-7> sub-slot <0-7> (borken|unused)", + BTS_NR_TRX_TS_SS_STR2 + "send lchan to state LCHAN_ST_BORKEN (for debugging)\n" + "send lchan to state LCHAN_ST_UNUSED (for debugging)\n") +{ + struct gsm_bts_trx_ts *ts; + struct gsm_lchan *lchan; + int ss_nr = atoi(argv[3]); + ts = vty_get_ts(vty, argv[0], argv[1], argv[2]); + if (!ts) + return CMD_WARNING; + lchan = &ts->lchan[ss_nr]; + if (!lchan->fi) + return CMD_WARNING; + + if (!strcmp(argv[4], "borken")) { + if (lchan->fi->state == LCHAN_ST_UNUSED) + osmo_fsm_inst_state_chg(lchan->fi, LCHAN_ST_BORKEN, 0, 0); + else { + vty_out(vty, + "%% lchan is in state %s, only lchans that are in state %s may be moved to state %s manually%s", + osmo_fsm_state_name(lchan->fi->fsm, lchan->fi->state), + osmo_fsm_state_name(lchan->fi->fsm, LCHAN_ST_UNUSED), + osmo_fsm_state_name(lchan->fi->fsm, LCHAN_ST_BORKEN), VTY_NEWLINE); + return CMD_WARNING; + } + } else { + if (lchan->fi->state == LCHAN_ST_BORKEN) + osmo_fsm_inst_state_chg(lchan->fi, LCHAN_ST_UNUSED, 0, 0); + else { + vty_out(vty, + "%% lchan is in state %s, only lchans that are in state %s may be moved to state %s manually%s", + osmo_fsm_state_name(lchan->fi->fsm, lchan->fi->state), + osmo_fsm_state_name(lchan->fi->fsm, LCHAN_ST_BORKEN), + osmo_fsm_state_name(lchan->fi->fsm, LCHAN_ST_UNUSED), VTY_NEWLINE); + return CMD_WARNING; + } + } + + return CMD_SUCCESS; +} + DEFUN(lchan_mdcx, lchan_mdcx_cmd, "bts <0-255> trx <0-255> timeslot <0-7> sub-slot <0-7> mdcx A.B.C.D <0-65535>", BTS_NR_TRX_TS_SS_STR2 @@ -5264,6 +5309,8 @@ install_element(ENABLE_NODE, &pdch_act_cmd); install_element(ENABLE_NODE, &lchan_act_cmd); install_element(ENABLE_NODE, &lchan_mdcx_cmd); + install_element(ENABLE_NODE, &lchan_set_borken_cmd); + install_element(ENABLE_NODE, &handover_subscr_conn_cmd); install_element(ENABLE_NODE, &assignment_subscr_conn_cmd); install_element(ENABLE_NODE, &smscb_cmd_cmd); diff --git a/src/osmo-bsc/lchan_fsm.c b/src/osmo-bsc/lchan_fsm.c index 70f7622..8b4cf6d 100644 --- a/src/osmo-bsc/lchan_fsm.c +++ b/src/osmo-bsc/lchan_fsm.c @@ -1115,6 +1115,7 @@ .out_state_mask = 0 | S(LCHAN_ST_WAIT_TS_READY) | S(LCHAN_ST_CBCH) + | S(LCHAN_ST_BORKEN) , }, [LCHAN_ST_CBCH] = { -- To view, visit https://gerrit.osmocom.org/12624 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I397e68e26d6a1727890353fa34f4897b54795866 Gerrit-Change-Number: 12624 Gerrit-PatchSet: 8 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: dexter Gerrit-CC: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 08:55:01 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 11 Feb 2019 08:55:01 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: Hello Max, Neels Hofmeyr, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12625 to look at the new patch set (#9). Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... assignment_fsm: fix channel allocator preferences When the MSC allocates a channel through the ASSIGNMENT REQUEST, it may ask for a TCH/H and a TCH/F at the same time and tell which of the two types it prefers. The process of channel allocation currently selects, based on the BTS, MSC and MS capabilites exactly one apropriate codec/rate (e.g. TCH/H) and then tries to allocate it. If that allocation fails, there is no way to try the second choice and the assignment fails. For example: The MSC asks for TCH/F and TCH/H, prefering TCH/F, then the channel allocator will try TCH/F and if it fails (all TCH/F are currently in use), then TCH/H is never tried. Since the BSC currently only trys the first best codec/rate that is supported it also ignores the preference. Lets fix those problems by including the preference information and both possible codec/rate settings into the channel allocation decision. Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Related: OS#3503 --- M include/osmocom/bsc/codec_pref.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/codec_pref.c M src/osmo-bsc/handover_fsm.c M src/osmo-bsc/osmo_bsc_bssap.c M tests/codec_pref/codec_pref_test.c 8 files changed, 321 insertions(+), 117 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/25/12625/9 -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 9 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy Gerrit-CC: tnt -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 09:25:15 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 11 Feb 2019 09:25:15 +0000 Subject: Change in openbsc[master]: Make alert notifications vty configurable per ESME In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12601 ) Change subject: Make alert notifications vty configurable per ESME ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12601/1/openbsc/src/libmsc/smpp_openbsc.c File openbsc/src/libmsc/smpp_openbsc.c: https://gerrit.osmocom.org/#/c/12601/1/openbsc/src/libmsc/smpp_openbsc.c at 287 PS1, Line 287: esme->acl this check is missing in the above condition, which is probably why it caused the segfault that was reported in IRC -- To view, visit https://gerrit.osmocom.org/12601 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2b52f2778b24eebc82b2e5e2fb3c2250b1f9e5b0 Gerrit-Change-Number: 12601 Gerrit-PatchSet: 1 Gerrit-Owner: Keith Whyte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Keith Whyte Gerrit-CC: osmith Gerrit-Comment-Date: Mon, 11 Feb 2019 09:25:15 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 09:28:42 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 11 Feb 2019 09:28:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC_Tests: Enable SGs interface by default In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/12855 ) Change subject: MSC_Tests: Enable SGs interface by default ...................................................................... Patch Set 1: > I had discussed this at some point last week on IRC: The problem > with this is that it applies to *both* the tests running against > master and against latest. As a result, I would expect all tests > on latest to fail suddenly :/ > > We need a way to pass this information to the ttcn3-msc-test > container from the outside. I see, I was not aware of that. Then we have do do it via the config file in docker. -- To view, visit https://gerrit.osmocom.org/12855 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6a07000ef52c9774fd603e2be914e6f2a6a3cce4 Gerrit-Change-Number: 12855 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Comment-Date: Mon, 11 Feb 2019 09:28:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 09:28:47 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 11 Feb 2019 09:28:47 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC_Tests: Enable SGs interface by default In-Reply-To: References: Message-ID: dexter has abandoned this change. ( https://gerrit.osmocom.org/12855 ) Change subject: MSC_Tests: Enable SGs interface by default ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/12855 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: abandon Gerrit-Change-Id: I6a07000ef52c9774fd603e2be914e6f2a6a3cce4 Gerrit-Change-Number: 12855 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 09:29:46 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 11 Feb 2019 09:29:46 +0000 Subject: Change in osmo-dev[master]: run.sh: more userfriendly "stale configs" message In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12733 ) Change subject: run.sh: more userfriendly "stale configs" message ...................................................................... Patch Set 3: Verified+1 -- To view, visit https://gerrit.osmocom.org/12733 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-dev Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If225e094619a07a228e0e2f337153ee18cdb420c Gerrit-Change-Number: 12733 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 11 Feb 2019 09:29:46 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 09:29:48 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 11 Feb 2019 09:29:48 +0000 Subject: Change in osmo-dev[master]: run.sh: more userfriendly "stale configs" message In-Reply-To: References: Message-ID: osmith has submitted this change and it was merged. ( https://gerrit.osmocom.org/12733 ) Change subject: run.sh: more userfriendly "stale configs" message ...................................................................... run.sh: more userfriendly "stale configs" message Make the message easy to understand at first glance, print what needs to be done to regenerate the configs. Add an empty line before listing the stale file that has been found, so it stands out from the (at this point) less relevant path listings. It looks like the following now: $ ./run.sh using config file '/home/user/code/osmo-dev/net/config_2g3g_osmith' on templates '/home/user/code/osmo-dev/net/tmpl_std' with NET_DIR '/home/user/code/osmo-dev/net/osmith' Stale: '/home/user/code/osmo-dev/net/tmpl_std/run.sh' is newer than 'run.sh' WARNING: STALE CONFIGS - your net configs are older than the templates they should be based on! * Hit enter to continue, and use the stale config files * Hit ^C and run 'make regen' to regenerate your configs Change-Id: If225e094619a07a228e0e2f337153ee18cdb420c --- M net/fill_config.py M net/tmpl_std/run.sh 2 files changed, 9 insertions(+), 1 deletion(-) Approvals: Neels Hofmeyr: Looks good to me, approved osmith: Verified diff --git a/net/fill_config.py b/net/fill_config.py index e97dab7..5374d62 100755 --- a/net/fill_config.py +++ b/net/fill_config.py @@ -96,6 +96,7 @@ def check_stale(src_path, target_path): if file_newer(src_path, target_path): + print() print('Stale: %r is newer than %r' % (src_path, target_path)) exit(1) diff --git a/net/tmpl_std/run.sh b/net/tmpl_std/run.sh index f31330b..03f75c1 100755 --- a/net/tmpl_std/run.sh +++ b/net/tmpl_std/run.sh @@ -1,5 +1,12 @@ #!/usr/bin/env bash -../fill_config.py --check-stale || ( echo "STALE CONFIGS. Hit enter to continue anyway."; read enter_to_continue ) + +if ! ../fill_config.py --check-stale; then + echo + echo "WARNING: STALE CONFIGS - your net configs are older than the templates they should be based on!" + echo " * Hit enter to continue, and use the stale config files" + echo " * Hit ^C and run 'make regen' to regenerate your configs" + read enter_to_continue +fi dev="${ETH_DEV}" ip2="${PUBLIC_IP2}" -- To view, visit https://gerrit.osmocom.org/12733 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-dev Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If225e094619a07a228e0e2f337153ee18cdb420c Gerrit-Change-Number: 12733 Gerrit-PatchSet: 3 Gerrit-Owner: osmith Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 09:34:53 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 11 Feb 2019 09:34:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC_Tests: make sure SGs tests don't interfere In-Reply-To: References: Message-ID: dexter has submitted this change and it was merged. ( https://gerrit.osmocom.org/12856 ) Change subject: MSC_Tests: make sure SGs tests don't interfere ...................................................................... MSC_Tests: make sure SGs tests don't interfere The IMSIs used with the SGs tests are partially re-used in other SGs testcases and also in unrelated testcases. Lets give each SGs test a unique IMSI to prevent unrelated interference with other tests. Change-Id: I417d9c5f0fbab7483d1b31dc20a99f63ee1bbfe6 Related: OS#3614 --- M msc/MSC_Tests.ttcn 1 file changed, 18 insertions(+), 18 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 8d29e7a..bb66196 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -3571,7 +3571,7 @@ testcase TC_sgsap_reset() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_reset), 10); + vc_conn := f_start_handler(refers(f_tc_sgsap_reset), 11810); vc_conn.done; } @@ -3663,7 +3663,7 @@ testcase TC_sgsap_lu() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_lu), 10); + vc_conn := f_start_handler(refers(f_tc_sgsap_lu), 11811); vc_conn.done; } @@ -3701,7 +3701,7 @@ var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_lu_imsi_reject), 3); + vc_conn := f_start_handler(refers(f_tc_sgsap_lu_imsi_reject), 11812); vc_conn.done; } @@ -3762,7 +3762,7 @@ var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_lu_and_nothing), 3); + vc_conn := f_start_handler(refers(f_tc_sgsap_lu_and_nothing), 11813); vc_conn.done; } @@ -3784,7 +3784,7 @@ testcase TC_sgsap_expl_imsi_det_eps() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_expl_imsi_det_eps), 10); + vc_conn := f_start_handler(refers(f_tc_sgsap_expl_imsi_det_eps), 11814); vc_conn.done; } @@ -3807,7 +3807,7 @@ testcase TC_sgsap_expl_imsi_det_noneps() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_expl_imsi_det_noneps), 1081); + vc_conn := f_start_handler(refers(f_tc_sgsap_expl_imsi_det_noneps), 11815); vc_conn.done; } @@ -3856,7 +3856,7 @@ testcase TC_sgsap_paging_rej() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_paging_rej), 1082); + vc_conn := f_start_handler(refers(f_tc_sgsap_paging_rej), 11816); vc_conn.done; } @@ -3903,7 +3903,7 @@ testcase TC_sgsap_paging_subscr_rej() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_paging_subscr_rej), 1083); + vc_conn := f_start_handler(refers(f_tc_sgsap_paging_subscr_rej), 11817); vc_conn.done; } @@ -3945,7 +3945,7 @@ testcase TC_sgsap_paging_ue_unr() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_paging_ue_unr), 10); + vc_conn := f_start_handler(refers(f_tc_sgsap_paging_ue_unr), 11818); vc_conn.done; } @@ -3984,7 +3984,7 @@ testcase TC_sgsap_paging_and_nothing() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_paging_and_nothing), 92); + vc_conn := f_start_handler(refers(f_tc_sgsap_paging_and_nothing), 11819); vc_conn.done; } @@ -4040,7 +4040,7 @@ testcase TC_sgsap_paging_and_lu() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_paging_and_lu), 9792); + vc_conn := f_start_handler(refers(f_tc_sgsap_paging_and_lu), 11820); vc_conn.done; } @@ -4069,7 +4069,7 @@ testcase TC_sgsap_unexp_ud() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_unexp_ud), 2145); + vc_conn := f_start_handler(refers(f_tc_sgsap_unexp_ud), 11821); vc_conn.done; } @@ -4093,7 +4093,7 @@ testcase TC_sgsap_unsol_ud() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_unsol_ud), 146); + vc_conn := f_start_handler(refers(f_tc_sgsap_unsol_ud), 11822); vc_conn.done; } @@ -4239,7 +4239,7 @@ testcase TC_sgsap_mt_sms() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_mt_sms), 1145); + vc_conn := f_start_handler(refers(f_tc_sgsap_mt_sms), 11823); vc_conn.done; } @@ -4267,7 +4267,7 @@ testcase TC_sgsap_mo_sms() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_mo_sms), 3145); + vc_conn := f_start_handler(refers(f_tc_sgsap_mo_sms), 11824); vc_conn.done; } @@ -4339,7 +4339,7 @@ testcase TC_sgsap_mt_sms_and_nothing() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_mt_sms_and_nothing), 4581); + vc_conn := f_start_handler(refers(f_tc_sgsap_mt_sms_and_nothing), 11825); vc_conn.done; } @@ -4399,7 +4399,7 @@ testcase TC_sgsap_mt_sms_and_reject() runs on MTC_CT { var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_mt_sms_and_reject), 4145); + vc_conn := f_start_handler(refers(f_tc_sgsap_mt_sms_and_reject), 11826); vc_conn.done; } @@ -4487,7 +4487,7 @@ var BSC_ConnHdlr vc_conn; f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_lu_and_mt_call), 239); + vc_conn := f_start_handler(refers(f_tc_sgsap_lu_and_mt_call), 11827); vc_conn.done; } -- To view, visit https://gerrit.osmocom.org/12856 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I417d9c5f0fbab7483d1b31dc20a99f63ee1bbfe6 Gerrit-Change-Number: 12856 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Mon Feb 11 09:41:59 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Mon, 11 Feb 2019 09:41:59 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-trx_=C2=BB_--with-ss?= =?UTF-8?Q?e,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#875?= Message-ID: <360084527.185.1549878119137.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 107.30 KB...] Searching INPUT for files to process... Reading and parsing tag files Parsing files Building group list... Building directory list... Building namespace list... Building file list... Building class list... Associating documentation with classes... Computing nesting relations for classes... Building example list... Searching for enumerations... Searching for documented typedefs... Searching for members imported via using declarations... Searching for included using directives... Searching for documented variables... Building interface member list... Building member list... Searching for friends... Searching for documented defines... Computing class inheritance relations... Computing class usage relations... Flushing cached template relations that have become invalid... Computing class relations... Add enum values to enums... Searching for member function documentation... Creating members for template instances... Building page list... Search for main page... Computing page relations... Determining the scope of groups... Sorting lists... Freeing entry tree Determining which enums are documented Computing member relations... Building full member lists recursively... Adding members to member groups. Computing member references... Inheriting documentation... Generating disk names... Adding source references... Adding xrefitems... Sorting member lists... Computing dependencies between directories... Generating citations page... Counting data structures... Resolving user defined references... Finding anchors and sections in the documentation... Transferring function references... Combining using relations... Adding members to index pages... Generating style sheet... Generating search indices... Generating example documentation... Generating file sources... Generating file documentation... Generating page documentation... Generating group documentation... Generating class documentation... Generating namespace index... Generating graph info page... Generating directory documentation... Generating index page... Generating page index... Generating module index... Generating namespace index... Generating namespace member index... Generating annotated compound index... Generating alphabetical compound index... Generating hierarchical class index... Generating graphical class hierarchy... Generating member index... Generating file index... Generating file member index... Generating example index... finalizing index lists... writing tag file... Running dot... Running dot for graph 1/1 lookup cache used 0/65536 hits=0 misses=0 finished... make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_guide.html /usr/bin/install -c -m 644 ../README ' cp -r html make[5]: Leaving directory ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in firmware make[2]: Entering directory ' Making install in include make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_i2c_addr.h usrp_spi_defs.h fpga_regs_common.h fpga_regs_standard.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' Making install in lib make[3]: Entering directory ' sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c delay.c -o delay.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c fx2utils.c -o fx2utils.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c i2c.c -o i2c.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c isr.c -o isr.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c timer.c -o timer.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c usb_common.c -o usb_common.rel timer.c:45: warning 158: overflow in implicit constant conversion usb_common.c:65: warning 196: pointer target lost const qualifier usb_common.c:66: warning 196: pointer target lost const qualifier usb_common.c:67: warning 196: pointer target lost const qualifier usb_common.c:68: warning 196: pointer target lost const qualifier usb_common.c:71: warning 196: pointer target lost const qualifier usb_common.c:72: warning 196: pointer target lost const qualifier usb_common.c:73: warning 196: pointer target lost const qualifier usb_common.c:74: warning 196: pointer target lost const qualifier isr.c:73: warning 94: comparison is always false due to limited range of data type -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'int fixed' to type 'volatile-unsigned-char xdata* xdata' isr.c:100: warning 94: comparison is always false due to limited range of data type usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:217: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:226: warning 126: unreachable code usb_common.c:184: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG usb_common.c:315: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG rm -f libfx2.lib touch libfx2.lib for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done make[3]: Leaving directory ' Making install in src make[3]: Entering directory ' Making install in common make[4]: Entering directory ' make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory ' make[4]: Leaving directory ' Making install in usrp2 make[4]: Entering directory ' test -f `basename 'eeprom_boot.a51'` || ln -s 'eeprom_boot.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_init.rel `test -f 'eeprom_init.c' || echo './'`eeprom_init.c test -f `basename '_startup.a51'` || ln -s '_startup.a51' . test -f `basename 'vectors.a51'` || ln -s 'vectors.a51' . srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_common.rel `test -f 'usrp_common.c' || echo './'`usrp_common.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o board_specific.rel `test -f 'board_specific.c' || echo './'`board_specific.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_load.rel `test -f 'fpga_load.c' || echo './'`fpga_load.c test -f ../common/`basename 'eeprom_boot.a51'` -o \ \! -f `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` \ || ln -s `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` ../common/`basename 'eeprom_boot.a51'` test -f ../common/`basename '_startup.a51'` -o \ \! -f `dirname '_startup.a51'`/../common/`basename '_startup.a51'` \ || ln -s `dirname '_startup.a51'`/../common/`basename '_startup.a51'` ../common/`basename '_startup.a51'` test -f ../common/`basename 'vectors.a51'` -o \ \! -f `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` \ || ln -s `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` ../common/`basename 'vectors.a51'` sdas8051 -plosgff `basename 'eeprom_boot.a51'` sdas8051 -plosgff `basename '_startup.a51'` sdas8051 -plosgff `basename 'vectors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_rev2.rel `test -f 'fpga_rev2.c' || echo './'`fpga_rev2.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o init_gpif.rel `test -f 'init_gpif.c' || echo './'`init_gpif.c srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'bits' board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'mask' ../common/fpga_load.c:139: warning 85: in function clock_out_config_byte unreferenced function argument : 'bits' test -f `basename 'usb_descriptors.a51'` || ln -s 'usb_descriptors.a51' . ../common/fpga_load.c:181: warning 126: unreachable code test -f ../common/`basename 'usb_descriptors.a51'` -o \ \! -f `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` \ || ln -s `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` ../common/`basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o spi.rel `test -f 'spi.c' || echo './'`spi.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_io.rel `test -f 'eeprom_io.c' || echo './'`eeprom_io.c sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o eeprom_boot.ihx eeprom_boot.rel eeprom_init.rel _startup.rel sdas8051 -plosgff `basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_main.rel `test -f 'usrp_main.c' || echo './'`usrp_main.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_gpif.rel `test -f 'usrp_gpif.c' || echo './'`usrp_gpif.c ./../common/build_eeprom.py -p -r2 eeprom_boot.ihx > burn-usrp2-eeprom ./../common/build_eeprom.py -p -r4 eeprom_boot.ihx > burn-usrp4-eeprom usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion chmod +x burn-usrp4-eeprom usrp_main.c:223: warning 112: function 'setup_flowstate_common' implicit declaration usrp_main.c:260: warning 112: function 'setup_flowstate_write' implicit declaration usrp_main.c:282: warning 112: function 'setup_flowstate_read' implicit declaration usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization chmod +x burn-usrp2-eeprom usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o std.ihx vectors.rel usrp_main.rel usrp_common.rel board_specific.rel fpga_load.rel fpga_rev2.rel init_gpif.rel usrp_gpif.rel usb_descriptors.rel spi.rel eeprom_io.rel _startup.rel ?ASlink-Warning-Undefined Global '_setup_flowstate_read' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_write' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_common' referenced by module 'usrp_main' Makefile:688: recipe for target 'std.ihx' failed make[4]: *** [std.ihx] Error 1 make[4]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[3]: *** [install-recursive] Error 1 make[3]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[2]: *** [install-recursive] Error 1 make[2]: Leaving directory ' Makefile:628: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:925: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Mon Feb 11 11:04:32 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 11 Feb 2019 11:04:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC_Tests: run TC_gsup_mt_multi_part_sms late Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/12877 Change subject: MSC_Tests: run TC_gsup_mt_multi_part_sms late ...................................................................... MSC_Tests: run TC_gsup_mt_multi_part_sms late The testcase TC_gsup_mt_multi_part_sms is known to fail osmo-msc in a way that meaninful sms delivery is not possible anymore. This is due to a bug in osmo-msc, but in the testsuit it makes running certain normally working testcases impossible. Lets move at at the end of the testsuite so that it rus late and other tests won't get blocked. Change-Id: I581cd80895ea992a15389c6f73816769864e6d4c Related: OS#3614 --- M msc/MSC_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/77/12877/1 diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index bb66196..34fe9ad 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -4562,7 +4562,6 @@ execute( TC_gsup_mt_sms_err() ); execute( TC_gsup_mt_sms_rp_mr() ); execute( TC_gsup_mo_mt_sms_rp_mr() ); - execute( TC_gsup_mt_multi_part_sms() ); execute( TC_lu_and_mo_ussd_single_request() ); execute( TC_lu_and_mt_ussd_notification() ); @@ -4595,6 +4594,7 @@ /* Run this last: at the time of writing this test crashes the MSC */ execute( TC_lu_imsi_auth_tmsi_encr_3_1_log_msc_debug() ); + execute( TC_gsup_mt_multi_part_sms() ); execute( TC_mo_cc_bssmap_clear() ); } -- To view, visit https://gerrit.osmocom.org/12877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I581cd80895ea992a15389c6f73816769864e6d4c Gerrit-Change-Number: 12877 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 11:11:56 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 11 Feb 2019 11:11:56 +0000 Subject: Change in docker-playground[master]: ttcn3-msc-test: Enable SGs interface Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/12878 Change subject: ttcn3-msc-test: Enable SGs interface ...................................................................... ttcn3-msc-test: Enable SGs interface Since the current master now supports SGs interface connections. We may turn on the optional SGs interface of the testsuite so that the related testcases can run. Change-Id: I260fbd21d00d4fc160e95b76fc26b5d5b8f3c9e8 Related: OS#3614 --- M ttcn3-msc-test/Dockerfile 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/78/12878/1 diff --git a/ttcn3-msc-test/Dockerfile b/ttcn3-msc-test/Dockerfile index f812ee0..a1ea442 100644 --- a/ttcn3-msc-test/Dockerfile +++ b/ttcn3-msc-test/Dockerfile @@ -11,7 +11,7 @@ RUN git config --global user.email docker at dock.er && \ git config --global user.name "Dock Er" -ARG OSMO_TTCN3_BRANCH="master" +ARG OSMO_TTCN3_BRANCH="pmaier/sgsap3" ADD http://git.osmocom.org/osmo-ttcn3-hacks/patch?h=$OSMO_TTCN3_BRANCH /tmp/commit RUN cd osmo-ttcn3-hacks && \ -- To view, visit https://gerrit.osmocom.org/12878 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I260fbd21d00d4fc160e95b76fc26b5d5b8f3c9e8 Gerrit-Change-Number: 12878 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 11:17:04 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 11 Feb 2019 11:17:04 +0000 Subject: Change in osmo-bts[master]: OML: Properly reject short messages and truncate over-long messages In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12873 ) Change subject: OML: Properly reject short messages and truncate over-long messages ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib98f0d7c2cff9172714ed18667c02564540d65d7 Gerrit-Change-Number: 12873 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 11 Feb 2019 11:17:04 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 11:21:37 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 11 Feb 2019 11:21:37 +0000 Subject: Change in osmo-bts[master]: OML: Ensure minimum required attributes are set before accepting OPSTART In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12874 ) Change subject: OML: Ensure minimum required attributes are set before accepting OPSTART ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12874 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3a818f8eceb6abef1b20d2b3892a749dbc9e4b05 Gerrit-Change-Number: 12874 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 11 Feb 2019 11:21:37 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 13:45:26 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Mon, 11 Feb 2019 13:45:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC_Tests: run TC_gsup_mt_multi_part_sms late In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12877 ) Change subject: MSC_Tests: run TC_gsup_mt_multi_part_sms late ...................................................................... Patch Set 1: Code-Review+1 I am wondering how this movement would affect the Results Analyzer in Jenkins... -- To view, visit https://gerrit.osmocom.org/12877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I581cd80895ea992a15389c6f73816769864e6d4c Gerrit-Change-Number: 12877 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Mon, 11 Feb 2019 13:45:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Mon Feb 11 14:22:38 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Mon, 11 Feb 2019 14:22:38 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-trx_=C2=BB_--wit?= =?UTF-8?Q?h-sse,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#876?= In-Reply-To: <360084527.185.1549878119137.JavaMail.jenkins@jenkins.osmocom.org> References: <360084527.185.1549878119137.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1370516320.188.1549894958315.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Mon Feb 11 14:37:20 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 11 Feb 2019 14:37:20 +0000 Subject: Change in osmo-ci[master]: Add timeout wrapper to regular gerrit verification jobs In-Reply-To: References: Message-ID: Hello lynxis lazus, Pau Espin Pedrol, daniel, Harald Welte, osmith, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12857 to look at the new patch set (#2). Change subject: Add timeout wrapper to regular gerrit verification jobs ...................................................................... Add timeout wrapper to regular gerrit verification jobs Use 'timeout' utility (from GNU coreutils) to wrap jenkins.sh calls to ensure that verification job terminates within 16 minutes. That's +5 minutes to current longest-running verification job (11 min). This change is prompted by recent issue with libosmo-netif test which was hanging forever preventing other tests from being executed. The change was tested with jenkins-jobs --conf ~/.config/jenkins.conf test ./osmo-ci/jobs/gerrit-verifications.yml Change-Id: I9d0eb6b9eddf3e17120e74d7570d42291c0750ae --- M jobs/gerrit-verifications.yml 1 file changed, 15 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/57/12857/2 -- To view, visit https://gerrit.osmocom.org/12857 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I9d0eb6b9eddf3e17120e74d7570d42291c0750ae Gerrit-Change-Number: 12857 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 14:38:53 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 11 Feb 2019 14:38:53 +0000 Subject: Change in osmo-ci[master]: Add timeout wrapper to regular gerrit verification jobs In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12857 ) Change subject: Add timeout wrapper to regular gerrit verification jobs ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/12857/1/jobs/gerrit-verifications.yml File jobs/gerrit-verifications.yml: https://gerrit.osmocom.org/#/c/12857/1/jobs/gerrit-verifications.yml at 23 PS1, Line 23: als > How about we put the 15m into a variable at the top, that can be overridden by each job? Then we cou [?] I've updated the patch but unsure about variable substitution: when shall we use '{obj:var}' instead of '{var}'? Please double-check. -- To view, visit https://gerrit.osmocom.org/12857 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9d0eb6b9eddf3e17120e74d7570d42291c0750ae Gerrit-Change-Number: 12857 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 11 Feb 2019 14:38:53 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 14:42:35 2019 From: gerrit-no-reply at lists.osmocom.org (Keith Whyte) Date: Mon, 11 Feb 2019 14:42:35 +0000 Subject: Change in openbsc[master]: Make alert notifications vty configurable per ESME In-Reply-To: References: Message-ID: Keith Whyte has posted comments on this change. ( https://gerrit.osmocom.org/12601 ) Change subject: Make alert notifications vty configurable per ESME ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12601/1/openbsc/src/libmsc/smpp_openbsc.c File openbsc/src/libmsc/smpp_openbsc.c: https://gerrit.osmocom.org/#/c/12601/1/openbsc/src/libmsc/smpp_openbsc.c at 291 PS1, Line 291: } else { Would it not also crash then here in the case that esme->acl == false -- To view, visit https://gerrit.osmocom.org/12601 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2b52f2778b24eebc82b2e5e2fb3c2250b1f9e5b0 Gerrit-Change-Number: 12601 Gerrit-PatchSet: 1 Gerrit-Owner: Keith Whyte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Keith Whyte Gerrit-CC: osmith Gerrit-Comment-Date: Mon, 11 Feb 2019 14:42:35 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 14:53:05 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 11 Feb 2019 14:53:05 +0000 Subject: Change in osmo-sysmon[master]: Introduce generic host config and related helpers In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12761 ) Change subject: Introduce generic host config and related helpers ...................................................................... Patch Set 6: (1 comment) I can change the macro the way you propose but it seems rather pointless to me: we're trying to prevent theoretical memleak in an unwritten code which have to be written in particular (and wrong) way for it to happen at all. https://gerrit.osmocom.org/#/c/12761/6/src/simple_ctrl.c File src/simple_ctrl.c: https://gerrit.osmocom.org/#/c/12761/6/src/simple_ctrl.c at 42 PS6, Line 42: fprintf(stderr, "CTRL %s error: " fmt, make_authority(sch, &sch->cfg), ##args) > memleak of make_authority. At least until you free sch. [?] The ERR part in macro name refers to "error" - this macro will be called only when we have some errors. Keeping sch despite of the permanent error associated with it is plain wrong. No current user of this code does that. -- To view, visit https://gerrit.osmocom.org/12761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie321655a92cdbefbfaa056ac0d583397c83beccb Gerrit-Change-Number: 12761 Gerrit-PatchSet: 6 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 11 Feb 2019 14:53:05 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 15:03:51 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 11 Feb 2019 15:03:51 +0000 Subject: Change in osmo-sysmon[master]: Add OpenVPN probe In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12763 ) Change subject: Add OpenVPN probe ...................................................................... Patch Set 7: (1 comment) So far there's only one probe which uses osmocom event loop. That's why I've opted to make it optional. https://gerrit.osmocom.org/#/c/12763/7/src/osysmon_main.c File src/osysmon_main.c: https://gerrit.osmocom.org/#/c/12763/7/src/osysmon_main.c at 252 PS7, Line 252: sleep(1); > why not always polling osmocom event loop with a timeout of 1 second That would require setting up 1 second timer and adding it to event loop which seems more complex than optionally calling to osmo_select_main() only when the probe using it is enabled. -- To view, visit https://gerrit.osmocom.org/12763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4493e19b9a09dcebd289457eacd1719f7f8cc31c Gerrit-Change-Number: 12763 Gerrit-PatchSet: 7 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 11 Feb 2019 15:03:51 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 15:06:09 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 11 Feb 2019 15:06:09 +0000 Subject: Change in osmo-sysmon[master]: Add OpenVPN probe In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12763 ) Change subject: Add OpenVPN probe ...................................................................... Patch Set 7: (1 comment) https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c File src/osysmon_openvpn.c: https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 263 PS5, Line 263: > Why keeping it until then if it's not longer needed? Do we believe on garbage collectors now? We use talloc all over the place. It has nothing do to with "believe" - it's just convenient. What's so special about this particular line which caught your attention? -- To view, visit https://gerrit.osmocom.org/12763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4493e19b9a09dcebd289457eacd1719f7f8cc31c Gerrit-Change-Number: 12763 Gerrit-PatchSet: 7 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 11 Feb 2019 15:06:09 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Mon Feb 11 15:10:06 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Mon, 11 Feb 2019 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#398?= In-Reply-To: <1098488699.174.1549811407031.JavaMail.jenkins@jenkins.osmocom.org> References: <1098488699.174.1549811407031.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <200185521.189.1549897806990.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.76 KB...] checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs mkdir .libs mkdir: cannot create directory '.libs': File exists gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Mon Feb 11 15:20:13 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 11 Feb 2019 15:20:13 +0000 Subject: Change in openbsc[master]: Make alert notifications vty configurable per ESME In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12601 ) Change subject: Make alert notifications vty configurable per ESME ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12601/1/openbsc/src/libmsc/smpp_openbsc.c File openbsc/src/libmsc/smpp_openbsc.c: https://gerrit.osmocom.org/#/c/12601/1/openbsc/src/libmsc/smpp_openbsc.c at 291 PS1, Line 291: } else { > Would it not also crash then here in the case that esme->acl == false (it's a pointer, so I assume you mean == NULL) I am not familiar with the openbsc codebase. But from what I can tell, it would not crash here, because smpp_tx_alert() does not try to access esme->acl: https://git.osmocom.org/openbsc/tree/openbsc/src/libmsc/smpp_smsc.c?id=ed8815e723b41e9800f14c67bccd34e51a06beb6#n629 -- To view, visit https://gerrit.osmocom.org/12601 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2b52f2778b24eebc82b2e5e2fb3c2250b1f9e5b0 Gerrit-Change-Number: 12601 Gerrit-PatchSet: 1 Gerrit-Owner: Keith Whyte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Keith Whyte Gerrit-CC: osmith Gerrit-Comment-Date: Mon, 11 Feb 2019 15:20:13 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 15:38:31 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 11 Feb 2019 15:38:31 +0000 Subject: Change in osmo-ci[master]: Add timeout wrapper to regular gerrit verification jobs In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12857 ) Change subject: Add timeout wrapper to regular gerrit verification jobs ...................................................................... Patch Set 2: Code-Review+1 (1 comment) FYI: the configs do *not* get automatically updated after this gets merged. So you need to manually run "jenkins-jobs update" afterwards. https://gerrit.osmocom.org/#/c/12857/1/jobs/gerrit-verifications.yml File jobs/gerrit-verifications.yml: https://gerrit.osmocom.org/#/c/12857/1/jobs/gerrit-verifications.yml at 23 PS1, Line 23: als > when shall we use '{obj:var}' instead of '{var}'? "If you want to pass an object (boolean, list or dict)", as the docs say. So in this case we have a string, not what they define as an object, so "obj:" is not needed. https://jenkins-job-builder.readthedocs.io/en/latest/definition.html#variable-references > Please double-check. Seems to work as expected. I have overwritten the timeout value like this and ran "jenkins-jobs test", then had overwritten the default as expected. - openbsc: job_timeout: 1337m -- To view, visit https://gerrit.osmocom.org/12857 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9d0eb6b9eddf3e17120e74d7570d42291c0750ae Gerrit-Change-Number: 12857 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 11 Feb 2019 15:38:31 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 16:04:06 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 11 Feb 2019 16:04:06 +0000 Subject: Change in osmo-bts[master]: OML: Ensure minimum required attributes are set before accepting OPSTART In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/12874 ) Change subject: OML: Ensure minimum required attributes are set before accepting OPSTART ...................................................................... Patch Set 1: Verified-1 I have checked the patch set. All patches except this one seem to be fine. However, this patch now blocks the oml startup because osmo-bsc sends an opstart to the radio-carrier early. The reason for this is presumably that the radio-carrier is initalized in unlocked state. Also I can see that Get Attribute requests now fail and osmo-bts emits malformed Get Attribute NACK messages -- To view, visit https://gerrit.osmocom.org/12874 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3a818f8eceb6abef1b20d2b3892a749dbc9e4b05 Gerrit-Change-Number: 12874 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: dexter Gerrit-Comment-Date: Mon, 11 Feb 2019 16:04:06 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 22:35:45 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Feb 2019 22:35:45 +0000 Subject: Change in osmo-msc[master]: a_iface: Include CSFB Indication into BSSMAP CLEAR COMMAND In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12830 ) Change subject: a_iface: Include CSFB Indication into BSSMAP CLEAR COMMAND ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12830 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6cfa4b3becdd0138d74e2e1eddd83a0b1568c1de Gerrit-Change-Number: 12830 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Mon, 11 Feb 2019 22:35:45 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 22:36:02 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Feb 2019 22:36:02 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC_Tests: run TC_gsup_mt_multi_part_sms late In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12877 ) Change subject: MSC_Tests: run TC_gsup_mt_multi_part_sms late ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I581cd80895ea992a15389c6f73816769864e6d4c Gerrit-Change-Number: 12877 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Mon, 11 Feb 2019 22:36:02 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 22:36:04 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Feb 2019 22:36:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC_Tests: run TC_gsup_mt_multi_part_sms late In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12877 ) Change subject: MSC_Tests: run TC_gsup_mt_multi_part_sms late ...................................................................... MSC_Tests: run TC_gsup_mt_multi_part_sms late The testcase TC_gsup_mt_multi_part_sms is known to fail osmo-msc in a way that meaninful sms delivery is not possible anymore. This is due to a bug in osmo-msc, but in the testsuit it makes running certain normally working testcases impossible. Lets move at at the end of the testsuite so that it rus late and other tests won't get blocked. Change-Id: I581cd80895ea992a15389c6f73816769864e6d4c Related: OS#3614 --- M msc/MSC_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index bb66196..34fe9ad 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -4562,7 +4562,6 @@ execute( TC_gsup_mt_sms_err() ); execute( TC_gsup_mt_sms_rp_mr() ); execute( TC_gsup_mo_mt_sms_rp_mr() ); - execute( TC_gsup_mt_multi_part_sms() ); execute( TC_lu_and_mo_ussd_single_request() ); execute( TC_lu_and_mt_ussd_notification() ); @@ -4595,6 +4594,7 @@ /* Run this last: at the time of writing this test crashes the MSC */ execute( TC_lu_imsi_auth_tmsi_encr_3_1_log_msc_debug() ); + execute( TC_gsup_mt_multi_part_sms() ); execute( TC_mo_cc_bssmap_clear() ); } -- To view, visit https://gerrit.osmocom.org/12877 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I581cd80895ea992a15389c6f73816769864e6d4c Gerrit-Change-Number: 12877 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 11 22:36:11 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 11 Feb 2019 22:36:11 +0000 Subject: Change in osmo-msc[master]: a_iface: Include CSFB Indication into BSSMAP CLEAR COMMAND In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12830 ) Change subject: a_iface: Include CSFB Indication into BSSMAP CLEAR COMMAND ...................................................................... a_iface: Include CSFB Indication into BSSMAP CLEAR COMMAND When a call ends that has been established in an CSFB context, we should add a CSFB Indication IE to the BSSMAP CLEAR COMMAND to instruct the BSC to add further CSFB related IEs into the RR RELEASE. - Check if an SGs association exists and add CSFB Indication IE Change-Id: I6cfa4b3becdd0138d74e2e1eddd83a0b1568c1de Related: OS#3778 --- M src/libmsc/a_iface.c 1 file changed, 6 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/libmsc/a_iface.c b/src/libmsc/a_iface.c index 0811734..3a7690d 100644 --- a/src/libmsc/a_iface.c +++ b/src/libmsc/a_iface.c @@ -416,10 +416,15 @@ int a_iface_tx_clear_cmd(struct ran_conn *conn) { struct msgb *msg; + struct vlr_subscr *vsub = conn->vsub; + bool csfb_ind = false; LOGPCONN(conn, LOGL_INFO, "Tx BSSMAP CLEAR COMMAND to BSC\n"); - msg = gsm0808_create_clear_command(GSM0808_CAUSE_CALL_CONTROL); + if (vsub && vsub->sgs_fsm->state == SGS_UE_ST_ASSOCIATED) + csfb_ind = true; + + msg = gsm0808_create_clear_command2(GSM0808_CAUSE_CALL_CONTROL, csfb_ind); return osmo_sccp_tx_data_msg(conn->a.scu, conn->a.conn_id, msg); } -- To view, visit https://gerrit.osmocom.org/12830 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I6cfa4b3becdd0138d74e2e1eddd83a0b1568c1de Gerrit-Change-Number: 12830 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 01:22:11 2019 From: gerrit-no-reply at lists.osmocom.org (Keith Whyte) Date: Tue, 12 Feb 2019 01:22:11 +0000 Subject: Change in openbsc[master]: Make alert notifications vty configurable per ESME In-Reply-To: References: Message-ID: Keith Whyte has posted comments on this change. ( https://gerrit.osmocom.org/12601 ) Change subject: Make alert notifications vty configurable per ESME ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12601/1/openbsc/src/libmsc/smpp_openbsc.c File openbsc/src/libmsc/smpp_openbsc.c: https://gerrit.osmocom.org/#/c/12601/1/openbsc/src/libmsc/smpp_openbsc.c at 291 PS1, Line 291: } else { > (it's a pointer, so I assume you mean == NULL) [?] NULL, false, yes well.. it's obvious i am not a C coder. :( I don't understand how it can be NULL, which is because I tried but failed to understand llist_for_each_entry() Anyway, I guess the best thing is to try your suggesting to check osmo-acl, which I will do, only I'm on the road and a bit all over the place right now. re: openbsc, this same bug exists in osmo-msc as the patch was the same. I feel a bit demoralised now that I patched a crash causing bug in there :((( -- To view, visit https://gerrit.osmocom.org/12601 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2b52f2778b24eebc82b2e5e2fb3c2250b1f9e5b0 Gerrit-Change-Number: 12601 Gerrit-PatchSet: 1 Gerrit-Owner: Keith Whyte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Keith Whyte Gerrit-CC: osmith Gerrit-Comment-Date: Tue, 12 Feb 2019 01:22:11 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 04:24:54 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Tue, 12 Feb 2019 04:24:54 +0000 Subject: Change in libosmocore[master]: get_value_string(): guard against NULL Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/12879 Change subject: get_value_string(): guard against NULL ...................................................................... get_value_string(): guard against NULL get_value_string() conveniently prints the value number to a static buffer if it is unknown in a value_string array. Do the same if the value_string array pointer itself is NULL. To add osmo_use_count API (upcoming patch), I want to use a user supplied value string array, and in its absence would like to just print the user enum value as digits. I could add a separate NULL check around calling get_value_string(), but by making get_value_string() itself guard against NULL, I can avoid defining yet another static char buffer. Change-Id: Ie640e9258a959da8f4f9089478de993509853997 --- M src/utils.c 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/79/12879/1 diff --git a/src/utils.c b/src/utils.c index 0b2ed31..2d5bcb0 100644 --- a/src/utils.c +++ b/src/utils.c @@ -73,6 +73,9 @@ { int i; + if (!vs) + return NULL; + for (i = 0;; i++) { if (vs[i].value == 0 && vs[i].str == NULL) break; -- To view, visit https://gerrit.osmocom.org/12879 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie640e9258a959da8f4f9089478de993509853997 Gerrit-Change-Number: 12879 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 04:24:55 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Tue, 12 Feb 2019 04:24:55 +0000 Subject: Change in libosmocore[master]: add OSMO_STRBUF_PRINTF() Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/12880 Change subject: add OSMO_STRBUF_PRINTF() ...................................................................... add OSMO_STRBUF_PRINTF() We are using macros like this or different workarounds in libmsc. In the course of implementing inter-MSC handover, I am encountering yet another such situation of appending multiple strings to a limited char buffer. Standardize. Add a unit test to utils_test.c. Change-Id: I2497514e26c5e7a5d88985fc7e58343be1a027b2 --- M include/osmocom/core/utils.h M tests/utils/utils_test.c M tests/utils/utils_test.ok 3 files changed, 188 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/80/12880/1 diff --git a/include/osmocom/core/utils.h b/include/osmocom/core/utils.h index fe360b3..aedf421 100644 --- a/include/osmocom/core/utils.h +++ b/include/osmocom/core/utils.h @@ -145,4 +145,83 @@ const char osmo_luhn(const char* in, int in_len); +/*! State for OSMO_STRBUF_APPEND() and OSMO_STRBUF_PRINTF(). See there for examples. */ +struct osmo_strbuf { + char *buf; + size_t len; + char *pos; + size_t len_needed; +}; + +/*! Append a string to a buffer, as printed by an snprintf()-like function and with similar bounds checking. + * Make sure to never write past the end of the buffer, and collect the total size that would be needed. + * + * // an example function implementation to append: write N spaces. + * int print_spaces(char *dst, size_t dst_len, int n) + * { + * int i; + * if (n < 0) + * return -EINVAL; + * for (i = 0; i < n && i < dst_len; i++) + * dst[i] = ' '; + * if (dst_len) + * dst[OSMO_MIN(dst_len - 1, n)] = '\0'; + * // return the n that we would have liked to write if space were available: + * return n; + * } + * + * // append above spaces as well as an snprintf() + * void strbuf_example() + * { + * char buf[23]; + * struct osmo_strbuf sb = { .buf = buf, .len = sizeof(buf) }; + * + * OSMO_STRBUF_APPEND(sb, print_spaces, 5); + * OSMO_STRBUF_APPEND(sb, snprintf, "The answer is %d but what is the question?", 42); + * OSMO_STRBUF_APPEND(sb, print_spaces, 423423); + * + * printf("%s\n", buf); + * printf("would have needed %zu bytes\n", sb.len_needed); + * } + * + * \param[inout] STRBUF A struct osmo_strbuf instance. + * \param[in] func A function with a signature of int func(char *dst, size_t dst_len [, args]) with semantics like + * snprintf(). + * \param[in] args Arguments passed to func, if any. + */ +#define OSMO_STRBUF_APPEND(STRBUF, func, args...) do { \ + if (!(STRBUF).pos) \ + (STRBUF).pos = (STRBUF).buf; \ + size_t remain = (STRBUF).buf ? (STRBUF).len - ((STRBUF).pos - (STRBUF).buf) : 0; \ + int l = func((STRBUF).pos, remain, ##args); \ + if (l < 0 || l > remain) \ + (STRBUF).pos = (STRBUF).buf + (STRBUF).len; \ + else \ + (STRBUF).pos += l; \ + if (l > 0) \ + (STRBUF).len_needed += l; \ + } while(0) + +/*! Shortcut for OSMO_STRBUF_APPEND() invocation using snprintf(). + * + * int strbuf_example2(char *buf, size_t buflen) + * { + * int i; + * struct osmo_strbuf sb = { .buf = buf, .len = buflen }; + * + * OSMO_STRBUF_PRINTF(sb, "T minus"); + * for (i = 10; i; i--) + * OSMO_STRBUF_PRINTF(sb, " %d", i); + * OSMO_STRBUF_PRINTF(sb, " ... Lift off!"); + * + * return sb.len_needed; + * } + * + * \param[inout] STRBUF A struct osmo_strbuf instance. + * \param[in] fmt Format string passed to snprintf. + * \param[in] args Additional arguments passed to snprintf, if any. + */ +#define OSMO_STRBUF_PRINTF(STRBUF, fmt, args...) \ + OSMO_STRBUF_APPEND(STRBUF, snprintf, fmt, ##args) + /*! @} */ diff --git a/tests/utils/utils_test.c b/tests/utils/utils_test.c index 822861f..4c4bf06 100644 --- a/tests/utils/utils_test.c +++ b/tests/utils/utils_test.c @@ -33,6 +33,7 @@ #include #include #include +#include static void hexdump_test(void) { @@ -936,6 +937,96 @@ OSMO_ASSERT(ok); } +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wformat-truncation" + +/* Copy of the examples from OSMO_STRBUF_APPEND() */ +int print_spaces(char *dst, size_t dst_len, int argument) +{ + int i; + if (argument < 0) + return -EINVAL; + for (i = 0; i < argument && i < dst_len; i++) + dst[i] = ' '; + if (dst_len) + dst[OSMO_MIN(dst_len - 1, argument)] = '\0'; + return argument; +} + +void strbuf_example() +{ + char buf[23]; + struct osmo_strbuf sb = { .buf = buf, .len = sizeof(buf) }; + + OSMO_STRBUF_APPEND(sb, print_spaces, 5); + OSMO_STRBUF_APPEND(sb, snprintf, "The answer is %d but what is the question?", 42); + OSMO_STRBUF_APPEND(sb, print_spaces, 423423); + + printf("%s\n", buf); + printf("would have needed %zu bytes\n", sb.len_needed); +} + +/* Copy of the examples from OSMO_STRBUF_PRINTF() */ +int strbuf_example2(char *buf, size_t buflen) +{ + int i; + struct osmo_strbuf sb = { .buf = buf, .len = buflen }; + + OSMO_STRBUF_PRINTF(sb, "T minus"); + for (i = 10; i; i--) + OSMO_STRBUF_PRINTF(sb, " %d", i); + OSMO_STRBUF_PRINTF(sb, " ... Lift off!"); + + return sb.len_needed; +} + +int strbuf_cascade(char *buf, size_t buflen) +{ + struct osmo_strbuf sb = { .buf = buf, .len = buflen }; + + OSMO_STRBUF_APPEND(sb, strbuf_example2); + OSMO_STRBUF_PRINTF(sb, " -- "); + OSMO_STRBUF_APPEND(sb, strbuf_example2); + OSMO_STRBUF_PRINTF(sb, " -- "); + OSMO_STRBUF_APPEND(sb, strbuf_example2); + + return sb.len_needed; +} + +void strbuf_test() +{ + char buf[256]; + int rc; + printf("\n%s\n", __func__); + + printf("OSMO_STRBUF_APPEND():\n"); + strbuf_example(); + + printf("\nOSMO_STRBUF_PRINTF():\n"); + rc = strbuf_example2(buf, 23); + printf("1: (need %d chars, had size=23) %s\n", rc, buf); + + rc = strbuf_example2(buf, rc); + printf("2: (need %d chars, had size=%d) %s\n", rc, rc, buf); + + rc = strbuf_example2(buf, rc + 1); + printf("3: (need %d chars, had size=%d+1) %s\n", rc, rc, buf); + + rc = strbuf_example2(buf, 0); + snprintf(buf, sizeof(buf), "0x2b 0x2b 0x2b..."); + printf("4: (need %d chars, had size=0) %s\n", rc, buf); + + rc = strbuf_example2(NULL, 99); + printf("5: (need %d chars, had NULL buffer)\n", rc); + + printf("\ncascade:\n"); + rc = strbuf_cascade(buf, sizeof(buf)); + printf("(need %d chars)\n%s\n", rc, buf); + rc = strbuf_cascade(buf, 63); + printf("(need %d chars, had size=63) %s\n", rc, buf); +} + +#pragma GCC diagnostic pop int main(int argc, char **argv) { @@ -954,5 +1045,6 @@ isqrt_test(); osmo_sockaddr_to_str_and_uint_test(); osmo_str_tolowupper_test(); + strbuf_test(); return 0; } diff --git a/tests/utils/utils_test.ok b/tests/utils/utils_test.ok index 8d7ced8..1215ddd 100644 --- a/tests/utils/utils_test.ok +++ b/tests/utils/utils_test.ok @@ -325,3 +325,20 @@ = 62, "ABCDEFGHIJKLMNOPQRSTUVWXYZA" osmo_str_toupper_buf(28, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()", in-place) = 27, "ABCDEFGHIJKLMNOPQRSTUVWXYZA" + +strbuf_test +OSMO_STRBUF_APPEND(): + The answer is 42 +would have needed 423470 bytes + +OSMO_STRBUF_PRINTF(): +1: (need 42 chars, had size=23) T minus 10 9 8 7 6 5 4 +2: (need 42 chars, had size=42) T minus 10 9 8 7 6 5 4 3 2 1 ... Lift off +3: (need 42 chars, had size=42+1) T minus 10 9 8 7 6 5 4 3 2 1 ... Lift off! +4: (need 42 chars, had size=0) 0x2b 0x2b 0x2b... +5: (need 42 chars, had NULL buffer) + +cascade: +(need 134 chars) +T minus 10 9 8 7 6 5 4 3 2 1 ... Lift off! -- T minus 10 9 8 7 6 5 4 3 2 1 ... Lift off! -- T minus 10 9 8 7 6 5 4 3 2 1 ... Lift off! +(need 134 chars, had size=63) T minus 10 9 8 7 6 5 4 3 2 1 ... Lift off! -- T minus 10 9 8 7 -- To view, visit https://gerrit.osmocom.org/12880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I2497514e26c5e7a5d88985fc7e58343be1a027b2 Gerrit-Change-Number: 12880 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 04:27:41 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Tue, 12 Feb 2019 04:27:41 +0000 Subject: Change in libosmocore[master]: add OSMO_STRBUF_PRINTF() In-Reply-To: References: Message-ID: Neels Hofmeyr has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/12880 ) Change subject: add OSMO_STRBUF_PRINTF() ...................................................................... add OSMO_STRBUF_PRINTF() We are using macros like this or different workarounds in libmsc. In the course of implementing inter-MSC handover, I am encountering yet another such situation of appending multiple strings to a limited char buffer. Standardize. Add a unit test to utils_test.c. Change-Id: I2497514e26c5e7a5d88985fc7e58343be1a027b2 --- M include/osmocom/core/utils.h M tests/utils/utils_test.c M tests/utils/utils_test.ok 3 files changed, 188 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/80/12880/2 -- To view, visit https://gerrit.osmocom.org/12880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I2497514e26c5e7a5d88985fc7e58343be1a027b2 Gerrit-Change-Number: 12880 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 04:27:41 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Tue, 12 Feb 2019 04:27:41 +0000 Subject: Change in libosmocore[master]: get_value_string(): guard against NULL In-Reply-To: References: Message-ID: Neels Hofmeyr has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/12879 ) Change subject: get_value_string(): guard against NULL ...................................................................... get_value_string(): guard against NULL get_value_string() conveniently prints the value number to a static buffer if it is unknown in a value_string array. Do the same if the value_string array pointer itself is NULL. If a value string array is user supplied and might be NULL, one could add a separate NULL check around it; but by making get_value_string() itself guard against NULL, another static char buffer to print the value number is avoided. Change-Id: Ie640e9258a959da8f4f9089478de993509853997 --- M src/utils.c 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/79/12879/2 -- To view, visit https://gerrit.osmocom.org/12879 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ie640e9258a959da8f4f9089478de993509853997 Gerrit-Change-Number: 12879 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-CC: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 08:03:33 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 12 Feb 2019 08:03:33 +0000 Subject: Change in docker-playground[master]: ttcn3-msc-test: Enable SGs interface In-Reply-To: References: Message-ID: dexter has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/12878 ) Change subject: ttcn3-msc-test: Enable SGs interface ...................................................................... ttcn3-msc-test: Enable SGs interface Since the current master now supports SGs interface connections. We may turn on the optional SGs interface of the testsuite so that the related testcases can run. Change-Id: I260fbd21d00d4fc160e95b76fc26b5d5b8f3c9e8 Related: OS#3614 --- M ttcn3-msc-test/MSC_Tests.cfg 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/78/12878/2 -- To view, visit https://gerrit.osmocom.org/12878 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I260fbd21d00d4fc160e95b76fc26b5d5b8f3c9e8 Gerrit-Change-Number: 12878 Gerrit-PatchSet: 2 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 08:05:00 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 12 Feb 2019 08:05:00 +0000 Subject: Change in docker-playground[master]: cosmetic: remove excess space at line end Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/12881 Change subject: cosmetic: remove excess space at line end ...................................................................... cosmetic: remove excess space at line end Change-Id: I36a1b9f87f1671844e78a84121e84272e8f1d373 --- M ttcn3-msc-test/MSC_Tests.cfg 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/81/12881/1 diff --git a/ttcn3-msc-test/MSC_Tests.cfg b/ttcn3-msc-test/MSC_Tests.cfg index 8a29a0d..05edd9f 100644 --- a/ttcn3-msc-test/MSC_Tests.cfg +++ b/ttcn3-msc-test/MSC_Tests.cfg @@ -34,7 +34,7 @@ } }; -# remote (IUT) side +# remote (IUT) side MSC_Tests.mp_msc_mncc := "/data/unix/mncc"; MSC_Tests.mp_msc_ip := "172.18.1.10"; # local (emulation) side) -- To view, visit https://gerrit.osmocom.org/12881 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I36a1b9f87f1671844e78a84121e84272e8f1d373 Gerrit-Change-Number: 12881 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 10:41:57 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 12 Feb 2019 10:41:57 +0000 Subject: Change in openbsc[master]: Make alert notifications vty configurable per ESME In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12601 ) Change subject: Make alert notifications vty configurable per ESME ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12601/1/openbsc/src/libmsc/smpp_openbsc.c File openbsc/src/libmsc/smpp_openbsc.c: https://gerrit.osmocom.org/#/c/12601/1/openbsc/src/libmsc/smpp_openbsc.c at 291 PS1, Line 291: } else { > I don't understand how it can be NULL, which is because I tried but failed to understand llist_for_each_entry() It iterates over "smsc->esme_list", and puts each entry in "esme" as it runs the code in {} on each iteration. Without looking much into the code that initializes smsc->esme_list, it seems that the whole osmo_esme struct gets zero-allocated. So esme->acl, like everything else in esme is NULL by default. At some later point, memory would get allocated for a full "struct osmo_smpp_acl" datatype (which is the datatype of esme->acl, see smpp_smsc.h), and the pointer to that new memory region would be placed in esme->acl. Then you are able to access it with esme->acl->foobar. Now this alert_all_esme() function may run before or after esme->acl has been filled out, which is why we must check for it at that point. (Again, I am not familiar with the code, but that's my understanding of it.) > I feel a bit demoralised now that I patched a crash causing bug in there :((( To be fair, this wasn't really obvious or otherwise it would have been catched in the review. -- To view, visit https://gerrit.osmocom.org/12601 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2b52f2778b24eebc82b2e5e2fb3c2250b1f9e5b0 Gerrit-Change-Number: 12601 Gerrit-PatchSet: 1 Gerrit-Owner: Keith Whyte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Keith Whyte Gerrit-CC: osmith Gerrit-Comment-Date: Tue, 12 Feb 2019 10:41:57 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 11:20:28 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 12 Feb 2019 11:20:28 +0000 Subject: Change in osmo-ci[master]: Add timeout wrapper to regular gerrit verification jobs In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12857 ) Change subject: Add timeout wrapper to regular gerrit verification jobs ...................................................................... Patch Set 2: Odd, seems like I can't put verified+1 to my own patch - someone else got to do this apparently. I can propagate the changes using jenkins-job-builder once this gets merged though. -- To view, visit https://gerrit.osmocom.org/12857 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9d0eb6b9eddf3e17120e74d7570d42291c0750ae Gerrit-Change-Number: 12857 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 12 Feb 2019 11:20:28 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 11:23:27 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 12 Feb 2019 11:23:27 +0000 Subject: Change in docker-playground[master]: cosmetic: remove excess space at line end In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12881 ) Change subject: cosmetic: remove excess space at line end ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12881 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I36a1b9f87f1671844e78a84121e84272e8f1d373 Gerrit-Change-Number: 12881 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Max Gerrit-Comment-Date: Tue, 12 Feb 2019 11:23:27 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 11:23:55 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 12 Feb 2019 11:23:55 +0000 Subject: Change in osmo-ci[master]: Add timeout wrapper to regular gerrit verification jobs In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12857 ) Change subject: Add timeout wrapper to regular gerrit verification jobs ...................................................................... Patch Set 2: Verified+1 Nevermind, actually I can. -- To view, visit https://gerrit.osmocom.org/12857 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9d0eb6b9eddf3e17120e74d7570d42291c0750ae Gerrit-Change-Number: 12857 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 12 Feb 2019 11:23:55 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 11:25:42 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 12 Feb 2019 11:25:42 +0000 Subject: Change in libosmocore[master]: add OSMO_STRBUF_PRINTF() In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12880 ) Change subject: add OSMO_STRBUF_PRINTF() ...................................................................... Patch Set 2: (1 comment) Please clarify. https://gerrit.osmocom.org/#/c/12880/2/tests/utils/utils_test.c File tests/utils/utils_test.c: https://gerrit.osmocom.org/#/c/12880/2/tests/utils/utils_test.c at 941 PS2, Line 941: #pragma GCC diagnostic ignored "-Wformat-truncation" Why is this necessary? Do we have to use it every time alongside with OSMO_STRBUF_* as well? -- To view, visit https://gerrit.osmocom.org/12880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2497514e26c5e7a5d88985fc7e58343be1a027b2 Gerrit-Change-Number: 12880 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max Gerrit-Comment-Date: Tue, 12 Feb 2019 11:25:42 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 11:26:32 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 12 Feb 2019 11:26:32 +0000 Subject: Change in libosmocore[master]: get_value_string(): guard against NULL In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12879 ) Change subject: get_value_string(): guard against NULL ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12879 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie640e9258a959da8f4f9089478de993509853997 Gerrit-Change-Number: 12879 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Tue, 12 Feb 2019 11:26:32 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 11:36:13 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 12 Feb 2019 11:36:13 +0000 Subject: Change in osmo-bts[master]: OML: Properly reject short messages and truncate over-long messages In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12873 ) Change subject: OML: Properly reject short messages and truncate over-long messages ...................................................................... Patch Set 1: Code-Review+1 I think this can be moved earlier in the patch series or even rebased on top of master to get this merged without waiting for the rest of the patches. Unless it actually depends on one of the previous patches of course. -- To view, visit https://gerrit.osmocom.org/12873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib98f0d7c2cff9172714ed18667c02564540d65d7 Gerrit-Change-Number: 12873 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 12 Feb 2019 11:36:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 11:43:29 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 12 Feb 2019 11:43:29 +0000 Subject: Change in osmo-bts[master]: WIP: send proper OML alert in case of errors In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12867 ) Change subject: WIP: send proper OML alert in case of errors ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12867/1/src/common/oml.c File src/common/oml.c: https://gerrit.osmocom.org/#/c/12867/1/src/common/oml.c at 1463 PS1, Line 1463: "unknown O&M msg_disc 0x%02x\n", oh->mdisc); While at it, might be good idea to change this to "unhandled": we certainly know more than ABIS_OM_MDISC_* in libosmocore, we just don't handle them in here. -- To view, visit https://gerrit.osmocom.org/12867 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5b19b82a4874617c7c584cf3eac55eb9c756710a Gerrit-Change-Number: 12867 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 12 Feb 2019 11:43:29 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 11:46:34 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 12 Feb 2019 11:46:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Add TTCN-3 definition of GSM Abis OML protocol (TS 12.21) In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12875 ) Change subject: Add TTCN-3 definition of GSM Abis OML protocol (TS 12.21) ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12875/1/library/AbisOML_Types.ttcn File library/AbisOML_Types.ttcn: https://gerrit.osmocom.org/#/c/12875/1/library/AbisOML_Types.ttcn at 101 PS1, Line 101: /* Transmission Management Messages */ That looks off. -- To view, visit https://gerrit.osmocom.org/12875 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I65f71bf7f54cbe3290757e810b1df1e54929bdd1 Gerrit-Change-Number: 12875 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max Gerrit-Comment-Date: Tue, 12 Feb 2019 11:46:34 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 11:54:48 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 12 Feb 2019 11:54:48 +0000 Subject: Change in osmo-ttcn3-hacks[master]: IPA_Emulation: Integrate OML decoding/encoding; add OML port In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12876 ) Change subject: IPA_Emulation: Integrate OML decoding/encoding; add OML port ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id0dabe7eca4f81d22a60b346ac598be81533f53c Gerrit-Change-Number: 12876 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Tue, 12 Feb 2019 11:54:48 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 12:13:45 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 12 Feb 2019 12:13:45 +0000 Subject: Change in osmo-bts[master]: OML: Send Failure Event Report on short OML messages In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12872 ) Change subject: OML: Send Failure Event Report on short OML messages ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12872 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4a1b64aa35fa7051d9eb190f3f6f5ea0b28bab8f Gerrit-Change-Number: 12872 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 12 Feb 2019 12:13:45 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 12:15:55 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 12 Feb 2019 12:15:55 +0000 Subject: Change in osmo-bts[master]: OML: Reject segmented OML messages In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12871 ) Change subject: OML: Reject segmented OML messages ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12871 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Idd42cf4edc1bf9ab366853bd9b0f7afd9c060910 Gerrit-Change-Number: 12871 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 12 Feb 2019 12:15:55 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 12:18:50 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 12 Feb 2019 12:18:50 +0000 Subject: Change in osmo-bts[master]: OML: Use 'const struct abis_oml_mo *' whenever users only read In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12870 ) Change subject: OML: Use 'const struct abis_oml_mo *' whenever users only read ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12870 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5a61e6d1b4e5e083bb24017166186dc87d035cd0 Gerrit-Change-Number: 12870 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 12 Feb 2019 12:18:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 12:19:26 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 12 Feb 2019 12:19:26 +0000 Subject: Change in osmo-bts[master]: OML: Report short messages even for invalid TRX numbers in down_fom() In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12869 ) Change subject: OML: Report short messages even for invalid TRX numbers in down_fom() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12869 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I65b57d3fc714814db3ae3fd34398f307413fece8 Gerrit-Change-Number: 12869 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 12 Feb 2019 12:19:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 12:20:02 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 12 Feb 2019 12:20:02 +0000 Subject: Change in osmo-bts[master]: OML: Reduce code duplication in down_mom/down_fom In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12868 ) Change subject: OML: Reduce code duplication in down_mom/down_fom ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12868 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ibe6c79e95405b13d041047549d2ffa39aa355eb2 Gerrit-Change-Number: 12868 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 12 Feb 2019 12:20:02 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 12:23:17 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 12 Feb 2019 12:23:17 +0000 Subject: Change in osmo-mgw[master]: install: keep existing / modified etc/osmocom/*.cfg files In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12861 ) Change subject: install: keep existing / modified etc/osmocom/*.cfg files ...................................................................... Patch Set 1: Code-Review-2 I strongly disagree: we should not try to reimplement (poorly) package manager functionality in our makefiles. There're tools like http://asic-linux.com.mx/%7Eizto/checkinstall/ and https://www.gnu.org/software/stow/ for people who don't use package manager for some reason. -- To view, visit https://gerrit.osmocom.org/12861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I95c9b5dc6117b3dd7a095b34437f5030a141c93b Gerrit-Change-Number: 12861 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 12 Feb 2019 12:23:17 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 13:13:32 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 12 Feb 2019 13:13:32 +0000 Subject: Change in osmocom-bb[master]: firmware/board/pirelli_dpl10: fix ASIC_CONF_REG setting Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/12882 Change subject: firmware/board/pirelli_dpl10: fix ASIC_CONF_REG setting ...................................................................... firmware/board/pirelli_dpl10: fix ASIC_CONF_REG setting Set LPG and PWL pin mux like Pirelli's firmware does. Change-Id: I099e13800b7821a8fb274c5264c9823153afe564 --- M src/target/firmware/board/pirelli_dpl10/init.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/82/12882/1 diff --git a/src/target/firmware/board/pirelli_dpl10/init.c b/src/target/firmware/board/pirelli_dpl10/init.c index 4c74a6d..da23308 100644 --- a/src/target/firmware/board/pirelli_dpl10/init.c +++ b/src/target/firmware/board/pirelli_dpl10/init.c @@ -60,8 +60,8 @@ uint16_t reg; reg = readw(ASIC_CONF_REG); - /* Set function pins to I2C Mode */ - reg |= ((1 << 12) | (1 << 7)); /* SCL / SDA */ + /* Set LPG and PWL pin mux like Pirelli's fw does */ + reg |= (1 << 6) | (1 << 4); /* TWL3025: Set SPI+RIF RX clock to rising edge */ reg |= (1 << 13) | (1 << 14); reg &= ~(1 << 1); -- To view, visit https://gerrit.osmocom.org/12882 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I099e13800b7821a8fb274c5264c9823153afe564 Gerrit-Change-Number: 12882 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 13:13:32 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 12 Feb 2019 13:13:32 +0000 Subject: Change in osmocom-bb[master]: firmware/board/gta0x: fix GPIO and ASIC_CONF_REG configuration Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/12883 Change subject: firmware/board/gta0x: fix GPIO and ASIC_CONF_REG configuration ...................................................................... firmware/board/gta0x: fix GPIO and ASIC_CONF_REG configuration Most Calypso peripheral interface signals are unconnected on Openmoko GTA0x. Let's configure them to be GPIOs in IO_CONF_REG, then configure them to be outputs in IO_CNTL_REG, then set the outputs to 0 in ARMIO_LATCH_OUT. Change-Id: I306ffacb623d2b06a188f84026ccadab408d1676 --- M src/target/firmware/board/gta0x/init.c 1 file changed, 10 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/83/12883/1 diff --git a/src/target/firmware/board/gta0x/init.c b/src/target/firmware/board/gta0x/init.c index 4f49e80..b93f79c 100644 --- a/src/target/firmware/board/gta0x/init.c +++ b/src/target/firmware/board/gta0x/init.c @@ -49,29 +49,26 @@ #define ARMIO_LATCH_OUT 0xfffe4802 #define IO_CNTL_REG 0xfffe4804 #define ASIC_CONF_REG 0xfffef008 +#define IO_CONF_REG 0xfffef00a static void board_io_init(void) { uint16_t reg; reg = readw(ASIC_CONF_REG); - /* LCD Set I/O(3) / SA0 to I/O(3) mode */ - reg &= ~(1 << 10); - /* Set function pins to I2C Mode */ - reg |= ((1 << 12) | (1 << 7)); /* SCL / SDA */ /* TWL3025: Set SPI+RIF RX clock to rising edge */ reg |= (1 << 13) | (1 << 14); writew(reg, ASIC_CONF_REG); - /* LCD Set I/O(3) to output mode */ - reg = readw(IO_CNTL_REG); - reg &= ~(1 << 3); - writew(reg, IO_CNTL_REG); - - /* LCD Set I/O(3) output low */ - reg = readw(ARMIO_LATCH_OUT); - reg &= ~(1 << 3); - writew(reg, ARMIO_LATCH_OUT); + /* + * Most Calypso peripheral interface signals are unconnected + * on this modem. We configure them to be GPIOs in IO_CONF_REG, + * then configure them to be outputs in IO_CNTL_REG, then set + * the outputs to 0 in ARMIO_LATCH_OUT. + */ + writew(0x03F5, IO_CONF_REG); + writew(0xC000, IO_CNTL_REG); + writew(0x0000, ARMIO_LATCH_OUT); } void board_init(int with_irq) -- To view, visit https://gerrit.osmocom.org/12883 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I306ffacb623d2b06a188f84026ccadab408d1676 Gerrit-Change-Number: 12883 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 13:13:33 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 12 Feb 2019 13:13:33 +0000 Subject: Change in osmocom-bb[master]: firmware/compal: indicate both DCS and PCS Rx ports as connected Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/12884 Change subject: firmware/compal: indicate both DCS and PCS Rx ports as connected ...................................................................... firmware/compal: indicate both DCS and PCS Rx ports as connected Each given Mot C1xx phone is made either for 900+1800 MHz, in which case only the DCS Rx port is connected, or for 850+1900 MHz, in which case only the PCS Rx port is connected. Let's tell the TRF6151 driver that both DCS and PCS ports are connected, so that the same binary build can be used on both EU-band and US-band C1xx phones. If one needs to tune the TRF6151 receiver out of spec, or at least outside of the DCS/PCS Rx SAW filter's legitimate passband (or if the SAW filter was changed or removed), then the rffe_get_rx_ports() function might be changed to indicate which Rx port is physically connected: PORT_DCS1800 only or PORT_PCS1900 only. Change-Id: I620084c33ad165faffbbfc45923faedad77aafb2 --- M src/target/firmware/board/compal/rffe_dualband.c M src/target/firmware/board/compal_e86/rffe_dualband_e86.c 2 files changed, 44 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/84/12884/1 diff --git a/src/target/firmware/board/compal/rffe_dualband.c b/src/target/firmware/board/compal/rffe_dualband.c index de16189..faa68ff 100644 --- a/src/target/firmware/board/compal/rffe_dualband.c +++ b/src/target/firmware/board/compal/rffe_dualband.c @@ -44,10 +44,30 @@ tsp_act_update(tspact); } -/* Returns RF wiring */ +/* + * Each given Mot C1xx phone is made either for 900+1800 MHz, in which + * case only the DCS Rx port is connected, or for 850+1900 MHz, in which + * case only the PCS Rx port is connected. Here we tell the TRF6151 driver + * that both DCS and PCS ports are connected, so that the same binary + * build can be used on both EU-band and US-band C1xx phones. + * + * If you are using your phone the way it was meant to be used, i.e., + * listening to EGSM and DCS downlinks only with EU-band phones or + * listening to GSM850 and PCS downlinks only with US-band phones, then + * the same standard binary build will work on both: the TRF6151 driver + * will use the DCS Rx port when trying to receive DCS downlink or the + * PCS Rx port when trying to receive PCS downlink, and everything will + * just work. However, if you are interested in using OsmocomBB for + * various hacking purposes (its original and primary intended use) + * and you need to tune your phone's TRF6151 receiver out of spec or + * at least outside of the DCS/PCS Rx SAW filter's legitimate passband + * (or if you have changed or removed that SAW filter), then you need + * to change the following rffe_get_rx_ports() function to match your + * specific hw version, i.e., PORT_DCS1800 only or PORT_PCS1900 only. + */ uint32_t rffe_get_rx_ports(void) { - return (1 << PORT_LO) | (1 << PORT_DCS1800); + return (1 << PORT_LO) | (1 << PORT_DCS1800) | (1 << PORT_PCS1900); } uint32_t rffe_get_tx_ports(void) diff --git a/src/target/firmware/board/compal_e86/rffe_dualband_e86.c b/src/target/firmware/board/compal_e86/rffe_dualband_e86.c index 4ad85dc..c6dccd3 100644 --- a/src/target/firmware/board/compal_e86/rffe_dualband_e86.c +++ b/src/target/firmware/board/compal_e86/rffe_dualband_e86.c @@ -48,10 +48,30 @@ tsp_act_update(tspact); } -/* Returns RF wiring */ +/* + * Each given Mot C1xx phone is made either for 900+1800 MHz, in which + * case only the DCS Rx port is connected, or for 850+1900 MHz, in which + * case only the PCS Rx port is connected. Here we tell the TRF6151 driver + * that both DCS and PCS ports are connected, so that the same binary + * build can be used on both EU-band and US-band C1xx phones. + * + * If you are using your phone the way it was meant to be used, i.e., + * listening to EGSM and DCS downlinks only with EU-band phones or + * listening to GSM850 and PCS downlinks only with US-band phones, then + * the same standard binary build will work on both: the TRF6151 driver + * will use the DCS Rx port when trying to receive DCS downlink or the + * PCS Rx port when trying to receive PCS downlink, and everything will + * just work. However, if you are interested in using OsmocomBB for + * various hacking purposes (its original and primary intended use) + * and you need to tune your phone's TRF6151 receiver out of spec or + * at least outside of the DCS/PCS Rx SAW filter's legitimate passband + * (or if you have changed or removed that SAW filter), then you need + * to change the following rffe_get_rx_ports() function to match your + * specific hw version, i.e., PORT_DCS1800 only or PORT_PCS1900 only. + */ uint32_t rffe_get_rx_ports(void) { - return (1 << PORT_LO) | (1 << PORT_DCS1800); + return (1 << PORT_LO) | (1 << PORT_DCS1800) | (1 << PORT_PCS1900); } uint32_t rffe_get_tx_ports(void) -- To view, visit https://gerrit.osmocom.org/12884 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I620084c33ad165faffbbfc45923faedad77aafb2 Gerrit-Change-Number: 12884 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 13:13:33 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 12 Feb 2019 13:13:33 +0000 Subject: Change in osmocom-bb[master]: firmware/lib: introduce TIFFS filesystem support Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/12885 Change subject: firmware/lib: introduce TIFFS filesystem support ...................................................................... firmware/lib: introduce TIFFS filesystem support TIFFS is a file system with a hierarchical directory tree structure, and with Unixy forward-slash-separated, case-sensitive pathnames; the semantics of "what is a file" and "what is a directory" are exactly the same as in UNIX; and TIFFS even supports symlinks, although that support is a little under-developed, and apparently no FFS symlinks were ever used in any production GSM device. Thus the FFS implemented in TI-based GSM devices (modems and "dumbphone" handsets) is really no different from, for example, JFFS2 in embedded Linux systems. All known TI GSM firmwares implement some kind of flash file system, or FFS. The FFS in a GSM device typically stores two kinds of content: - Factory data: IMEI, RF calibration values, device make/model/revision ID strings etc. These files are expected to be programmed on the factory production line and not changed afterward. - Dynamic data written into the FFS in normal device operation: contacts, settings / preferences, call history, received SMS, etc. The location of TIFFS within the flash memory of a given GSM device is defined by the firmware design of that device, but is always some integral number of contiguous flash sectors. Some examples: - On Motorola/Compal C139/140 phones, the FFS used by the original proprietary firmware occupies 5 sectors of 64 KiB each (320 KiB in total), starting at 0x370000. C11x/123 use smaller FFS configurations, whereas C155/156 seem to have switched to some other FFS format, different from our familiar TIFFS. - On the Pirelli DP-L10, the FFS used by the original proprietary firmware occupies 18 sectors of 256 KiB each (for 4.5 MiB in total), starting at the beginning of the 2nd flash chip select (0x02000000 in the ARM7 address space). - On the GTA01/02 GSM modem, FFS occupies 7 sectors of 64 KiB each, starting at flash offset 0x380000. For more information, please refer to the FreeCalypso project documentation, from where this great contribution comes from. The TIFFS support is needed for the follow-up change, that implements reading of the factory RF calibration values. Tweaked (coding style changes) by Vadim Yanitskiy Change-Id: If6e212baeb10953129fb0d5253d263567f5e12d6 Related: OS#3582 --- M src/target/firmware/Makefile M src/target/firmware/include/string.h A src/target/firmware/include/tiffs.h M src/target/firmware/lib/Makefile A src/target/firmware/lib/index.c A src/target/firmware/lib/memcmp.S A src/target/firmware/lib/strcmp.c A src/target/firmware/tiffs/Makefile A src/target/firmware/tiffs/globals.c A src/target/firmware/tiffs/globals.h A src/target/firmware/tiffs/init.c A src/target/firmware/tiffs/readfile.c 12 files changed, 476 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/85/12885/1 diff --git a/src/target/firmware/Makefile b/src/target/firmware/Makefile index 22fa746..0a928ce 100644 --- a/src/target/firmware/Makefile +++ b/src/target/firmware/Makefile @@ -101,6 +101,7 @@ layer1/liblayer1.a \ lib/libmini.a \ comm/libcomm.a \ + tiffs/libtiffs.a \ ../../shared/libosmocore/build-target/src/.libs/libosmocore.a \ ../../shared/libosmocore/build-target/src/gsm/.libs/libosmogsm.a \ ../../shared/libosmocore/build-target/src/codec/.libs/libosmocodec.a @@ -117,6 +118,7 @@ -include calypso/Makefile -include layer1/Makefile -include comm/Makefile +-include tiffs/Makefile -include lib/Makefile # Include rules diff --git a/src/target/firmware/include/string.h b/src/target/firmware/include/string.h index f060659..ecef13d 100644 --- a/src/target/firmware/include/string.h +++ b/src/target/firmware/include/string.h @@ -9,4 +9,7 @@ void *memset(void *s, int c, size_t n); void *memcpy(void *dest, const void *src, size_t n); +int memcmp(const void *s1, const void *s2, size_t n); +int strcmp(const char *s1, const char *s2); + #endif diff --git a/src/target/firmware/include/tiffs.h b/src/target/firmware/include/tiffs.h new file mode 100644 index 0000000..4713c4e --- /dev/null +++ b/src/target/firmware/include/tiffs.h @@ -0,0 +1,33 @@ +/* + * The external API for the TIFFS reader library (libtiffs). + * + * For the file reading functions, the return code is 0 if the file wasn't + * found or there is no valid FFS (no error msg printed), 1 if the file was + * found and read successfully, or negative if some other error(s) occurred + * (error msg printed internally). + */ + +#define INODE_TO_DATAPTR(i) \ + ((uint8_t *)tiffs_base_addr + ((i)->dataptr << 4)) + +#define TIFFS_OBJTYPE_FILE 0xF1 +#define TIFFS_OBJTYPE_DIR 0xF2 +#define TIFFS_OBJTYPE_SEGMENT 0xF4 + +struct tiffs_inode { + uint16_t len; + uint8_t reserved1; + uint8_t type; + uint16_t descend; + uint16_t sibling; + uint32_t dataptr; + uint16_t sequence; + uint16_t updates; +}; + +int tiffs_init(uint32_t base_addr, uint32_t sector_size, unsigned nsectors); + +int tiffs_read_file_maxlen(const char *pathname, uint8_t *buf, + size_t maxlen, size_t *lenrtn); +int tiffs_read_file_fixedlen(const char *pathname, uint8_t *buf, + size_t expect_len); diff --git a/src/target/firmware/lib/Makefile b/src/target/firmware/lib/Makefile index a2a6d45..7546198 100644 --- a/src/target/firmware/lib/Makefile +++ b/src/target/firmware/lib/Makefile @@ -2,6 +2,7 @@ LIBRARIES+=mini LIB_mini_DIR=lib LIB_mini_SRCS=vsprintf.c string.c ctype.c printf.c console.c ctors.c \ - changebit.S clearbit.S delay.c div64.S lib1funcs.S memcpy.S memset.S setbit.S testchangebit.S testclearbit.S testsetbit.S - + changebit.S clearbit.S delay.c div64.S lib1funcs.S memcpy.S \ + memset.S setbit.S testchangebit.S testclearbit.S testsetbit.S \ + memcmp.S index.c strcmp.c diff --git a/src/target/firmware/lib/index.c b/src/target/firmware/lib/index.c new file mode 100644 index 0000000..bb304c0 --- /dev/null +++ b/src/target/firmware/lib/index.c @@ -0,0 +1,12 @@ +char * +index(p, ch) + register char *p, ch; +{ + for (;; ++p) { + if (*p == ch) + return(p); + if (!*p) + return((char *)0); + } + /* NOTREACHED */ +} diff --git a/src/target/firmware/lib/memcmp.S b/src/target/firmware/lib/memcmp.S new file mode 100644 index 0000000..c60b170 --- /dev/null +++ b/src/target/firmware/lib/memcmp.S @@ -0,0 +1,18 @@ + .text + .code 32 + .globl memcmp +memcmp: + cmp r2, #0 + beq zero_len_out + mov r3, r0 +1: ldrb r0, [r3], #1 + ldrb r12, [r1], #1 + subs r0, r0, r12 + bxne lr + subs r2, r2, #1 + bne 1b + bx lr + +zero_len_out: + mov r0, #0 + bx lr diff --git a/src/target/firmware/lib/strcmp.c b/src/target/firmware/lib/strcmp.c new file mode 100644 index 0000000..9a7fa81 --- /dev/null +++ b/src/target/firmware/lib/strcmp.c @@ -0,0 +1,12 @@ +/* + * Compare strings: s1>s2: >0 s1==s2: 0 s1 +#include "globals.h" + +uint32_t tiffs_base_addr; +uint32_t tiffs_sector_size; +unsigned tiffs_nsectors; + +struct tiffs_inode *tiffs_active_index; +int tiffs_root_ino; +int tiffs_init_done; diff --git a/src/target/firmware/tiffs/globals.h b/src/target/firmware/tiffs/globals.h new file mode 100644 index 0000000..7c64693 --- /dev/null +++ b/src/target/firmware/tiffs/globals.h @@ -0,0 +1,9 @@ +/* global variables for the TIFFS reader code - extern declarations */ + +extern uint32_t tiffs_base_addr; +extern uint32_t tiffs_sector_size; +extern unsigned tiffs_nsectors; + +extern struct tiffs_inode *tiffs_active_index; +extern int tiffs_root_ino; +extern int tiffs_init_done; diff --git a/src/target/firmware/tiffs/init.c b/src/target/firmware/tiffs/init.c new file mode 100644 index 0000000..6a3b48a --- /dev/null +++ b/src/target/firmware/tiffs/init.c @@ -0,0 +1,103 @@ +/* TIFFS (TI Flash File System) reader implementation */ + +/* + * (C) 2017 by Mychaela Falconia + * Tweaked (coding style changes) by Vadim Yanitskiy + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include +#include + +#include +#include "globals.h" + +/* Each flash sector used for TIFFS begins with this 6-byte signature */ +static const uint8_t ffs_sector_signature[6] = { + 'F', 'f', 's', '#', 0x10, 0x02 +}; + +static int find_indexblk(void) +{ + uint32_t sector_addr; + uint8_t *sector_ptr; + unsigned i; + + sector_addr = tiffs_base_addr; + for (i = 0; i < tiffs_nsectors; i++) { + sector_ptr = (uint8_t *) sector_addr; + if (!memcmp(sector_ptr, ffs_sector_signature, 6) + && sector_ptr[8] == 0xAB) { + printf("Found TIFFS active index block " + "at 0x%" PRIx32 "\n", sector_addr); + tiffs_active_index = (struct tiffs_inode *) sector_addr; + return 0; + } + sector_addr += tiffs_sector_size; + } + + puts("TIFFS error: no active index block found\n"); + return -1; +} + +static int find_rootino(void) +{ + struct tiffs_inode *irec; + unsigned ino = 0; + + while (++ino < tiffs_sector_size >> 4) { + irec = tiffs_active_index + ino; + if (irec->type != TIFFS_OBJTYPE_DIR) + continue; + if (*INODE_TO_DATAPTR(irec) != '/') + continue; + + printf("Found TIFFS root inode at #%x\n", ino); + tiffs_root_ino = ino; + return 0; + } + + puts("TIFFS error: no root inode found\n"); + return -1; +} + +int tiffs_init(uint32_t base_addr, uint32_t sector_size, unsigned nsectors) +{ + int rc; + + printf("Looking for TIFFS (TI Flash File System) header at " + "0x%" PRIx32 ", %u sectors of 0x%" PRIx32 " bytes\n", + base_addr, nsectors, sector_size); + + tiffs_base_addr = base_addr; + tiffs_sector_size = sector_size; + tiffs_nsectors = nsectors; + + rc = find_indexblk(); + if (rc < 0) + return rc; + rc = find_rootino(); + if (rc < 0) + return rc; + + tiffs_init_done = 1; + return 0; +} diff --git a/src/target/firmware/tiffs/readfile.c b/src/target/firmware/tiffs/readfile.c new file mode 100644 index 0000000..f3e916f --- /dev/null +++ b/src/target/firmware/tiffs/readfile.c @@ -0,0 +1,264 @@ +/* TIFFS (TI Flash File System) reader implementation */ + +/* + * (C) 2017 by Mychaela Falconia + * Tweaked (coding style changes) by Vadim Yanitskiy + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include + +#include +#include "globals.h" + +extern char *index(); + +#define MAX_FN_COMPONENT 20 + +static unsigned find_named_child(unsigned start, const char *seekname) +{ + struct tiffs_inode *irec; + unsigned ino; + + for (ino = start; ino != 0xFFFF; ino = irec->sibling) { + irec = tiffs_active_index + ino; + if (!irec->type) + continue; + if (!strcmp((const char *) INODE_TO_DATAPTR(irec), seekname)) + return ino; + } + + return 0; +} + +static int pathname_to_inode(const char *pathname) +{ + char seekname[MAX_FN_COMPONENT + 1]; + struct tiffs_inode *irec; + const char *cur, *next; + unsigned ino, namelen; + + cur = pathname; + if (*cur == '/') + cur++; + + for (ino = tiffs_root_ino; cur; cur = next) { + if (!*cur) + break; + + next = index(cur, '/'); + if (next == cur) { + puts("Malformed TIFFS pathname: multiple adjacent slashes\n"); + return -1; + } else if (next) { + namelen = next - cur; + next++; + } else { + namelen = strlen(cur); + } + + if (namelen > MAX_FN_COMPONENT) { + puts("Malformed TIFFS pathname: component name too long\n"); + return -1; + } + + memcpy(seekname, cur, namelen); + seekname[namelen] = '\0'; + + irec = tiffs_active_index + ino; + if (irec->type != TIFFS_OBJTYPE_DIR) { + /* printf("Error: non-terminal non-directory\n"); */ + return 0; + } + ino = find_named_child(irec->descend, seekname); + if (!ino) { + /* printf("Error: pathname component not found\n"); */ + return 0; + } + } + + return ino; +} + +static uint8_t *find_endofchunk(int ino) +{ + struct tiffs_inode *irec; + uint8_t *ptr; + int i; + + irec = tiffs_active_index + ino; + ptr = INODE_TO_DATAPTR(irec) + irec->len; + + for (i = 0; i < 16; i++) { + ptr--; + if (!*ptr) + return ptr; + if (*ptr != 0xFF) + break; + } + + printf("TIFFS error: inode #%x has no valid termination\n", ino); + return ptr; /* XXX */ +} + +static int get_file_head(const char *pathname, uint8_t **startret, + size_t *sizeret, int *continue_ret) +{ + struct tiffs_inode *irec; + uint8_t *start, *end; + int ino, cont, size; + + ino = pathname_to_inode(pathname); + if (ino <= 0) + return ino; + + irec = tiffs_active_index + ino; + if (irec->type != TIFFS_OBJTYPE_FILE) { + printf("TIFFS error: '%s' is not a regular file\n", pathname); + return -1; + } + + start = INODE_TO_DATAPTR(irec); + start += strlen((const char *) start) + 1; + end = find_endofchunk(ino); + + size = end - start; + if (size < 0) + size = 0; + + cont = irec->descend; + if (cont == 0xFFFF) + cont = 0; + if (startret) + *startret = start; + if (sizeret) + *sizeret = size; + if (continue_ret) + *continue_ret = cont; + + return 1; +} + +static int get_segment(int ino, uint8_t **startret, + size_t *sizeret, int *continue_ret) +{ + struct tiffs_inode *irec; + uint8_t *start, *end; + int cont, size; + + for (;;) { + irec = tiffs_active_index + ino; + if (irec->type) + break; + if (irec->sibling == 0xFFFF) { + printf("TIFFS error: segment inode #%d: " + "deleted and no sibling\n", ino); + return -1; + } + ino = irec->sibling; + } + + if (irec->type != TIFFS_OBJTYPE_SEGMENT) { + printf("TIFFS error: inode #%x is not a segment\n", ino); + return -1; + } + + start = INODE_TO_DATAPTR(irec); + end = find_endofchunk(ino); + + size = end - start; + if (size <= 0) { + printf("TIFFS error: segment inode #%x has bad length\n", ino); + return -1; + } + + cont = irec->descend; + if (cont == 0xFFFF) + cont = 0; + if (startret) + *startret = start; + if (sizeret) + *sizeret = size; + if (continue_ret) + *continue_ret = cont; + + return 0; +} + +int tiffs_read_file_maxlen(const char *pathname, uint8_t *buf, + size_t maxlen, size_t *lenrtn) +{ + size_t chunk_size, real_len, roomleft; + uint8_t *chunk_start; + int stat, cont; + + if (!tiffs_init_done) { + puts("TIFFS reader is not initialized\n"); + return -1; + } + + stat = get_file_head(pathname, &chunk_start, &chunk_size, &cont); + if (stat <= 0) + return stat; + if (chunk_size > maxlen) { +toobig: printf("TIFFS error: '%s' is bigger than the read buffer\n", pathname); + return -1; + } + + real_len = chunk_size; + memcpy(buf, chunk_start, chunk_size); + buf += chunk_size; + roomleft = maxlen - chunk_size; + while (cont) { + stat = get_segment(cont, &chunk_start, &chunk_size, &cont); + if (stat < 0) + return stat; + if (chunk_size > roomleft) + goto toobig; + + real_len += chunk_size; + memcpy(buf, chunk_start, chunk_size); + buf += chunk_size; + roomleft -= chunk_size; + } + + if (lenrtn) + *lenrtn = real_len; + + return 1; +} + +int tiffs_read_file_fixedlen(const char *pathname, uint8_t *buf, + size_t expect_len) +{ + size_t real_len; + int rc; + + rc = tiffs_read_file_maxlen(pathname, buf, expect_len, &real_len); + if (rc <= 0) + return rc; + if (real_len != expect_len) { + printf("TIFFS error: '%s' has the wrong length\n", pathname); + return -1; + } + + return 1; +} -- To view, visit https://gerrit.osmocom.org/12885 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If6e212baeb10953129fb0d5253d263567f5e12d6 Gerrit-Change-Number: 12885 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 13:13:33 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 12 Feb 2019 13:13:33 +0000 Subject: Change in osmocom-bb[master]: firmware/board/compal_e99: enable reading the second half of flash Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/12886 Change subject: firmware/board/compal_e99: enable reading the second half of flash ...................................................................... firmware/board/compal_e99: enable reading the second half of flash The ability to read the second half of flash on E99 is needed for the follow-up change, that implements reading of the factory RF calibration values. Change-Id: Ia677ebdc1ada9fd41daf211fd9da06cd118365fa Related: OS#3582 --- M src/target/firmware/board/compal_e99/init.c 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/86/12886/1 diff --git a/src/target/firmware/board/compal_e99/init.c b/src/target/firmware/board/compal_e99/init.c index 7cc3c67..0271f16 100644 --- a/src/target/firmware/board/compal_e99/init.c +++ b/src/target/firmware/board/compal_e99/init.c @@ -51,6 +51,7 @@ #define ARMIO_LATCH_OUT 0xfffe4802 #define IO_CNTL_REG 0xfffe4804 +#define ARM_CONF_REG 0xfffef006 #define ASIC_CONF_REG 0xfffef008 static void board_io_init(void) @@ -76,6 +77,11 @@ reg &= ~(1 << 3); reg |= (1 << 1); writew(reg, ARMIO_LATCH_OUT); + + /* configure ADD(22), needed for second half of flash */ + reg = readw(ARM_CONF_REG); + reg |= (1 << 3); + writew(reg, ARM_CONF_REG); } void board_init(int with_irq) -- To view, visit https://gerrit.osmocom.org/12886 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ia677ebdc1ada9fd41daf211fd9da06cd118365fa Gerrit-Change-Number: 12886 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 13:13:34 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 12 Feb 2019 13:13:34 +0000 Subject: Change in osmocom-bb[master]: firmware: implement reading of factory RF calibration values Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/12887 Change subject: firmware: implement reading of factory RF calibration values ...................................................................... firmware: implement reading of factory RF calibration values Since If6e212baeb10953129fb0d5253d263567f5e12d6, we can read the TIFFS file-system, thus we can read and use the factory RF calibration values. * Implement parsing of factory RF calibration values for Motorola C1xx, Openmoko GTA0x, Pirelli DP-L10, and upcoming FCDEV3B targets. * Remove the old Tx power level control code and tables, and replace them with new logic that exactly matches what the official chipset firmware (TI/FreeCalypso) does, using tables in TI/FreeCalypso format. Compiled-in tables serve as a fallback and match each target's respective original firmware. * Use individual AFC slope values for different targets. The original value was/is only correct for the Mot C1xx family, whereas GTA0x/FCDEV3B and Pirelli DP-L10 need different values because Openmoko's VCXO (copied on the FCDEV3B) and Pirelli's VCTCXO are different from what Motorola used. * Take the initial AFC DAC value for the FB search from factory calibration records on those targets on which it has been calibrated per unit at the factory. Change-Id: Icf2693b751d86ec1d2563412d606c13d4c91a806 Related: OS#3582 --- M src/target/firmware/Makefile M src/target/firmware/apps/layer1/main.c M src/target/firmware/apps/rssi/main.c A src/target/firmware/board/common/readcal_dummy.c A src/target/firmware/board/common/readcal_tiffs.c A src/target/firmware/board/common/rf_tables.c A src/target/firmware/board/compal/readcal_common.c A src/target/firmware/board/compal/readcal_small.c A src/target/firmware/board/compal/rf_tables.c A src/target/firmware/board/compal_e99/readcal.c M src/target/firmware/board/gta0x/init.c A src/target/firmware/board/gta0x/rf_tables.c A src/target/firmware/board/pirelli_dpl10/readcal.c A src/target/firmware/board/pirelli_dpl10/rf_tables.c D src/target/firmware/include/layer1/apc.h A src/target/firmware/include/rf/readcal.h A src/target/firmware/include/rf/txcal.h A src/target/firmware/include/rf/vcxocal.h M src/target/firmware/layer1/Makefile M src/target/firmware/layer1/afc.c D src/target/firmware/layer1/apc.c M src/target/firmware/layer1/sync.c 22 files changed, 2,495 insertions(+), 92 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/87/12887/1 diff --git a/src/target/firmware/Makefile b/src/target/firmware/Makefile index 0a928ce..46a8fb1 100644 --- a/src/target/firmware/Makefile +++ b/src/target/firmware/Makefile @@ -38,44 +38,48 @@ FB_dummy_OBJS=$(FB_OBJS) fb/fb_dummy.o # TI Calypso -calypso_COMMON_OBJS=board/common/calypso_uart.o board/common/calypso_pwl.o +calypso_COMMON_OBJS=board/common/calypso_uart.o \ + board/common/calypso_pwl.o board/common/rf_tables.o # OpenMoko GTA0x BOARD_gta0x_OBJS=$(calypso_COMMON_OBJS) board/gta0x/init.o \ - board/gta0x/rffe_gta0x_triband.o board/gta0x/rf_power.o \ - battery/dummy.o $(FB_dummy_OBJS) + board/gta0x/rffe_gta0x_triband.o board/gta0x/rf_tables.o \ + board/common/readcal_tiffs.o battery/dummy.o $(FB_dummy_OBJS) BOARD_gta0x_ENVIRONMENTS=highram # Pirelli DP-L10 BOARD_pirelli_dpl10_OBJS=$(calypso_COMMON_OBJS) board/pirelli_dpl10/init.o \ - board/pirelli_dpl10/rffe_dpl10_triband.o board/pirelli_dpl10/rf_power.o \ + board/pirelli_dpl10/rffe_dpl10_triband.o \ + board/pirelli_dpl10/rf_tables.o board/pirelli_dpl10/readcal.o \ battery/dummy.o $(FB_dpl10_OBJS) BOARD_pirelli_dpl10_ENVIRONMENTS=highram # Compal Generic compal_COMMON_OBJS=$(calypso_COMMON_OBJS) \ - board/compal/rffe_dualband.o board/compal/rf_power.o + board/compal/rffe_dualband.o board/compal/rf_tables.o \ + board/compal/readcal_common.o compal_COMMON_ENVIRONMENTS=compalram highram # Compal E88 BOARD_compal_e88_OBJS=$(compal_COMMON_OBJS) board/compal_e88/init.o \ - battery/compal_e88.o $(FB_e88_OBJS) + board/compal/readcal_small.o battery/compal_e88.o $(FB_e88_OBJS) BOARD_compal_e88_ENVIRONMENTS=$(compal_COMMON_ENVIRONMENTS) e88loader e88flash # Compal E86 (has a different RFFE configuration) BOARD_compal_e86_OBJS=$(calypso_COMMON_OBJS) board/compal_e86/init.o \ - board/compal_e86/rffe_dualband_e86.o board/compal/rf_power.o \ + board/compal_e86/rffe_dualband_e86.o board/compal/rf_tables.o \ + board/compal/readcal_common.o board/compal/readcal_small.o \ battery/dummy.o $(FB_e86_OBJS) BOARD_compal_e86_ENVIRONMENTS=$(compal_COMMON_ENVIRONMENTS) # Compal E99 BOARD_compal_e99_OBJS=$(compal_COMMON_OBJS) board/compal_e99/init.o \ - battery/dummy.o $(FB_e99_OBJS) + board/compal_e99/readcal.o battery/dummy.o $(FB_e99_OBJS) BOARD_compal_e99_ENVIRONMENTS=$(compal_COMMON_ENVIRONMENTS) # Sony Ericsson J100 (made by Compal) BOARD_se_j100_OBJS=$(compal_COMMON_OBJS) board/se_j100/init.o \ - battery/dummy.o $(FB_j100_OBJS) + board/common/readcal_dummy.o battery/dummy.o $(FB_j100_OBJS) BOARD_se_j100_ENVIRONMENTS=$(compal_COMMON_ENVIRONMENTS) diff --git a/src/target/firmware/apps/layer1/main.c b/src/target/firmware/apps/layer1/main.c index 59ffe97..b2e66e2 100644 --- a/src/target/firmware/apps/layer1/main.c +++ b/src/target/firmware/apps/layer1/main.c @@ -33,6 +33,7 @@ #include #include +#include #include #include @@ -106,6 +107,7 @@ memset(atr,0,sizeof(atr)); atrLength = calypso_sim_powerup(atr); + read_factory_rf_calibration(); layer1_init(); tpu_frame_irq_en(1, 1); diff --git a/src/target/firmware/apps/rssi/main.c b/src/target/firmware/apps/rssi/main.c index 5020486..1605f13 100644 --- a/src/target/firmware/apps/rssi/main.c +++ b/src/target/firmware/apps/rssi/main.c @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -1528,6 +1529,7 @@ sercomm_register_rx_cb(SC_DLCI_CONSOLE, console_rx_cb); sercomm_register_rx_cb(SC_DLCI_L1A_L23, l1a_l23_rx_cb); + read_factory_rf_calibration(); layer1_init(); l1a_l23_tx_cb = l1a_l23_tx; diff --git a/src/target/firmware/board/common/readcal_dummy.c b/src/target/firmware/board/common/readcal_dummy.c new file mode 100644 index 0000000..6156c5e --- /dev/null +++ b/src/target/firmware/board/common/readcal_dummy.c @@ -0,0 +1,24 @@ +/* + * (C) 2017 by Mychaela Falconia + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include + +void read_factory_rf_calibration(void) { } diff --git a/src/target/firmware/board/common/readcal_tiffs.c b/src/target/firmware/board/common/readcal_tiffs.c new file mode 100644 index 0000000..5a521e6 --- /dev/null +++ b/src/target/firmware/board/common/readcal_tiffs.c @@ -0,0 +1,78 @@ +/* + * (C) 2017 by Mychaela Falconia + * Tweaked (coding style changes) by Vadim Yanitskiy + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include + +#include +#include +#include +#include + +static int16_t afcdac_shifted; + +static void afcdac_postproc(void) +{ + afc_initial_dac_value = afcdac_shifted >> 3; +} + +static const struct calmap { + char *pathname; + size_t record_len; + void *buffer; + void (*postproc)(void); +} rf_cal_list[] = { + { "/gsm/rf/afcdac", 2, &afcdac_shifted, afcdac_postproc }, + { "/gsm/rf/tx/ramps.850", 512, rf_tx_ramps_850, NULL }, + { "/gsm/rf/tx/levels.850", 128, rf_tx_levels_850, NULL }, + { "/gsm/rf/tx/calchan.850", 128, rf_tx_chan_cal_850, NULL }, + { "/gsm/rf/tx/ramps.900", 512, rf_tx_ramps_900, NULL }, + { "/gsm/rf/tx/levels.900", 128, rf_tx_levels_900, NULL }, + { "/gsm/rf/tx/calchan.900", 128, rf_tx_chan_cal_900, NULL }, + { "/gsm/rf/tx/ramps.1800", 512, rf_tx_ramps_1800, NULL }, + { "/gsm/rf/tx/levels.1800", 128, rf_tx_levels_1800, NULL }, + { "/gsm/rf/tx/calchan.1800", 128, rf_tx_chan_cal_1800, NULL }, + { "/gsm/rf/tx/ramps.1900", 512, rf_tx_ramps_1900, NULL }, + { "/gsm/rf/tx/levels.1900", 128, rf_tx_levels_1900, NULL }, + { "/gsm/rf/tx/calchan.1900", 128, rf_tx_chan_cal_1900, NULL }, + { NULL, 0, NULL, NULL } +}; + +void read_factory_rf_calibration(void) +{ + const struct calmap *tp; + uint8_t buf[512]; + int rc; + + puts("Checking TIFFS for the RF calibration records\n"); + for (tp = rf_cal_list; tp->pathname; tp++) { + rc = tiffs_read_file_fixedlen(tp->pathname, buf, + tp->record_len); + if (rc <= 0) + continue; + printf("Found '%s', applying\n", tp->pathname); + memcpy(tp->buffer, buf, tp->record_len); + if (tp->postproc) + tp->postproc(); + } +} diff --git a/src/target/firmware/board/common/rf_tables.c b/src/target/firmware/board/common/rf_tables.c new file mode 100644 index 0000000..27ef546 --- /dev/null +++ b/src/target/firmware/board/common/rf_tables.c @@ -0,0 +1,209 @@ +/* + * (C) 2017 by Mychaela Falconia + * Tweaked (coding style changes) by Vadim Yanitskiy + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include +#include + +/* + * On the better FreeCalypso, Openmoko and Pirelli targets, the following + * Tx channel correction tables are placeholders to be overridden by + * per-unit calibration, but Compal did their Tx channel calibration + * in some different way which we haven't been able to grok, hence on + * these targets we currently always run with these dummy tables, + * and no channel-dependent corrections are applied. + */ + +struct txcal_chan_cal rf_tx_chan_cal_850[RF_TX_CHAN_CAL_TABLE_SIZE] + [RF_TX_NUM_SUB_BANDS] = { + { + { 134, 128 }, + { 150, 128 }, + { 166, 128 }, + { 182, 128 }, + { 197, 128 }, + { 213, 128 }, + { 229, 128 }, + { 251, 128 }, + }, + { + { 134, 128 }, + { 150, 128 }, + { 166, 128 }, + { 182, 128 }, + { 197, 128 }, + { 213, 128 }, + { 229, 128 }, + { 251, 128 }, + }, + { + { 134, 128 }, + { 150, 128 }, + { 166, 128 }, + { 182, 128 }, + { 197, 128 }, + { 213, 128 }, + { 229, 128 }, + { 251, 128 }, + }, + { + { 134, 128 }, + { 150, 128 }, + { 166, 128 }, + { 182, 128 }, + { 197, 128 }, + { 213, 128 }, + { 229, 128 }, + { 251, 128 }, + }, +}; + +struct txcal_chan_cal rf_tx_chan_cal_900[RF_TX_CHAN_CAL_TABLE_SIZE] + [RF_TX_NUM_SUB_BANDS] = { + { + { 27, 128 }, + { 47, 128 }, + { 66, 128 }, + { 85, 128 }, + { 104, 128 }, + { 124, 128 }, + { 994, 128 }, + { 1023, 128 }, + }, + { + { 27, 128 }, + { 47, 128 }, + { 66, 128 }, + { 85, 128 }, + { 104, 128 }, + { 124, 128 }, + { 994, 128 }, + { 1023, 128 }, + }, + { + { 27, 128 }, + { 47, 128 }, + { 66, 128 }, + { 85, 128 }, + { 104, 128 }, + { 124, 128 }, + { 994, 128 }, + { 1023, 128 }, + }, + { + { 27, 128 }, + { 47, 128 }, + { 66, 128 }, + { 85, 128 }, + { 104, 128 }, + { 124, 128 }, + { 994, 128 }, + { 1023, 128 }, + }, +}; + +struct txcal_chan_cal rf_tx_chan_cal_1800[RF_TX_CHAN_CAL_TABLE_SIZE] + [RF_TX_NUM_SUB_BANDS] = { + { + { 553, 128 }, + { 594, 128 }, + { 636, 128 }, + { 677, 128 }, + { 720, 128 }, + { 760, 128 }, + { 802, 128 }, + { 885, 128 }, + }, + { + { 553, 128 }, + { 594, 128 }, + { 636, 128 }, + { 677, 128 }, + { 720, 128 }, + { 760, 128 }, + { 802, 128 }, + { 885, 128 }, + }, + { + { 553, 128 }, + { 594, 128 }, + { 636, 128 }, + { 677, 128 }, + { 720, 128 }, + { 760, 128 }, + { 802, 128 }, + { 885, 128 }, + }, + { + { 553, 128 }, + { 594, 128 }, + { 636, 128 }, + { 677, 128 }, + { 720, 128 }, + { 760, 128 }, + { 802, 128 }, + { 885, 128 }, + }, +}; + +struct txcal_chan_cal rf_tx_chan_cal_1900[RF_TX_CHAN_CAL_TABLE_SIZE] + [RF_TX_NUM_SUB_BANDS] = { + { + { 549, 128 }, + { 586, 128 }, + { 623, 128 }, + { 697, 128 }, + { 726, 128 }, + { 754, 128 }, + { 782, 128 }, + { 810, 128 }, + }, + { + { 549, 128 }, + { 586, 128 }, + { 623, 128 }, + { 697, 128 }, + { 726, 128 }, + { 754, 128 }, + { 782, 128 }, + { 810, 128 }, + }, + { + { 549, 128 }, + { 586, 128 }, + { 623, 128 }, + { 697, 128 }, + { 726, 128 }, + { 754, 128 }, + { 782, 128 }, + { 810, 128 }, + }, + { + { 549, 128 }, + { 586, 128 }, + { 623, 128 }, + { 697, 128 }, + { 726, 128 }, + { 754, 128 }, + { 782, 128 }, + { 810, 128 }, + }, +}; diff --git a/src/target/firmware/board/compal/readcal_common.c b/src/target/firmware/board/compal/readcal_common.c new file mode 100644 index 0000000..1d847ce --- /dev/null +++ b/src/target/firmware/board/compal/readcal_common.c @@ -0,0 +1,123 @@ +/* + * (C) 2017 by Mychaela Falconia + * Tweaked (coding style changes) by Vadim Yanitskiy + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include +#include + +#include + +struct record_hdr { + uint16_t valid_flag; + uint16_t type; + uint16_t native_len; + uint16_t rounded_len; +}; + +static void apply_levels(struct txcal_tx_level *levels_table, + uint16_t *compal_data, unsigned start_level, + unsigned num_levels) +{ + unsigned n; + + for (n = 0; n < num_levels; n++) + levels_table[start_level + n].apc = *compal_data++; +} + +void read_compal_factory_records(uint32_t flash_addr) +{ + struct record_hdr *hdr; + void *p, *sector_end; + unsigned p_incr; + void *payload; + + printf("Analyzing factory records sector " + "at 0x%" PRIx32 "\n", flash_addr); + + p = (void *) flash_addr; + sector_end = p + 0x2000; + for (; p < sector_end; p += p_incr) { + if ((sector_end - p) < 12) + break; + hdr = (struct record_hdr *)p; + if (hdr->valid_flag == 0xFFFF) /* blank flash */ + break; + if (hdr->native_len > hdr->rounded_len) { + printf("Bad record at 0x%" PRIx32 ": native length " + "> rounded length\n", (uint32_t) p); + return; + } + if (hdr->rounded_len & 3) { + printf("Bad record at 0x%" PRIx32 ": rounded length " + "is not aligned to 4\n", (uint32_t) p); + return; + } + p_incr = hdr->rounded_len + 8; + if (p_incr > (sector_end - p)) { + printf("Bad record at 0x%" PRIx32 ": rounded length " + "spills past the end of the sector\n", (uint32_t) p); + return; + } + if (hdr->valid_flag != 0x000C) + continue; + payload = (void *)(hdr + 1); + switch (hdr->type) { + case 0x0000: + if (hdr->native_len != 0x94) + break; + if (*(uint32_t *)(payload + 0x5C) != 0xAA) + break; + printf("Found 900 MHz band calibration record at " + "0x%" PRIx32 ", applying\n", (uint32_t) p); + apply_levels(rf_tx_levels_900, payload + 0x60, 5, 15); + break; + case 0x0001: + if (hdr->native_len != 0xC8) + break; + if (*(uint32_t *)(payload + 0x7C) != 0xAA) + break; + printf("Found 1800 MHz band calibration record at " + "0x%" PRIx32 ", applying\n", (uint32_t) p); + apply_levels(rf_tx_levels_1800, payload + 0x80, 0, 16); + break; + case 0x0002: + if (hdr->native_len != 0xB4) + break; + if (*(uint32_t *)(payload + 0x70) != 0xAA) + break; + printf("Found 1900 MHz band calibration record at " + "0x%" PRIx32 ", applying\n", (uint32_t) p); + apply_levels(rf_tx_levels_1900, payload + 0x74, 0, 16); + break; + case 0x0018: + if (hdr->native_len != 0x88) + break; + if (*(uint32_t *)(payload + 0x54) != 0xAA) + break; + printf("Found 850 MHz band calibration record at " + "0x%" PRIx32 ", applying\n", (uint32_t) p); + apply_levels(rf_tx_levels_850, payload + 0x58, 5, 15); + break; + } + } +} diff --git a/src/target/firmware/board/compal/readcal_small.c b/src/target/firmware/board/compal/readcal_small.c new file mode 100644 index 0000000..a69c509 --- /dev/null +++ b/src/target/firmware/board/compal/readcal_small.c @@ -0,0 +1,30 @@ +/* + * (C) 2017 by Mychaela Falconia + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include +#include + +extern void read_compal_factory_records(uint32_t flash_addr); + +void read_factory_rf_calibration(void) +{ + read_compal_factory_records(0x3FC000); +} diff --git a/src/target/firmware/board/compal/rf_tables.c b/src/target/firmware/board/compal/rf_tables.c new file mode 100644 index 0000000..4f8ae5c --- /dev/null +++ b/src/target/firmware/board/compal/rf_tables.c @@ -0,0 +1,582 @@ +/* + * (C) 2017 by Mychaela Falconia + * Tweaked (coding style changes) by Vadim Yanitskiy + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include + +/* + * The following AFC initial DAC value and AFC slope settings are unchanged + * from the old OsmocomBB code in which they were hard-coded in layer1/afc.c. + * This AFC slope setting corresponds very closely to the original Leonardo + * Psi values which are used by Motorola's official fw at least on the C139, + * hence I have good reason to believe that they are indeed correct for the + * Mot C1xx hardware target family. + */ +int16_t afc_initial_dac_value = -700; +int16_t afc_slope = 287; + +/* + * The following Tx levels and ramps tables are the ones compiled into + * Compal's firmware; more specifically, they have been extracted out + * of the one special C11x fw version for which we got the linker map + * file with symbols. In normal operation the APC DAC values in the + * levels tables are replaced with the ones read from the per-band + * factory calibration records, but for the Tx ramp templates the + * compiled-in tables are always used - these are calibrated per design + * rather than per unit. + */ +struct txcal_tx_level rf_tx_levels_850[RF_TX_LEVELS_TABLE_SIZE] = { + { 560, 0, 0 }, /* 0 */ + { 560, 0, 0 }, /* 1 */ + { 560, 0, 0 }, /* 2 */ + { 560, 0, 0 }, /* 3 */ + { 560, 0, 0 }, /* 4 */ + { 638, 0, 0 }, /* 5 */ + { 554, 1, 0 }, /* 6 */ + { 467, 2, 0 }, /* 7 */ + { 395, 3, 0 }, /* 8 */ + { 337, 4, 0 }, /* 9 */ + { 290, 5, 0 }, /* 10 */ + { 253, 6, 0 }, /* 11 */ + { 224, 7, 0 }, /* 12 */ + { 201, 8, 0 }, /* 13 */ + { 183, 9, 0 }, /* 14 */ + { 168, 10, 0 }, /* 15 */ + { 157, 11, 0 }, /* 16 */ + { 148, 12, 0 }, /* 17 */ + { 141, 13, 0 }, /* 18 */ + { 136, 14, 0 }, /* 19 */ + { 46, 14, 0 }, /* 20 */ + { 46, 14, 0 }, /* 21 */ + { 46, 14, 0 }, /* 22 */ + { 46, 14, 0 }, /* 23 */ + { 46, 14, 0 }, /* 24 */ + { 46, 14, 0 }, /* 25 */ + { 46, 14, 0 }, /* 26 */ + { 46, 14, 0 }, /* 27 */ + { 46, 14, 0 }, /* 28 */ + { 46, 14, 0 }, /* 29 */ + { 46, 14, 0 }, /* 30 */ + { 46, 14, 0 }, /* 31 */ +}; + +struct txcal_tx_level rf_tx_levels_900[RF_TX_LEVELS_TABLE_SIZE] = { + { 550, 0, 0 }, /* 0 */ + { 550, 0, 0 }, /* 1 */ + { 550, 0, 0 }, /* 2 */ + { 550, 0, 0 }, /* 3 */ + { 550, 0, 0 }, /* 4 */ + { 550, 0, 0 }, /* 5 */ + { 476, 1, 0 }, /* 6 */ + { 402, 2, 0 }, /* 7 */ + { 338, 3, 0 }, /* 8 */ + { 294, 4, 0 }, /* 9 */ + { 260, 5, 0 }, /* 10 */ + { 226, 6, 0 }, /* 11 */ + { 204, 7, 0 }, /* 12 */ + { 186, 8, 0 }, /* 13 */ + { 172, 9, 0 }, /* 14 */ + { 161, 10, 0 }, /* 15 */ + { 153, 11, 0 }, /* 16 */ + { 146, 12, 0 }, /* 17 */ + { 141, 13, 0 }, /* 18 */ + { 137, 14, 0 }, /* 19 */ + { 43, 14, 0 }, /* 20 */ + { 43, 14, 0 }, /* 21 */ + { 43, 14, 0 }, /* 22 */ + { 43, 14, 0 }, /* 23 */ + { 43, 14, 0 }, /* 24 */ + { 43, 14, 0 }, /* 25 */ + { 43, 14, 0 }, /* 26 */ + { 43, 14, 0 }, /* 27 */ + { 43, 14, 0 }, /* 28 */ + { 43, 14, 0 }, /* 29 */ + { 43, 14, 0 }, /* 30 */ + { 43, 14, 0 }, /* 31 */ +}; + +struct txcal_tx_level rf_tx_levels_1800[RF_TX_LEVELS_TABLE_SIZE] = { + { 480, 0, 0 }, /* 0 */ + { 416, 1, 0 }, /* 1 */ + { 352, 2, 0 }, /* 2 */ + { 308, 3, 0 }, /* 3 */ + { 266, 4, 0 }, /* 4 */ + { 242, 5, 0 }, /* 5 */ + { 218, 6, 0 }, /* 6 */ + { 200, 7, 0 }, /* 7 */ + { 186, 8, 0 }, /* 8 */ + { 175, 9, 0 }, /* 9 */ + { 167, 10, 0 }, /* 10 */ + { 160, 11, 0 }, /* 11 */ + { 156, 12, 0 }, /* 12 */ + { 152, 13, 0 }, /* 13 */ + { 145, 14, 0 }, /* 14 */ + { 142, 15, 0 }, /* 15 */ + { 61, 15, 0 }, /* 16 */ + { 61, 15, 0 }, /* 17 */ + { 61, 15, 0 }, /* 18 */ + { 61, 15, 0 }, /* 19 */ + { 61, 15, 0 }, /* 20 */ + { 61, 15, 0 }, /* 21 */ + { 61, 15, 0 }, /* 22 */ + { 61, 15, 0 }, /* 23 */ + { 61, 15, 0 }, /* 24 */ + { 61, 15, 0 }, /* 25 */ + { 61, 15, 0 }, /* 26 */ + { 61, 15, 0 }, /* 27 */ + { 61, 15, 0 }, /* 28 */ + { 750, 0, 0 }, /* 29 */ + { 750, 0, 0 }, /* 30 */ + { 750, 0, 0 }, /* 31 */ +}; + +struct txcal_tx_level rf_tx_levels_1900[RF_TX_LEVELS_TABLE_SIZE] = { + { 520, 0, 0 }, /* 0 */ + { 465, 1, 0 }, /* 1 */ + { 390, 2, 0 }, /* 2 */ + { 330, 3, 0 }, /* 3 */ + { 285, 4, 0 }, /* 4 */ + { 250, 5, 0 }, /* 5 */ + { 225, 6, 0 }, /* 6 */ + { 205, 7, 0 }, /* 7 */ + { 190, 8, 0 }, /* 8 */ + { 177, 9, 0 }, /* 9 */ + { 168, 10, 0 }, /* 10 */ + { 161, 11, 0 }, /* 11 */ + { 155, 12, 0 }, /* 12 */ + { 150, 13, 0 }, /* 13 */ + { 147, 14, 0 }, /* 14 */ + { 143, 15, 0 }, /* 15 */ + { 62, 15, 0 }, /* 16 */ + { 62, 15, 0 }, /* 17 */ + { 62, 15, 0 }, /* 18 */ + { 62, 15, 0 }, /* 19 */ + { 62, 15, 0 }, /* 20 */ + { 62, 15, 0 }, /* 21 */ + { 62, 15, 0 }, /* 22 */ + { 62, 15, 0 }, /* 23 */ + { 62, 15, 0 }, /* 24 */ + { 62, 15, 0 }, /* 25 */ + { 62, 15, 0 }, /* 26 */ + { 62, 15, 0 }, /* 27 */ + { 62, 15, 0 }, /* 28 */ + { 915, 0, 0 }, /* 29 */ + { 915, 0, 0 }, /* 30 */ + { 915, 0, 0 }, /* 31 */ +}; + +struct txcal_ramp_def rf_tx_ramps_850[RF_TX_RAMP_SIZE] = { + { /* profile 0 */ + /* ramp-up */ + { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 31, 31, 31, 3, 0 }, + /* ramp-down */ + { 31, 31, 18, 22, 6, 10, 2, 1, 1, 3, 3, 0, 0, 0, 0, 0 }, + }, + { /* profile 1 */ + /* ramp-up */ + { 31, 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 31, 31, 31, 0, 0 }, + /* ramp-down */ + { 31, 31, 31, 6, 8, 8, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 2 */ + /* ramp-up */ + { 31, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 29, 0, 0 }, + /* ramp-down */ + { 31, 25, 21, 20, 13, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 3 */ + /* ramp-up */ + { 31, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 22, 0, 0 }, + /* ramp-down */ + { 27, 28, 23, 19, 13, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 4 */ + /* ramp-up */ + { 31, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 14, 0, 0 }, + /* ramp-down */ + { 31, 21, 31, 2, 31, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 5 */ + /* ramp-up */ + { 31, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 5, 0, 0 }, + /* ramp-down */ + { 21, 31, 31, 2, 31, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 6 */ + /* ramp-up */ + { 31, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 31, 28, 0, 0, 0 }, + /* ramp-down */ + { 31, 31, 28, 14, 3, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 7 */ + /* ramp-up */ + { 31, 31, 16, 0, 0, 0, 0, 0, 0, 0, 0, 31, 19, 0, 0, 0 }, + /* ramp-down */ + { 20, 30, 30, 10, 28, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 8 */ + /* ramp-up */ + { 31, 31, 26, 0, 0, 0, 0, 0, 0, 0, 0, 31, 9, 0, 0, 0 }, + /* ramp-down */ + { 20, 26, 26, 18, 18, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 9 */ + /* ramp-up */ + { 31, 31, 31, 2, 0, 0, 0, 0, 0, 0, 0, 31, 2, 0, 0, 0 }, + /* ramp-down */ + { 16, 16, 26, 26, 26, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 10 */ + /* ramp-up */ + { 31, 31, 31, 11, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0 }, + /* ramp-down */ + { 10, 12, 31, 26, 29, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 11 */ + /* ramp-up */ + { 31, 31, 31, 18, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0 }, + /* ramp-down */ + { 2, 20, 31, 26, 31, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 12 */ + /* ramp-up */ + { 31, 31, 31, 25, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0 }, + /* ramp-down */ + { 2, 20, 31, 26, 31, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 13 */ + /* ramp-up */ + { 31, 31, 31, 30, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0 }, + /* ramp-down */ + { 1, 16, 31, 31, 31, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 14 */ + /* ramp-up */ + { 31, 31, 31, 31, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0 }, + /* ramp-down */ + { 4, 8, 10, 20, 31, 31, 20, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 15 */ + /* ramp-up */ + { 31, 31, 31, 31, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0 }, + /* ramp-down */ + { 4, 8, 10, 20, 31, 31, 20, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, +}; + +struct txcal_ramp_def rf_tx_ramps_900[RF_TX_RAMP_SIZE] = { + { /* profile 0 */ + /* ramp-up */ + { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 31, 5, 0 }, + /* ramp-down */ + { 31, 31, 28, 15, 2, 0, 19, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 1 */ + /* ramp-up */ + { 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 26, 29, 8, 0 }, + /* ramp-down */ + { 31, 31, 29, 14, 2, 1, 15, 2, 3, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 2 */ + /* ramp-up */ + { 31, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 27, 24, 1, 0 }, + /* ramp-down */ + { 30, 31, 25, 14, 2, 2, 15, 7, 2, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 3 */ + /* ramp-up */ + { 31, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 14, 29, 1, 0 }, + /* ramp-down */ + { 31, 29, 31, 13, 2, 2, 15, 2, 3, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 4 */ + /* ramp-up */ + { 31, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 17, 19, 0, 0 }, + /* ramp-down */ + { 31, 30, 30, 15, 1, 2, 17, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 5 */ + /* ramp-up */ + { 31, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 31, 19, 7, 2, 0 }, + /* ramp-down */ + { 29, 31, 29, 16, 4, 0, 14, 2, 1, 2, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 6 */ + /* ramp-up */ + { 31, 31, 16, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 20, 0, 0 }, + /* ramp-down */ + { 19, 26, 26, 28, 10, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 7 */ + /* ramp-up */ + { 31, 31, 25, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 8, 2, 0 }, + /* ramp-down */ + { 19, 28, 31, 24, 4, 0, 19, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 8 */ + /* ramp-up */ + { 31, 31, 31, 2, 0, 0, 0, 0, 0, 0, 0, 31, 2, 0, 0, 0 }, + /* ramp-down */ + { 19, 28, 31, 24, 4, 0, 17, 5, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 9 */ + /* ramp-up */ + { 31, 31, 31, 9, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0 }, + /* ramp-down */ + { 18, 25, 28, 31, 2, 2, 19, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 10 */ + /* ramp-up */ + { 31, 31, 31, 16, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0 }, + /* ramp-down */ + { 14, 21, 24, 29, 6, 2, 23, 5, 4, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 11 */ + /* ramp-up */ + { 31, 31, 31, 22, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 1, 0 }, + /* ramp-down */ + { 8, 26, 26, 28, 12, 12, 5, 5, 0, 6, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 12 */ + /* ramp-up */ + { 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0 }, + /* ramp-down */ + { 8, 14, 27, 30, 20, 19, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 13 */ + /* ramp-up */ + { 31, 31, 31, 31, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0 }, + /* ramp-down */ + { 9, 10, 15, 26, 25, 10, 17, 13, 3, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 14 */ + /* ramp-up */ + { 31, 31, 30, 30, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + /* ramp-down */ + { 0, 4, 15, 21, 21, 21, 21, 15, 10, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 15 */ + /* ramp-up */ + { 31, 31, 30, 30, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + /* ramp-down */ + { 0, 4, 15, 21, 21, 21, 21, 15, 10, 0, 0, 0, 0, 0, 0, 0 }, + }, +}; + +struct txcal_ramp_def rf_tx_ramps_1800[RF_TX_RAMP_SIZE] = { + { /* profile 0 */ + /* ramp-up */ + { 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 27, 4, 0 }, + /* ramp-down */ + { 28, 31, 18, 8, 8, 13, 9, 13, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 1 */ + /* ramp-up */ + { 31, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 24, 0, 0 }, + /* ramp-down */ + { 10, 30, 30, 20, 8, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 2 */ + /* ramp-up */ + { 31, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 16, 0, 0 }, + /* ramp-down */ + { 10, 30, 31, 24, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 3 */ + /* ramp-up */ + { 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 23, 19, 0, 0 }, + /* ramp-down */ + { 31, 14, 31, 5, 24, 13, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 4 */ + /* ramp-up */ + { 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 10, 21, 31, 0, 0 }, + /* ramp-down */ + { 20, 22, 31, 10, 22, 13, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 5 */ + /* ramp-up */ + { 31, 31, 13, 0, 0, 0, 0, 0, 0, 0, 0, 31, 22, 0, 0, 0 }, + /* ramp-down */ + { 22, 14, 26, 22, 22, 17, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 6 */ + /* ramp-up */ + { 31, 31, 21, 0, 0, 0, 0, 0, 0, 0, 0, 24, 21, 0, 0, 0 }, + /* ramp-down */ + { 10, 31, 31, 25, 17, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 7 */ + /* ramp-up */ + { 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 28, 10, 0, 0, 0 }, + /* ramp-down */ + { 17, 24, 28, 21, 24, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 8 */ + /* ramp-up */ + { 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 27, 4, 0, 0, 0 }, + /* ramp-down */ + { 9, 23, 31, 24, 24, 13, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 9 */ + /* ramp-up */ + { 31, 31, 31, 12, 0, 0, 0, 0, 0, 0, 0, 0, 13, 10, 0, 0 }, + /* ramp-down */ + { 9, 23, 31, 24, 24, 13, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 10 */ + /* ramp-up */ + { 31, 31, 31, 17, 0, 0, 0, 0, 0, 0, 0, 0, 12, 6, 0, 0 }, + /* ramp-down */ + { 10, 10, 31, 31, 24, 13, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 11 */ + /* ramp-up */ + { 31, 31, 31, 21, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0 }, + /* ramp-down */ + { 4, 14, 31, 31, 26, 13, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 12 */ + /* ramp-up */ + { 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0 }, + /* ramp-down */ + { 2, 14, 31, 31, 28, 13, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 13 */ + /* ramp-up */ + { 31, 31, 31, 29, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0 }, + /* ramp-down */ + { 0, 6, 14, 31, 31, 24, 13, 5, 4, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 14 */ + /* ramp-up */ + { 31, 31, 31, 31, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0 }, + /* ramp-down */ + { 2, 4, 4, 18, 31, 31, 24, 5, 5, 4, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 15 */ + /* ramp-up */ + { 31, 31, 31, 31, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + /* ramp-down */ + { 3, 2, 2, 22, 22, 21, 21, 21, 9, 5, 0, 0, 0, 0, 0, 0 }, + }, +}; + +struct txcal_ramp_def rf_tx_ramps_1900[RF_TX_RAMP_SIZE] = { + { /* profile 0 */ + /* ramp-up */ + { 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 14, 31, 31, 17, 0, 0 }, + /* ramp-down */ + { 31, 31, 15, 25, 8, 10, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 1 */ + /* ramp-up */ + { 31, 8, 0, 0, 0, 0, 0, 0, 0, 0, 5, 31, 31, 22, 0, 0 }, + /* ramp-down */ + { 31, 21, 31, 20, 4, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 2 */ + /* ramp-up */ + { 31, 16, 0, 0, 0, 0, 0, 0, 0, 0, 6, 31, 31, 13, 0, 0 }, + /* ramp-down */ + { 30, 31, 24, 31, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 3 */ + /* ramp-up */ + { 31, 24, 0, 0, 0, 0, 0, 0, 0, 0, 3, 31, 31, 8, 0, 0 }, + /* ramp-down */ + { 31, 31, 19, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 4 */ + /* ramp-up */ + { 31, 31, 2, 0, 0, 0, 0, 0, 0, 0, 6, 31, 22, 5, 0, 0 }, + /* ramp-down */ + { 31, 31, 14, 24, 5, 13, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 5 */ + /* ramp-up */ + { 31, 31, 10, 0, 0, 0, 0, 0, 0, 0, 0, 31, 25, 0, 0, 0 }, + /* ramp-down */ + { 31, 19, 20, 8, 24, 17, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 6 */ + /* ramp-up */ + { 31, 30, 19, 0, 0, 0, 0, 0, 0, 0, 0, 31, 17, 0, 0, 0 }, + /* ramp-down */ + { 2, 31, 31, 25, 17, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 7 */ + /* ramp-up */ + { 31, 31, 26, 0, 0, 0, 0, 0, 0, 0, 0, 31, 9, 0, 0, 0 }, + /* ramp-down */ + { 14, 24, 25, 30, 24, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 8 */ + /* ramp-up */ + { 31, 31, 31, 2, 0, 0, 0, 0, 0, 0, 0, 31, 2, 0, 0, 0 }, + /* ramp-down */ + { 12, 17, 27, 31, 24, 13, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 9 */ + /* ramp-up */ + { 31, 31, 30, 10, 0, 0, 0, 0, 0, 0, 0, 25, 1, 0, 0, 0 }, + /* ramp-down */ + { 21, 31, 31, 26, 13, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 10 */ + /* ramp-up */ + { 31, 31, 31, 11, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0 }, + /* ramp-down */ + { 14, 31, 31, 28, 13, 5, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 11 */ + /* ramp-up */ + { 31, 31, 31, 19, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0 }, + /* ramp-down */ + { 6, 14, 31, 31, 24, 13, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 12 */ + /* ramp-up */ + { 31, 31, 31, 25, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0 }, + /* ramp-down */ + { 6, 14, 31, 31, 24, 13, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 13 */ + /* ramp-up */ + { 31, 31, 31, 29, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0 }, + /* ramp-down */ + { 6, 14, 31, 31, 24, 13, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 14 */ + /* ramp-up */ + { 31, 31, 31, 31, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0 }, + /* ramp-down */ + { 3, 16, 31, 31, 24, 14, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 15 */ + /* ramp-up */ + { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + /* ramp-down */ + { 4, 6, 21, 21, 21, 21, 15, 15, 4, 0, 0, 0, 0, 0, 0, 0 }, + }, +}; diff --git a/src/target/firmware/board/compal_e99/readcal.c b/src/target/firmware/board/compal_e99/readcal.c new file mode 100644 index 0000000..dcbf6b0 --- /dev/null +++ b/src/target/firmware/board/compal_e99/readcal.c @@ -0,0 +1,30 @@ +/* + * (C) 2017 by Mychaela Falconia + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include +#include + +extern void read_compal_factory_records(uint32_t flash_addr); + +void read_factory_rf_calibration(void) +{ + read_compal_factory_records(0x7E0000); +} diff --git a/src/target/firmware/board/gta0x/init.c b/src/target/firmware/board/gta0x/init.c index b93f79c..73d74bb 100644 --- a/src/target/firmware/board/gta0x/init.c +++ b/src/target/firmware/board/gta0x/init.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -132,4 +133,7 @@ /* Initialize ABB driver (uses SPI) */ twl3025_init(); + + /* Initialize TIFFS reader */ + tiffs_init(0x380000, 0x10000, 7); } diff --git a/src/target/firmware/board/gta0x/rf_tables.c b/src/target/firmware/board/gta0x/rf_tables.c new file mode 100644 index 0000000..03ad0dc --- /dev/null +++ b/src/target/firmware/board/gta0x/rf_tables.c @@ -0,0 +1,598 @@ +/* + * (C) 2017 by Mychaela Falconia + * Tweaked (coding style changes) by Vadim Yanitskiy + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include + +/* + * Here is a typical set of AFC Psi parameters for an FCDEV3B modem board, + * computed by FreeCalypso fc-rfcal-vcxo calibration tool from frequency + * offset measurements made with a CMU200 RF tester: + * + * Psi_sta_inv: 3462 + * Psi_st: 15 + * Psi_st_32: 992326 + * Psi_st_inv: 4328 + * + * The following AFC slope number is the closest OsmocomBB-style afc_slope + * integer corresponding to these Psi numbers; the true value is somewhere + * between 454 and 455. + * + * This AFC slope setting is expected to be correct for both Openmoko and + * FreeCalypso hardware as we use the same VCXO components as were used + * by Openmoko. + */ +int16_t afc_slope = 454; + +/* + * The compiled-in AFC initial DAC value below is the same as was used by + * the old OsmocomBB code written for Mot C1xx phones, but it will normally + * be overridden by the per-unit factory calibration value read from the + * /gsm/rf/afcdac file in FFS. + */ +int16_t afc_initial_dac_value = -700; + +/* + * The following Tx levels and ramps tables are the ones compiled into + * the official Openmoko and FreeCalypso firmwares for GTA0x and FCDEV3B + * devices; these are the tables which the firmware uses in the absence + * of per-unit calibration files in FFS. Any /gsm/rf/tx/levels.* files + * found in FFS directly overwrite the compiled-in levels tables, and + * any /gsm/rf/tx/ramps.* files likewise directly overwrite the + * compiled-in ramps tables. + */ +struct txcal_tx_level rf_tx_levels_850[RF_TX_LEVELS_TABLE_SIZE] = { + { 507, 0, 0 }, /* 0 */ + { 507, 0, 0 }, /* 1 */ + { 507, 0, 0 }, /* 2 */ + { 507, 0, 0 }, /* 3 */ + { 507, 0, 0 }, /* 4 */ + { 507, 0, 0 }, /* 5 */ + { 417, 1, 0 }, /* 6 */ + { 350, 2, 0 }, /* 7 */ + { 282, 3, 0 }, /* 8 */ + { 226, 4, 0 }, /* 9 */ + { 183, 5, 0 }, /* 10 */ + { 148, 6, 0 }, /* 11 */ + { 121, 7, 0 }, /* 12 */ + { 98, 8, 0 }, /* 13 */ + { 80, 9, 0 }, /* 14 */ + { 66, 10, 0 }, /* 15 */ + { 54, 11, 0 }, /* 16 */ + { 44, 12, 0 }, /* 17 */ + { 36, 13, 0 }, /* 18 */ + { 29, 14, 0 }, /* 19 */ + { 29, 14, 0 }, /* 20 */ + { 29, 14, 0 }, /* 21 */ + { 29, 14, 0 }, /* 22 */ + { 29, 14, 0 }, /* 23 */ + { 29, 14, 0 }, /* 24 */ + { 29, 14, 0 }, /* 25 */ + { 29, 14, 0 }, /* 26 */ + { 29, 14, 0 }, /* 27 */ + { 29, 14, 0 }, /* 28 */ + { 29, 14, 0 }, /* 29 */ + { 29, 14, 0 }, /* 30 */ + { 29, 14, 0 }, /* 31 */ +}; + +struct txcal_tx_level rf_tx_levels_900[RF_TX_LEVELS_TABLE_SIZE] = { + { 465, 0, 0 }, /* 0 */ + { 465, 0, 0 }, /* 1 */ + { 465, 0, 0 }, /* 2 */ + { 465, 0, 0 }, /* 3 */ + { 465, 0, 0 }, /* 4 */ + { 465, 0, 0 }, /* 5 */ + { 387, 1, 0 }, /* 6 */ + { 324, 2, 0 }, /* 7 */ + { 260, 3, 0 }, /* 8 */ + { 210, 4, 0 }, /* 9 */ + { 170, 5, 0 }, /* 10 */ + { 138, 6, 0 }, /* 11 */ + { 113, 7, 0 }, /* 12 */ + { 92, 8, 0 }, /* 13 */ + { 76, 9, 0 }, /* 14 */ + { 62, 10, 0 }, /* 15 */ + { 51, 11, 0 }, /* 16 */ + { 42, 12, 0 }, /* 17 */ + { 34, 13, 0 }, /* 18 */ + { 27, 14, 0 }, /* 19 */ + { 27, 14, 0 }, /* 20 */ + { 27, 14, 0 }, /* 21 */ + { 27, 14, 0 }, /* 22 */ + { 27, 14, 0 }, /* 23 */ + { 27, 14, 0 }, /* 24 */ + { 27, 14, 0 }, /* 25 */ + { 27, 14, 0 }, /* 26 */ + { 27, 14, 0 }, /* 27 */ + { 27, 14, 0 }, /* 28 */ + { 27, 14, 0 }, /* 29 */ + { 27, 14, 0 }, /* 30 */ + { 27, 14, 0 }, /* 31 */ +}; + +struct txcal_tx_level rf_tx_levels_1800[RF_TX_LEVELS_TABLE_SIZE] = { + { 436, 0, 0 }, /* 0 */ + { 363, 1, 0 }, /* 1 */ + { 310, 2, 0 }, /* 2 */ + { 253, 3, 0 }, /* 3 */ + { 205, 4, 0 }, /* 4 */ + { 168, 5, 0 }, /* 5 */ + { 138, 6, 0 }, /* 6 */ + { 113, 7, 0 }, /* 7 */ + { 93, 8, 0 }, /* 8 */ + { 76, 9, 0 }, /* 9 */ + { 61, 10, 0 }, /* 10 */ + { 50, 11, 0 }, /* 11 */ + { 40, 12, 0 }, /* 12 */ + { 32, 13, 0 }, /* 13 */ + { 26, 14, 0 }, /* 14 */ + { 20, 15, 0 }, /* 15 */ + { 20, 15, 0 }, /* 16 */ + { 20, 15, 0 }, /* 17 */ + { 20, 15, 0 }, /* 18 */ + { 20, 15, 0 }, /* 19 */ + { 20, 15, 0 }, /* 20 */ + { 20, 15, 0 }, /* 21 */ + { 20, 15, 0 }, /* 22 */ + { 20, 15, 0 }, /* 23 */ + { 20, 15, 0 }, /* 24 */ + { 20, 15, 0 }, /* 25 */ + { 20, 15, 0 }, /* 26 */ + { 20, 15, 0 }, /* 27 */ + { 20, 15, 0 }, /* 28 */ + { 20, 0, 0 }, /* 29 */ + { 20, 0, 0 }, /* 30 */ + { 20, 0, 0 }, /* 31 */ +}; + +struct txcal_tx_level rf_tx_levels_1900[RF_TX_LEVELS_TABLE_SIZE] = { + { 429, 0, 0 }, /* 0 */ + { 353, 1, 0 }, /* 1 */ + { 302, 2, 0 }, /* 2 */ + { 246, 3, 0 }, /* 3 */ + { 200, 4, 0 }, /* 4 */ + { 164, 5, 0 }, /* 5 */ + { 135, 6, 0 }, /* 6 */ + { 111, 7, 0 }, /* 7 */ + { 91, 8, 0 }, /* 8 */ + { 75, 9, 0 }, /* 9 */ + { 60, 10, 0 }, /* 10 */ + { 49, 11, 0 }, /* 11 */ + { 40, 12, 0 }, /* 12 */ + { 33, 13, 0 }, /* 13 */ + { 26, 14, 0 }, /* 14 */ + { 26, 15, 0 }, /* 15 */ + { 26, 15, 0 }, /* 16 */ + { 26, 15, 0 }, /* 17 */ + { 26, 15, 0 }, /* 18 */ + { 26, 15, 0 }, /* 19 */ + { 26, 15, 0 }, /* 20 */ + { 26, 15, 0 }, /* 21 */ + { 26, 15, 0 }, /* 22 */ + { 26, 15, 0 }, /* 23 */ + { 26, 15, 0 }, /* 24 */ + { 26, 15, 0 }, /* 25 */ + { 26, 15, 0 }, /* 26 */ + { 26, 15, 0 }, /* 27 */ + { 26, 15, 0 }, /* 28 */ + { 26, 0, 0 }, /* 29 */ + { 26, 0, 0 }, /* 30 */ + { 26, 0, 0 }, /* 31 */ +}; + +struct txcal_ramp_def rf_tx_ramps_850[RF_TX_RAMP_SIZE] = { + { /* profile 0 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0 }, + /* ramp-down */ + { 0, 11, 31, 31, 31, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 1 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 1, 1, 7, 16, 28, 31, 31, 13, 0, 0 }, + /* ramp-down */ + { 0, 8, 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 2 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 1, 1, 8, 16, 29, 31, 31, 11, 0, 0 }, + /* ramp-down */ + { 0, 8, 28, 31, 31, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 3 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 2, 0, 6, 18, 28, 31, 31, 12, 0, 0 }, + /* ramp-down */ + { 0, 9, 24, 31, 31, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 4 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 3, 0, 5, 19, 31, 31, 31, 8, 0, 0 }, + /* ramp-down */ + { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 5 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 2, 0, 7, 18, 31, 31, 31, 8, 0, 0 }, + /* ramp-down */ + { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 6 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 3, 0, 5, 20, 31, 31, 31, 7, 0, 0 }, + /* ramp-down */ + { 0, 10, 21, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 7 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 4, 0, 9, 23, 22, 31, 31, 8, 0, 0 }, + /* ramp-down */ + { 0, 9, 24, 30, 31, 30, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 8 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 5, 0, 8, 21, 24, 31, 31, 8, 0, 0 }, + /* ramp-down */ + { 0, 8, 23, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 9 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 5, 0, 3, 1, 27, 22, 31, 31, 8, 0, 0 }, + /* ramp-down */ + { 0, 8, 27, 25, 26, 31, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 10 */ + /* ramp-up */ + { 0, 0, 0, 0, 5, 0, 0, 2, 7, 22, 23, 31, 31, 7, 0, 0 }, + /* ramp-down */ + { 0, 7, 25, 30, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 11 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 5, 0, 4, 8, 21, 21, 31, 31, 7, 0, 0 }, + /* ramp-down */ + { 0, 8, 21, 31, 31, 31, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 12 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 7, 0, 0, 12, 22, 25, 31, 27, 4, 0, 0 }, + /* ramp-down */ + { 0, 9, 12, 21, 31, 31, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 13 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 7, 0, 8, 15, 31, 31, 31, 5, 0, 0 }, + /* ramp-down */ + { 0, 6, 14, 23, 31, 31, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 14 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 20, 0, 0, 8, 15, 14, 31, 31, 9, 0, 0 }, + /* ramp-down */ + { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 15 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + /* ramp-down */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, +}; + +struct txcal_ramp_def rf_tx_ramps_900[RF_TX_RAMP_SIZE] = { + { /* profile 0 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0 }, + /* ramp-down */ + { 0, 11, 31, 31, 31, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 1 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 1, 1, 7, 16, 28, 31, 31, 13, 0, 0 }, + /* ramp-down */ + { 0, 8, 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 2 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 1, 1, 8, 16, 29, 31, 31, 11, 0, 0 }, + /* ramp-down */ + { 0, 8, 28, 31, 31, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 3 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 2, 0, 6, 18, 28, 31, 31, 12, 0, 0 }, + /* ramp-down */ + { 0, 9, 24, 31, 31, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 4 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 3, 0, 5, 19, 31, 31, 31, 8, 0, 0 }, + /* ramp-down */ + { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 5 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 2, 0, 7, 18, 31, 31, 31, 8, 0, 0 }, + /* ramp-down */ + { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 6 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 3, 0, 5, 20, 31, 31, 31, 7, 0, 0 }, + /* ramp-down */ + { 0, 10, 21, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 7 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 4, 0, 9, 23, 22, 31, 31, 8, 0, 0 }, + /* ramp-down */ + { 0, 9, 24, 30, 31, 30, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 8 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 5, 0, 8, 21, 24, 31, 31, 8, 0, 0 }, + /* ramp-down */ + { 0, 8, 23, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 9 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 5, 0, 3, 1, 27, 22, 31, 31, 8, 0, 0 }, + /* ramp-down */ + { 0, 8, 27, 25, 26, 31, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 10 */ + /* ramp-up */ + { 0, 0, 0, 0, 5, 0, 0, 2, 7, 22, 23, 31, 31, 7, 0, 0 }, + /* ramp-down */ + { 0, 7, 25, 30, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 11 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 5, 0, 4, 8, 21, 21, 31, 31, 7, 0, 0 }, + /* ramp-down */ + { 0, 8, 21, 31, 31, 31, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 12 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 7, 0, 0, 12, 22, 25, 31, 27, 4, 0, 0 }, + /* ramp-down */ + { 0, 9, 12, 21, 31, 31, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 13 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 7, 0, 8, 15, 31, 31, 31, 5, 0, 0 }, + /* ramp-down */ + { 0, 6, 14, 23, 31, 31, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 14 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 20, 0, 0, 8, 15, 14, 31, 31, 9, 0, 0 }, + /* ramp-down */ + { 0, 7, 31, 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 15 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + /* ramp-down */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, +}; + +struct txcal_ramp_def rf_tx_ramps_1800[RF_TX_RAMP_SIZE] = { + { /* profile 0 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 2, 3, 5, 16, 31, 31, 31, 9, 0, 0 }, + /* ramp-down */ + { 0, 11, 31, 31, 31, 10, 11, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 1 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 2, 3, 4, 17, 30, 31, 31, 10, 0, 0 }, + /* ramp-down */ + { 0, 10, 31, 31, 31, 13, 9, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 2 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 4, 2, 2, 18, 31, 31, 31, 9, 0, 0 }, + /* ramp-down */ + { 0, 10, 26, 31, 31, 16, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 3 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 3, 4, 4, 15, 31, 31, 31, 9, 0, 0 }, + /* ramp-down */ + { 0, 9, 31, 31, 31, 13, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 4 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 4, 3, 7, 11, 31, 31, 31, 10, 0, 0 }, + /* ramp-down */ + { 0, 8, 31, 31, 31, 11, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 5 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 4, 3, 2, 7, 14, 25, 31, 31, 11, 0, 0 }, + /* ramp-down */ + { 0, 14, 31, 31, 31, 9, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 6 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 7, 1, 3, 10, 12, 25, 31, 31, 8, 0, 0 }, + /* ramp-down */ + { 0, 7, 30, 31, 31, 14, 4, 6, 5, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 7 */ + /* ramp-up */ + { 0, 0, 0, 0, 3, 5, 0, 5, 8, 12, 26, 31, 31, 7, 0, 0 }, + /* ramp-down */ + { 0, 7, 31, 31, 31, 15, 0, 8, 5, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 8 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 9, 0, 3, 10, 16, 21, 31, 31, 7, 0, 0 }, + /* ramp-down */ + { 0, 11, 28, 31, 27, 10, 11, 0, 10, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 9 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 10, 0, 6, 9, 15, 22, 29, 31, 6, 0, 0 }, + /* ramp-down */ + { 0, 9, 22, 31, 31, 12, 5, 0, 18, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 10 */ + /* ramp-up */ + { 0, 0, 0, 0, 14, 0, 0, 8, 6, 20, 21, 29, 24, 6, 0, 0 }, + /* ramp-down */ + { 0, 8, 28, 29, 26, 14, 6, 0, 17, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 11 */ + /* ramp-up */ + { 0, 0, 0, 0, 16, 0, 3, 5, 8, 16, 31, 28, 18, 3, 0, 0 }, + /* ramp-down */ + { 0, 6, 18, 26, 31, 16, 9, 7, 0, 15, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 12 */ + /* ramp-up */ + { 0, 0, 0, 0, 19, 0, 3, 6, 8, 21, 24, 31, 14, 2, 0, 0 }, + /* ramp-down */ + { 0, 0, 12, 31, 31, 27, 4, 0, 23, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 13 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 14, 14, 0, 0, 24, 31, 31, 14, 0, 0, 0 }, + /* ramp-down */ + { 0, 0, 11, 31, 31, 22, 11, 3, 19, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 14 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 30, 1, 4, 8, 18, 31, 31, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 0, 8, 31, 31, 22, 5, 0, 31, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 15 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 31, 13, 0, 0, 14, 31, 31, 8, 0, 0, 0 }, + /* ramp-down */ + { 0, 0, 4, 31, 31, 25, 5, 0, 5, 26, 1, 0, 0, 0, 0, 0 }, + }, +}; + +struct txcal_ramp_def rf_tx_ramps_1900[RF_TX_RAMP_SIZE] = { + { /* profile 0 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 7, 0, 0, 16, 31, 31, 31, 12, 0, 0 }, + /* ramp-down */ + { 0, 13, 31, 31, 31, 18, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 1 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 2, 3, 4, 17, 30, 31, 31, 10, 0, 0 }, + /* ramp-down */ + { 0, 10, 31, 31, 31, 13, 9, 3, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 2 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 4, 2, 2, 18, 31, 31, 31, 9, 0, 0 }, + /* ramp-down */ + { 0, 10, 26, 31, 31, 16, 10, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 3 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 3, 4, 4, 15, 31, 31, 31, 9, 0, 0 }, + /* ramp-down */ + { 0, 9, 31, 31, 31, 13, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 4 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 4, 3, 0, 18, 31, 31, 31, 10, 0, 0 }, + /* ramp-down */ + { 0, 8, 31, 31, 31, 11, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 5 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 4, 3, 2, 7, 14, 25, 31, 31, 11, 0, 0 }, + /* ramp-down */ + { 0, 14, 31, 31, 31, 9, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 6 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 7, 1, 3, 10, 12, 25, 31, 31, 8, 0, 0 }, + /* ramp-down */ + { 0, 7, 30, 31, 31, 14, 4, 6, 5, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 7 */ + /* ramp-up */ + { 0, 0, 0, 0, 3, 5, 0, 5, 8, 12, 26, 31, 31, 7, 0, 0 }, + /* ramp-down */ + { 0, 7, 31, 31, 31, 15, 0, 8, 5, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 8 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 9, 0, 3, 10, 16, 21, 31, 31, 7, 0, 0 }, + /* ramp-down */ + { 0, 11, 28, 31, 27, 10, 11, 0, 10, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 9 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 10, 0, 6, 9, 15, 22, 29, 31, 6, 0, 0 }, + /* ramp-down */ + { 0, 9, 22, 31, 31, 12, 5, 0, 18, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 10 */ + /* ramp-up */ + { 0, 0, 0, 0, 14, 0, 0, 4, 10, 20, 21, 29, 24, 6, 0, 0 }, + /* ramp-down */ + { 0, 8, 28, 29, 26, 14, 6, 0, 17, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 11 */ + /* ramp-up */ + { 0, 0, 0, 0, 16, 0, 3, 5, 8, 16, 31, 28, 18, 3, 0, 0 }, + /* ramp-down */ + { 0, 6, 18, 26, 31, 16, 9, 7, 0, 15, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 12 */ + /* ramp-up */ + { 0, 0, 0, 0, 19, 0, 3, 6, 8, 21, 24, 31, 14, 2, 0, 0 }, + /* ramp-down */ + { 0, 0, 12, 31, 31, 27, 4, 0, 23, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 13 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 14, 14, 0, 0, 24, 31, 31, 14, 0, 0, 0 }, + /* ramp-down */ + { 0, 0, 11, 31, 31, 22, 11, 3, 19, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 14 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 30, 1, 4, 8, 18, 31, 31, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 0, 8, 31, 31, 22, 5, 0, 31, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 15 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 30, 1, 4, 8, 18, 31, 31, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 0, 8, 31, 31, 22, 5, 0, 31, 0, 0, 0, 0, 0, 0, 0 }, + }, +}; diff --git a/src/target/firmware/board/pirelli_dpl10/readcal.c b/src/target/firmware/board/pirelli_dpl10/readcal.c new file mode 100644 index 0000000..8b8fa33 --- /dev/null +++ b/src/target/firmware/board/pirelli_dpl10/readcal.c @@ -0,0 +1,90 @@ +/* + * (C) 2017 by Mychaela Falconia + * Tweaked (coding style changes) by Vadim Yanitskiy + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include + +#include +#include +#include + +static int16_t afcdac_shifted; + +static void afcdac_postproc(void) +{ + afc_initial_dac_value = afcdac_shifted >> 3; +} + +static int verify_checksum(const uint8_t *start, size_t len) +{ + const uint8_t *p, *endp; + uint8_t accum; + + p = start; + endp = start + len; + accum = 0; + while (p < endp) + accum += *p++; + + if (accum == *p) + return 0; /* good */ + else + return -1; /* bad */ +} + +static const struct calmap { + char *desc; + unsigned offset; + size_t record_len; + void *buffer; + void (*postproc)(void); +} rf_cal_list[] = { + { "afcdac", 0x528, 2, &afcdac_shifted, afcdac_postproc }, + { "Tx ramps 900", 0x72B, 512, rf_tx_ramps_900, NULL }, + { "Tx levels 900", 0x92C, 128, rf_tx_levels_900, NULL }, + { "Tx calchan 900", 0x9AD, 128, rf_tx_chan_cal_900, NULL }, + { "Tx ramps 1800", 0xA2E, 512, rf_tx_ramps_1800, NULL }, + { "Tx levels 1800", 0xC2F, 128, rf_tx_levels_1800, NULL }, + { "Tx calchan 1800", 0xCB0, 128, rf_tx_chan_cal_1800, NULL }, + { "Tx ramps 1900", 0xD31, 512, rf_tx_ramps_1900, NULL }, + { "Tx levels 1900", 0xF32, 128, rf_tx_levels_1900, NULL }, + { "Tx calchan 1900", 0xFB3, 128, rf_tx_chan_cal_1900, NULL }, + { NULL, 0, 0, NULL, NULL } +}; + +void read_factory_rf_calibration(void) +{ + const struct calmap *tp; + const uint8_t *record; + + puts("Checking factory data block for the RF calibration records\n"); + for (tp = rf_cal_list; tp->desc; tp++) { + record = (const uint8_t *)0x027F0000 + tp->offset; + if (verify_checksum(record, tp->record_len) < 0) + continue; + printf("Found '%s' record, applying\n", tp->desc); + memcpy(tp->buffer, record, tp->record_len); + if (tp->postproc) + tp->postproc(); + } +} diff --git a/src/target/firmware/board/pirelli_dpl10/rf_tables.c b/src/target/firmware/board/pirelli_dpl10/rf_tables.c new file mode 100644 index 0000000..2edc15e --- /dev/null +++ b/src/target/firmware/board/pirelli_dpl10/rf_tables.c @@ -0,0 +1,593 @@ +/* + * (C) 2017 by Mychaela Falconia + * Tweaked (coding style changes) by Vadim Yanitskiy + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include + +/* + * Pirelli's official fw runs with the following Psi parameters, as read out + * of a running fw via rftr 9 Test Mode command: + * + * Psi_sta_inv: 6974 + * Psi_st: 8 + * Psi_st_32: 492713 + * Psi_st_inv: 8717 + * + * The following AFC slope number is the closest OsmocomBB-style afc_slope + * integer corresponding to these Psi numbers; the true value is somewhere + * between 225 and 226. + */ +int16_t afc_slope = 226; + +/* + * The compiled-in AFC initial DAC value below is the same as was used by + * the old OsmocomBB code written for Mot C1xx phones, but it will normally + * be overridden by the per-unit factory calibration value read from + * Pirelli's factory data block. + */ +int16_t afc_initial_dac_value = -700; + +/* + * The following Tx levels and ramps tables are the ones compiled into + * Pirelli's firmware; these are the tables which the firmware uses in + * the absence of per-unit calibration records in the factory data block + * in the last 64 KiB sector of the flash. In normal operation the + * records read from that block fully override all of these compiled-in + * tables, with the exception of 850 MHz bands ones - the Pirelli DP-L10 + * does not support that band, and there are no calibration records for it. + */ +struct txcal_tx_level rf_tx_levels_850[RF_TX_LEVELS_TABLE_SIZE] = { + { 600, 0, 0 }, /* 0 */ + { 600, 0, 0 }, /* 1 */ + { 600, 0, 0 }, /* 2 */ + { 600, 0, 0 }, /* 3 */ + { 600, 0, 0 }, /* 4 */ + { 600, 0, 0 }, /* 5 */ + { 540, 1, 0 }, /* 6 */ + { 450, 2, 0 }, /* 7 */ + { 385, 3, 0 }, /* 8 */ + { 330, 4, 0 }, /* 9 */ + { 285, 5, 0 }, /* 10 */ + { 250, 6, 0 }, /* 11 */ + { 220, 7, 0 }, /* 12 */ + { 195, 8, 0 }, /* 13 */ + { 175, 9, 0 }, /* 14 */ + { 160, 10, 0 }, /* 15 */ + { 145, 11, 0 }, /* 16 */ + { 133, 12, 0 }, /* 17 */ + { 123, 13, 0 }, /* 18 */ + { 115, 14, 0 }, /* 19 */ + { 115, 14, 0 }, /* 20 */ + { 115, 14, 0 }, /* 21 */ + { 115, 14, 0 }, /* 22 */ + { 115, 14, 0 }, /* 23 */ + { 115, 14, 0 }, /* 24 */ + { 115, 14, 0 }, /* 25 */ + { 115, 14, 0 }, /* 26 */ + { 115, 14, 0 }, /* 27 */ + { 115, 14, 0 }, /* 28 */ + { 115, 14, 0 }, /* 29 */ + { 115, 14, 0 }, /* 30 */ + { 115, 14, 0 }, /* 31 */ +}; + +struct txcal_tx_level rf_tx_levels_900[RF_TX_LEVELS_TABLE_SIZE] = { + { 570, 0, 0 }, /* 0 */ + { 570, 0, 0 }, /* 1 */ + { 570, 0, 0 }, /* 2 */ + { 570, 0, 0 }, /* 3 */ + { 570, 0, 0 }, /* 4 */ + { 570, 0, 0 }, /* 5 */ + { 496, 1, 1 }, /* 6 */ + { 437, 2, 1 }, /* 7 */ + { 385, 3, 1 }, /* 8 */ + { 339, 4, 1 }, /* 9 */ + { 299, 5, 2 }, /* 10 */ + { 263, 6, 2 }, /* 11 */ + { 232, 7, 2 }, /* 12 */ + { 204, 8, 2 }, /* 13 */ + { 180, 9, 2 }, /* 14 */ + { 159, 10, 3 }, /* 15 */ + { 141, 11, 3 }, /* 16 */ + { 125, 12, 3 }, /* 17 */ + { 111, 13, 3 }, /* 18 */ + { 99, 14, 3 }, /* 19 */ + { 99, 14, 0 }, /* 20 */ + { 99, 14, 0 }, /* 21 */ + { 99, 14, 0 }, /* 22 */ + { 99, 14, 0 }, /* 23 */ + { 99, 14, 0 }, /* 24 */ + { 99, 14, 0 }, /* 25 */ + { 99, 14, 0 }, /* 26 */ + { 99, 14, 0 }, /* 27 */ + { 99, 14, 0 }, /* 28 */ + { 99, 14, 0 }, /* 29 */ + { 99, 14, 0 }, /* 30 */ + { 99, 14, 0 }, /* 31 */ +}; + +struct txcal_tx_level rf_tx_levels_1800[RF_TX_LEVELS_TABLE_SIZE] = { + { 640, 0, 0 }, /* 0 */ + { 558, 1, 0 }, /* 1 */ + { 493, 2, 1 }, /* 2 */ + { 435, 3, 1 }, /* 3 */ + { 384, 4, 1 }, /* 4 */ + { 338, 5, 1 }, /* 5 */ + { 297, 6, 1 }, /* 6 */ + { 261, 7, 1 }, /* 7 */ + { 228, 8, 2 }, /* 8 */ + { 199, 9, 2 }, /* 9 */ + { 174, 10, 3 }, /* 10 */ + { 151, 11, 3 }, /* 11 */ + { 132, 12, 3 }, /* 12 */ + { 115, 13, 3 }, /* 13 */ + { 100, 14, 3 }, /* 14 */ + { 87, 15, 3 }, /* 15 */ + { 87, 15, 0 }, /* 16 */ + { 87, 15, 0 }, /* 17 */ + { 87, 15, 0 }, /* 18 */ + { 87, 15, 0 }, /* 19 */ + { 87, 15, 0 }, /* 20 */ + { 87, 15, 0 }, /* 21 */ + { 87, 15, 0 }, /* 22 */ + { 87, 15, 0 }, /* 23 */ + { 87, 15, 0 }, /* 24 */ + { 87, 15, 0 }, /* 25 */ + { 87, 15, 0 }, /* 26 */ + { 87, 15, 0 }, /* 27 */ + { 87, 15, 0 }, /* 28 */ + { 87, 0, 0 }, /* 29 */ + { 87, 0, 0 }, /* 30 */ + { 87, 0, 0 }, /* 31 */ +}; + +struct txcal_tx_level rf_tx_levels_1900[RF_TX_LEVELS_TABLE_SIZE] = { + { 577, 0, 0 }, /* 0 */ + { 493, 1, 0 }, /* 1 */ + { 432, 2, 0 }, /* 2 */ + { 379, 3, 0 }, /* 3 */ + { 335, 4, 1 }, /* 4 */ + { 291, 5, 1 }, /* 5 */ + { 255, 6, 1 }, /* 6 */ + { 222, 7, 2 }, /* 7 */ + { 194, 8, 2 }, /* 8 */ + { 169, 9, 2 }, /* 9 */ + { 147, 10, 2 }, /* 10 */ + { 128, 11, 2 }, /* 11 */ + { 111, 12, 3 }, /* 12 */ + { 97, 13, 3 }, /* 13 */ + { 85, 14, 3 }, /* 14 */ + { 74, 15, 3 }, /* 15 */ + { 101, 15, 0 }, /* 16 */ + { 101, 15, 0 }, /* 17 */ + { 101, 15, 0 }, /* 18 */ + { 101, 15, 0 }, /* 19 */ + { 101, 15, 0 }, /* 20 */ + { 101, 15, 0 }, /* 21 */ + { 101, 15, 0 }, /* 22 */ + { 101, 15, 0 }, /* 23 */ + { 101, 15, 0 }, /* 24 */ + { 101, 15, 0 }, /* 25 */ + { 101, 15, 0 }, /* 26 */ + { 101, 15, 0 }, /* 27 */ + { 101, 15, 0 }, /* 28 */ + { 101, 0, 0 }, /* 29 */ + { 101, 0, 0 }, /* 30 */ + { 101, 0, 0 }, /* 31 */ +}; + +struct txcal_ramp_def rf_tx_ramps_850[RF_TX_RAMP_SIZE] = { + { /* profile 0 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 1 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 2 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 3 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 4 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 5 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 6 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 7 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 8 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 9 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 10 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 11 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 12 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 13 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 14 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 15 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + /* ramp-down */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, +}; + +struct txcal_ramp_def rf_tx_ramps_900[RF_TX_RAMP_SIZE] = { + { /* profile 0 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 15, 10, 3, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 1 */ + /* ramp-up */ + { 0, 0, 0, 19, 0, 0, 0, 1, 19, 29, 31, 29, 0, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 2 */ + /* ramp-up */ + { 0, 0, 0, 19, 0, 0, 0, 1, 19, 29, 31, 29, 0, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 3 */ + /* ramp-up */ + { 0, 0, 0, 0, 19, 0, 0, 0, 1, 19, 29, 31, 29, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 4 */ + /* ramp-up */ + { 0, 0, 0, 0, 19, 0, 0, 0, 1, 19, 29, 31, 29, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 5 */ + /* ramp-up */ + { 0, 0, 0, 31, 0, 0, 0, 0, 0, 8, 29, 31, 29, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 6 */ + /* ramp-up */ + { 0, 0, 0, 31, 0, 0, 0, 0, 0, 8, 29, 31, 29, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 7 */ + /* ramp-up */ + { 0, 0, 0, 31, 0, 0, 0, 0, 0, 8, 29, 31, 29, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 8 */ + /* ramp-up */ + { 0, 0, 0, 31, 0, 0, 0, 0, 0, 8, 29, 31, 29, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 9 */ + /* ramp-up */ + { 0, 0, 0, 31, 0, 0, 0, 0, 0, 8, 29, 31, 29, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 10 */ + /* ramp-up */ + { 0, 0, 0, 31, 8, 0, 0, 0, 0, 0, 29, 31, 29, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 11 */ + /* ramp-up */ + { 0, 0, 0, 31, 12, 0, 0, 0, 0, 0, 25, 31, 29, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 12 */ + /* ramp-up */ + { 0, 0, 0, 31, 16, 0, 0, 0, 0, 0, 21, 31, 29, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 13 */ + /* ramp-up */ + { 0, 0, 0, 31, 20, 0, 0, 0, 0, 0, 17, 31, 29, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 14 */ + /* ramp-up */ + { 0, 0, 0, 31, 24, 0, 0, 0, 0, 0, 13, 31, 29, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 15 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + /* ramp-down */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, +}; + +struct txcal_ramp_def rf_tx_ramps_1800[RF_TX_RAMP_SIZE] = { + { /* profile 0 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 1 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 2 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 3 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 4 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 5 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 6 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 7 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 8 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 9 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 10 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 11 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 12 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 13 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 14 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 15 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, +}; + +struct txcal_ramp_def rf_tx_ramps_1900[RF_TX_RAMP_SIZE] = { + { /* profile 0 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 1 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 2 */ + /* ramp-up */ + { 0, 0, 0, 19, 0, 0, 0, 0, 1, 19, 29, 31, 29, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 3 */ + /* ramp-up */ + { 0, 0, 0, 19, 0, 0, 0, 0, 1, 19, 29, 31, 29, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 4 */ + /* ramp-up */ + { 0, 0, 0, 19, 0, 0, 0, 0, 1, 19, 29, 31, 29, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 5 */ + /* ramp-up */ + { 0, 0, 0, 19, 0, 0, 0, 0, 1, 19, 29, 31, 29, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 6 */ + /* ramp-up */ + { 0, 0, 0, 31, 0, 0, 0, 0, 0, 8, 29, 31, 29, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 7 */ + /* ramp-up */ + { 0, 0, 0, 31, 0, 0, 0, 0, 0, 8, 29, 31, 29, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 8 */ + /* ramp-up */ + { 0, 0, 0, 31, 0, 0, 0, 0, 0, 8, 29, 31, 29, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 9 */ + /* ramp-up */ + { 0, 0, 0, 31, 8, 0, 0, 0, 0, 0, 29, 31, 29, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 10 */ + /* ramp-up */ + { 0, 0, 0, 31, 8, 0, 0, 0, 0, 0, 29, 31, 29, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 11 */ + /* ramp-up */ + { 0, 0, 0, 31, 8, 0, 0, 0, 0, 0, 29, 31, 29, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 12 */ + /* ramp-up */ + { 0, 0, 0, 31, 12, 0, 0, 0, 0, 0, 25, 31, 29, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 13 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 14 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, + { /* profile 15 */ + /* ramp-up */ + { 0, 0, 0, 14, 0, 0, 1, 19, 29, 31, 29, 5, 0, 0, 0, 0 }, + /* ramp-down */ + { 0, 19, 9, 31, 29, 20, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + }, +}; diff --git a/src/target/firmware/include/layer1/apc.h b/src/target/firmware/include/layer1/apc.h deleted file mode 100644 index 3d73c23..0000000 --- a/src/target/firmware/include/layer1/apc.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef _L1_APC_H -#define _L1_APC_H - -/* determine the AUXAPC value by the Tx Power Level */ -int16_t apc_tx_dbm2auxapc(enum gsm_band band, int8_t dbm); - -/* determine the AUXAPC value by the Tx Power Level */ -int16_t apc_tx_pwrlvl2auxapc(enum gsm_band band, uint8_t lvl); - -#endif diff --git a/src/target/firmware/include/rf/readcal.h b/src/target/firmware/include/rf/readcal.h new file mode 100644 index 0000000..1f16bda --- /dev/null +++ b/src/target/firmware/include/rf/readcal.h @@ -0,0 +1 @@ +void read_factory_rf_calibration(void); diff --git a/src/target/firmware/include/rf/txcal.h b/src/target/firmware/include/rf/txcal.h new file mode 100644 index 0000000..1031942 --- /dev/null +++ b/src/target/firmware/include/rf/txcal.h @@ -0,0 +1,49 @@ +/* + * RF Tx calibration structures matching those used by official + * TI/FreeCalypso firmwares; these structures appear in the flash file + * system (FFS) of FCDEV3B and GTA0x devices and in the factory data + * block on the Pirelli DP-L10 phone. + */ + +#define RF_TX_CHAN_CAL_TABLE_SIZE 4 /*!< channel calibration table size */ +#define RF_TX_NUM_SUB_BANDS 8 /*!< number of sub-bands in channel calibration table */ +#define RF_TX_LEVELS_TABLE_SIZE 32 /*!< level table size */ +#define RF_TX_RAMP_SIZE 16 /*!< number of ramp definitions */ + +/* APC of Tx Power (pcm-file "rf/tx/level.gsm|dcs") */ +struct txcal_tx_level { + uint16_t apc; /*!< 0..31 */ + uint8_t ramp_index; /*!< 0..RF_TX_RAMP_SIZE */ + uint8_t chan_cal_index; /*!< 0..RF_TX_CHAN_CAL_TABLE_SIZE */ +}; + +/* Power ramp definition structure */ +struct txcal_ramp_def { + uint8_t ramp_up[16]; /*!< Ramp-up profile */ + uint8_t ramp_down[16]; /*!< Ramp-down profile */ +}; + +/* Tx channel calibration structure */ +struct txcal_chan_cal { + uint16_t arfcn_limit; + int16_t chan_cal; +}; + +extern struct txcal_tx_level rf_tx_levels_850[RF_TX_LEVELS_TABLE_SIZE]; +extern struct txcal_tx_level rf_tx_levels_900[RF_TX_LEVELS_TABLE_SIZE]; +extern struct txcal_tx_level rf_tx_levels_1800[RF_TX_LEVELS_TABLE_SIZE]; +extern struct txcal_tx_level rf_tx_levels_1900[RF_TX_LEVELS_TABLE_SIZE]; + +extern struct txcal_ramp_def rf_tx_ramps_850[RF_TX_RAMP_SIZE]; +extern struct txcal_ramp_def rf_tx_ramps_900[RF_TX_RAMP_SIZE]; +extern struct txcal_ramp_def rf_tx_ramps_1800[RF_TX_RAMP_SIZE]; +extern struct txcal_ramp_def rf_tx_ramps_1900[RF_TX_RAMP_SIZE]; + +extern struct txcal_chan_cal rf_tx_chan_cal_850[RF_TX_CHAN_CAL_TABLE_SIZE] + [RF_TX_NUM_SUB_BANDS]; +extern struct txcal_chan_cal rf_tx_chan_cal_900[RF_TX_CHAN_CAL_TABLE_SIZE] + [RF_TX_NUM_SUB_BANDS]; +extern struct txcal_chan_cal rf_tx_chan_cal_1800[RF_TX_CHAN_CAL_TABLE_SIZE] + [RF_TX_NUM_SUB_BANDS]; +extern struct txcal_chan_cal rf_tx_chan_cal_1900[RF_TX_CHAN_CAL_TABLE_SIZE] + [RF_TX_NUM_SUB_BANDS]; diff --git a/src/target/firmware/include/rf/vcxocal.h b/src/target/firmware/include/rf/vcxocal.h new file mode 100644 index 0000000..8c49595 --- /dev/null +++ b/src/target/firmware/include/rf/vcxocal.h @@ -0,0 +1,13 @@ +/* + * Old OsmocomBB fw code used the same fixed and hard-coded numbers for + * the slope of the VCXO and the initial AFC DAC setting for all Calypso + * targets, but this approach is incorrect because different phone/modem + * board designs use different VC(TC)XO components with different properties, + * and some manufacturers have done per-unit calibration of their VC(TC)XO. + * + * We now have global variables in which these configuration or calibration + * values are stored, and this header file provides the extern definitions + * for these global vars. + */ + +extern int16_t afc_initial_dac_value, afc_slope; diff --git a/src/target/firmware/layer1/Makefile b/src/target/firmware/layer1/Makefile index 0c710a5..0a24e05 100644 --- a/src/target/firmware/layer1/Makefile +++ b/src/target/firmware/layer1/Makefile @@ -2,7 +2,7 @@ LIBRARIES+=layer1 LIB_layer1_DIR=layer1 LIB_layer1_SRCS=avg.c agc.c afc.c toa.c sync.c tdma_sched.c tpu_window.c init.c \ - l23_api.c mframe_sched.c sched_gsmtime.c async.c rfch.c apc.c + l23_api.c mframe_sched.c sched_gsmtime.c async.c rfch.c LIB_layer1_SRCS += prim_pm.c prim_rach.c prim_tx_nb.c prim_rx_nb.c prim_fbsb.c \ prim_freq.c prim_utils.c prim_tch.c diff --git a/src/target/firmware/layer1/afc.c b/src/target/firmware/layer1/afc.c index a51a107..1a198e3 100644 --- a/src/target/firmware/layer1/afc.c +++ b/src/target/firmware/layer1/afc.c @@ -30,7 +30,7 @@ #include #include -#define AFC_INITIAL_DAC_VALUE -700 +#include /* Over how many TDMA frames do we want to average? (this may change in dedicated mode) */ #define AFC_PERIOD 40 @@ -53,7 +53,6 @@ .period = AFC_PERIOD, .min_valid = AFC_MIN_MUN_VALID, }, - .dac_value = AFC_INITIAL_DAC_VALUE, }; /* The AFC DAC in the ABB has to be configured as follows: @@ -66,10 +65,6 @@ #define AFC_NORM_FACTOR_GSM ((1<<15) / 947) #define AFC_NORM_FACTOR_DCS ((1<<15) / 1894) -/* we assume 8.769ppb per LSB, equals 0.008769 * 32768 == 287 */ -//#define AFC_SLOPE 320 -#define AFC_SLOPE 287 - /* The DSP can measure the frequency error in the following ranges: * FB_MODE0: +/- 20 kHz * FB_MODE1: +/- 4 kHz @@ -92,7 +87,7 @@ afc_norm_factor = AFC_NORM_FACTOR_DCS; } - delta = (int16_t) ((afc_norm_factor * (int32_t)freq_error) / AFC_SLOPE); + delta = (int16_t) ((afc_norm_factor * (int32_t)freq_error) / afc_slope); printd("afc_correct(error=%dHz, arfcn=%u): delta=%d, afc_dac(old=%d,new=%d)\n", freq_error, arfcn, delta, afc_state.dac_value, afc_state.dac_value+delta); afc_state.dac_value += delta; @@ -106,7 +101,7 @@ void afc_reset(void) { - afc_state.dac_value = AFC_INITIAL_DAC_VALUE; + afc_state.dac_value = afc_initial_dac_value; } void afc_input(int32_t freq_error, uint16_t arfcn, int valid) diff --git a/src/target/firmware/layer1/apc.c b/src/target/firmware/layer1/apc.c deleted file mode 100644 index 480c760..0000000 --- a/src/target/firmware/layer1/apc.c +++ /dev/null @@ -1,57 +0,0 @@ -/* APC (Automatic Power Control) Implementation */ - -/* (C) 2010 by Harald Welte - * - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - * - */ - -#include - -#include -#include - -#include - -/* calibration table defined in board file */ -extern const int16_t dbm2apc_gsm900[]; -extern const int dbm2apc_gsm900_max; - - -/* determine the AUXAPC value by the Tx Power Level */ -int16_t apc_tx_dbm2auxapc(enum gsm_band band, int8_t dbm) -{ - if (dbm < 0) - return -ERANGE; - - /* FIXME: offsets for different bands! */ - if (dbm > dbm2apc_gsm900_max) - dbm = dbm2apc_gsm900_max; - - return dbm2apc_gsm900[dbm]; -} - -/* determine the AUXAPC value by the Tx Power Level */ -int16_t apc_tx_pwrlvl2auxapc(enum gsm_band band, uint8_t lvl) -{ - /* convert tx power level to dBm */ - int dbm = ms_pwr_dbm(band, lvl); - if (dbm < 0) - return dbm; - - return apc_tx_dbm2auxapc(band, dbm); -} diff --git a/src/target/firmware/layer1/sync.c b/src/target/firmware/layer1/sync.c index 36f4297..fe2916f 100644 --- a/src/target/firmware/layer1/sync.c +++ b/src/target/firmware/layer1/sync.c @@ -50,13 +50,14 @@ #include #include #include -#include #include #include #include #include #include +#include + #include struct l1s_state l1s; @@ -324,16 +325,57 @@ void l1s_tx_apc_helper(uint16_t arfcn) { + struct txcal_chan_cal (*my_chan_cal)[RF_TX_NUM_SUB_BANDS]; + struct txcal_chan_cal (*chan_cal)[RF_TX_NUM_SUB_BANDS]; + struct txcal_tx_level *levels, *mylevel; + struct txcal_ramp_def *ramps, *myramp; int16_t auxapc; - enum gsm_band band; int i; - /* Get DAC setting */ - band = gsm_arfcn2band(arfcn); - auxapc = apc_tx_pwrlvl2auxapc(band, l1s.tx_power); + /* Figure out which band we are working in */ + switch (gsm_arfcn2band(arfcn)) { + case GSM_BAND_850: + levels = rf_tx_levels_850; + ramps = rf_tx_ramps_850; + chan_cal = rf_tx_chan_cal_850; + break; + case GSM_BAND_900: + levels = rf_tx_levels_900; + ramps = rf_tx_ramps_900; + chan_cal = rf_tx_chan_cal_900; + break; + case GSM_BAND_1800: + levels = rf_tx_levels_1800; + ramps = rf_tx_ramps_1800; + chan_cal = rf_tx_chan_cal_1800; + break; + case GSM_BAND_1900: + levels = rf_tx_levels_1900; + ramps = rf_tx_ramps_1900; + chan_cal = rf_tx_chan_cal_1900; + break; + default: + puts("Error: invalid band in l1s_tx_apc_helper()!\n"); + return; + } + + /* Figure out our Tx power level, APC and ramp index */ + mylevel = levels + (l1s.tx_power & 0x1F); + auxapc = mylevel->apc; + myramp = ramps + mylevel->ramp_index; + my_chan_cal = chan_cal + mylevel->chan_cal_index; + + /* Channel calibration correction */ + arfcn &= ~ARFCN_FLAG_MASK; + for (i = 0; i < RF_TX_NUM_SUB_BANDS; i++) { + if (arfcn <= (*my_chan_cal)[i].arfcn_limit) + break; + } + if (i < RF_TX_NUM_SUB_BANDS) + auxapc = ((uint32_t)auxapc * (*my_chan_cal)[i].chan_cal) / 128; /* Load the ApcOffset into the DSP */ - #define MY_OFFSET 4 + #define MY_OFFSET 48 /* what the official TCS211 fw uses */ dsp_api.ndb->d_apcoff = ABB_VAL(APCOFF, (1 << 6) | MY_OFFSET) | 1; /* 2x slope for the GTA-02 ramp */ /* Load the TX Power into the DSP */ @@ -346,7 +388,8 @@ /* Update the ramp according to the PCL */ for (i = 0; i < 16; i++) - dsp_api.ndb->a_ramp[i] = ABB_VAL(APCRAM, twl3025_default_ramp[i]); + dsp_api.ndb->a_ramp[i] = ABB_VAL(APCRAM, + ABB_RAMP_VAL(myramp->ramp_up[i], myramp->ramp_down[i])); /* The Ramp Table is sent to ABB only once after RF init routine called */ dsp_api.db_w->d_ctrl_abb |= (1 << B_RAMP) | (1 << B_BULRAMPDEL); -- To view, visit https://gerrit.osmocom.org/12887 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Icf2693b751d86ec1d2563412d606c13d4c91a806 Gerrit-Change-Number: 12887 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 13:13:34 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 12 Feb 2019 13:13:34 +0000 Subject: Change in osmocom-bb[master]: firmware/board: introduce the new FCDEV3B target Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/12888 Change subject: firmware/board: introduce the new FCDEV3B target ...................................................................... firmware/board: introduce the new FCDEV3B target FCDEV3B (stands for "FreeCalypso development board, triband") is a GSM mobile station development board by FreeCalypso project. The board features the same legendary TI Calypso GSM MS chipset that was used in commercial GSM/GPRS modems such as Openmoko's, and functions as a standalone (or "bare") GSM modem. For more information, please see the project's web side: https://www.freecalypso.org/fcdev3b.html. Change-Id: I09bd35a18d3ea094000050169a62fd82ba6eccfe Related: OS#3581 --- M src/target/firmware/Makefile A src/target/firmware/board/fcdev3b/init.c 2 files changed, 161 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/88/12888/1 diff --git a/src/target/firmware/Makefile b/src/target/firmware/Makefile index 46a8fb1..cc1ca24 100644 --- a/src/target/firmware/Makefile +++ b/src/target/firmware/Makefile @@ -24,7 +24,7 @@ # # List of all supported boards (meant to be overridden on command line) -BOARDS?=compal_e88 compal_e86 compal_e99 se_j100 gta0x pirelli_dpl10 +BOARDS?=compal_e88 compal_e86 compal_e99 se_j100 gta0x fcdev3b pirelli_dpl10 # Framebuffer support, board specific drivers FB_OBJS=fb/framebuffer.o fb/font.o fb/helvR08.o fb/helvB14.o fb/c64.o \ @@ -47,6 +47,12 @@ board/common/readcal_tiffs.o battery/dummy.o $(FB_dummy_OBJS) BOARD_gta0x_ENVIRONMENTS=highram +# FreeCalypso FCDEV3B +BOARD_fcdev3b_OBJS=$(calypso_COMMON_OBJS) board/fcdev3b/init.o \ + board/gta0x/rffe_gta0x_triband.o board/gta0x/rf_tables.o \ + board/common/readcal_tiffs.o battery/dummy.o $(FB_dummy_OBJS) +BOARD_fcdev3b_ENVIRONMENTS=highram + # Pirelli DP-L10 BOARD_pirelli_dpl10_OBJS=$(calypso_COMMON_OBJS) board/pirelli_dpl10/init.o \ board/pirelli_dpl10/rffe_dpl10_triband.o \ diff --git a/src/target/firmware/board/fcdev3b/init.c b/src/target/firmware/board/fcdev3b/init.c new file mode 100644 index 0000000..3601cbf --- /dev/null +++ b/src/target/firmware/board/fcdev3b/init.c @@ -0,0 +1,154 @@ +/* Initialization for the FreeCalypso FCDEV3B modem */ + +/* Based on board/gta0x/init.c with the following obnoxious legalese: + * + * (C) 2010 by Harald Welte + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include "../compal/keymap.h" + +#define ARMIO_LATCH_OUT 0xfffe4802 +#define IO_CNTL_REG 0xfffe4804 +#define ARM_CONF_REG 0xfffef006 +#define ASIC_CONF_REG 0xfffef008 +#define IO_CONF_REG 0xfffef00a + +static void board_io_init(void) +{ + uint16_t reg; + + reg = readw(ASIC_CONF_REG); + /* TWL3025: Set SPI+RIF RX clock to rising edge */ + reg |= (1 << 13) | (1 << 14); + writew(reg, ASIC_CONF_REG); + + /* + * Most Calypso peripheral interface signals are unconnected + * on this modem. We configure them to be GPIOs in IO_CONF_REG, + * then configure them to be outputs in IO_CNTL_REG, then set + * the outputs to 0 in ARMIO_LATCH_OUT. + * + * Differences from Openmoko GTA0x: + * + * GPIO1 output needs to be 1 to enable the loudspeaker amplifier + * GPIO3 needs to be configured as an input + * I/O 9-12 are MCSI rather than GPIOs + */ + writew(0x0215, IO_CONF_REG); + writew(0xDC08, IO_CNTL_REG); + writew(0x0002, ARMIO_LATCH_OUT); + + /* configure ADD(22), needed for second half of flash */ + reg = readw(ARM_CONF_REG); + reg |= (1 << 3); + writew(reg, ARM_CONF_REG); +} + +void board_init(int with_irq) +{ + /* Configure the memory interface */ + /* Using the same settings as the official FreeCalypso fw */ + calypso_mem_cfg(CALYPSO_nCS0, 4, CALYPSO_MEM_16bit, 1); + calypso_mem_cfg(CALYPSO_nCS1, 4, CALYPSO_MEM_16bit, 1); + calypso_mem_cfg(CALYPSO_nCS2, 4, CALYPSO_MEM_16bit, 1); + calypso_mem_cfg(CALYPSO_nCS3, 4, CALYPSO_MEM_16bit, 1); + calypso_mem_cfg(CALYPSO_CS4, 4, CALYPSO_MEM_16bit, 1); + calypso_mem_cfg(CALYPSO_nCS6, 0, CALYPSO_MEM_32bit, 1); + calypso_mem_cfg(CALYPSO_nCS7, 0, CALYPSO_MEM_32bit, 0); + + /* Set VTCXO_DIV2 = 1, configure PLL for 104 MHz and give ARM half of that */ + calypso_clock_set(2, CALYPSO_PLL13_104_MHZ, ARM_MCLK_DIV_2); + + /* Configure the RHEA bridge with some sane default values */ + calypso_rhea_cfg(0, 0, 0xff, 0, 1, 0, 0); + + /* Initialize board-specific GPIO */ + board_io_init(); + + /* Enable bootrom mapping to route exception vectors to RAM */ + calypso_bootrom(with_irq); + calypso_exceptions_install(); + + /* Initialize interrupt controller */ + if (with_irq) + irq_init(); + + sercomm_bind_uart(UART_MODEM); + cons_bind_uart(UART_IRDA); + + /* initialize MODEM UART to be used for sercomm */ + uart_init(UART_MODEM, with_irq); + uart_baudrate(UART_MODEM, UART_115200); + + /* Initialize IRDA UART to be used for old-school console code. + * note: IRDA uart only accessible on C115 and C117 PCB */ + uart_init(UART_IRDA, with_irq); + uart_baudrate(UART_IRDA, UART_115200); + + /* Initialize hardware timers */ + hwtimer_init(); + + /* Initialize DMA controller */ + dma_init(); + + /* Initialize real time clock */ + rtc_init(); + + /* Initialize system timers (uses hwtimer 2) */ + timer_init(); + + /* Initialize LCD driver (uses I2C) and backlight */ + bl_mode_pwl(1); + bl_level(50); + + /* Initialize keypad driver */ + keypad_init(keymap, with_irq); + + /* Initialize ABB driver (uses SPI) */ + twl3025_init(); + + /* Initialize TIFFS reader */ + tiffs_init(0x01800000, 0x40000, 8); +} -- To view, visit https://gerrit.osmocom.org/12888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I09bd35a18d3ea094000050169a62fd82ba6eccfe Gerrit-Change-Number: 12888 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 13:38:59 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 12 Feb 2019 13:38:59 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7.c: fix typo Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12889 Change subject: osmo_ss7.c: fix typo ...................................................................... osmo_ss7.c: fix typo Change-Id: Idd0945ef7fa5cc0caf2f35919f97e2e11691f3a3 --- M src/osmo_ss7.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/89/12889/1 diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c index 05668b0..381a53a 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -1316,7 +1316,7 @@ { SCTP_PARTIAL_DELIVERY_EVENT, "PARTIAL_DELIVERY_EVENT" }, { SCTP_ADAPTATION_INDICATION, "ADAPTATION_INDICATION" }, #ifdef SCTP_AUTHENTICATION_INDICATION - { SCTP_AUTHENTICATION_INDICATION, "UTHENTICATION_INDICATION" }, + { SCTP_AUTHENTICATION_INDICATION, "AUTHENTICATION_INDICATION" }, #endif #ifdef SCTP_SENDER_DRY_EVENT { SCTP_SENDER_DRY_EVENT, "SENDER_DRY_EVENT" }, -- To view, visit https://gerrit.osmocom.org/12889 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Idd0945ef7fa5cc0caf2f35919f97e2e11691f3a3 Gerrit-Change-Number: 12889 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Tue Feb 12 15:10:06 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 12 Feb 2019 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#399?= In-Reply-To: <200185521.189.1549897806990.JavaMail.jenkins@jenkins.osmocom.org> References: <200185521.189.1549897806990.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1745342903.201.1549984206831.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.69 KB...] + ./configure checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Tue Feb 12 16:49:19 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 12 Feb 2019 16:49:19 +0000 Subject: Change in libosmo-netif[master]: Deprecate osmo_stream_cli_open2() In-Reply-To: References: Message-ID: Hello Pau Espin Pedrol, Harald Welte, osmith, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12845 to look at the new patch set (#7). Change subject: Deprecate osmo_stream_cli_open2() ...................................................................... Deprecate osmo_stream_cli_open2() This supposed to be variant of osmo_stream_cli_open() with explicit control over reconnection logic but it's plain broken: doxygen docs contradict the code, actual reconnection logic is affected by timeout parameter directly which is set in different function. It seems like we haven't been affected by this so far because we always use it in auto-reconnection mode which is triggered by default due to positive reconnection timeout value (5 sec) automatically used in the absense of explicitly set timeout. Looking at commit history, this function already been source of confusion in the past. Instead of trying to fix this mess, let's just deprecate it entirely and properly document use of osmo_stream_cli_set_reconnect_timeout() to control reconnection logic. The only known user is libosmo-sccp which won't use it as of 0a93a683f3cb8e5977eb4a666ab207db6e7d7af9 commit. Change-Id: Id988ed0274b363db049f59cbf6a193727c8c3c8a --- M include/osmocom/netif/stream.h M src/stream.c M tests/stream/stream_test.c 3 files changed, 120 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/45/12845/7 -- To view, visit https://gerrit.osmocom.org/12845 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Id988ed0274b363db049f59cbf6a193727c8c3c8a Gerrit-Change-Number: 12845 Gerrit-PatchSet: 7 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 16:50:26 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 12 Feb 2019 16:50:26 +0000 Subject: Change in libosmo-netif[master]: Deprecate osmo_stream_cli_open2() In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12845 ) Change subject: Deprecate osmo_stream_cli_open2() ...................................................................... Patch Set 7: (1 comment) https://gerrit.osmocom.org/#/c/12845/6/tests/stream/stream_test.c File tests/stream/stream_test.c: https://gerrit.osmocom.org/#/c/12845/6/tests/stream/stream_test.c at 197 PS6, Line 197: */ > This is probably just a matter of taste, and I am not sure how this is usually handled in the Osmoco [?] I'd rather keep it here and remove it together with the deprecated function in one of the future releases. -- To view, visit https://gerrit.osmocom.org/12845 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id988ed0274b363db049f59cbf6a193727c8c3c8a Gerrit-Change-Number: 12845 Gerrit-PatchSet: 7 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 12 Feb 2019 16:50:26 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 17:07:53 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 12 Feb 2019 17:07:53 +0000 Subject: Change in osmocom-bb[master]: firmware/lib: introduce TIFFS filesystem support In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12885 ) Change subject: firmware/lib: introduce TIFFS filesystem support ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12885 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If6e212baeb10953129fb0d5253d263567f5e12d6 Gerrit-Change-Number: 12885 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Tue, 12 Feb 2019 17:07:53 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 17:21:29 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 12 Feb 2019 17:21:29 +0000 Subject: Change in osmocom-bb[master]: firmware/board: introduce the new FCDEV3B target In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12888 ) Change subject: firmware/board: introduce the new FCDEV3B target ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/12888/1/src/target/firmware/board/fcdev3b/init.c File src/target/firmware/board/fcdev3b/init.c: https://gerrit.osmocom.org/#/c/12888/1/src/target/firmware/board/fcdev3b/init.c at 3 PS1, Line 3: /* Based on board/gta0x/init.c with the following obnoxious legalese: I guess we can safely drop this attempt to be funny to make it look more similar to other board init.c files :) -- To view, visit https://gerrit.osmocom.org/12888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I09bd35a18d3ea094000050169a62fd82ba6eccfe Gerrit-Change-Number: 12888 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Tue, 12 Feb 2019 17:21:29 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 17:36:11 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 12 Feb 2019 17:36:11 +0000 Subject: Change in osmocom-bb[master]: firmware/board/gta0x: fix GPIO and ASIC_CONF_REG configuration In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12883 ) Change subject: firmware/board/gta0x: fix GPIO and ASIC_CONF_REG configuration ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12883 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I306ffacb623d2b06a188f84026ccadab408d1676 Gerrit-Change-Number: 12883 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Tue, 12 Feb 2019 17:36:11 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 18:53:56 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 18:53:56 +0000 Subject: Change in osmo-bsc[master]: OML: Fix encoded length value of OML GET ATTRIBUTES Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12890 Change subject: OML: Fix encoded length value of OML GET ATTRIBUTES ...................................................................... OML: Fix encoded length value of OML GET ATTRIBUTES Before this patch, all OML GET ATTRIBUTES messages were encoded with an erroneous OML header length value. The length value was always three bytes less than the actual message length. This patch fixes the problem. Change-Id: I56068de0bb14a99ec39be587e542e27cddb7d1df Closes: OS#3799 --- M src/osmo-bsc/abis_nm.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/90/12890/1 diff --git a/src/osmo-bsc/abis_nm.c b/src/osmo-bsc/abis_nm.c index f1306fc..9b4af6e 100644 --- a/src/osmo-bsc/abis_nm.c +++ b/src/osmo-bsc/abis_nm.c @@ -1717,7 +1717,7 @@ msg = nm_msgb_alloc(); oh = (struct abis_om_hdr *) msgb_put(msg, ABIS_OM_FOM_HDR_SIZE); - fill_om_fom_hdr(oh, attr_len, NM_MT_GET_ATTR, obj_class, + fill_om_fom_hdr(oh, 3+attr_len, NM_MT_GET_ATTR, obj_class, bts_nr, trx_nr, ts_nr); msgb_tl16v_put(msg, NM_ATT_LIST_REQ_ATTR, attr_len, attr); -- To view, visit https://gerrit.osmocom.org/12890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I56068de0bb14a99ec39be587e542e27cddb7d1df Gerrit-Change-Number: 12890 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 18:55:24 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 18:55:24 +0000 Subject: Change in osmo-bts[master]: OML: Work around OsmoBSC but sending "GET ATTRIBUTES" with short length Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12891 Change subject: OML: Work around OsmoBSC but sending "GET ATTRIBUTES" with short length ...................................................................... OML: Work around OsmoBSC but sending "GET ATTRIBUTES" with short length OsmoBSC used to have a bug in encoding the "GET ATTRIBUTES" OML message, resulting in the actual message length being three bytes longer than the encoded length value. As in Ib98f0d7c2cff9172714ed18667c02564540d65d7 we have introduced proper consistency checks on length values, all "GET ATTRIBUTES" from OsmoBSC version suntil today will fail. This patch introduces a work-around to remain compatible with old OsmoBSC while still keeping the consistency checks for all other messages. Change-Id: Ifa24e9e2c71feb2c597557807d675438c2825b2d Related: OS#3799 --- M src/common/oml.c 1 file changed, 11 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/91/12891/1 diff --git a/src/common/oml.c b/src/common/oml.c index 1de8054..30449a9 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1447,10 +1447,17 @@ } if (msgb_l3len(msg) > oh->length) { - LOGP(DOML, LOGL_NOTICE, "OML message with %u extraneous bytes at end: %s\n", - msgb_l3len(msg) - oh->length, msgb_hexdump(msg)); - /* remove extra bytes at end */ - msgb_l3trim(msg, oh->length); + if (oh->mdisc == ABIS_OM_MDISC_FOM && oh->data[0] == NM_MT_GET_ATTR && + msgb_l3len(msg) == oh->length + 3) { + /* work-around a bug present in OsmoBSC before February 2019 */ + DEBUGP(DOML, "GET ATTR with off-by-3 length: Fixing up for OS#3799\n"); + oh->length += 3; + } else { + LOGP(DOML, LOGL_NOTICE, "OML message with %u extraneous bytes at end: %s\n", + msgb_l3len(msg) - oh->length, msgb_hexdump(msg)); + /* remove extra bytes at end */ + msgb_l3trim(msg, oh->length); + } } switch (oh->mdisc) { -- To view, visit https://gerrit.osmocom.org/12891 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ifa24e9e2c71feb2c597557807d675438c2825b2d Gerrit-Change-Number: 12891 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 18:55:25 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 18:55:25 +0000 Subject: Change in osmo-bts[master]: OML: Don't advertise baseband transceiver as UNLOCKED at startup Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12892 Change subject: OML: Don't advertise baseband transceiver as UNLOCKED at startup ...................................................................... OML: Don't advertise baseband transceiver as UNLOCKED at startup For some strange historical reason, the baseband transceiver MO was brought up in state "UNLOCKED". The object should come up in "locked" state until it's explicitly unlocked by the BSC. See Section 6.8.2 of TS 12.21: "If there is yet no administrative state value explicitly set by the BSC (e.g., at an initialization time), the object shall be presumed to be administratively locked by default" Change-Id: Id505594b9f224567566caac84dae2e2ae4477fae Closes: OS#3790 --- M src/common/gsm_data_shared.c 1 file changed, 0 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/92/12892/1 diff --git a/src/common/gsm_data_shared.c b/src/common/gsm_data_shared.c index 58b2503..6703095 100644 --- a/src/common/gsm_data_shared.c +++ b/src/common/gsm_data_shared.c @@ -226,8 +226,6 @@ gsm_mo_init(&trx->mo, bts, NM_OC_RADIO_CARRIER, bts->nr, trx->nr, 0xff); - /* FIXME: Why would the TRX come up unlocked? */ - trx->mo.nm_state.administrative = NM_STATE_UNLOCKED; gsm_mo_init(&trx->bb_transc.mo, bts, NM_OC_BASEB_TRANSC, bts->nr, trx->nr, 0xff); -- To view, visit https://gerrit.osmocom.org/12892 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id505594b9f224567566caac84dae2e2ae4477fae Gerrit-Change-Number: 12892 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 19:10:38 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 19:10:38 +0000 Subject: Change in osmo-bts[master]: OML: send proper OML alerts in case of errors In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12867 to look at the new patch set (#2). Change subject: OML: send proper OML alerts in case of errors ...................................................................... OML: send proper OML alerts in case of errors Change-Id: I5b19b82a4874617c7c584cf3eac55eb9c756710a --- M src/common/oml.c 1 file changed, 21 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/67/12867/2 -- To view, visit https://gerrit.osmocom.org/12867 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I5b19b82a4874617c7c584cf3eac55eb9c756710a Gerrit-Change-Number: 12867 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max Gerrit-CC: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 19:10:38 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 19:10:38 +0000 Subject: Change in osmo-bts[master]: OML: Reject segmented OML messages In-Reply-To: References: Message-ID: Hello Pau Espin Pedrol, Max, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12871 to look at the new patch set (#2). Change subject: OML: Reject segmented OML messages ...................................................................... OML: Reject segmented OML messages TS 12.21 describes segmenting of OML messages using placement fist/middle/last and the "sequence' number of the OML header. We don't implement this and hence must ignore or reject any related messages. Before this patch however, we simply treated such segments as if they were a complete OML message. Let's fix that. Change-Id: Idd42cf4edc1bf9ab366853bd9b0f7afd9c060910 Closes: OS#3795 --- M src/common/oml.c 1 file changed, 9 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/71/12871/2 -- To view, visit https://gerrit.osmocom.org/12871 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Idd42cf4edc1bf9ab366853bd9b0f7afd9c060910 Gerrit-Change-Number: 12871 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 19:10:38 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 19:10:38 +0000 Subject: Change in osmo-bts[master]: OML: Work around OsmoBSC sending "GET ATTRIBUTES" with short length In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12891 to look at the new patch set (#2). Change subject: OML: Work around OsmoBSC sending "GET ATTRIBUTES" with short length ...................................................................... OML: Work around OsmoBSC sending "GET ATTRIBUTES" with short length OsmoBSC used to have a bug in encoding the "GET ATTRIBUTES" OML message, resulting in the actual message length being three bytes longer than the encoded length value. As in Ib98f0d7c2cff9172714ed18667c02564540d65d7 we have introduced proper consistency checks on length values, all "GET ATTRIBUTES" from OsmoBSC version suntil today will fail. This patch introduces a work-around to remain compatible with old OsmoBSC while still keeping the consistency checks for all other messages. Change-Id: Ifa24e9e2c71feb2c597557807d675438c2825b2d Related: OS#3799 --- M src/common/oml.c 1 file changed, 11 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/91/12891/2 -- To view, visit https://gerrit.osmocom.org/12891 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ifa24e9e2c71feb2c597557807d675438c2825b2d Gerrit-Change-Number: 12891 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 19:36:37 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 12 Feb 2019 19:36:37 +0000 Subject: Change in osmo-mgw[master]: install: keep existing / modified etc/osmocom/*.cfg files In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12861 ) Change subject: install: keep existing / modified etc/osmocom/*.cfg files ...................................................................... Patch Set 1: Agree with Max -- To view, visit https://gerrit.osmocom.org/12861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I95c9b5dc6117b3dd7a095b34437f5030a141c93b Gerrit-Change-Number: 12861 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 12 Feb 2019 19:36:37 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 19:39:17 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 12 Feb 2019 19:39:17 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7.c: fix typo In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12889 ) Change subject: osmo_ss7.c: fix typo ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12889/1/src/osmo_ss7.c File src/osmo_ss7.c: https://gerrit.osmocom.org/#/c/12889/1/src/osmo_ss7.c at a1319 PS1, Line 1319: UTHENTICATION. That's authentication for UMTS. For LTE it's gonna be called EUTHENTICATION ;) -- To view, visit https://gerrit.osmocom.org/12889 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Idd0945ef7fa5cc0caf2f35919f97e2e11691f3a3 Gerrit-Change-Number: 12889 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 12 Feb 2019 19:39:17 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 19:39:31 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 12 Feb 2019 19:39:31 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7.c: fix typo In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12889 ) Change subject: osmo_ss7.c: fix typo ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12889 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Idd0945ef7fa5cc0caf2f35919f97e2e11691f3a3 Gerrit-Change-Number: 12889 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 12 Feb 2019 19:39:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 19:42:55 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 12 Feb 2019 19:42:55 +0000 Subject: Change in osmo-bsc[master]: OML: Fix encoded length value of OML GET ATTRIBUTES In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12890 ) Change subject: OML: Fix encoded length value of OML GET ATTRIBUTES ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/12890/1/src/osmo-bsc/abis_nm.c File src/osmo-bsc/abis_nm.c: https://gerrit.osmocom.org/#/c/12890/1/src/osmo-bsc/abis_nm.c at 1720 PS1, Line 1720: fill_om_fom_hdr(oh, 3+attr_len, NM_MT_GET_ATTR, obj_class, I guess those 3 bytes are the T and L16 parts of TL16V missing right? You could explain that in the commit description. -- To view, visit https://gerrit.osmocom.org/12890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I56068de0bb14a99ec39be587e542e27cddb7d1df Gerrit-Change-Number: 12890 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 12 Feb 2019 19:42:55 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 19:44:31 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 12 Feb 2019 19:44:31 +0000 Subject: Change in osmo-bts[master]: OML: Don't advertise baseband transceiver as UNLOCKED at startup In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12892 ) Change subject: OML: Don't advertise baseband transceiver as UNLOCKED at startup ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12892 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id505594b9f224567566caac84dae2e2ae4477fae Gerrit-Change-Number: 12892 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 12 Feb 2019 19:44:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 19:49:44 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 12 Feb 2019 19:49:44 +0000 Subject: Change in osmo-bts[master]: OML: send proper OML alerts in case of errors In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12867 ) Change subject: OML: send proper OML alerts in case of errors ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/12867/2/src/common/oml.c File src/common/oml.c: https://gerrit.osmocom.org/#/c/12867/2/src/common/oml.c at 1381 PS2, Line 1381: oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG, Without looking much around this code, one question: Why do you check for trx->mo existance and use it at the end of the function (1418) but for instance not in this line (where alays bts->mo is used)? -- To view, visit https://gerrit.osmocom.org/12867 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5b19b82a4874617c7c584cf3eac55eb9c756710a Gerrit-Change-Number: 12867 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 12 Feb 2019 19:49:44 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 19:52:53 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 12 Feb 2019 19:52:53 +0000 Subject: Change in osmo-bts[master]: OML: Work around OsmoBSC sending "GET ATTRIBUTES" with short length In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12891 ) Change subject: OML: Work around OsmoBSC sending "GET ATTRIBUTES" with short length ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12891 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifa24e9e2c71feb2c597557807d675438c2825b2d Gerrit-Change-Number: 12891 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 12 Feb 2019 19:52:53 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 19:59:04 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 19:59:04 +0000 Subject: Change in osmo-bts[master]: OML: Properly reject short messages and truncate over-long messages In-Reply-To: References: Message-ID: Hello Pau Espin Pedrol, Max, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12873 to look at the new patch set (#3). Change subject: OML: Properly reject short messages and truncate over-long messages ...................................................................... OML: Properly reject short messages and truncate over-long messages For OML, what matters is the length indicated in the OML message header. If we don't have sufficient bytes, reject the message and send a failure event report. If we have more bytes, truncate the message at the number of bytes indicated in the OML length header. Change-Id: Ib98f0d7c2cff9172714ed18667c02564540d65d7 --- M src/common/oml.c 1 file changed, 23 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/73/12873/3 -- To view, visit https://gerrit.osmocom.org/12873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ib98f0d7c2cff9172714ed18667c02564540d65d7 Gerrit-Change-Number: 12873 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 19:59:04 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 19:59:04 +0000 Subject: Change in osmo-bts[master]: OML: Work around OsmoBSC sending "GET ATTRIBUTES" with short length In-Reply-To: References: Message-ID: Hello Pau Espin Pedrol, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12891 to look at the new patch set (#3). Change subject: OML: Work around OsmoBSC sending "GET ATTRIBUTES" with short length ...................................................................... OML: Work around OsmoBSC sending "GET ATTRIBUTES" with short length OsmoBSC used to have a bug in encoding the "GET ATTRIBUTES" OML message, resulting in the actual message length being three bytes longer than the encoded length value. As in Ib98f0d7c2cff9172714ed18667c02564540d65d7 we have introduced proper consistency checks on length values, all "GET ATTRIBUTES" from OsmoBSC version suntil today will fail. This patch introduces a work-around to remain compatible with old OsmoBSC while still keeping the consistency checks for all other messages. Change-Id: Ifa24e9e2c71feb2c597557807d675438c2825b2d Related: OS#3799 --- M src/common/oml.c 1 file changed, 11 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/91/12891/3 -- To view, visit https://gerrit.osmocom.org/12891 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ifa24e9e2c71feb2c597557807d675438c2825b2d Gerrit-Change-Number: 12891 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 19:59:06 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 19:59:06 +0000 Subject: Change in osmo-bts[master]: OML: Store merged attributes of IPA OML Managed Objects Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12893 Change subject: OML: Store merged attributes of IPA OML Managed Objects ...................................................................... OML: Store merged attributes of IPA OML Managed Objects For the TS 12.21 standard OML attributes, we store a copy of the most-recently set value for each attribute in "mo->nm_attr". This somehow was missed when adding support for the IPA specific MOs like those relevant for GPRS. Change-Id: I75ebda46da9c1fcecc484311bf3833f31c536ee1 --- M src/common/oml.c 1 file changed, 12 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/93/12893/1 diff --git a/src/common/oml.c b/src/common/oml.c index e544b57..7e7a2fe 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1308,8 +1308,8 @@ static int oml_ipa_set_attr(struct gsm_bts *bts, struct msgb *msg) { struct abis_om_fom_hdr *foh = msgb_l3(msg); - const struct gsm_abis_mo *mo; - struct tlv_parsed tp; + struct gsm_abis_mo *mo; + struct tlv_parsed tp, *tp_merged; void *obj; int rc; @@ -1333,7 +1333,17 @@ if (!mo || !obj) return oml_fom_ack_nack(msg, NM_NACK_OBJINST_UNKN); + /* merge existing MO attributes with new attributes */ + tp_merged = osmo_tlvp_copy(mo->nm_attr, bts); + osmo_tlvp_merge(tp_merged, &tp); + rc = oml_ipa_mo_set_attr(bts, mo, obj, &tp); + if (rc == 0) { + /* Success: replace old MO attributes with new */ + talloc_free(mo->nm_attr); + mo->nm_attr = tp_merged; + } else + talloc_free(tp_merged); return oml_fom_ack_nack(msg, rc); } -- To view, visit https://gerrit.osmocom.org/12893 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I75ebda46da9c1fcecc484311bf3833f31c536ee1 Gerrit-Change-Number: 12893 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 20:00:59 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 20:00:59 +0000 Subject: Change in osmo-bts[master]: OML: send proper OML alerts in case of errors In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12867 ) Change subject: OML: send proper OML alerts in case of errors ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/12867/2/src/common/oml.c File src/common/oml.c: https://gerrit.osmocom.org/#/c/12867/2/src/common/oml.c at 1381 PS2, Line 1381: oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG, > Without looking much around this code, one question: Why do you check for trx->mo existance and use [?] if insufficient bytes of the header are present to resolve the MO (managed object) the message is addressed to, we can only use the BTS MO as a default. -- To view, visit https://gerrit.osmocom.org/12867 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5b19b82a4874617c7c584cf3eac55eb9c756710a Gerrit-Change-Number: 12867 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 12 Feb 2019 20:00:59 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 20:01:14 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 20:01:14 +0000 Subject: Change in osmo-bts[master]: OML: send proper OML alerts in case of errors In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12867 ) Change subject: OML: send proper OML alerts in case of errors ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12867 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5b19b82a4874617c7c584cf3eac55eb9c756710a Gerrit-Change-Number: 12867 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 12 Feb 2019 20:01:14 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 20:02:05 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 20:02:05 +0000 Subject: Change in osmo-bts[master]: OML: Reject segmented OML messages In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12871 ) Change subject: OML: Reject segmented OML messages ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12871 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Idd42cf4edc1bf9ab366853bd9b0f7afd9c060910 Gerrit-Change-Number: 12871 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 12 Feb 2019 20:02:05 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 20:02:14 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 20:02:14 +0000 Subject: Change in osmo-bts[master]: OML: send proper OML alerts in case of errors In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12867 ) Change subject: OML: send proper OML alerts in case of errors ...................................................................... OML: send proper OML alerts in case of errors Change-Id: I5b19b82a4874617c7c584cf3eac55eb9c756710a --- M src/common/oml.c 1 file changed, 21 insertions(+), 9 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/common/oml.c b/src/common/oml.c index 82d12c7..313ff96 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1378,12 +1378,14 @@ int ret; if (msgb_l2len(msg) < sizeof(*foh)) { - LOGP(DOML, LOGL_NOTICE, "Manufacturer O&M message too short\n"); + oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG, + "Manufacturer O&M message too short\n"); return -EIO; } if (strncmp((char *)&oh->data[1], abis_nm_ipa_magic, idstrlen)) { - LOGP(DOML, LOGL_ERROR, "Manufacturer OML message != ipaccess not supported\n"); + oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG, + "Manufacturer OML message != ipaccess not supported\n"); return -EINVAL; } @@ -1411,8 +1413,15 @@ ret = oml_ipa_set_attr(bts, msg); break; default: - LOGP(DOML, LOGL_INFO, "Manufacturer Formatted O&M msg_type 0x%02x\n", - foh->msg_type); + trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr); + if (trx) { + oml_tx_failure_event_rep(&trx->mo, OSMO_EVT_MAJ_UKWN_MSG, + "unknown Manufacturer O&M msg_type 0x%02x", + foh->msg_type); + } else + oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG, + "unknown Manufacturer O&M msg_type 0x%02x", + foh->msg_type); ret = oml_fom_ack_nack(msg, NM_NACK_MSGTYPE_INVAL); } @@ -1426,7 +1435,8 @@ int ret = 0; if (msgb_l2len(msg) < 1) { - LOGP(DOML, LOGL_NOTICE, "OML message too short\n"); + oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG, + "OML message too short\n"); msgb_free(msg); return -EIO; } @@ -1435,7 +1445,8 @@ switch (oh->mdisc) { case ABIS_OM_MDISC_FOM: if (msgb_l2len(msg) < sizeof(*oh)) { - LOGP(DOML, LOGL_NOTICE, "Formatted O&M message too short\n"); + oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG, + "Formatted O&M message too short\n"); ret = -EIO; break; } @@ -1443,15 +1454,16 @@ break; case ABIS_OM_MDISC_MANUF: if (msgb_l2len(msg) < sizeof(*oh)) { - LOGP(DOML, LOGL_NOTICE, "Manufacturer O&M message too short\n"); + oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG, + "Manufacturer O&M message too short\n"); ret = -EIO; break; } ret = down_mom(bts, msg); break; default: - LOGP(DOML, LOGL_NOTICE, "unknown OML msg_discr 0x%02x\n", - oh->mdisc); + oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG, + "unknown O&M msg_disc 0x%02x\n", oh->mdisc); ret = -EINVAL; } -- To view, visit https://gerrit.osmocom.org/12867 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5b19b82a4874617c7c584cf3eac55eb9c756710a Gerrit-Change-Number: 12867 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max Gerrit-CC: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 20:02:14 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 20:02:14 +0000 Subject: Change in osmo-bts[master]: OML: Reduce code duplication in down_mom/down_fom In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12868 ) Change subject: OML: Reduce code duplication in down_mom/down_fom ...................................................................... OML: Reduce code duplication in down_mom/down_fom Simply use a "mo" variable on the stack rather than having duplicate but otherwise identical calls to oml_tx_failure_event_rep() Change-Id: Ibe6c79e95405b13d041047549d2ffa39aa355eb2 --- M src/common/oml.c 1 file changed, 10 insertions(+), 18 deletions(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, but someone else must approve Max: Looks good to me, approved diff --git a/src/common/oml.c b/src/common/oml.c index 313ff96..ad8ab81 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1089,6 +1089,7 @@ { struct abis_om_fom_hdr *foh = msgb_l3(msg); struct gsm_bts_trx *trx; + struct gsm_abis_mo *mo = &bts->mo; int ret; if (msgb_l2len(msg) < sizeof(*foh)) { @@ -1136,16 +1137,10 @@ break; default: trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr); - if (trx) { - oml_tx_failure_event_rep(&trx->mo, OSMO_EVT_MAJ_UKWN_MSG, - "unknown Formatted O&M " - "msg_type 0x%02x", - foh->msg_type); - } else - oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG, - "unknown Formatted O&M " - "msg_type 0x%02x", - foh->msg_type); + if (trx) + mo = &trx->mo; + oml_tx_failure_event_rep(mo, OSMO_EVT_MAJ_UKWN_MSG, "unknown Formatted O&M " + "msg_type 0x%02x", foh->msg_type); ret = oml_fom_ack_nack(msg, NM_NACK_MSGTYPE_INVAL); } @@ -1371,6 +1366,7 @@ static int down_mom(struct gsm_bts *bts, struct msgb *msg) { struct abis_om_hdr *oh = msgb_l2(msg); + struct gsm_abis_mo *mo = &bts->mo; struct abis_om_fom_hdr *foh; struct gsm_bts_trx *trx; uint8_t idstrlen = oh->data[0]; @@ -1414,14 +1410,10 @@ break; default: trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr); - if (trx) { - oml_tx_failure_event_rep(&trx->mo, OSMO_EVT_MAJ_UKWN_MSG, - "unknown Manufacturer O&M msg_type 0x%02x", - foh->msg_type); - } else - oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG, - "unknown Manufacturer O&M msg_type 0x%02x", - foh->msg_type); + if (trx) + mo = &trx->mo; + oml_tx_failure_event_rep(mo, OSMO_EVT_MAJ_UKWN_MSG, "unknown Manufacturer O&M " + "msg_type 0x%02x", foh->msg_type); ret = oml_fom_ack_nack(msg, NM_NACK_MSGTYPE_INVAL); } -- To view, visit https://gerrit.osmocom.org/12868 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ibe6c79e95405b13d041047549d2ffa39aa355eb2 Gerrit-Change-Number: 12868 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 20:02:15 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 20:02:15 +0000 Subject: Change in osmo-bts[master]: OML: Report short messages even for invalid TRX numbers in down_fom() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12869 ) Change subject: OML: Report short messages even for invalid TRX numbers in down_fom() ...................................................................... OML: Report short messages even for invalid TRX numbers in down_fom() Change-Id: I65b57d3fc714814db3ae3fd34398f307413fece8 --- M src/common/oml.c 1 file changed, 3 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, but someone else must approve Max: Looks good to me, approved diff --git a/src/common/oml.c b/src/common/oml.c index ad8ab81..96d9dd6 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1093,12 +1093,10 @@ int ret; if (msgb_l2len(msg) < sizeof(*foh)) { - LOGP(DOML, LOGL_NOTICE, "Formatted O&M message too short\n"); trx = gsm_bts_trx_num(bts, foh->obj_inst.trx_nr); - if (trx) { - oml_tx_failure_event_rep(&trx->mo, OSMO_EVT_MAJ_UKWN_MSG, - "Formatted O&M message too short"); - } + if (trx) + mo = &trx->mo; + oml_tx_failure_event_rep(mo, OSMO_EVT_MAJ_UKWN_MSG, "Formatted O&M message too short"); return -EIO; } -- To view, visit https://gerrit.osmocom.org/12869 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I65b57d3fc714814db3ae3fd34398f307413fece8 Gerrit-Change-Number: 12869 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 20:02:15 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 20:02:15 +0000 Subject: Change in osmo-bts[master]: OML: Use 'const struct abis_oml_mo *' whenever users only read In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12870 ) Change subject: OML: Use 'const struct abis_oml_mo *' whenever users only read ...................................................................... OML: Use 'const struct abis_oml_mo *' whenever users only read Try to constrain the code a bit further by making all read-only accesses use 'const *'. Change-Id: I5a61e6d1b4e5e083bb24017166186dc87d035cd0 --- M include/osmo-bts/oml.h M src/common/oml.c 2 files changed, 22 insertions(+), 22 deletions(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, but someone else must approve Max: Looks good to me, approved diff --git a/include/osmo-bts/oml.h b/include/osmo-bts/oml.h index 139464e..4dca2f8 100644 --- a/include/osmo-bts/oml.h +++ b/include/osmo-bts/oml.h @@ -14,11 +14,11 @@ struct msgb *oml_msgb_alloc(void); int oml_send_msg(struct msgb *msg, int is_mauf); -int oml_mo_send_msg(struct gsm_abis_mo *mo, struct msgb *msg, uint8_t msg_type); -int oml_mo_opstart_ack(struct gsm_abis_mo *mo); -int oml_mo_opstart_nack(struct gsm_abis_mo *mo, uint8_t nack_cause); -int oml_mo_statechg_ack(struct gsm_abis_mo *mo); -int oml_mo_statechg_nack(struct gsm_abis_mo *mo, uint8_t nack_cause); +int oml_mo_send_msg(const struct gsm_abis_mo *mo, struct msgb *msg, uint8_t msg_type); +int oml_mo_opstart_ack(const struct gsm_abis_mo *mo); +int oml_mo_opstart_nack(const struct gsm_abis_mo *mo, uint8_t nack_cause); +int oml_mo_statechg_ack(const struct gsm_abis_mo *mo); +int oml_mo_statechg_nack(const struct gsm_abis_mo *mo, uint8_t nack_cause); /* Change the state and send STATE CHG REP */ int oml_mo_state_chg(struct gsm_abis_mo *mo, int op_state, int avail_state); @@ -31,13 +31,13 @@ int success); /* Transmit STATE CHG REP even if there was no state change */ -int oml_tx_state_changed(struct gsm_abis_mo *mo); +int oml_tx_state_changed(const struct gsm_abis_mo *mo); -int oml_mo_tx_sw_act_rep(struct gsm_abis_mo *mo); +int oml_mo_tx_sw_act_rep(const struct gsm_abis_mo *mo); int oml_fom_ack_nack(struct msgb *old_msg, uint8_t cause); -int oml_mo_fom_ack_nack(struct gsm_abis_mo *mo, uint8_t orig_msg_type, +int oml_mo_fom_ack_nack(const struct gsm_abis_mo *mo, uint8_t orig_msg_type, uint8_t cause); /* Configure LAPDm T200 timers for this lchan according to OML */ diff --git a/src/common/oml.c b/src/common/oml.c index 96d9dd6..c98ba9c 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -67,7 +67,7 @@ } /* 3GPP TS 12.21 ? 8.8.2 */ -static int oml_tx_failure_event_rep(struct gsm_abis_mo *mo, uint16_t cause_value, +static int oml_tx_failure_event_rep(const struct gsm_abis_mo *mo, uint16_t cause_value, const char *fmt, ...) { struct msgb *nmsg; @@ -129,7 +129,7 @@ return abis_oml_sendmsg(msg); } -int oml_mo_send_msg(struct gsm_abis_mo *mo, struct msgb *msg, uint8_t msg_type) +int oml_mo_send_msg(const struct gsm_abis_mo *mo, struct msgb *msg, uint8_t msg_type) { struct abis_om_fom_hdr *foh; @@ -307,7 +307,7 @@ } /* 8.8.1 sending State Changed Event Report */ -int oml_tx_state_changed(struct gsm_abis_mo *mo) +int oml_tx_state_changed(const struct gsm_abis_mo *mo) { struct msgb *nmsg; @@ -366,7 +366,7 @@ /* Send an ACK or NACK response from 'mo' to BSC, deriving message * type from 'orig_msg_type'. ACK is sent if cause == 0; NACK otherwise */ -int oml_mo_fom_ack_nack(struct gsm_abis_mo *mo, uint8_t orig_msg_type, +int oml_mo_fom_ack_nack(const struct gsm_abis_mo *mo, uint8_t orig_msg_type, uint8_t cause) { struct msgb *msg; @@ -386,7 +386,7 @@ return oml_mo_send_msg(mo, msg, new_msg_type); } -int oml_mo_statechg_ack(struct gsm_abis_mo *mo) +int oml_mo_statechg_ack(const struct gsm_abis_mo *mo) { struct msgb *msg; int rc = 0; @@ -405,17 +405,17 @@ return oml_tx_state_changed(mo); } -int oml_mo_statechg_nack(struct gsm_abis_mo *mo, uint8_t nack_cause) +int oml_mo_statechg_nack(const struct gsm_abis_mo *mo, uint8_t nack_cause) { return oml_mo_fom_ack_nack(mo, NM_MT_CHG_ADM_STATE, nack_cause); } -int oml_mo_opstart_ack(struct gsm_abis_mo *mo) +int oml_mo_opstart_ack(const struct gsm_abis_mo *mo) { return oml_mo_fom_ack_nack(mo, NM_MT_OPSTART, 0); } -int oml_mo_opstart_nack(struct gsm_abis_mo *mo, uint8_t nack_cause) +int oml_mo_opstart_nack(const struct gsm_abis_mo *mo, uint8_t nack_cause) { return oml_mo_fom_ack_nack(mo, NM_MT_OPSTART, nack_cause); } @@ -463,7 +463,7 @@ */ /* 8.3.7 sending SW Activated Report */ -int oml_mo_tx_sw_act_rep(struct gsm_abis_mo *mo) +int oml_mo_tx_sw_act_rep(const struct gsm_abis_mo *mo) { struct msgb *nmsg; @@ -1067,7 +1067,7 @@ static inline bool report_bts_number_incorrect(struct gsm_bts *bts, const struct abis_om_fom_hdr *foh, bool is_formatted) { struct gsm_bts_trx *trx; - struct gsm_abis_mo *mo = &bts->mo; + const struct gsm_abis_mo *mo = &bts->mo; const char *form = is_formatted ? "Unexpected BTS %d in formatted O&M %s (exp. 0 or 0xFF)" : "Unexpected BTS %d in manufacturer O&M %s (exp. 0 or 0xFF)"; @@ -1089,7 +1089,7 @@ { struct abis_om_fom_hdr *foh = msgb_l3(msg); struct gsm_bts_trx *trx; - struct gsm_abis_mo *mo = &bts->mo; + const struct gsm_abis_mo *mo = &bts->mo; int ret; if (msgb_l2len(msg) < sizeof(*foh)) { @@ -1268,7 +1268,7 @@ return 0; } -static int oml_ipa_mo_set_attr(struct gsm_bts *bts, struct gsm_abis_mo *mo, +static int oml_ipa_mo_set_attr(struct gsm_bts *bts, const struct gsm_abis_mo *mo, void *obj, struct tlv_parsed *tp) { int rc; @@ -1293,7 +1293,7 @@ static int oml_ipa_set_attr(struct gsm_bts *bts, struct msgb *msg) { struct abis_om_fom_hdr *foh = msgb_l3(msg); - struct gsm_abis_mo *mo; + const struct gsm_abis_mo *mo; struct tlv_parsed tp; void *obj; int rc; @@ -1364,7 +1364,7 @@ static int down_mom(struct gsm_bts *bts, struct msgb *msg) { struct abis_om_hdr *oh = msgb_l2(msg); - struct gsm_abis_mo *mo = &bts->mo; + const struct gsm_abis_mo *mo = &bts->mo; struct abis_om_fom_hdr *foh; struct gsm_bts_trx *trx; uint8_t idstrlen = oh->data[0]; -- To view, visit https://gerrit.osmocom.org/12870 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5a61e6d1b4e5e083bb24017166186dc87d035cd0 Gerrit-Change-Number: 12870 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 20:02:16 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 20:02:16 +0000 Subject: Change in osmo-bts[master]: OML: Reject segmented OML messages In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12871 ) Change subject: OML: Reject segmented OML messages ...................................................................... OML: Reject segmented OML messages TS 12.21 describes segmenting of OML messages using placement fist/middle/last and the "sequence' number of the OML header. We don't implement this and hence must ignore or reject any related messages. Before this patch however, we simply treated such segments as if they were a complete OML message. Let's fix that. Change-Id: Idd42cf4edc1bf9ab366853bd9b0f7afd9c060910 Closes: OS#3795 --- M src/common/oml.c 1 file changed, 9 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/common/oml.c b/src/common/oml.c index c98ba9c..d389e29 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1424,7 +1424,7 @@ struct abis_om_hdr *oh = msgb_l2(msg); int ret = 0; - if (msgb_l2len(msg) < 1) { + if (msgb_l2len(msg) < sizeof(*oh)) { oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG, "OML message too short\n"); msgb_free(msg); @@ -1432,6 +1432,14 @@ } msg->l3h = (unsigned char *)oh + sizeof(*oh); + /* We don't implement de-segmentation of segmented OML messages */ + if (oh->placement != ABIS_OM_PLACEMENT_ONLY || oh->sequence != 0) { + oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG, + "Unsupported segmented O&M message\n"); + msgb_free(msg); + return -EIO; + } + switch (oh->mdisc) { case ABIS_OM_MDISC_FOM: if (msgb_l2len(msg) < sizeof(*oh)) { -- To view, visit https://gerrit.osmocom.org/12871 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Idd42cf4edc1bf9ab366853bd9b0f7afd9c060910 Gerrit-Change-Number: 12871 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 20:11:24 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 12 Feb 2019 20:11:24 +0000 Subject: Change in osmo-bts[master]: OML: Properly reject short messages and truncate over-long messages In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12873 ) Change subject: OML: Properly reject short messages and truncate over-long messages ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib98f0d7c2cff9172714ed18667c02564540d65d7 Gerrit-Change-Number: 12873 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 12 Feb 2019 20:11:24 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 20:11:35 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 12 Feb 2019 20:11:35 +0000 Subject: Change in osmo-bts[master]: OML: Work around OsmoBSC sending "GET ATTRIBUTES" with short length In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12891 ) Change subject: OML: Work around OsmoBSC sending "GET ATTRIBUTES" with short length ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12891 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifa24e9e2c71feb2c597557807d675438c2825b2d Gerrit-Change-Number: 12891 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 12 Feb 2019 20:11:35 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 20:13:14 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 12 Feb 2019 20:13:14 +0000 Subject: Change in osmo-bts[master]: OML: Store merged attributes of IPA OML Managed Objects In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12893 ) Change subject: OML: Store merged attributes of IPA OML Managed Objects ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12893 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I75ebda46da9c1fcecc484311bf3833f31c536ee1 Gerrit-Change-Number: 12893 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 12 Feb 2019 20:13:14 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 20:46:21 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 20:46:21 +0000 Subject: Change in osmo-bts[master]: OML: Properly reject short messages and truncate over-long messages In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12873 ) Change subject: OML: Properly reject short messages and truncate over-long messages ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib98f0d7c2cff9172714ed18667c02564540d65d7 Gerrit-Change-Number: 12873 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 12 Feb 2019 20:46:21 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 20:46:24 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 20:46:24 +0000 Subject: Change in osmo-bts[master]: OML: Properly reject short messages and truncate over-long messages In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12873 ) Change subject: OML: Properly reject short messages and truncate over-long messages ...................................................................... OML: Properly reject short messages and truncate over-long messages For OML, what matters is the length indicated in the OML message header. If we don't have sufficient bytes, reject the message and send a failure event report. If we have more bytes, truncate the message at the number of bytes indicated in the OML length header. Change-Id: Ib98f0d7c2cff9172714ed18667c02564540d65d7 --- M src/common/oml.c 1 file changed, 23 insertions(+), 0 deletions(-) Approvals: Pau Espin Pedrol: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/oml.c b/src/common/oml.c index d389e29..8bc31f8 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1087,6 +1087,7 @@ static int down_fom(struct gsm_bts *bts, struct msgb *msg) { + struct abis_om_hdr *oh = msgb_l2(msg); struct abis_om_fom_hdr *foh = msgb_l3(msg); struct gsm_bts_trx *trx; const struct gsm_abis_mo *mo = &bts->mo; @@ -1100,6 +1101,13 @@ return -EIO; } + if (msgb_l3len(msg) > oh->length) { + LOGP(DOML, LOGL_NOTICE, "OML message with %u extraneous bytes at end: %s\n", + msgb_l3len(msg) - oh->length, msgb_hexdump(msg)); + /* remove extra bytes at end */ + msgb_l3trim(msg, oh->length); + } + if (report_bts_number_incorrect(bts, foh, true)) return oml_fom_ack_nack(msg, NM_NACK_BTSNR_UNKN); @@ -1383,6 +1391,13 @@ return -EINVAL; } + if (msgb_l3len(msg) > oh->length + 1 + oh->data[0]) { + LOGP(DOML, LOGL_NOTICE, "OML message with %u extraneous bytes at end: %s\n", + msgb_l3len(msg) - oh->length, msgb_hexdump(msg)); + /* remove extra bytes at end */ + msgb_l3trim(msg, oh->length); + } + msg->l3h = oh->data + 1 + idstrlen; foh = (struct abis_om_fom_hdr *) msg->l3h; @@ -1440,6 +1455,14 @@ return -EIO; } + if (msgb_l3len(msg) < oh->length) { + oml_tx_failure_event_rep(&bts->mo, OSMO_EVT_MAJ_UKWN_MSG, + "Short OML message: %u < %u\n", + msgb_l3len(msg), oh->length); + msgb_free(msg); + return -EIO; + } + switch (oh->mdisc) { case ABIS_OM_MDISC_FOM: if (msgb_l2len(msg) < sizeof(*oh)) { -- To view, visit https://gerrit.osmocom.org/12873 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib98f0d7c2cff9172714ed18667c02564540d65d7 Gerrit-Change-Number: 12873 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 20:46:36 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 20:46:36 +0000 Subject: Change in osmo-bts[master]: OML: Work around OsmoBSC sending "GET ATTRIBUTES" with short length In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12891 ) Change subject: OML: Work around OsmoBSC sending "GET ATTRIBUTES" with short length ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12891 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifa24e9e2c71feb2c597557807d675438c2825b2d Gerrit-Change-Number: 12891 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 12 Feb 2019 20:46:36 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 20:46:37 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 20:46:37 +0000 Subject: Change in osmo-bts[master]: OML: Work around OsmoBSC sending "GET ATTRIBUTES" with short length In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12891 ) Change subject: OML: Work around OsmoBSC sending "GET ATTRIBUTES" with short length ...................................................................... OML: Work around OsmoBSC sending "GET ATTRIBUTES" with short length OsmoBSC used to have a bug in encoding the "GET ATTRIBUTES" OML message, resulting in the actual message length being three bytes longer than the encoded length value. As in Ib98f0d7c2cff9172714ed18667c02564540d65d7 we have introduced proper consistency checks on length values, all "GET ATTRIBUTES" from OsmoBSC version suntil today will fail. This patch introduces a work-around to remain compatible with old OsmoBSC while still keeping the consistency checks for all other messages. Change-Id: Ifa24e9e2c71feb2c597557807d675438c2825b2d Related: OS#3799 --- M src/common/oml.c 1 file changed, 11 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/common/oml.c b/src/common/oml.c index 8bc31f8..e544b57 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1102,10 +1102,17 @@ } if (msgb_l3len(msg) > oh->length) { - LOGP(DOML, LOGL_NOTICE, "OML message with %u extraneous bytes at end: %s\n", - msgb_l3len(msg) - oh->length, msgb_hexdump(msg)); - /* remove extra bytes at end */ - msgb_l3trim(msg, oh->length); + if (oh->mdisc == ABIS_OM_MDISC_FOM && oh->data[0] == NM_MT_GET_ATTR && + msgb_l3len(msg) == oh->length + 3) { + /* work-around a bug present in OsmoBSC before February 2019 */ + DEBUGP(DOML, "GET ATTR with off-by-3 length: Fixing up for OS#3799\n"); + oh->length += 3; + } else { + LOGP(DOML, LOGL_NOTICE, "OML message with %u extraneous bytes at end: %s\n", + msgb_l3len(msg) - oh->length, msgb_hexdump(msg)); + /* remove extra bytes at end */ + msgb_l3trim(msg, oh->length); + } } if (report_bts_number_incorrect(bts, foh, true)) -- To view, visit https://gerrit.osmocom.org/12891 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ifa24e9e2c71feb2c597557807d675438c2825b2d Gerrit-Change-Number: 12891 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 20:48:15 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 20:48:15 +0000 Subject: Change in osmocom-bb[master]: firmware/board/pirelli_dpl10: fix ASIC_CONF_REG setting In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12882 ) Change subject: firmware/board/pirelli_dpl10: fix ASIC_CONF_REG setting ...................................................................... Patch Set 1: Code-Review+1 I never used this type of phone, so I cannot tell whether wrong or right. -- To view, visit https://gerrit.osmocom.org/12882 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I099e13800b7821a8fb274c5264c9823153afe564 Gerrit-Change-Number: 12882 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: steve-m Gerrit-CC: Max Gerrit-Comment-Date: Tue, 12 Feb 2019 20:48:15 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 20:48:48 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 20:48:48 +0000 Subject: Change in osmocom-bb[master]: firmware/board/gta0x: fix GPIO and ASIC_CONF_REG configuration In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12883 ) Change subject: firmware/board/gta0x: fix GPIO and ASIC_CONF_REG configuration ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12883 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I306ffacb623d2b06a188f84026ccadab408d1676 Gerrit-Change-Number: 12883 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Tue, 12 Feb 2019 20:48:48 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 20:49:25 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 20:49:25 +0000 Subject: Change in osmocom-bb[master]: firmware/compal: indicate both DCS and PCS Rx ports as connected In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12884 ) Change subject: firmware/compal: indicate both DCS and PCS Rx ports as connected ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12884 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I620084c33ad165faffbbfc45923faedad77aafb2 Gerrit-Change-Number: 12884 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Tue, 12 Feb 2019 20:49:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 20:50:53 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 20:50:53 +0000 Subject: Change in osmocom-bb[master]: firmware/lib: introduce TIFFS filesystem support In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12885 ) Change subject: firmware/lib: introduce TIFFS filesystem support ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12885 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If6e212baeb10953129fb0d5253d263567f5e12d6 Gerrit-Change-Number: 12885 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Tue, 12 Feb 2019 20:50:53 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 20:51:11 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 20:51:11 +0000 Subject: Change in osmocom-bb[master]: firmware/board/compal_e99: enable reading the second half of flash In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12886 ) Change subject: firmware/board/compal_e99: enable reading the second half of flash ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12886 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia677ebdc1ada9fd41daf211fd9da06cd118365fa Gerrit-Change-Number: 12886 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Tue, 12 Feb 2019 20:51:11 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 20:54:59 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 12 Feb 2019 20:54:59 +0000 Subject: Change in osmocom-bb[master]: firmware/board: introduce the new FCDEV3B target In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12888 ) Change subject: firmware/board: introduce the new FCDEV3B target ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I09bd35a18d3ea094000050169a62fd82ba6eccfe Gerrit-Change-Number: 12888 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Tue, 12 Feb 2019 20:54:59 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 12 22:33:14 2019 From: gerrit-no-reply at lists.osmocom.org (steve-m) Date: Tue, 12 Feb 2019 22:33:14 +0000 Subject: Change in osmocom-bb[master]: firmware/board/pirelli_dpl10: fix ASIC_CONF_REG setting In-Reply-To: References: Message-ID: steve-m has posted comments on this change. ( https://gerrit.osmocom.org/12882 ) Change subject: firmware/board/pirelli_dpl10: fix ASIC_CONF_REG setting ...................................................................... Patch Set 1: +1, looks good to me. -- To view, visit https://gerrit.osmocom.org/12882 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I099e13800b7821a8fb274c5264c9823153afe564 Gerrit-Change-Number: 12882 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: steve-m Gerrit-CC: Max Gerrit-Comment-Date: Tue, 12 Feb 2019 22:33:14 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 09:34:14 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Feb 2019 09:34:14 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_80.c: use gsm0480_create_release_complete() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12840 ) Change subject: libmsc/gsm_04_80.c: use gsm0480_create_release_complete() ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12840 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id2975c3383f18e83124ba38927c03980d67ddadb Gerrit-Change-Number: 12840 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 13 Feb 2019 09:34:14 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 09:37:17 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Feb 2019 09:37:17 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_80.c: add msc_send_ussd_release_complete_cause() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12843 ) Change subject: libmsc/gsm_04_80.c: add msc_send_ussd_release_complete_cause() ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12843 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3b9e8e4f473d113d5b9e9e5d33f7914202077203 Gerrit-Change-Number: 12843 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 13 Feb 2019 09:37:17 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Wed Feb 13 09:41:58 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 13 Feb 2019 09:41:58 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-trx_=C2=BB_--with-ss?= =?UTF-8?Q?e,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#879?= Message-ID: <360101757.212.1550050918658.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 107.30 KB...] Searching INPUT for files to process... Reading and parsing tag files Parsing files Building group list... Building directory list... Building namespace list... Building file list... Building class list... Associating documentation with classes... Computing nesting relations for classes... Building example list... Searching for enumerations... Searching for documented typedefs... Searching for members imported via using declarations... Searching for included using directives... Searching for documented variables... Building interface member list... Building member list... Searching for friends... Searching for documented defines... Computing class inheritance relations... Computing class usage relations... Flushing cached template relations that have become invalid... Computing class relations... Add enum values to enums... Searching for member function documentation... Creating members for template instances... Building page list... Search for main page... Computing page relations... Determining the scope of groups... Sorting lists... Freeing entry tree Determining which enums are documented Computing member relations... Building full member lists recursively... Adding members to member groups. Computing member references... Inheriting documentation... Generating disk names... Adding source references... Adding xrefitems... Sorting member lists... Computing dependencies between directories... Generating citations page... Counting data structures... Resolving user defined references... Finding anchors and sections in the documentation... Transferring function references... Combining using relations... Adding members to index pages... Generating style sheet... Generating search indices... Generating example documentation... Generating file sources... Generating file documentation... Generating page documentation... Generating group documentation... Generating class documentation... Generating namespace index... Generating graph info page... Generating directory documentation... Generating index page... Generating page index... Generating module index... Generating namespace index... Generating namespace member index... Generating annotated compound index... Generating alphabetical compound index... Generating hierarchical class index... Generating graphical class hierarchy... Generating member index... Generating file index... Generating file member index... Generating example index... finalizing index lists... writing tag file... Running dot... Running dot for graph 1/1 lookup cache used 0/65536 hits=0 misses=0 finished... make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_guide.html /usr/bin/install -c -m 644 ../README ' cp -r html make[5]: Leaving directory ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in firmware make[2]: Entering directory ' Making install in include make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_i2c_addr.h usrp_spi_defs.h fpga_regs_common.h fpga_regs_standard.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' Making install in lib make[3]: Entering directory ' sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c delay.c -o delay.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c fx2utils.c -o fx2utils.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c i2c.c -o i2c.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c isr.c -o isr.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c timer.c -o timer.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c usb_common.c -o usb_common.rel timer.c:45: warning 158: overflow in implicit constant conversion usb_common.c:65: warning 196: pointer target lost const qualifier usb_common.c:66: warning 196: pointer target lost const qualifier usb_common.c:67: warning 196: pointer target lost const qualifier usb_common.c:68: warning 196: pointer target lost const qualifier usb_common.c:71: warning 196: pointer target lost const qualifier usb_common.c:72: warning 196: pointer target lost const qualifier usb_common.c:73: warning 196: pointer target lost const qualifier usb_common.c:74: warning 196: pointer target lost const qualifier isr.c:73: warning 94: comparison is always false due to limited range of data type -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'int fixed' to type 'volatile-unsigned-char xdata* xdata' isr.c:100: warning 94: comparison is always false due to limited range of data type usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:217: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:226: warning 126: unreachable code usb_common.c:184: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG usb_common.c:315: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG rm -f libfx2.lib touch libfx2.lib for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done make[3]: Leaving directory ' Making install in src make[3]: Entering directory ' Making install in common make[4]: Entering directory ' make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory ' make[4]: Leaving directory ' Making install in usrp2 make[4]: Entering directory ' test -f `basename 'eeprom_boot.a51'` || ln -s 'eeprom_boot.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_init.rel `test -f 'eeprom_init.c' || echo './'`eeprom_init.c test -f `basename '_startup.a51'` || ln -s '_startup.a51' . test -f `basename 'vectors.a51'` || ln -s 'vectors.a51' . srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_common.rel `test -f 'usrp_common.c' || echo './'`usrp_common.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o board_specific.rel `test -f 'board_specific.c' || echo './'`board_specific.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_load.rel `test -f 'fpga_load.c' || echo './'`fpga_load.c test -f ../common/`basename 'eeprom_boot.a51'` -o \ \! -f `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` \ || ln -s `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` ../common/`basename 'eeprom_boot.a51'` test -f ../common/`basename 'vectors.a51'` -o \ \! -f `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` \ || ln -s `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` ../common/`basename 'vectors.a51'` test -f ../common/`basename '_startup.a51'` -o \ \! -f `dirname '_startup.a51'`/../common/`basename '_startup.a51'` \ || ln -s `dirname '_startup.a51'`/../common/`basename '_startup.a51'` ../common/`basename '_startup.a51'` sdas8051 -plosgff `basename 'eeprom_boot.a51'` sdas8051 -plosgff `basename '_startup.a51'` sdas8051 -plosgff `basename 'vectors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_rev2.rel `test -f 'fpga_rev2.c' || echo './'`fpga_rev2.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o init_gpif.rel `test -f 'init_gpif.c' || echo './'`init_gpif.c board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'bits' board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'mask' ../common/fpga_load.c:139: warning 85: in function clock_out_config_byte unreferenced function argument : 'bits' srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h ../common/fpga_load.c:181: warning 126: unreachable code test -f `basename 'usb_descriptors.a51'` || ln -s 'usb_descriptors.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o spi.rel `test -f 'spi.c' || echo './'`spi.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_io.rel `test -f 'eeprom_io.c' || echo './'`eeprom_io.c test -f ../common/`basename 'usb_descriptors.a51'` -o \ \! -f `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` \ || ln -s `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` ../common/`basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o eeprom_boot.ihx eeprom_boot.rel eeprom_init.rel _startup.rel sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_main.rel `test -f 'usrp_main.c' || echo './'`usrp_main.c sdas8051 -plosgff `basename 'usb_descriptors.a51'` ./../common/build_eeprom.py -p -r2 eeprom_boot.ihx > burn-usrp2-eeprom ./../common/build_eeprom.py -p -r4 eeprom_boot.ihx > burn-usrp4-eeprom sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_gpif.rel `test -f 'usrp_gpif.c' || echo './'`usrp_gpif.c usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion chmod +x burn-usrp2-eeprom chmod +x burn-usrp4-eeprom usrp_main.c:223: warning 112: function 'setup_flowstate_common' implicit declaration usrp_main.c:260: warning 112: function 'setup_flowstate_write' implicit declaration usrp_main.c:282: warning 112: function 'setup_flowstate_read' implicit declaration usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o std.ihx vectors.rel usrp_main.rel usrp_common.rel board_specific.rel fpga_load.rel fpga_rev2.rel init_gpif.rel usrp_gpif.rel usb_descriptors.rel spi.rel eeprom_io.rel _startup.rel ?ASlink-Warning-Undefined Global '_setup_flowstate_read' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_write' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_common' referenced by module 'usrp_main' Makefile:688: recipe for target 'std.ihx' failed make[4]: *** [std.ihx] Error 1 make[4]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[3]: *** [install-recursive] Error 1 make[3]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[2]: *** [install-recursive] Error 1 make[2]: Leaving directory ' Makefile:628: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:925: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Wed Feb 13 10:59:07 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 13 Feb 2019 10:59:07 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-msc_=C2=BB_--enable-i?= =?UTF-8?Q?u,0,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#8679?= Message-ID: <167481891.213.1550055547239.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 23.08 KB...] CC bits.lo CC bitcomp.lo CC counter.lo CC fsm.lo CC write_queue.lo CC utils.lo CC socket.lo CC logging.lo CC logging_syslog.lo CC rate_ctr.lo CC logging_gsmtap.lo CC gsmtap_util.lo CC crc16.lo CC panic.lo CC backtrace.lo CC conv.lo CC application.lo CC rbtree.lo CC strrb.lo CC loggingrb.lo CC crc8gen.lo CC crc16gen.lo CC crc32gen.lo CC crc64gen.lo CC macaddr.lo CC stat_item.lo CC stats.lo CC stats_statsd.lo CC prim.lo CC conv_acc.lo CC conv_acc_generic.lo CC sercomm.lo CC prbs.lo CC isdnhdlc.lo CC conv_acc_sse.lo CC tdef.lo CC conv_acc_sse_avx.lo CC plugin.lo CC msgfile.lo CC serial.lo CCLD libosmocore.la make[4]: Entering directory '/build/deps/libosmocore/src' make[4]: Nothing to be done for 'install-data-am'. /bin/mkdir -p '/build/deps/install/stow/libosmocore/lib' /bin/bash ../libtool --mode=install /usr/bin/install -c libosmocore.la '/build/deps/install/stow/libosmocore/lib' libtool: install: /usr/bin/install -c .libs/libosmocore.so.12.0.1 /build/deps/install/stow/libosmocore/lib/libosmocore.so.12.0.1 libtool: install: (cd /build/deps/install/stow/libosmocore/lib && { ln -s -f libosmocore.so.12.0.1 libosmocore.so.12 || { rm -f libosmocore.so.12 && ln -s libosmocore.so.12.0.1 libosmocore.so.12; }; }) libtool: install: (cd /build/deps/install/stow/libosmocore/lib && { ln -s -f libosmocore.so.12.0.1 libosmocore.so || { rm -f libosmocore.so && ln -s libosmocore.so.12.0.1 libosmocore.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmocore.lai /build/deps/install/stow/libosmocore/lib/libosmocore.la libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/build_bin:/sbin" ldconfig -n /build/deps/install/stow/libosmocore/lib ---------------------------------------------------------------------- Libraries have been installed in: /build/deps/install/stow/libosmocore/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[4]: Leaving directory '/build/deps/libosmocore/src' make[3]: Leaving directory '/build/deps/libosmocore/src' make[2]: Leaving directory '/build/deps/libosmocore/src' Making install in src/vty make[2]: Entering directory '/build/deps/libosmocore/src/vty' CC buffer.lo CC command.lo CC logging_vty.lo CC telnet_interface.lo CC utils.lo CC vty.lo CC vector.lo CC stats_vty.lo CC talloc_ctx_vty.lo CC fsm_vty.lo CC tdef_vty.lo CCLD libosmovty.la make[3]: Entering directory '/build/deps/libosmocore/src/vty' make[3]: Nothing to be done for 'install-data-am'. /bin/mkdir -p '/build/deps/install/stow/libosmocore/lib' /bin/bash ../../libtool --mode=install /usr/bin/install -c libosmovty.la '/build/deps/install/stow/libosmocore/lib' libtool: install: warning: relinking `libosmovty.la' libtool: install: (cd /build/deps/libosmocore/src/vty; /bin/bash /build/deps/libosmocore/libtool --silent --tag CC --mode=relink gcc -Wall -g -O2 -DBUILDING_LIBOSMOCORE -Wall -version-info 6:0:2 -no-undefined -o libosmovty.la -rpath /build/deps/install/stow/libosmocore/lib buffer.lo command.lo vty.lo vector.lo utils.lo telnet_interface.lo logging_vty.lo stats_vty.lo fsm_vty.lo talloc_ctx_vty.lo tdef_vty.lo ../../src/libosmocore.la -ltalloc ) libtool: install: /usr/bin/install -c .libs/libosmovty.so.4.2.0T /build/deps/install/stow/libosmocore/lib/libosmovty.so.4.2.0 libtool: install: (cd /build/deps/install/stow/libosmocore/lib && { ln -s -f libosmovty.so.4.2.0 libosmovty.so.4 || { rm -f libosmovty.so.4 && ln -s libosmovty.so.4.2.0 libosmovty.so.4; }; }) libtool: install: (cd /build/deps/install/stow/libosmocore/lib && { ln -s -f libosmovty.so.4.2.0 libosmovty.so || { rm -f libosmovty.so && ln -s libosmovty.so.4.2.0 libosmovty.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmovty.lai /build/deps/install/stow/libosmocore/lib/libosmovty.la libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/build_bin:/sbin" ldconfig -n /build/deps/install/stow/libosmocore/lib ---------------------------------------------------------------------- Libraries have been installed in: /build/deps/install/stow/libosmocore/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[3]: Leaving directory '/build/deps/libosmocore/src/vty' make[2]: Leaving directory '/build/deps/libosmocore/src/vty' Making install in src/codec make[2]: Entering directory '/build/deps/libosmocore/src/codec' CC gsm610.lo CC gsm660.lo CC ecu_fr.lo CC gsm620.lo CC gsm690.lo CCLD libosmocodec.la make[3]: Entering directory '/build/deps/libosmocore/src/codec' make[3]: Nothing to be done for 'install-data-am'. /bin/mkdir -p '/build/deps/install/stow/libosmocore/lib' /bin/bash ../../libtool --mode=install /usr/bin/install -c libosmocodec.la '/build/deps/install/stow/libosmocore/lib' libtool: install: warning: relinking `libosmocodec.la' libtool: install: (cd /build/deps/libosmocore/src/codec; /bin/bash /build/deps/libosmocore/libtool --silent --tag CC --mode=relink gcc -Wall -g -O2 -DBUILDING_LIBOSMOCORE -Wall -version-info 1:1:1 -no-undefined -o libosmocodec.la -rpath /build/deps/install/stow/libosmocore/lib gsm610.lo gsm620.lo gsm660.lo gsm690.lo ecu_fr.lo ../../src/libosmocore.la ) libtool: install: /usr/bin/install -c .libs/libosmocodec.so.0.1.1T /build/deps/install/stow/libosmocore/lib/libosmocodec.so.0.1.1 libtool: install: (cd /build/deps/install/stow/libosmocore/lib && { ln -s -f libosmocodec.so.0.1.1 libosmocodec.so.0 || { rm -f libosmocodec.so.0 && ln -s libosmocodec.so.0.1.1 libosmocodec.so.0; }; }) libtool: install: (cd /build/deps/install/stow/libosmocore/lib && { ln -s -f libosmocodec.so.0.1.1 libosmocodec.so || { rm -f libosmocodec.so && ln -s libosmocodec.so.0.1.1 libosmocodec.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmocodec.lai /build/deps/install/stow/libosmocore/lib/libosmocodec.la libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/build_bin:/sbin" ldconfig -n /build/deps/install/stow/libosmocore/lib ---------------------------------------------------------------------- Libraries have been installed in: /build/deps/install/stow/libosmocore/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[3]: Leaving directory '/build/deps/libosmocore/src/codec' make[2]: Leaving directory '/build/deps/libosmocore/src/codec' Making install in src/gsm make[2]: Entering directory '/build/deps/libosmocore/src/gsm' GEN gsm0503_conv.c Generating convolutional codes... Generate 'xcch' definition Generate 'rach' definition Generate 'rach_ext' definition Generate 'sch' definition Generate 'cs2' definition Generate 'cs3' definition Generate 'cs2_np' definition Generate 'cs3_np' definition Generate 'tch_afs_12_2' definition Generate 'tch_afs_10_2' definition Generate 'tch_afs_7_95' definition Generate 'tch_afs_7_4' definition Generate 'tch_afs_6_7' definition Generate 'tch_afs_5_9' definition Generate 'tch_afs_5_15' definition Generate 'tch_afs_4_75' definition Generate 'tch_fr' definition Generate 'tch_hr' definition Generate 'tch_ahs_7_95' definition Generate 'tch_ahs_7_4' definition Generate 'tch_ahs_6_7' definition Generate 'tch_ahs_5_9' definition Generate 'tch_ahs_5_15' definition Generate 'tch_ahs_4_75' definition Generate 'mcs1_dl_hdr' definition Generate 'mcs1_ul_hdr' definition Generate 'mcs1' definition Generate 'mcs2' definition Generate 'mcs3' definition Generate 'mcs4' definition Generate 'mcs5_dl_hdr' definition Generate 'mcs5_ul_hdr' definition Generate 'mcs5' definition Generate 'mcs6' definition Generate 'mcs7_dl_hdr' definition Generate 'mcs7_ul_hdr' definition Generate 'mcs7' definition Generate 'mcs8' definition Generate 'mcs9' definition Generation complete. make install-am make[3]: Entering directory '/build/deps/libosmocore/src/gsm' CC rxlev_stat.lo CC a5.lo CC tlv_parser.lo CC comp128.lo CC comp128v23.lo CC gsm_utils.lo CC rsl.lo CC gsm48.lo gsm_utils.c:116:9: note: #pragma message: including GnuTLS for getrandom fallback. #pragma message ("including GnuTLS for getrandom fallback.") ^ CC gsm48_arfcn_range_encode.lo CC gsm48_ie.lo CC gsm0808.lo CC sysinfo.lo CC gprs_cipher_core.lo CC gprs_rlc.lo CC gsm0480.lo CC abis_nm.lo CC gsm0502.lo CC gsm0411_utils.lo CC gsm0411_smc.lo CC gsm0411_smr.lo CC gsm0414.lo CC lapd_core.lo CC lapdm.lo CC kasumi.lo CC gsm29205.lo CC gsm_04_08_gprs.lo CC auth_core.lo CC auth_comp128v1.lo CC auth_comp128v23.lo CC auth_milenage.lo /bin/bash: line 2: 6170 Segmentation fault (core dumped) /bin/bash ../../libtool --silent --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include -I/usr/include/p11-kit-1 -DBUILDING_LIBOSMOCORE -Wall -Wall -g -O2 -DBUILDING_LIBOSMOCORE -Wall -MT auth_milenage.lo -MD -MP -MF $depbase.Tpo -c -o auth_milenage.lo auth_milenage.c Makefile:588: recipe for target 'auth_milenage.lo' failed make[3]: *** [auth_milenage.lo] Error 139 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory '/build/deps/libosmocore/src/gsm' Makefile:693: recipe for target 'install' failed make[2]: Leaving directory '/build/deps/libosmocore/src/gsm' make[2]: *** [install] Error 2 make[1]: *** [install-recursive] Error 1 Makefile:614: recipe for target 'install-recursive' failed make[1]: Leaving directory '/build/deps/libosmocore' make: *** [install] Error 2 Makefile:913: recipe for target 'install' failed Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Wed Feb 13 11:54:15 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 13 Feb 2019 11:54:15 +0000 Subject: Change in osmocom-bb[master]: firmware/board/compal: indicate both DCS and PCS Rx ports as connected In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12884 to look at the new patch set (#2). Change subject: firmware/board/compal: indicate both DCS and PCS Rx ports as connected ...................................................................... firmware/board/compal: indicate both DCS and PCS Rx ports as connected Each given Mot C1xx phone is made either for 900+1800 MHz, in which case only the DCS Rx port is connected, or for 850+1900 MHz, in which case only the PCS Rx port is connected. Let's tell the TRF6151 driver that both DCS and PCS ports are connected, so that the same binary build can be used on both EU-band and US-band C1xx phones. If one needs to tune the TRF6151 receiver out of spec, or at least outside of the DCS/PCS Rx SAW filter's legitimate passband (or if the SAW filter was changed or removed), then the rffe_get_rx_ports() function might be changed to indicate which Rx port is physically connected: PORT_DCS1800 only or PORT_PCS1900 only. Change-Id: I620084c33ad165faffbbfc45923faedad77aafb2 --- M src/target/firmware/board/compal/rffe_dualband.c M src/target/firmware/board/compal_e86/rffe_dualband_e86.c 2 files changed, 44 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/84/12884/2 -- To view, visit https://gerrit.osmocom.org/12884 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I620084c33ad165faffbbfc45923faedad77aafb2 Gerrit-Change-Number: 12884 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 11:54:15 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 13 Feb 2019 11:54:15 +0000 Subject: Change in osmocom-bb[master]: firmware/board: introduce new FCDEV3B (FreeCalypso) target In-Reply-To: References: Message-ID: Hello Max, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12888 to look at the new patch set (#3). Change subject: firmware/board: introduce new FCDEV3B (FreeCalypso) target ...................................................................... firmware/board: introduce new FCDEV3B (FreeCalypso) target FCDEV3B (stands for "FreeCalypso development board, triband") is a GSM mobile station development board by FreeCalypso project. The board features the same legendary TI Calypso GSM MS chipset that was used in commercial GSM/GPRS modems such as Openmoko's, and functions as a standalone (or "bare") GSM modem. For more information, please see the project's web side: https://www.freecalypso.org/fcdev3b.html. Change-Id: I09bd35a18d3ea094000050169a62fd82ba6eccfe Related: OS#3581 --- M src/target/firmware/Makefile A src/target/firmware/board/fcdev3b/init.c 2 files changed, 157 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/88/12888/3 -- To view, visit https://gerrit.osmocom.org/12888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I09bd35a18d3ea094000050169a62fd82ba6eccfe Gerrit-Change-Number: 12888 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 11:54:15 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 13 Feb 2019 11:54:15 +0000 Subject: Change in osmocom-bb[master]: firmware/lib: introduce TIFFS filesystem support In-Reply-To: References: Message-ID: Hello Max, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12885 to look at the new patch set (#2). Change subject: firmware/lib: introduce TIFFS filesystem support ...................................................................... firmware/lib: introduce TIFFS filesystem support All known TI GSM firmwares implement some kind of flash file system, or FFS. We call it TIFFS (Texas Instruments FFS) because it is TI's invention. TIFFS is a file system with a hierarchical directory tree structure, and with Unixy forward-slash-separated, case-sensitive pathnames; the semantics of "what is a file" and "what is a directory" are exactly the same as in UNIX; and TIFFS even supports symlinks, although that support is a little under-developed, and apparently no FFS symlinks were ever used in any production GSM device. Thus the FFS implemented in TI-based GSM devices (modems and "dumbphone" handsets) is really no different from, for example, JFFS2 in embedded Linux systems. The FFS in a GSM device typically stores two kinds of content: - Factory data: IMEI, RF calibration values, device make/model/revision ID strings etc. These files are expected to be programmed on the factory production line and not changed afterward. - Dynamic data written into the FFS in normal device operation: contacts, settings / preferences, call history, received SMS, etc. It should be noted that both Compal (Mot C1xx) and Foxconn (Pirelli DP-L10) vendors moved their vital per-unit factory data out of the FFS into their own ad hoc flash data structures, leaving their FFS only for less critical data. However, we do enable TIFFS access for them anyway. The location of TIFFS within the flash memory of a given GSM device is defined by the firmware design of that device, but is always some integral number of contiguous flash sectors. - On Motorola/Compal C139/140 phones, the FFS used by the original proprietary firmware occupies 5 sectors of 64 KiB each (320 KiB in total), starting at 0x370000. C11x/123 use smaller FFS configurations, whereas C155/156 seem to have switched to some other FFS format, different from our familiar TIFFS. - On the Pirelli DP-L10, the FFS used by the original proprietary firmware occupies 18 sectors of 256 KiB each (for 4.5 MiB in total), starting at the beginning of the 2nd flash chip select (0x02000000 in the ARM7 address space). - On FCDEV3B (FreeCalypso hardware), the FFS is located in the first 8 sectors (of 256 KiB each) in the 2nd flash chip select bank, which appears at 0x01800000 in the ARM7 address space. - On the GTA01/02 GSM modem, FFS occupies 7 sectors of 64 KiB each, starting at flash offset 0x380000. For more information, please refer to the FreeCalypso project documentation, from where this great contribution comes from. Please note that existing MediaTek targets most likely use different storage format as they have nothing from TI Calypso. Also, we don't (yet) know the location of TIFFS on SE J100i and some other Compal Exx platforms. The TIFFS support is needed for the follow-up change, that implements reading of the factory RF calibration values. Tweaked (coding style changes) by Vadim Yanitskiy Change-Id: If6e212baeb10953129fb0d5253d263567f5e12d6 Related: OS#3582 --- M src/target/firmware/Makefile M src/target/firmware/board/compal_e86/init.c M src/target/firmware/board/fcdev3b/init.c M src/target/firmware/board/gta0x/init.c M src/target/firmware/board/pirelli_dpl10/init.c M src/target/firmware/include/string.h A src/target/firmware/include/tiffs.h M src/target/firmware/lib/Makefile A src/target/firmware/lib/index.c A src/target/firmware/lib/memcmp.S A src/target/firmware/lib/strcmp.c A src/target/firmware/tiffs/Makefile A src/target/firmware/tiffs/globals.c A src/target/firmware/tiffs/globals.h A src/target/firmware/tiffs/init.c A src/target/firmware/tiffs/readfile.c 16 files changed, 491 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/85/12885/2 -- To view, visit https://gerrit.osmocom.org/12885 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: If6e212baeb10953129fb0d5253d263567f5e12d6 Gerrit-Change-Number: 12885 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 12:37:56 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Wed, 13 Feb 2019 12:37:56 +0000 Subject: Change in libosmocore[master]: add OSMO_STRBUF_PRINTF() In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/12880 ) Change subject: add OSMO_STRBUF_PRINTF() ...................................................................... Patch Set 2: (2 comments) https://gerrit.osmocom.org/#/c/12880/2/tests/utils/utils_test.c File tests/utils/utils_test.c: https://gerrit.osmocom.org/#/c/12880/2/tests/utils/utils_test.c at 941 PS2, Line 941: #pragma GCC diagnostic ignored "-Wformat-truncation" > Why is this necessary? Do we have to use it every time alongside with OSMO_STRBUF_* as well? I am deliberately testing to write past a buffer's end, with a locally defined buffer, here: ... https://gerrit.osmocom.org/#/c/12880/2/tests/utils/utils_test.c at 958 PS2, Line 958: char buf[23]; ... and gcc then thinks that it must check the buffer bounds and warn that snprintf() will write past the buffer. Above compiler directive tells it that this is exactly what I want to test and it shouldn't bother checking the bounds for me. -- To view, visit https://gerrit.osmocom.org/12880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2497514e26c5e7a5d88985fc7e58343be1a027b2 Gerrit-Change-Number: 12880 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Max Gerrit-Comment-Date: Wed, 13 Feb 2019 12:37:56 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 12:40:42 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Wed, 13 Feb 2019 12:40:42 +0000 Subject: Change in libosmocore[master]: add OSMO_STRBUF_PRINTF() In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/12880 ) Change subject: add OSMO_STRBUF_PRINTF() ...................................................................... Patch Set 2: but it seems this pragma doesn't exist everywhere, I'm going to think of another way to test writing past the end. jenkins: utils_test.c:941:32: error: unknown option after ?#pragma GCC diagnostic? kind [-Werror=pragmas] #pragma GCC diagnostic ignored "-Wformat-truncation" ^~~~~~~~~~~~~~~~~~~~~ -- To view, visit https://gerrit.osmocom.org/12880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2497514e26c5e7a5d88985fc7e58343be1a027b2 Gerrit-Change-Number: 12880 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Max Gerrit-Comment-Date: Wed, 13 Feb 2019 12:40:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 12:50:14 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 13 Feb 2019 12:50:14 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_80.c: use gsm0480_create_release_complete() In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/12840 ) Change subject: libmsc/gsm_04_80.c: use gsm0480_create_release_complete() ...................................................................... libmsc/gsm_04_80.c: use gsm0480_create_release_complete() The previous implementation of msc_send_ussd_release_complete() was based on gsm0480_create_ussd_release_complete(), that doesn't allow to specify GSM 04.07 transaction identifier. The ability to specify particular transaction identifier is required for handling multiple SS/USSD transactions. Change-Id: Id2975c3383f18e83124ba38927c03980d67ddadb Depends Change-Id: (libosmocore) Ie3ac85fcef90a5e532334ba3482804d5305c88d7 --- M include/osmocom/msc/gsm_04_80.h M src/libmsc/gsm_04_80.c M src/libmsc/msc_vty.c 3 files changed, 8 insertions(+), 4 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/msc/gsm_04_80.h b/include/osmocom/msc/gsm_04_80.h index 29b800b..073794b 100644 --- a/include/osmocom/msc/gsm_04_80.h +++ b/include/osmocom/msc/gsm_04_80.h @@ -10,4 +10,5 @@ int msc_send_ussd_notify(struct ran_conn *conn, int level, const char *text); -int msc_send_ussd_release_complete(struct ran_conn *conn); +int msc_send_ussd_release_complete(struct ran_conn *conn, + uint8_t transaction_id); diff --git a/src/libmsc/gsm_04_80.c b/src/libmsc/gsm_04_80.c index 119f0e1..502848f 100644 --- a/src/libmsc/gsm_04_80.c +++ b/src/libmsc/gsm_04_80.c @@ -78,9 +78,10 @@ return msc_tx_dtap(conn, msg); } -int msc_send_ussd_release_complete(struct ran_conn *conn) +int msc_send_ussd_release_complete(struct ran_conn *conn, + uint8_t transaction_id) { - struct msgb *msg = gsm0480_create_ussd_release_complete(); + struct msgb *msg = gsm0480_create_release_complete(transaction_id); if (!msg) return -1; return msc_tx_dtap(conn, msg); diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c index e1019a2..078b83a 100644 --- a/src/libmsc/msc_vty.c +++ b/src/libmsc/msc_vty.c @@ -1149,7 +1149,9 @@ } msc_send_ussd_notify(conn, level, text); - msc_send_ussd_release_complete(conn); + /* FIXME: since we don't allocate a transaction here, + * we use dummy GSM 04.07 transaction ID. */ + msc_send_ussd_release_complete(conn, 0x00); vlr_subscr_put(vsub); talloc_free(text); -- To view, visit https://gerrit.osmocom.org/12840 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Id2975c3383f18e83124ba38927c03980d67ddadb Gerrit-Change-Number: 12840 Gerrit-PatchSet: 4 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 12:50:16 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 13 Feb 2019 12:50:16 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_04_80.c: add msc_send_ussd_release_complete_cause() In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/12843 ) Change subject: libmsc/gsm_04_80.c: add msc_send_ussd_release_complete_cause() ...................................................................... libmsc/gsm_04_80.c: add msc_send_ussd_release_complete_cause() According to GSM 04.80, section 2.5.1, Release complete message may have an optional Cause IE. Let's add a new function, that allows to specify cause location and value. This function will be used by the upcoming changes. Change-Id: I3b9e8e4f473d113d5b9e9e5d33f7914202077203 Depends Change-Id: (libosmocore) Ie3ac85fcef90a5e532334ba3482804d5305c88d7 --- M include/osmocom/msc/gsm_04_80.h M src/libmsc/gsm_04_80.c 2 files changed, 31 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/msc/gsm_04_80.h b/include/osmocom/msc/gsm_04_80.h index 073794b..b786dcc 100644 --- a/include/osmocom/msc/gsm_04_80.h +++ b/include/osmocom/msc/gsm_04_80.h @@ -12,3 +12,6 @@ const char *text); int msc_send_ussd_release_complete(struct ran_conn *conn, uint8_t transaction_id); +int msc_send_ussd_release_complete_cause(struct ran_conn *conn, + uint8_t transaction_id, + uint8_t cause_loc, uint8_t cause_val); diff --git a/src/libmsc/gsm_04_80.c b/src/libmsc/gsm_04_80.c index 502848f..e3547f4 100644 --- a/src/libmsc/gsm_04_80.c +++ b/src/libmsc/gsm_04_80.c @@ -86,3 +86,31 @@ return -1; return msc_tx_dtap(conn, msg); } + +int msc_send_ussd_release_complete_cause(struct ran_conn *conn, + uint8_t transaction_id, + uint8_t cause_loc, uint8_t cause_val) +{ + struct msgb *msg; + uint8_t *cause_ie; + + msg = gsm0480_create_release_complete(transaction_id); + if (!msg) + return -1; + + /* Encode cause IE (see GSM 04.08, section 10.5.4.11) + * with fixed length (2 bytes of TL, 2 bytes of payload). + * NOTE: we don't use gsm48_encode_cause() API because + * it wants gsm_mncc_cause struct from us. */ + cause_ie = msgb_put(msg, 2 + 2); + cause_ie[0] = GSM48_IE_CAUSE; + cause_ie[1] = 2; + + /* Coding standard defined for the GSM PLMNs, + * location and cause: as given by caller, + * no extension, no diagnostics. */ + cause_ie[2] = (1 << 7) | (0x03 << 5) | (cause_loc & 0x0f); + cause_ie[3] = (1 << 7) | cause_val; + + return msc_tx_dtap(conn, msg); +} -- To view, visit https://gerrit.osmocom.org/12843 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I3b9e8e4f473d113d5b9e9e5d33f7914202077203 Gerrit-Change-Number: 12843 Gerrit-PatchSet: 4 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 12:56:11 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Feb 2019 12:56:11 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/11992 ) Change subject: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions ...................................................................... Patch Set 10: (1 comment) https://gerrit.osmocom.org/#/c/11992/10/src/libmsc/gsm_09_11.c File src/libmsc/gsm_09_11.c: https://gerrit.osmocom.org/#/c/11992/10/src/libmsc/gsm_09_11.c at 153 PS10, Line 153: if (conn->network->ncss_guard_timeout > 0) { > Hmm, I am not sure if we really need to care about changing the configuration at run-time... it is a valid scenario to change the timeout at runtime in the VTY. However, I don't think it's required to affect all ongoing NCSS sessions. It's sufficient if all newly-established NCSS sessions are affected by the new timer. -- To view, visit https://gerrit.osmocom.org/11992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icf4d87c45e90324764073e8230e0fb9cb96dd9cb Gerrit-Change-Number: 11992 Gerrit-PatchSet: 10 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-CC: Stefan Sperling Gerrit-Comment-Date: Wed, 13 Feb 2019 12:56:11 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 12:56:17 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Wed, 13 Feb 2019 12:56:17 +0000 Subject: Change in osmo-mgw[master]: install: keep existing / modified etc/osmocom/*.cfg files In-Reply-To: References: Message-ID: Neels Hofmeyr has abandoned this change. ( https://gerrit.osmocom.org/12861 ) Change subject: install: keep existing / modified etc/osmocom/*.cfg files ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/12861 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: abandon Gerrit-Change-Id: I95c9b5dc6117b3dd7a095b34437f5030a141c93b Gerrit-Change-Number: 12861 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 12:56:32 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Wed, 13 Feb 2019 12:56:32 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7.c: fix typo In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12889 ) Change subject: osmo_ss7.c: fix typo ...................................................................... osmo_ss7.c: fix typo Change-Id: Idd0945ef7fa5cc0caf2f35919f97e2e11691f3a3 --- M src/osmo_ss7.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, approved diff --git a/src/osmo_ss7.c b/src/osmo_ss7.c index 05668b0..381a53a 100644 --- a/src/osmo_ss7.c +++ b/src/osmo_ss7.c @@ -1316,7 +1316,7 @@ { SCTP_PARTIAL_DELIVERY_EVENT, "PARTIAL_DELIVERY_EVENT" }, { SCTP_ADAPTATION_INDICATION, "ADAPTATION_INDICATION" }, #ifdef SCTP_AUTHENTICATION_INDICATION - { SCTP_AUTHENTICATION_INDICATION, "UTHENTICATION_INDICATION" }, + { SCTP_AUTHENTICATION_INDICATION, "AUTHENTICATION_INDICATION" }, #endif #ifdef SCTP_SENDER_DRY_EVENT { SCTP_SENDER_DRY_EVENT, "SENDER_DRY_EVENT" }, -- To view, visit https://gerrit.osmocom.org/12889 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Idd0945ef7fa5cc0caf2f35919f97e2e11691f3a3 Gerrit-Change-Number: 12889 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 12:56:45 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Wed, 13 Feb 2019 12:56:45 +0000 Subject: Change in libosmocore[master]: add OSMO_STRBUF_PRINTF() In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12880 to look at the new patch set (#3). Change subject: add OSMO_STRBUF_PRINTF() ...................................................................... add OSMO_STRBUF_PRINTF() We are using macros like this or different workarounds in libmsc. In the course of implementing inter-MSC handover, I am encountering yet another such situation of appending multiple strings to a limited char buffer. Standardize. Add a unit test to utils_test.c. Change-Id: I2497514e26c5e7a5d88985fc7e58343be1a027b2 --- M include/osmocom/core/utils.h M tests/utils/utils_test.c M tests/utils/utils_test.ok 3 files changed, 188 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/80/12880/3 -- To view, visit https://gerrit.osmocom.org/12880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I2497514e26c5e7a5d88985fc7e58343be1a027b2 Gerrit-Change-Number: 12880 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Wed Feb 13 12:57:25 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 13 Feb 2019 12:57:25 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-msc_=C2=BB_--enab?= =?UTF-8?Q?le-iu,0,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#8680?= In-Reply-To: <167481891.213.1550055547239.JavaMail.jenkins@jenkins.osmocom.org> References: <167481891.213.1550055547239.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <90714915.215.1550062645778.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Wed Feb 13 12:59:17 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Feb 2019 12:59:17 +0000 Subject: Change in libosmocore[master]: add OSMO_STRBUF_PRINTF() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12880 ) Change subject: add OSMO_STRBUF_PRINTF() ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/12880/2/include/osmocom/core/utils.h File include/osmocom/core/utils.h: https://gerrit.osmocom.org/#/c/12880/2/include/osmocom/core/utils.h at 153 PS2, Line 153: size_t len_needed; the members might need a quick comment, at least the len_needed isn't immediately obvious. -- To view, visit https://gerrit.osmocom.org/12880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2497514e26c5e7a5d88985fc7e58343be1a027b2 Gerrit-Change-Number: 12880 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Harald Welte Gerrit-CC: Max Gerrit-Comment-Date: Wed, 13 Feb 2019 12:59:17 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 12:59:24 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Feb 2019 12:59:24 +0000 Subject: Change in libosmocore[master]: add OSMO_STRBUF_PRINTF() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12880 ) Change subject: add OSMO_STRBUF_PRINTF() ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2497514e26c5e7a5d88985fc7e58343be1a027b2 Gerrit-Change-Number: 12880 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Max Gerrit-Comment-Date: Wed, 13 Feb 2019 12:59:24 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 12:59:50 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Feb 2019 12:59:50 +0000 Subject: Change in libosmocore[master]: get_value_string(): guard against NULL In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12879 ) Change subject: get_value_string(): guard against NULL ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12879 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie640e9258a959da8f4f9089478de993509853997 Gerrit-Change-Number: 12879 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Wed, 13 Feb 2019 12:59:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 13:13:22 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Wed, 13 Feb 2019 13:13:22 +0000 Subject: Change in osmo-sgsn[master]: Improve 'show subscriber cache' vty command Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12894 Change subject: Improve 'show subscriber cache' vty command ...................................................................... Improve 'show subscriber cache' vty command * don't use spaces when printing hex data like RAND, SRES etc to increase the chance that it'll fit onto single line which will improve readability * don't print non-existent QoS value Change-Id: I0a09063f30c1116803994117f49df9d02bcc9181 --- M src/gprs/sgsn_vty.c 1 file changed, 13 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/94/12894/1 diff --git a/src/gprs/sgsn_vty.c b/src/gprs/sgsn_vty.c index 3757c07..0147b85 100644 --- a/src/gprs/sgsn_vty.c +++ b/src/gprs/sgsn_vty.c @@ -749,13 +749,13 @@ at->key_seq); if (at->vec.auth_types & OSMO_AUTH_TYPE_GSM) { vty_out(vty, "RAND: %s, ", - osmo_hexdump(at->vec.rand, + osmo_hexdump_nospc(at->vec.rand, sizeof(at->vec.rand))); vty_out(vty, "SRES: %s, ", - osmo_hexdump(at->vec.sres, + osmo_hexdump_nospc(at->vec.sres, sizeof(at->vec.sres))); vty_out(vty, "Kc: %s%s", - osmo_hexdump(at->vec.kc, + osmo_hexdump_nospc(at->vec.kc, sizeof(at->vec.kc)), VTY_NEWLINE); } if (at->vec.auth_types & OSMO_AUTH_TYPE_UMTS) { @@ -763,19 +763,22 @@ osmo_hexdump(at->vec.autn, sizeof(at->vec.autn))); vty_out(vty, "RES: %s, ", - osmo_hexdump(at->vec.res, at->vec.res_len)); + osmo_hexdump_nospc(at->vec.res, at->vec.res_len)); vty_out(vty, "IK: %s, ", - osmo_hexdump(at->vec.ik, sizeof(at->vec.ik))); + osmo_hexdump_nospc(at->vec.ik, sizeof(at->vec.ik))); vty_out(vty, "CK: %s, ", - osmo_hexdump(at->vec.ck, sizeof(at->vec.ck))); + osmo_hexdump_nospc(at->vec.ck, sizeof(at->vec.ck))); } } llist_for_each_entry(pdp, &gsub->sgsn_data->pdp_list, list) { - vty_out(vty, " PDP info: Id: %d, Type: 0x%04x, APN: '%s' QoS: %s%s", - pdp->context_id, pdp->pdp_type, pdp->apn_str, - osmo_hexdump(pdp->qos_subscribed, pdp->qos_subscribed_len), - VTY_NEWLINE); + vty_out(vty, " PDP info: Id: %d, Type: 0x%04x, APN: '%s'", + pdp->context_id, pdp->pdp_type, pdp->apn_str); + + if (pdp->qos_subscribed_len) + vty_out(vty, " QoS: %s", osmo_hexdump(pdp->qos_subscribed, pdp->qos_subscribed_len)); + + vty_out(vty, "%s", VTY_NEWLINE); } #if 0 -- To view, visit https://gerrit.osmocom.org/12894 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0a09063f30c1116803994117f49df9d02bcc9181 Gerrit-Change-Number: 12894 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 13:50:06 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Wed, 13 Feb 2019 13:50:06 +0000 Subject: Change in osmo-sgsn[master]: GMM: permit VLR_ANSWERED event in attach FSM Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12895 Change subject: GMM: permit VLR_ANSWERED event in attach FSM ...................................................................... GMM: permit VLR_ANSWERED event in attach FSM Change-Id: I14d234632224e20faf865d2273c83cfff31abf61 --- M src/gprs/gprs_gmm_attach.c 1 file changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/95/12895/1 diff --git a/src/gprs/gprs_gmm_attach.c b/src/gprs/gprs_gmm_attach.c index 6fdb3af..0a31a47 100644 --- a/src/gprs/gprs_gmm_attach.c +++ b/src/gprs/gprs_gmm_attach.c @@ -195,6 +195,9 @@ extract_subscr_hlr(ctx); osmo_fsm_inst_state_chg(fi, ST_INIT, 0, 0); break; + case E_VLR_ANSWERED: + /* FIXME: do we need any special handling for answer in this state? */ + break; } } @@ -295,7 +298,7 @@ .action = st_iu_security_cmd, }, [ST_ACCEPT] = { - .in_event_mask = X(E_ATTACH_COMPLETE_RECV), + .in_event_mask = X(E_ATTACH_COMPLETE_RECV) | X(E_VLR_ANSWERED), .out_state_mask = X(ST_INIT) | X(ST_REJECT), .name = "WaitAttachComplete", .onenter = st_accept_on_enter, -- To view, visit https://gerrit.osmocom.org/12895 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I14d234632224e20faf865d2273c83cfff31abf61 Gerrit-Change-Number: 12895 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Wed Feb 13 14:22:39 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 13 Feb 2019 14:22:39 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-trx_=C2=BB_--wit?= =?UTF-8?Q?h-sse,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#880?= In-Reply-To: <360101757.212.1550050918658.JavaMail.jenkins@jenkins.osmocom.org> References: <360101757.212.1550050918658.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <301061367.216.1550067759047.JavaMail.jenkins@jenkins.osmocom.org> See From jenkins at lists.osmocom.org Wed Feb 13 15:10:06 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 13 Feb 2019 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#400?= In-Reply-To: <1745342903.201.1549984206831.JavaMail.jenkins@jenkins.osmocom.org> References: <1745342903.201.1549984206831.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <759435118.217.1550070606762.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.83 KB...] checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs mkdir .libs mkdir .libs mkdir: cannot create directory '.libs': File exists mkdir: cannot create directory '.libs': File exists gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Wed Feb 13 16:01:51 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 13 Feb 2019 16:01:51 +0000 Subject: Change in osmo-bts[master]: OML: Don't advertise baseband transceiver as UNLOCKED at startup In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12892 ) Change subject: OML: Don't advertise baseband transceiver as UNLOCKED at startup ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12892 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id505594b9f224567566caac84dae2e2ae4477fae Gerrit-Change-Number: 12892 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 13 Feb 2019 16:01:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 16:06:42 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 13 Feb 2019 16:06:42 +0000 Subject: Change in osmo-bsc[master]: OML: Fix encoded length value of OML GET ATTRIBUTES In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12890 ) Change subject: OML: Fix encoded length value of OML GET ATTRIBUTES ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I56068de0bb14a99ec39be587e542e27cddb7d1df Gerrit-Change-Number: 12890 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 13 Feb 2019 16:06:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 16:10:46 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 13 Feb 2019 16:10:46 +0000 Subject: Change in osmo-bts[master]: OML: Store merged attributes of IPA OML Managed Objects In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12893 ) Change subject: OML: Store merged attributes of IPA OML Managed Objects ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12893 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I75ebda46da9c1fcecc484311bf3833f31c536ee1 Gerrit-Change-Number: 12893 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 13 Feb 2019 16:10:46 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 16:15:29 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Wed, 13 Feb 2019 16:15:29 +0000 Subject: Change in osmo-sgsn[master]: GMM: permit VLR_ANSWERED event in attach FSM In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12895 to look at the new patch set (#2). Change subject: GMM: permit VLR_ANSWERED event in attach FSM ...................................................................... GMM: permit VLR_ANSWERED event in attach FSM Change-Id: I14d234632224e20faf865d2273c83cfff31abf61 --- M src/gprs/gprs_gmm_attach.c 1 file changed, 6 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/95/12895/2 -- To view, visit https://gerrit.osmocom.org/12895 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I14d234632224e20faf865d2273c83cfff31abf61 Gerrit-Change-Number: 12895 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 16:40:37 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 13 Feb 2019 16:40:37 +0000 Subject: Change in osmo-gsm-tester[master]: modem: print call ID during log of call state Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/12896 Change subject: modem: print call ID during log of call state ...................................................................... modem: print call ID during log of call state Change-Id: I33d0153b3e89aa1924129b8068ef068c08059958 --- M src/osmo_gsm_tester/modem.py 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/96/12896/1 diff --git a/src/osmo_gsm_tester/modem.py b/src/osmo_gsm_tester/modem.py index 5106702..6a2a49a 100644 --- a/src/osmo_gsm_tester/modem.py +++ b/src/osmo_gsm_tester/modem.py @@ -735,7 +735,7 @@ self.log('asking call state for non existent call') log.log_exn() state = 'disconnected' - self.dbg('call state: %s' % state) + self.dbg('call state: %s' % state, call_id=call_id) return state def _on_callmgr_call_added(self, obj_path, properties): -- To view, visit https://gerrit.osmocom.org/12896 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I33d0153b3e89aa1924129b8068ef068c08059958 Gerrit-Change-Number: 12896 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 17:13:49 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Wed, 13 Feb 2019 17:13:49 +0000 Subject: Change in libosmocore[master]: Add multipatch capability to osmo-config-merge Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12897 Change subject: Add multipatch capability to osmo-config-merge ...................................................................... Add multipatch capability to osmo-config-merge That's pretty straightforward and convenient extention: handle all extra positional arguments as patch file names. This makes it similar to 'cp' and other basic tools. For example: osmo-config-merge base.cfg patch1.cfg patch2.cfg patch3.cfg will apply 3 patches to th base config file. Change-Id: I212cbdc3bf6f251c1a3175737ac74242fb004c6d --- M utils/osmo-config-merge.c 1 file changed, 43 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/97/12897/1 diff --git a/utils/osmo-config-merge.c b/utils/osmo-config-merge.c index afaf86b..b29a331 100644 --- a/utils/osmo-config-merge.c +++ b/utils/osmo-config-merge.c @@ -49,6 +49,7 @@ #include #include #include +#include struct node { struct node *parent; /* back-pointer */ @@ -57,6 +58,11 @@ char *line; }; +struct osmo_patch_entry { + struct llist_head list; + struct node *tree; +}; + /* allocate a new node */ static struct node *node_alloc(void *ctx) { @@ -225,49 +231,65 @@ static void exit_usage(int rc) { - fprintf(stderr, "Usage: osmo-config-merge [--debug]\n"); + fprintf(stderr, "Usage: osmo-config-merge ... [--debug]\n"); exit(rc); } int main(int argc, char **argv) { - const char *base_fname, *patch_fname; - struct node *base_tree, *patch_tree; + struct node *base_tree; + struct osmo_config_list *trees; + struct osmo_patch_entry *entry; bool debug_enabled = false; + unsigned i; void *ctx; if (argc < 3) exit_usage(1); - base_fname = argv[1]; - patch_fname = argv[2]; - - if (argc > 3) { - if (!strcmp(argv[3], "--debug")) - debug_enabled = true; - else - exit_usage(1); - } - ctx = talloc_named_const(NULL, 0, "root"); - base_tree = file_read(ctx, base_fname); - patch_tree = file_read(ctx, patch_fname); - - if (!base_tree || ! patch_tree) { + base_tree = file_read(ctx, argv[1]); + trees = talloc_zero(ctx, struct osmo_config_list); + if (!base_tree || !trees) { talloc_free(ctx); return 2; } + INIT_LLIST_HEAD(&trees->entry); + for (i = 2; i < argc; i++) { + if (!strcmp(argv[3], "--debug")) + debug_enabled = true; + else { + entry = talloc_zero(trees, struct osmo_patch_entry); + if (!entry) + return 3; + + entry->tree = file_read(ctx, argv[i]); + if (!entry->tree) { + talloc_free(ctx); + return 4; + } + llist_add_tail(&entry->list, &trees->entry); + } + } + + if (llist_empty(&trees->entry)) + exit_usage(1); + if (debug_enabled) { fprintf(stderr, "====== dumping tree (base)\n"); dump_node(base_tree, stderr, true); - fprintf(stderr, "====== dumping tree (patch)\n"); - dump_node(patch_tree, stderr, true); } - append_patch(base_tree, patch_tree); + llist_for_each_entry(entry, &trees->entry, list) { + append_patch(base_tree, entry->tree); + if (debug_enabled) { + fprintf(stderr, "====== dumping tree (patch)\n"); + dump_node(entry->tree, stderr, true); + } + } if (debug_enabled) fprintf(stderr, "====== dumping tree (patched)\n"); @@ -275,7 +297,7 @@ fflush(stdout); /* make AddressSanitizer / LeakSanitizer happy by recursively freeing the trees */ - talloc_free(patch_tree); + talloc_free(trees); talloc_free(base_tree); talloc_free(ctx); -- To view, visit https://gerrit.osmocom.org/12897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I212cbdc3bf6f251c1a3175737ac74242fb004c6d Gerrit-Change-Number: 12897 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 18:38:24 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 13 Feb 2019 18:38:24 +0000 Subject: Change in osmo-gsm-tester[master]: modem: Log once dbus returns call was answered Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/12898 Change subject: modem: Log once dbus returns call was answered ...................................................................... modem: Log once dbus returns call was answered Change-Id: Ia277b2eecdbf9969d77a688638837f9d9e1a44b6 --- M src/osmo_gsm_tester/modem.py 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/98/12898/1 diff --git a/src/osmo_gsm_tester/modem.py b/src/osmo_gsm_tester/modem.py index 6a2a49a..59e2136 100644 --- a/src/osmo_gsm_tester/modem.py +++ b/src/osmo_gsm_tester/modem.py @@ -717,6 +717,7 @@ assert self.call_state(call_id) == 'incoming' call_dbus_obj = systembus_get(call_id) call_dbus_obj.Answer() + self.dbg('Answered call %s' % call_id) def call_hangup(self, call_id): self.dbg('Hang up call %s' % call_id) -- To view, visit https://gerrit.osmocom.org/12898 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ia277b2eecdbf9969d77a688638837f9d9e1a44b6 Gerrit-Change-Number: 12898 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 18:38:25 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 13 Feb 2019 18:38:25 +0000 Subject: Change in osmo-gsm-tester[master]: Log signals from VoiceCall dbus objects Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/12899 Change subject: Log signals from VoiceCall dbus objects ...................................................................... Log signals from VoiceCall dbus objects Change-Id: I0def02b9063f75ec32c8b9382bdb12d65e1fb9eb --- M src/osmo_gsm_tester/modem.py 1 file changed, 10 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/99/12899/1 diff --git a/src/osmo_gsm_tester/modem.py b/src/osmo_gsm_tester/modem.py index 59e2136..efb21c7 100644 --- a/src/osmo_gsm_tester/modem.py +++ b/src/osmo_gsm_tester/modem.py @@ -39,6 +39,7 @@ I_CALL = 'org.ofono.VoiceCall' I_SS = 'org.ofono.SupplementaryServices' I_SIMMGR = 'org.ofono.SimManager' +I_VOICECALL = 'org.ofono.VoiceCall' # See https://github.com/intgr/ofono/blob/master/doc/network-api.txt#L78 NETREG_ST_REGISTERED = 'registered' @@ -739,8 +740,17 @@ self.dbg('call state: %s' % state, call_id=call_id) return state + def on_voicecall_property_change(self, obj_path, name, value): + self.dbg('%r:%r.PropertyChanged() -> %s=%s' % (obj_path, I_VOICECALL, name, value)) + + def on_voicecall_disconnect_reason(self, obj_path, reason): + self.dbg('%r:%r.DisconnectReason() -> %s' % (obj_path, I_VOICECALL, reason)) + def _on_callmgr_call_added(self, obj_path, properties): self.dbg('%r.CallAdded() -> %s=%r' % (I_CALLMGR, obj_path, repr(properties))) + call_dbus_obj = systembus_get(obj_path) + dbus_connect(call_dbus_obj.PropertyChanged, lambda name, value: self.on_voicecall_property_change(obj_path, name, value)) + dbus_connect(call_dbus_obj.DisconnectReason, lambda reason: self.on_voicecall_disconnect_reason(obj_path, reason)) if obj_path not in self.call_list: self.call_list.append(obj_path) else: -- To view, visit https://gerrit.osmocom.org/12899 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0def02b9063f75ec32c8b9382bdb12d65e1fb9eb Gerrit-Change-Number: 12899 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 19:46:23 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Feb 2019 19:46:23 +0000 Subject: Change in osmo-gsm-tester[master]: modem: print call ID during log of call state In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12896 ) Change subject: modem: print call ID during log of call state ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12896 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I33d0153b3e89aa1924129b8068ef068c08059958 Gerrit-Change-Number: 12896 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Wed, 13 Feb 2019 19:46:23 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 19:46:28 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Feb 2019 19:46:28 +0000 Subject: Change in osmo-gsm-tester[master]: modem: Log once dbus returns call was answered In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12898 ) Change subject: modem: Log once dbus returns call was answered ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12898 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia277b2eecdbf9969d77a688638837f9d9e1a44b6 Gerrit-Change-Number: 12898 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Wed, 13 Feb 2019 19:46:28 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 19:46:37 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Feb 2019 19:46:37 +0000 Subject: Change in osmo-gsm-tester[master]: Log signals from VoiceCall dbus objects In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12899 ) Change subject: Log signals from VoiceCall dbus objects ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12899 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0def02b9063f75ec32c8b9382bdb12d65e1fb9eb Gerrit-Change-Number: 12899 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Wed, 13 Feb 2019 19:46:37 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 19:47:10 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Feb 2019 19:47:10 +0000 Subject: Change in libosmocore[master]: Add multipatch capability to osmo-config-merge In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12897 ) Change subject: Add multipatch capability to osmo-config-merge ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I212cbdc3bf6f251c1a3175737ac74242fb004c6d Gerrit-Change-Number: 12897 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 13 Feb 2019 19:47:10 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 19:47:50 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Feb 2019 19:47:50 +0000 Subject: Change in osmo-sgsn[master]: GMM: permit VLR_ANSWERED event in attach FSM In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12895 ) Change subject: GMM: permit VLR_ANSWERED event in attach FSM ...................................................................... Patch Set 2: commitlog does not contain reasons/rationale -- To view, visit https://gerrit.osmocom.org/12895 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I14d234632224e20faf865d2273c83cfff31abf61 Gerrit-Change-Number: 12895 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Harald Welte Gerrit-Comment-Date: Wed, 13 Feb 2019 19:47:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 19:48:12 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Feb 2019 19:48:12 +0000 Subject: Change in osmo-sgsn[master]: Improve 'show subscriber cache' vty command In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12894 ) Change subject: Improve 'show subscriber cache' vty command ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12894 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0a09063f30c1116803994117f49df9d02bcc9181 Gerrit-Change-Number: 12894 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Wed, 13 Feb 2019 19:48:12 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 13 21:26:41 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 13 Feb 2019 21:26:41 +0000 Subject: Change in libosmocore[master]: TLV: Add one-shot TLV encoder Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12900 Change subject: TLV: Add one-shot TLV encoder ...................................................................... TLV: Add one-shot TLV encoder So far, the TLV code contained two types of functions * tlp_parse() to parse all TLVs according to definition into tlvp_parsed * various helper functions to encode individual TLVs during message generation This patch implements the inverse of tlv_parse(): tlv_encode(), which takes a full 'struct tlv_pared' and encodes all IEs found in it. The order of IEs is in numerically ascending order of the tag. As many protocols have different IE/TLV ordering requirements, let's add a tlv_encode_ordered() function where the caller can specify the TLV ordering during the one-shot encode. Change-Id: I761a30bf20355a9f80a4a8e0c60b0b0f78515efe --- M include/osmocom/gsm/tlv.h M src/gsm/libosmogsm.map M src/gsm/tlv_parser.c 3 files changed, 96 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/00/12900/1 diff --git a/include/osmocom/gsm/tlv.h b/include/osmocom/gsm/tlv.h index d0c9552..bb0e8fc 100644 --- a/include/osmocom/gsm/tlv.h +++ b/include/osmocom/gsm/tlv.h @@ -457,6 +457,12 @@ /* take a master (src) tlv def and fill up all empty slots in 'dst' */ void tlv_def_patch(struct tlv_definition *dst, const struct tlv_definition *src); +int tlv_encode_one(struct msgb *msg, enum tlv_type type, uint8_t tag, + unsigned int len, const uint8_t *val); +int tlv_encode(struct msgb *msg, const struct tlv_definition *def, const struct tlv_parsed *tp); +int tlv_encode_ordered(struct msgb *msg, const struct tlv_definition *def, const struct tlv_parsed *tp, + const uint8_t *tag_order, unsigned int tag_order_len); + #define TLVP_PRESENT(x, y) ((x)->lv[y].val) #define TLVP_LEN(x, y) (x)->lv[y].len #define TLVP_VAL(x, y) (x)->lv[y].val diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index ae7c0a1..c123dfc 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -493,6 +493,9 @@ tlv_parse; tlv_parse2; tlv_parse_one; +tlv_encode; +tlv_encode_ordered; +tlv_encode_one; tvlv_att_def; vtvlv_gan_att_def; diff --git a/src/gsm/tlv_parser.c b/src/gsm/tlv_parser.c index 6e089f7..b227c84 100644 --- a/src/gsm/tlv_parser.c +++ b/src/gsm/tlv_parser.c @@ -120,6 +120,93 @@ return 0; } + +/*! Encode a single TLV into given message buffer + * \param[inout] msg Caller-allocated message buffer with sufficient tailroom + * \param[in] type TLV type/format to use during encode + * \param[in] tag Tag of TLV to be encoded + * \parma[in] len Length of TLV to be encoded + * \param[in] val Value part of TLV to be encoded + * \returns 0 on success; negative in case of error */ +int tlv_encode_one(struct msgb *msg, enum tlv_type type, uint8_t tag, + unsigned int len, const uint8_t *val) +{ + switch (type) { + case TLV_TYPE_NONE: + break; + case TLV_TYPE_FIXED: + msgb_tv_fixed_put(msg, tag, len, val); + break; + case TLV_TYPE_T: + msgb_v_put(msg, tag); + break; + case TLV_TYPE_TV: + msgb_tv_put(msg, tag, val[0]); + break; + case TLV_TYPE_TLV: + msgb_tlv_put(msg, tag, len, val); + break; + case TLV_TYPE_TL16V: + msgb_tl16v_put(msg, tag, len, val); + break; + case TLV_TYPE_TvLV: + msgb_tvlv_put(msg, tag, len, val); + break; + case TLV_TYPE_SINGLE_TV: + msgb_v_put(msg, (tag << 4) | (val[0] & 0xf)); + break; + case TLV_TYPE_vTvLV_GAN: + msgb_vtvlv_gan_put(msg, tag, len, val); + break; + default: + return -EINVAL; + } + return 0; +} + +/*! Encode a set of decoded TLVs according to a given definition into a message buffer + * \param[inout] msg Caller-allocated message buffer with sufficient tailroom + * \param[in] def structure defining the valid TLV tags / configurations + * \param[in] tp decoded values to be encoded + * \returns number of bytes consumed in msg; negative in case of error */ +int tlv_encode(struct msgb *msg, const struct tlv_definition *def, const struct tlv_parsed *tp) +{ + unsigned int tailroom_before = msgb_tailroom(msg); + unsigned int i; + int rc; + + for (i = 0; i < ARRAY_SIZE(tp->lv); i++) { + rc = tlv_encode_one(msg, def->def[i].type, i, TLVP_LEN(tp, i), TLVP_VAL(tp, i)); + if (rc < 0) + return rc; + } + return tailroom_before - msgb_tailroom(msg); +} + +/*! Encode a set of decoded TLVs according to a given definition and IE order into a message buffer + * \param[inout] msg Caller-allocated message buffer with sufficient tailroom + * \param[in] def structure defining the valid TLV tags / configurations + * \param[in] tp decoded values to be encoded + * \param[in] tag_order array of tags determining the IE encoding order + * \param[in] tag_order_len length of tag_order + * \returns number of bytes consumed in msg; negative in case of error */ +int tlv_encode_ordered(struct msgb *msg, const struct tlv_definition *def, const struct tlv_parsed *tp, + const uint8_t *tag_order, unsigned int tag_order_len) +{ + + unsigned int tailroom_before = msgb_tailroom(msg); + unsigned int i; + int rc; + + for (i = 0; i < tag_order_len; i++) { + uint8_t tag = tag_order[i]; + rc = tlv_encode_one(msg, def->def[tag].type, tag, TLVP_LEN(tp, i), TLVP_VAL(tp, i)); + if (rc < 0) + return rc; + } + return tailroom_before - msgb_tailroom(msg); +} + /*! Parse a single TLV encoded IE * \param[out] o_tag the tag of the IE that was found * \param[out] o_len length of the IE that was found -- To view, visit https://gerrit.osmocom.org/12900 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I761a30bf20355a9f80a4a8e0c60b0b0f78515efe Gerrit-Change-Number: 12900 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 09:13:29 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 09:13:29 +0000 Subject: Change in osmo-sgsn[master]: Improve 'show subscriber cache' vty command In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12894 ) Change subject: Improve 'show subscriber cache' vty command ...................................................................... Improve 'show subscriber cache' vty command * don't use spaces when printing hex data like RAND, SRES etc to increase the chance that it'll fit onto single line which will improve readability * don't print non-existent QoS value Change-Id: I0a09063f30c1116803994117f49df9d02bcc9181 --- M src/gprs/sgsn_vty.c 1 file changed, 13 insertions(+), 10 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/gprs/sgsn_vty.c b/src/gprs/sgsn_vty.c index 3757c07..0147b85 100644 --- a/src/gprs/sgsn_vty.c +++ b/src/gprs/sgsn_vty.c @@ -749,13 +749,13 @@ at->key_seq); if (at->vec.auth_types & OSMO_AUTH_TYPE_GSM) { vty_out(vty, "RAND: %s, ", - osmo_hexdump(at->vec.rand, + osmo_hexdump_nospc(at->vec.rand, sizeof(at->vec.rand))); vty_out(vty, "SRES: %s, ", - osmo_hexdump(at->vec.sres, + osmo_hexdump_nospc(at->vec.sres, sizeof(at->vec.sres))); vty_out(vty, "Kc: %s%s", - osmo_hexdump(at->vec.kc, + osmo_hexdump_nospc(at->vec.kc, sizeof(at->vec.kc)), VTY_NEWLINE); } if (at->vec.auth_types & OSMO_AUTH_TYPE_UMTS) { @@ -763,19 +763,22 @@ osmo_hexdump(at->vec.autn, sizeof(at->vec.autn))); vty_out(vty, "RES: %s, ", - osmo_hexdump(at->vec.res, at->vec.res_len)); + osmo_hexdump_nospc(at->vec.res, at->vec.res_len)); vty_out(vty, "IK: %s, ", - osmo_hexdump(at->vec.ik, sizeof(at->vec.ik))); + osmo_hexdump_nospc(at->vec.ik, sizeof(at->vec.ik))); vty_out(vty, "CK: %s, ", - osmo_hexdump(at->vec.ck, sizeof(at->vec.ck))); + osmo_hexdump_nospc(at->vec.ck, sizeof(at->vec.ck))); } } llist_for_each_entry(pdp, &gsub->sgsn_data->pdp_list, list) { - vty_out(vty, " PDP info: Id: %d, Type: 0x%04x, APN: '%s' QoS: %s%s", - pdp->context_id, pdp->pdp_type, pdp->apn_str, - osmo_hexdump(pdp->qos_subscribed, pdp->qos_subscribed_len), - VTY_NEWLINE); + vty_out(vty, " PDP info: Id: %d, Type: 0x%04x, APN: '%s'", + pdp->context_id, pdp->pdp_type, pdp->apn_str); + + if (pdp->qos_subscribed_len) + vty_out(vty, " QoS: %s", osmo_hexdump(pdp->qos_subscribed, pdp->qos_subscribed_len)); + + vty_out(vty, "%s", VTY_NEWLINE); } #if 0 -- To view, visit https://gerrit.osmocom.org/12894 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I0a09063f30c1116803994117f49df9d02bcc9181 Gerrit-Change-Number: 12894 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 09:24:06 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 14 Feb 2019 09:24:06 +0000 Subject: Change in osmocom-bb[master]: firmware/board: introduce new FCDEV3B (FreeCalypso) target In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12888 ) Change subject: firmware/board: introduce new FCDEV3B (FreeCalypso) target ...................................................................... Patch Set 3: Code-Review-1 (3 comments) https://gerrit.osmocom.org/#/c/12888/3/src/target/firmware/board/fcdev3b/init.c File src/target/firmware/board/fcdev3b/init.c: https://gerrit.osmocom.org/#/c/12888/3/src/target/firmware/board/fcdev3b/init.c at 49 PS3, Line 49: #include "../compal/keymap.h" Most likely, we don't need this as the FCDEV3B has no keyboard. https://gerrit.osmocom.org/#/c/12888/3/src/target/firmware/board/fcdev3b/init.c at 141 PS3, Line 141: Initialize LCD driver (uses I2C) and backlight Same here, the board has no LCD. https://gerrit.osmocom.org/#/c/12888/3/src/target/firmware/board/fcdev3b/init.c at 145 PS3, Line 145: /* Initialize keypad driver */ FCDEV3B has no keyboard. -- To view, visit https://gerrit.osmocom.org/12888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I09bd35a18d3ea094000050169a62fd82ba6eccfe Gerrit-Change-Number: 12888 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 14 Feb 2019 09:24:06 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 09:24:55 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 09:24:55 +0000 Subject: Change in libosmocore[master]: Add multipatch capability to osmo-config-merge In-Reply-To: References: Message-ID: Hello daniel, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12897 to look at the new patch set (#2). Change subject: Add multipatch capability to osmo-config-merge ...................................................................... Add multipatch capability to osmo-config-merge That's pretty straightforward and convenient extention: handle all extra positional arguments as patch file names. This makes it similar to 'cp' and other coreutils basic tools. For example: osmo-config-merge base.cfg patch1.cfg patch2.cfg patch3.cfg will apply 3 patches to the base config file. Change-Id: I212cbdc3bf6f251c1a3175737ac74242fb004c6d --- M utils/osmo-config-merge.c 1 file changed, 43 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/97/12897/2 -- To view, visit https://gerrit.osmocom.org/12897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I212cbdc3bf6f251c1a3175737ac74242fb004c6d Gerrit-Change-Number: 12897 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 09:26:42 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 14 Feb 2019 09:26:42 +0000 Subject: Change in osmo-msc[master]: libmsc/osmo_msc.c: move connection ref-counting code to 'ran_conn.c' In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12698 ) Change subject: libmsc/osmo_msc.c: move connection ref-counting code to 'ran_conn.c' ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I593675d9bf56eaef12afdaf596ee1337b9a44259 Gerrit-Change-Number: 12698 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 14 Feb 2019 09:26:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 09:26:47 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 14 Feb 2019 09:26:47 +0000 Subject: Change in osmo-msc[master]: libmsc/osmo_msc.c: move connection ref-counting code to 'ran_conn.c' In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/12698 ) Change subject: libmsc/osmo_msc.c: move connection ref-counting code to 'ran_conn.c' ...................................................................... libmsc/osmo_msc.c: move connection ref-counting code to 'ran_conn.c' The connection ref-counting implementation is specific to RAN connections, and is not applicable for anything else. Moreover, the API of this code is declared in 'ran_conn.h', so let's move the code to a more logical place. Change-Id: I593675d9bf56eaef12afdaf596ee1337b9a44259 --- M src/libmsc/osmo_msc.c M src/libmsc/ran_conn.c 2 files changed, 111 insertions(+), 111 deletions(-) Approvals: Harald Welte: Looks good to me, approved Vadim Yanitskiy: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/libmsc/osmo_msc.c b/src/libmsc/osmo_msc.c index 1a1ba3c..9828da1 100644 --- a/src/libmsc/osmo_msc.c +++ b/src/libmsc/osmo_msc.c @@ -219,117 +219,6 @@ return 1; } -static const char *used_ref_counts_str(struct ran_conn *conn) -{ - static char buf[256]; - int bit_nr; - char *pos = buf; - *pos = '\0'; - - if (conn->use_tokens < 0) - return "invalid"; - -#define APPEND_STR(fmt, args...) do { \ - int remain = sizeof(buf) - (pos - buf) - 1; \ - int l = -1; \ - if (remain > 0) \ - l = snprintf(pos, remain, "%s" fmt, (pos == buf? "" : ","), ##args); \ - if (l < 0 || l > remain) { \ - buf[sizeof(buf) - 1] = '\0'; \ - return buf; \ - } \ - pos += l; \ - } while(0) - - for (bit_nr = 0; (1 << bit_nr) <= conn->use_tokens; bit_nr++) { - if (conn->use_tokens & (1 << bit_nr)) { - APPEND_STR("%s", get_value_string(ran_conn_use_names, bit_nr)); - } - } - return buf; -#undef APPEND_STR -} - -/* increment the ref-count. Needs to be called by every user */ -struct ran_conn *_ran_conn_get(struct ran_conn *conn, enum ran_conn_use balance_token, - const char *file, int line) -{ - OSMO_ASSERT(conn); - - if (balance_token != RAN_CONN_USE_UNTRACKED) { - uint32_t flag = 1 << balance_token; - OSMO_ASSERT(balance_token < 32); - if (conn->use_tokens & flag) - LOGPSRC(DREF, LOGL_ERROR, file, line, - "%s: MSC conn use error: using an already used token: %s\n", - vlr_subscr_name(conn->vsub), - ran_conn_use_name(balance_token)); - conn->use_tokens |= flag; - } - - conn->use_count++; - LOGPSRC(DREF, LOGL_DEBUG, file, line, - "%s: MSC conn use + %s == %u (0x%x: %s)\n", - vlr_subscr_name(conn->vsub), ran_conn_use_name(balance_token), - conn->use_count, conn->use_tokens, used_ref_counts_str(conn)); - - return conn; -} - -/* decrement the ref-count. Once it reaches zero, we release */ -void _ran_conn_put(struct ran_conn *conn, enum ran_conn_use balance_token, - const char *file, int line) -{ - OSMO_ASSERT(conn); - - if (balance_token != RAN_CONN_USE_UNTRACKED) { - uint32_t flag = 1 << balance_token; - OSMO_ASSERT(balance_token < 32); - if (!(conn->use_tokens & flag)) - LOGPSRC(DREF, LOGL_ERROR, file, line, - "%s: MSC conn use error: freeing an unused token: %s\n", - vlr_subscr_name(conn->vsub), - ran_conn_use_name(balance_token)); - conn->use_tokens &= ~flag; - } - - if (conn->use_count == 0) { - LOGPSRC(DREF, LOGL_ERROR, file, line, - "%s: MSC conn use - %s failed: is already 0\n", - vlr_subscr_name(conn->vsub), - ran_conn_use_name(balance_token)); - return; - } - - conn->use_count--; - LOGPSRC(DREF, LOGL_DEBUG, file, line, - "%s: MSC conn use - %s == %u (0x%x: %s)\n", - vlr_subscr_name(conn->vsub), ran_conn_use_name(balance_token), - conn->use_count, conn->use_tokens, used_ref_counts_str(conn)); - - if (conn->use_count == 0) - osmo_fsm_inst_dispatch(conn->fi, RAN_CONN_E_UNUSED, NULL); -} - -bool ran_conn_used_by(struct ran_conn *conn, enum ran_conn_use token) -{ - return conn && (conn->use_tokens & (1 << token)); -} - -const struct value_string ran_conn_use_names[] = { - {RAN_CONN_USE_UNTRACKED, "UNTRACKED"}, - {RAN_CONN_USE_COMPL_L3, "compl_l3"}, - {RAN_CONN_USE_DTAP, "dtap"}, - {RAN_CONN_USE_AUTH_CIPH, "auth+ciph"}, - {RAN_CONN_USE_CM_SERVICE, "cm_service"}, - {RAN_CONN_USE_TRANS_CC, "trans_cc"}, - {RAN_CONN_USE_TRANS_SMS, "trans_sms"}, - {RAN_CONN_USE_TRANS_NC_SS, "trans_nc_ss"}, - {RAN_CONN_USE_SILENT_CALL, "silent_call"}, - {RAN_CONN_USE_RELEASE, "release"}, - {0, NULL}, -}; - void msc_stop_paging(struct vlr_subscr *vsub) { DEBUGP(DPAG, "Paging can stop for %s\n", vlr_subscr_name(vsub)); diff --git a/src/libmsc/ran_conn.c b/src/libmsc/ran_conn.c index 6629bf6..be6bde0 100644 --- a/src/libmsc/ran_conn.c +++ b/src/libmsc/ran_conn.c @@ -796,3 +796,114 @@ /* Note: In SGsAP there is no confirmation of a release. */ rx_close_complete(conn, "SGs Release Complete", &dummy_waiting_for_release_complete); } + +const struct value_string ran_conn_use_names[] = { + { RAN_CONN_USE_UNTRACKED, "UNTRACKED" }, + { RAN_CONN_USE_COMPL_L3, "compl_l3" }, + { RAN_CONN_USE_DTAP, "dtap" }, + { RAN_CONN_USE_AUTH_CIPH, "auth+ciph" }, + { RAN_CONN_USE_CM_SERVICE, "cm_service" }, + { RAN_CONN_USE_TRANS_CC, "trans_cc" }, + { RAN_CONN_USE_TRANS_SMS, "trans_sms" }, + { RAN_CONN_USE_TRANS_NC_SS, "trans_nc_ss" }, + { RAN_CONN_USE_SILENT_CALL, "silent_call" }, + { RAN_CONN_USE_RELEASE, "release" }, + { 0, NULL } +}; + +static const char *used_ref_counts_str(struct ran_conn *conn) +{ + static char buf[256]; + int bit_nr; + char *pos = buf; + *pos = '\0'; + + if (conn->use_tokens < 0) + return "invalid"; + +#define APPEND_STR(fmt, args...) do { \ + int remain = sizeof(buf) - (pos - buf) - 1; \ + int l = -1; \ + if (remain > 0) \ + l = snprintf(pos, remain, "%s" fmt, (pos == buf? "" : ","), ##args); \ + if (l < 0 || l > remain) { \ + buf[sizeof(buf) - 1] = '\0'; \ + return buf; \ + } \ + pos += l; \ + } while(0) + + for (bit_nr = 0; (1 << bit_nr) <= conn->use_tokens; bit_nr++) { + if (conn->use_tokens & (1 << bit_nr)) { + APPEND_STR("%s", get_value_string(ran_conn_use_names, bit_nr)); + } + } + return buf; +#undef APPEND_STR +} + +/* increment the ref-count. Needs to be called by every user */ +struct ran_conn *_ran_conn_get(struct ran_conn *conn, enum ran_conn_use balance_token, + const char *file, int line) +{ + OSMO_ASSERT(conn); + + if (balance_token != RAN_CONN_USE_UNTRACKED) { + uint32_t flag = 1 << balance_token; + OSMO_ASSERT(balance_token < 32); + if (conn->use_tokens & flag) + LOGPSRC(DREF, LOGL_ERROR, file, line, + "%s: MSC conn use error: using an already used token: %s\n", + vlr_subscr_name(conn->vsub), + ran_conn_use_name(balance_token)); + conn->use_tokens |= flag; + } + + conn->use_count++; + LOGPSRC(DREF, LOGL_DEBUG, file, line, + "%s: MSC conn use + %s == %u (0x%x: %s)\n", + vlr_subscr_name(conn->vsub), ran_conn_use_name(balance_token), + conn->use_count, conn->use_tokens, used_ref_counts_str(conn)); + + return conn; +} + +/* decrement the ref-count. Once it reaches zero, we release */ +void _ran_conn_put(struct ran_conn *conn, enum ran_conn_use balance_token, + const char *file, int line) +{ + OSMO_ASSERT(conn); + + if (balance_token != RAN_CONN_USE_UNTRACKED) { + uint32_t flag = 1 << balance_token; + OSMO_ASSERT(balance_token < 32); + if (!(conn->use_tokens & flag)) + LOGPSRC(DREF, LOGL_ERROR, file, line, + "%s: MSC conn use error: freeing an unused token: %s\n", + vlr_subscr_name(conn->vsub), + ran_conn_use_name(balance_token)); + conn->use_tokens &= ~flag; + } + + if (conn->use_count == 0) { + LOGPSRC(DREF, LOGL_ERROR, file, line, + "%s: MSC conn use - %s failed: is already 0\n", + vlr_subscr_name(conn->vsub), + ran_conn_use_name(balance_token)); + return; + } + + conn->use_count--; + LOGPSRC(DREF, LOGL_DEBUG, file, line, + "%s: MSC conn use - %s == %u (0x%x: %s)\n", + vlr_subscr_name(conn->vsub), ran_conn_use_name(balance_token), + conn->use_count, conn->use_tokens, used_ref_counts_str(conn)); + + if (conn->use_count == 0) + osmo_fsm_inst_dispatch(conn->fi, RAN_CONN_E_UNUSED, NULL); +} + +bool ran_conn_used_by(struct ran_conn *conn, enum ran_conn_use token) +{ + return conn && (conn->use_tokens & (1 << token)); +} -- To view, visit https://gerrit.osmocom.org/12698 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I593675d9bf56eaef12afdaf596ee1337b9a44259 Gerrit-Change-Number: 12698 Gerrit-PatchSet: 4 Gerrit-Owner: Vadim Yanitskiy Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 09:39:01 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 14 Feb 2019 09:39:01 +0000 Subject: Change in libosmocore[master]: Add multipatch capability to osmo-config-merge In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12897 ) Change subject: Add multipatch capability to osmo-config-merge ...................................................................... Patch Set 2: Code-Review-1 (1 comment) Nice feature! Just found the --debug argument handling issue https://gerrit.osmocom.org/#/c/12897/2/utils/osmo-config-merge.c File utils/osmo-config-merge.c: https://gerrit.osmocom.org/#/c/12897/2/utils/osmo-config-merge.c at 262 PS2, Line 262: if (!strcmp(argv[3], "--debug")) argv[i] -- To view, visit https://gerrit.osmocom.org/12897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I212cbdc3bf6f251c1a3175737ac74242fb004c6d Gerrit-Change-Number: 12897 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Comment-Date: Thu, 14 Feb 2019 09:39:01 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Thu Feb 14 09:41:59 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Thu, 14 Feb 2019 09:41:59 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-trx_=C2=BB_--with-ss?= =?UTF-8?Q?e,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#881?= Message-ID: <1200295526.228.1550137319249.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 107.47 KB...] Parsing files Building group list... Building directory list... Building namespace list... Building file list... Building class list... Associating documentation with classes... Computing nesting relations for classes... Building example list... Searching for enumerations... Searching for documented typedefs... Searching for members imported via using declarations... Searching for included using directives... Searching for documented variables... Building interface member list... Building member list... Searching for friends... Searching for documented defines... Computing class inheritance relations... Computing class usage relations... Flushing cached template relations that have become invalid... Computing class relations... Add enum values to enums... Searching for member function documentation... Creating members for template instances... Building page list... Search for main page... Computing page relations... Determining the scope of groups... Sorting lists... Freeing entry tree Determining which enums are documented Computing member relations... Building full member lists recursively... Adding members to member groups. Computing member references... Inheriting documentation... Generating disk names... Adding source references... Adding xrefitems... Sorting member lists... Computing dependencies between directories... Generating citations page... Counting data structures... Resolving user defined references... Finding anchors and sections in the documentation... Transferring function references... Combining using relations... Adding members to index pages... Generating style sheet... Generating search indices... Generating example documentation... Generating file sources... Generating file documentation... Generating page documentation... Generating group documentation... Generating class documentation... Generating namespace index... Generating graph info page... Generating directory documentation... Generating index page... Generating page index... Generating module index... Generating namespace index... Generating namespace member index... Generating annotated compound index... Generating alphabetical compound index... Generating hierarchical class index... Generating graphical class hierarchy... Generating member index... Generating file index... Generating file member index... Generating example index... finalizing index lists... writing tag file... Running dot... Running dot for graph 1/1 lookup cache used 0/65536 hits=0 misses=0 finished... make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_guide.html /usr/bin/install -c -m 644 ../README ' cp -r html make[5]: Leaving directory ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in firmware make[2]: Entering directory ' Making install in include make[3]: Entering directory ' PYTHONPATH=../../usrp/firmware/include ./generate_regs.py ./fpga_regs_common.h fpga_regs_common.v PYTHONPATH=../../usrp/firmware/include ./generate_regs.py ./fpga_regs_standard.h fpga_regs_standard.v make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_i2c_addr.h usrp_spi_defs.h fpga_regs_common.h fpga_regs_standard.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' Making install in lib make[3]: Entering directory ' sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c delay.c -o delay.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c fx2utils.c -o fx2utils.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c i2c.c -o i2c.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c isr.c -o isr.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c timer.c -o timer.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c usb_common.c -o usb_common.rel usb_common.c:65: warning 196: pointer target lost const qualifier usb_common.c:66: warning 196: pointer target lost const qualifier usb_common.c:67: warning 196: pointer target lost const qualifier usb_common.c:68: warning 196: pointer target lost const qualifier usb_common.c:71: warning 196: pointer target lost const qualifier usb_common.c:72: warning 196: pointer target lost const qualifier usb_common.c:73: warning 196: pointer target lost const qualifier usb_common.c:74: warning 196: pointer target lost const qualifier timer.c:45: warning 158: overflow in implicit constant conversion isr.c:73: warning 94: comparison is always false due to limited range of data type -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'int fixed' to type 'volatile-unsigned-char xdata* xdata' isr.c:100: warning 94: comparison is always false due to limited range of data type usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:217: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:226: warning 126: unreachable code usb_common.c:184: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG usb_common.c:315: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG rm -f libfx2.lib touch libfx2.lib for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done make[3]: Leaving directory ' Making install in src make[3]: Entering directory ' Making install in common make[4]: Entering directory ' make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory ' make[4]: Leaving directory ' Making install in usrp2 make[4]: Entering directory ' test -f `basename 'eeprom_boot.a51'` || ln -s 'eeprom_boot.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_init.rel `test -f 'eeprom_init.c' || echo './'`eeprom_init.c test -f `basename '_startup.a51'` || ln -s '_startup.a51' . test -f `basename 'vectors.a51'` || ln -s 'vectors.a51' . srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_common.rel `test -f 'usrp_common.c' || echo './'`usrp_common.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o board_specific.rel `test -f 'board_specific.c' || echo './'`board_specific.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_load.rel `test -f 'fpga_load.c' || echo './'`fpga_load.c test -f ../common/`basename 'eeprom_boot.a51'` -o \ \! -f `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` \ || ln -s `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` ../common/`basename 'eeprom_boot.a51'` test -f ../common/`basename '_startup.a51'` -o \ \! -f `dirname '_startup.a51'`/../common/`basename '_startup.a51'` \ || ln -s `dirname '_startup.a51'`/../common/`basename '_startup.a51'` ../common/`basename '_startup.a51'` test -f ../common/`basename 'vectors.a51'` -o \ \! -f `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` \ || ln -s `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` ../common/`basename 'vectors.a51'` sdas8051 -plosgff `basename 'eeprom_boot.a51'` sdas8051 -plosgff `basename 'vectors.a51'` sdas8051 -plosgff `basename '_startup.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_rev2.rel `test -f 'fpga_rev2.c' || echo './'`fpga_rev2.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o init_gpif.rel `test -f 'init_gpif.c' || echo './'`init_gpif.c srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h ../common/fpga_load.c:139: warning 85: in function clock_out_config_byte unreferenced function argument : 'bits' board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'bits' board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'mask' ../common/fpga_load.c:181: warning 126: unreachable code test -f `basename 'usb_descriptors.a51'` || ln -s 'usb_descriptors.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o spi.rel `test -f 'spi.c' || echo './'`spi.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_io.rel `test -f 'eeprom_io.c' || echo './'`eeprom_io.c test -f ../common/`basename 'usb_descriptors.a51'` -o \ \! -f `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` \ || ln -s `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` ../common/`basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o eeprom_boot.ihx eeprom_boot.rel eeprom_init.rel _startup.rel sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_main.rel `test -f 'usrp_main.c' || echo './'`usrp_main.c sdas8051 -plosgff `basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_gpif.rel `test -f 'usrp_gpif.c' || echo './'`usrp_gpif.c usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion ./../common/build_eeprom.py -p -r2 eeprom_boot.ihx > burn-usrp2-eeprom ./../common/build_eeprom.py -p -r4 eeprom_boot.ihx > burn-usrp4-eeprom chmod +x burn-usrp2-eeprom usrp_main.c:223: warning 112: function 'setup_flowstate_common' implicit declaration usrp_main.c:260: warning 112: function 'setup_flowstate_write' implicit declaration usrp_main.c:282: warning 112: function 'setup_flowstate_read' implicit declaration chmod +x burn-usrp4-eeprom usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o std.ihx vectors.rel usrp_main.rel usrp_common.rel board_specific.rel fpga_load.rel fpga_rev2.rel init_gpif.rel usrp_gpif.rel usb_descriptors.rel spi.rel eeprom_io.rel _startup.rel ?ASlink-Warning-Undefined Global '_setup_flowstate_read' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_write' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_common' referenced by module 'usrp_main' Makefile:688: recipe for target 'std.ihx' failed make[4]: *** [std.ihx] Error 1 make[4]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[3]: *** [install-recursive] Error 1 make[3]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[2]: *** [install-recursive] Error 1 make[2]: Leaving directory ' Makefile:628: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:925: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Thu Feb 14 09:54:57 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 14 Feb 2019 09:54:57 +0000 Subject: Change in osmo-msc[master]: transaction: drop meaningless ti_flag of trans_assign_trans_id() In-Reply-To: References: Message-ID: Vadim Yanitskiy has uploaded a new patch set (#5) to the change originally created by Max. ( https://gerrit.osmocom.org/12519 ) Change subject: transaction: drop meaningless ti_flag of trans_assign_trans_id() ...................................................................... transaction: drop meaningless ti_flag of trans_assign_trans_id() According to GSM 04.07, the TI flag takes one bit and can be either of the following: '0'B - transaction is allocated by sender of a message, '1'B - transaction is allocated by receiver of a message. Since we store transaction ID in gsm_trans structure, we also store TI flag (as a part of transaction ID), which in this context means: '0'B - transaction is allocated by us (OsmoMSC), '1'B - transaction is allocated by some MS. In 100% cases, trans_assign_trans_id() is used to assign transaction IDs to transactions allocated by us (i.e. OsmoMSC) for MT connections. And there is no need to use it for MO transactions, because they basically already do contain a valid transaction ID assigned by the MS. Change-Id: Ie11999900b1789652ee078d34636dcda1e137eb0 --- M include/osmocom/msc/transaction.h M src/libmsc/gsm_04_08_cc.c M src/libmsc/gsm_04_11.c M src/libmsc/gsm_09_11.c M src/libmsc/transaction.c 5 files changed, 8 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/19/12519/5 -- To view, visit https://gerrit.osmocom.org/12519 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ie11999900b1789652ee078d34636dcda1e137eb0 Gerrit-Change-Number: 12519 Gerrit-PatchSet: 5 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 09:54:58 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 14 Feb 2019 09:54:58 +0000 Subject: Change in osmo-msc[master]: transaction: clarify late transaction ID assignment Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/12901 Change subject: transaction: clarify late transaction ID assignment ...................................................................... transaction: clarify late transaction ID assignment Change-Id: I2d3a6334f49989bedbb1430d26ffad8b61dfd873 --- M include/osmocom/msc/transaction.h M src/libmsc/gsm_04_08_cc.c 2 files changed, 6 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/01/12901/1 diff --git a/include/osmocom/msc/transaction.h b/include/osmocom/msc/transaction.h index c5c740c..5e8d637 100644 --- a/include/osmocom/msc/transaction.h +++ b/include/osmocom/msc/transaction.h @@ -9,6 +9,9 @@ #include #include +/* Used for late TID assignment */ +#define TRANS_ID_UNASSIGNED 0xff + enum bridge_state { BRIDGE_STATE_NONE, BRIDGE_STATE_LOOPBACK_PENDING, diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c index b84fd03..98c2aa3 100644 --- a/src/libmsc/gsm_04_08_cc.c +++ b/src/libmsc/gsm_04_08_cc.c @@ -617,7 +617,7 @@ gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); /* transaction id must not be assigned */ - if (trans->transaction_id != 0xff) { /* unasssigned */ + if (trans->transaction_id != TRANS_ID_UNASSIGNED) { DEBUGP(DCC, "TX Setup with assigned transaction. " "This is not allowed!\n"); /* Temporarily out of order */ @@ -1928,7 +1928,8 @@ GSM48_CC_CAUSE_DEST_OOO); } /* Create transaction */ - trans = trans_alloc(net, vsub, GSM48_PDISC_CC, 0xff, data->callref); + trans = trans_alloc(net, vsub, GSM48_PDISC_CC, + TRANS_ID_UNASSIGNED, data->callref); if (!trans) { LOGP(DCC, LOGL_ERROR, "No memory for trans.\n"); vlr_subscr_put(vsub); -- To view, visit https://gerrit.osmocom.org/12901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I2d3a6334f49989bedbb1430d26ffad8b61dfd873 Gerrit-Change-Number: 12901 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 09:55:00 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 14 Feb 2019 09:55:00 +0000 Subject: Change in osmo-msc[master]: transaction: fix description of trans_assign_trans_id() Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/12902 Change subject: transaction: fix description of trans_assign_trans_id() ...................................................................... transaction: fix description of trans_assign_trans_id() Change-Id: I80238d89e95b6fd791961c48de80aac69ff5b0e9 --- M src/libmsc/transaction.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/02/12902/1 diff --git a/src/libmsc/transaction.c b/src/libmsc/transaction.c index 90ba278..d73f5de 100644 --- a/src/libmsc/transaction.c +++ b/src/libmsc/transaction.c @@ -181,8 +181,8 @@ /*! allocate an unused transaction ID for the given subscriber * in the given protocol using TI flag = 0 (allocated by us). * \param[in] net GSM network - * \param[in] subscr Subscriber for which to find ID - * \param[in] protocol Protocol for whihc to find ID + * \param[in] subscr Subscriber for which to assign a new TID + * \param[in] protocol Protocol of to be assigned TID */ int trans_assign_trans_id(const struct gsm_network *net, const struct vlr_subscr *vsub, uint8_t protocol) -- To view, visit https://gerrit.osmocom.org/12902 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I80238d89e95b6fd791961c48de80aac69ff5b0e9 Gerrit-Change-Number: 12902 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 09:55:00 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 14 Feb 2019 09:55:00 +0000 Subject: Change in osmo-msc[master]: transaction.h: use #pragma once as include guard Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/12903 Change subject: transaction.h: use #pragma once as include guard ...................................................................... transaction.h: use #pragma once as include guard Change-Id: I52787120d5ec59897329d28eab28e0fda3d0f44f --- M include/osmocom/msc/transaction.h 1 file changed, 1 insertion(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/03/12903/1 diff --git a/include/osmocom/msc/transaction.h b/include/osmocom/msc/transaction.h index 5e8d637..39b09ae 100644 --- a/include/osmocom/msc/transaction.h +++ b/include/osmocom/msc/transaction.h @@ -1,5 +1,4 @@ -#ifndef _TRANSACT_H -#define _TRANSACT_H +#pragma once #include #include @@ -117,5 +116,3 @@ uint8_t protocol); struct gsm_trans *trans_has_conn(const struct ran_conn *conn); void trans_conn_closed(const struct ran_conn *conn); - -#endif -- To view, visit https://gerrit.osmocom.org/12903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I52787120d5ec59897329d28eab28e0fda3d0f44f Gerrit-Change-Number: 12903 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 10:11:21 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 14 Feb 2019 10:11:21 +0000 Subject: Change in docker-playground[master]: ttcn3-msc-test: Enable SGs interface In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12878 ) Change subject: ttcn3-msc-test: Enable SGs interface ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12878 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I260fbd21d00d4fc160e95b76fc26b5d5b8f3c9e8 Gerrit-Change-Number: 12878 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 14 Feb 2019 10:11:21 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 10:16:08 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 10:16:08 +0000 Subject: Change in libosmo-sccp[master]: osmo_ss7.c: fix typo In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12889 ) Change subject: osmo_ss7.c: fix typo ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12889/1/src/osmo_ss7.c File src/osmo_ss7.c: https://gerrit.osmocom.org/#/c/12889/1/src/osmo_ss7.c at a1319 PS1, Line 1319: > UTHENTICATION. That's authentication for UMTS. For LTE it's gonna be called EUTHENTICATION ;) That sounds horribly plausible :) -- To view, visit https://gerrit.osmocom.org/12889 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Idd0945ef7fa5cc0caf2f35919f97e2e11691f3a3 Gerrit-Change-Number: 12889 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 14 Feb 2019 10:16:08 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 10:28:53 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 10:28:53 +0000 Subject: Change in osmo-hlr[master]: Log ip:port when adding GSUP routes Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12904 Change subject: Log ip:port when adding GSUP routes ...................................................................... Log ip:port when adding GSUP routes Change-Id: I7202fdf59e763dbca261508685555b324ac7e4c0 --- M src/gsup_router.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/04/12904/1 diff --git a/src/gsup_router.c b/src/gsup_router.c index 6038ee6..16ea202 100644 --- a/src/gsup_router.c +++ b/src/gsup_router.c @@ -61,7 +61,7 @@ if (!gr) return -ENOMEM; - LOGP(DMAIN, LOGL_INFO, "Adding GSUP route for %s\n", addr); + LOGP(DMAIN, LOGL_INFO, "Adding GSUP route for %s via %s:%u\n", addr, conn->conn->addr, conn->conn->port); gr->addr = talloc_memdup(gr, addr, addrlen); gr->conn = conn; -- To view, visit https://gerrit.osmocom.org/12904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I7202fdf59e763dbca261508685555b324ac7e4c0 Gerrit-Change-Number: 12904 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 10:40:28 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 10:40:28 +0000 Subject: Change in osmo-sgsn[master]: GMM: permit VLR_ANSWERED event in attach FSM In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12895 to look at the new patch set (#3). Change subject: GMM: permit VLR_ANSWERED event in attach FSM ...................................................................... GMM: permit VLR_ANSWERED event in attach FSM This fixes following error: DMM gprs_gmm.c:1126 GMM_ATTACH_REQ_FSM(gb_gmm_req)[0x5589e78dded0]{WaitAttachComplete}: Event VLR answered not permitted There seems to be a race condition in FSM when MS establishes MM context which isn't immediately followed up by PDP context (for example when no APN is configured in MS). This does not affect actual functionality because in this case MS won't be able to use GPRS anyway but it's still nice to get our FSM fixed even in this corner case. Change-Id: I14d234632224e20faf865d2273c83cfff31abf61 --- M src/gprs/gprs_gmm_attach.c 1 file changed, 7 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/95/12895/3 -- To view, visit https://gerrit.osmocom.org/12895 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I14d234632224e20faf865d2273c83cfff31abf61 Gerrit-Change-Number: 12895 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 10:45:10 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 10:45:10 +0000 Subject: Change in osmo-msc[master]: transaction: drop meaningless ti_flag of trans_assign_trans_id() In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12519 ) Change subject: transaction: drop meaningless ti_flag of trans_assign_trans_id() ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/#/c/12519/5/src/libmsc/transaction.c File src/libmsc/transaction.c: https://gerrit.osmocom.org/#/c/12519/5/src/libmsc/transaction.c at 182 PS5, Line 182: * in the given protocol using TI flag = 0 (allocated by us). Would be nice to add spec reference here as well to make it clear where it comes from. -- To view, visit https://gerrit.osmocom.org/12519 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie11999900b1789652ee078d34636dcda1e137eb0 Gerrit-Change-Number: 12519 Gerrit-PatchSet: 5 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 14 Feb 2019 10:45:10 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 10:50:31 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 10:50:31 +0000 Subject: Change in docker-playground[master]: ttcn3-msc-test: Enable SGs interface In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12878 ) Change subject: ttcn3-msc-test: Enable SGs interface ...................................................................... Patch Set 2: Code-Review-1 merging this change will break all "latest" tests. You have to consider that the same ttcn3-msc-test container is used against both the "master" MSC (with SGs) as well as the "latest" MSC (no SGs). As such, the config file must not come from within the container, but somehow be supplied by the respective test-job/... :( -- To view, visit https://gerrit.osmocom.org/12878 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I260fbd21d00d4fc160e95b76fc26b5d5b8f3c9e8 Gerrit-Change-Number: 12878 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 14 Feb 2019 10:50:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 10:53:44 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 10:53:44 +0000 Subject: Change in osmo-msc[master]: transaction: fix description of trans_assign_trans_id() In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12902 ) Change subject: transaction: fix description of trans_assign_trans_id() ...................................................................... Patch Set 1: Sounds somewhat odd. Someone with less Russian English than me should have a look at this :) -- To view, visit https://gerrit.osmocom.org/12902 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I80238d89e95b6fd791961c48de80aac69ff5b0e9 Gerrit-Change-Number: 12902 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Max Gerrit-Comment-Date: Thu, 14 Feb 2019 10:53:44 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 10:56:55 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 10:56:55 +0000 Subject: Change in osmo-msc[master]: transaction: clarify late transaction ID assignment In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12901 ) Change subject: transaction: clarify late transaction ID assignment ...................................................................... Patch Set 1: What about gsm_04_11.c and transaction.c? I think both used 0xff as well. -- To view, visit https://gerrit.osmocom.org/12901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2d3a6334f49989bedbb1430d26ffad8b61dfd873 Gerrit-Change-Number: 12901 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Thu, 14 Feb 2019 10:56:55 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 10:57:25 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 10:57:25 +0000 Subject: Change in osmo-msc[master]: transaction.h: use #pragma once as include guard In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12903 ) Change subject: transaction.h: use #pragma once as include guard ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I52787120d5ec59897329d28eab28e0fda3d0f44f Gerrit-Change-Number: 12903 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Thu, 14 Feb 2019 10:57:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 10:58:41 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 10:58:41 +0000 Subject: Change in osmo-msc[master]: transaction: drop meaningless ti_flag of trans_assign_trans_id() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12519 ) Change subject: transaction: drop meaningless ti_flag of trans_assign_trans_id() ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12519 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie11999900b1789652ee078d34636dcda1e137eb0 Gerrit-Change-Number: 12519 Gerrit-PatchSet: 5 Gerrit-Owner: Max Gerrit-Assignee: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 14 Feb 2019 10:58:41 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 10:58:58 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 10:58:58 +0000 Subject: Change in osmo-msc[master]: transaction: clarify late transaction ID assignment In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12901 ) Change subject: transaction: clarify late transaction ID assignment ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2d3a6334f49989bedbb1430d26ffad8b61dfd873 Gerrit-Change-Number: 12901 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Thu, 14 Feb 2019 10:58:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 10:59:32 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 10:59:32 +0000 Subject: Change in osmo-msc[master]: transaction: fix description of trans_assign_trans_id() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12902 ) Change subject: transaction: fix description of trans_assign_trans_id() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12902 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I80238d89e95b6fd791961c48de80aac69ff5b0e9 Gerrit-Change-Number: 12902 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Max Gerrit-Comment-Date: Thu, 14 Feb 2019 10:59:32 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 10:59:41 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 10:59:41 +0000 Subject: Change in osmo-msc[master]: transaction.h: use #pragma once as include guard In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12903 ) Change subject: transaction.h: use #pragma once as include guard ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I52787120d5ec59897329d28eab28e0fda3d0f44f Gerrit-Change-Number: 12903 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Thu, 14 Feb 2019 10:59:41 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 11:00:09 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 11:00:09 +0000 Subject: Change in osmo-sgsn[master]: GMM: permit VLR_ANSWERED event in attach FSM In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12895 ) Change subject: GMM: permit VLR_ANSWERED event in attach FSM ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12895 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I14d234632224e20faf865d2273c83cfff31abf61 Gerrit-Change-Number: 12895 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-CC: lynxis lazus Gerrit-Comment-Date: Thu, 14 Feb 2019 11:00:09 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 11:00:23 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 11:00:23 +0000 Subject: Change in osmo-hlr[master]: Log ip:port when adding GSUP routes In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12904 ) Change subject: Log ip:port when adding GSUP routes ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7202fdf59e763dbca261508685555b324ac7e4c0 Gerrit-Change-Number: 12904 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Thu, 14 Feb 2019 11:00:23 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 11:06:20 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 11:06:20 +0000 Subject: Change in osmo-bsc[master]: OML: Fix encoded length value of OML GET ATTRIBUTES In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12890 ) Change subject: OML: Fix encoded length value of OML GET ATTRIBUTES ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12890/1/src/osmo-bsc/abis_nm.c File src/osmo-bsc/abis_nm.c: https://gerrit.osmocom.org/#/c/12890/1/src/osmo-bsc/abis_nm.c at 1720 PS1, Line 1720: fill_om_fom_hdr(oh, 3+attr_len, NM_MT_GET_ATTR, obj_class, > I guess those 3 bytes are the T and L16 parts of TL16V missing right? You could explain that in the [?] That would be handy indeed: fill_om_fom_hdr() is sometimes called with 2+sizeof(), sometime with explicit number (2, 3, 6, even 0) so it's pretty confusing overall. -- To view, visit https://gerrit.osmocom.org/12890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I56068de0bb14a99ec39be587e542e27cddb7d1df Gerrit-Change-Number: 12890 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-CC: Max Gerrit-Comment-Date: Thu, 14 Feb 2019 11:06:20 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 11:07:16 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 11:07:16 +0000 Subject: Change in osmo-hlr[master]: Log ip:port when adding GSUP routes In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12904 ) Change subject: Log ip:port when adding GSUP routes ...................................................................... Log ip:port when adding GSUP routes Change-Id: I7202fdf59e763dbca261508685555b324ac7e4c0 --- M src/gsup_router.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/gsup_router.c b/src/gsup_router.c index 6038ee6..16ea202 100644 --- a/src/gsup_router.c +++ b/src/gsup_router.c @@ -61,7 +61,7 @@ if (!gr) return -ENOMEM; - LOGP(DMAIN, LOGL_INFO, "Adding GSUP route for %s\n", addr); + LOGP(DMAIN, LOGL_INFO, "Adding GSUP route for %s via %s:%u\n", addr, conn->conn->addr, conn->conn->port); gr->addr = talloc_memdup(gr, addr, addrlen); gr->conn = conn; -- To view, visit https://gerrit.osmocom.org/12904 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I7202fdf59e763dbca261508685555b324ac7e4c0 Gerrit-Change-Number: 12904 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 11:07:48 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 11:07:48 +0000 Subject: Change in osmo-sgsn[master]: GMM: permit VLR_ANSWERED event in attach FSM In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12895 ) Change subject: GMM: permit VLR_ANSWERED event in attach FSM ...................................................................... GMM: permit VLR_ANSWERED event in attach FSM This fixes following error: DMM gprs_gmm.c:1126 GMM_ATTACH_REQ_FSM(gb_gmm_req)[0x5589e78dded0]{WaitAttachComplete}: Event VLR answered not permitted There seems to be a race condition in FSM when MS establishes MM context which isn't immediately followed up by PDP context (for example when no APN is configured in MS). This does not affect actual functionality because in this case MS won't be able to use GPRS anyway but it's still nice to get our FSM fixed even in this corner case. Change-Id: I14d234632224e20faf865d2273c83cfff31abf61 --- M src/gprs/gprs_gmm_attach.c 1 file changed, 7 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gprs/gprs_gmm_attach.c b/src/gprs/gprs_gmm_attach.c index 6fdb3af..1ab11f7 100644 --- a/src/gprs/gprs_gmm_attach.c +++ b/src/gprs/gprs_gmm_attach.c @@ -195,6 +195,12 @@ extract_subscr_hlr(ctx); osmo_fsm_inst_state_chg(fi, ST_INIT, 0, 0); break; + case E_VLR_ANSWERED: + extract_subscr_msisdn(ctx); + extract_subscr_hlr(ctx); + LOGMMCTXP(LOGL_NOTICE, ctx, + "Unusual event: if MS got no data connection, check that it has APN configured.\n"); + break; } } @@ -295,7 +301,7 @@ .action = st_iu_security_cmd, }, [ST_ACCEPT] = { - .in_event_mask = X(E_ATTACH_COMPLETE_RECV), + .in_event_mask = X(E_ATTACH_COMPLETE_RECV) | X(E_VLR_ANSWERED), .out_state_mask = X(ST_INIT) | X(ST_REJECT), .name = "WaitAttachComplete", .onenter = st_accept_on_enter, -- To view, visit https://gerrit.osmocom.org/12895 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I14d234632224e20faf865d2273c83cfff31abf61 Gerrit-Change-Number: 12895 Gerrit-PatchSet: 4 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-CC: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 11:09:48 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 11:09:48 +0000 Subject: Change in libosmocore[master]: Add multipatch capability to osmo-config-merge In-Reply-To: References: Message-ID: Hello daniel, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12897 to look at the new patch set (#3). Change subject: Add multipatch capability to osmo-config-merge ...................................................................... Add multipatch capability to osmo-config-merge That's pretty straightforward and convenient extention: handle all extra positional arguments as patch file names. This makes it similar to 'cp' and other coreutils basic tools. For example: osmo-config-merge base.cfg patch1.cfg patch2.cfg patch3.cfg will apply 3 patches to the base config file. Change-Id: I212cbdc3bf6f251c1a3175737ac74242fb004c6d --- M utils/osmo-config-merge.c 1 file changed, 43 insertions(+), 21 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/97/12897/3 -- To view, visit https://gerrit.osmocom.org/12897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I212cbdc3bf6f251c1a3175737ac74242fb004c6d Gerrit-Change-Number: 12897 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 11:10:25 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 11:10:25 +0000 Subject: Change in libosmocore[master]: Add multipatch capability to osmo-config-merge In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12897 ) Change subject: Add multipatch capability to osmo-config-merge ...................................................................... Patch Set 3: (1 comment) Fixed in updated patch, thanks! https://gerrit.osmocom.org/#/c/12897/2/utils/osmo-config-merge.c File utils/osmo-config-merge.c: https://gerrit.osmocom.org/#/c/12897/2/utils/osmo-config-merge.c at 262 PS2, Line 262: if (!strcmp(argv[i], "--debug")) > argv[i] Doh! -- To view, visit https://gerrit.osmocom.org/12897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I212cbdc3bf6f251c1a3175737ac74242fb004c6d Gerrit-Change-Number: 12897 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Comment-Date: Thu, 14 Feb 2019 11:10:25 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 11:23:00 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 11:23:00 +0000 Subject: Change in osmo-bts[master]: OML: Store merged attributes of IPA OML Managed Objects In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12893 ) Change subject: OML: Store merged attributes of IPA OML Managed Objects ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12893/1/src/common/oml.c File src/common/oml.c: https://gerrit.osmocom.org/#/c/12893/1/src/common/oml.c at 1337 PS1, Line 1337: tp_merged = osmo_tlvp_copy(mo->nm_attr, bts); Can this be moved inside 'success' branch of if()? In this case we won't have to free tp_merged and can drop the else{} branch. -- To view, visit https://gerrit.osmocom.org/12893 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I75ebda46da9c1fcecc484311bf3833f31c536ee1 Gerrit-Change-Number: 12893 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-CC: Max Gerrit-Comment-Date: Thu, 14 Feb 2019 11:23:00 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 11:27:14 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 11:27:14 +0000 Subject: Change in osmocom-bb[master]: firmware/board/pirelli_dpl10: fix ASIC_CONF_REG setting In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12882 ) Change subject: firmware/board/pirelli_dpl10: fix ASIC_CONF_REG setting ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12882 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I099e13800b7821a8fb274c5264c9823153afe564 Gerrit-Change-Number: 12882 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: steve-m Gerrit-Comment-Date: Thu, 14 Feb 2019 11:27:14 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 11:30:54 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 14 Feb 2019 11:30:54 +0000 Subject: Change in osmo-msc[master]: transaction: clarify magic 0xff transaction ID In-Reply-To: References: Message-ID: Hello Max, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12901 to look at the new patch set (#2). Change subject: transaction: clarify magic 0xff transaction ID ...................................................................... transaction: clarify magic 0xff transaction ID Change-Id: I2d3a6334f49989bedbb1430d26ffad8b61dfd873 --- M include/osmocom/msc/transaction.h M src/libmsc/gsm_04_08_cc.c M src/libmsc/gsm_04_11.c M src/libmsc/gsm_09_11.c M src/libmsc/transaction.c 5 files changed, 10 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/01/12901/2 -- To view, visit https://gerrit.osmocom.org/12901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I2d3a6334f49989bedbb1430d26ffad8b61dfd873 Gerrit-Change-Number: 12901 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 11:32:23 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 14 Feb 2019 11:32:23 +0000 Subject: Change in osmo-msc[master]: transaction: clarify magic 0xff transaction ID In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12901 ) Change subject: transaction: clarify magic 0xff transaction ID ...................................................................... Patch Set 2: > What about gsm_04_11.c and transaction.c? Thanks! Done. -- To view, visit https://gerrit.osmocom.org/12901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2d3a6334f49989bedbb1430d26ffad8b61dfd873 Gerrit-Change-Number: 12901 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 14 Feb 2019 11:32:23 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 11:35:43 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 11:35:43 +0000 Subject: Change in osmo-msc[master]: transaction: clarify magic 0xff transaction ID In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12901 ) Change subject: transaction: clarify magic 0xff transaction ID ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2d3a6334f49989bedbb1430d26ffad8b61dfd873 Gerrit-Change-Number: 12901 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 14 Feb 2019 11:35:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 12:50:57 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 14 Feb 2019 12:50:57 +0000 Subject: Change in osmo-msc[master]: transaction: clarify magic 0xff transaction ID In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12901 ) Change subject: transaction: clarify magic 0xff transaction ID ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/12901/2/src/libmsc/gsm_04_11.c File src/libmsc/gsm_04_11.c: https://gerrit.osmocom.org/#/c/12901/2/src/libmsc/gsm_04_11.c at 1042 PS2, Line 1042: TRANS_ID_UNASSIGNED Oh, this is wrong. SM-RP-MR is not related to transactions... -- To view, visit https://gerrit.osmocom.org/12901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2d3a6334f49989bedbb1430d26ffad8b61dfd873 Gerrit-Change-Number: 12901 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 14 Feb 2019 12:50:57 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 12:52:48 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 14 Feb 2019 12:52:48 +0000 Subject: Change in osmo-msc[master]: transaction: clarify magic 0xff transaction ID In-Reply-To: References: Message-ID: Hello Max, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12901 to look at the new patch set (#3). Change subject: transaction: clarify magic 0xff transaction ID ...................................................................... transaction: clarify magic 0xff transaction ID Change-Id: I2d3a6334f49989bedbb1430d26ffad8b61dfd873 --- M include/osmocom/msc/transaction.h M src/libmsc/gsm_04_08_cc.c M src/libmsc/gsm_09_11.c M src/libmsc/transaction.c 4 files changed, 8 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/01/12901/3 -- To view, visit https://gerrit.osmocom.org/12901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I2d3a6334f49989bedbb1430d26ffad8b61dfd873 Gerrit-Change-Number: 12901 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 12:57:12 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 14 Feb 2019 12:57:12 +0000 Subject: Change in osmo-gsm-tester[master]: modem: print call ID during log of call state In-Reply-To: References: Message-ID: Pau Espin Pedrol has submitted this change and it was merged. ( https://gerrit.osmocom.org/12896 ) Change subject: modem: print call ID during log of call state ...................................................................... modem: print call ID during log of call state Change-Id: I33d0153b3e89aa1924129b8068ef068c08059958 --- M src/osmo_gsm_tester/modem.py 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/osmo_gsm_tester/modem.py b/src/osmo_gsm_tester/modem.py index 5106702..6a2a49a 100644 --- a/src/osmo_gsm_tester/modem.py +++ b/src/osmo_gsm_tester/modem.py @@ -735,7 +735,7 @@ self.log('asking call state for non existent call') log.log_exn() state = 'disconnected' - self.dbg('call state: %s' % state) + self.dbg('call state: %s' % state, call_id=call_id) return state def _on_callmgr_call_added(self, obj_path, properties): -- To view, visit https://gerrit.osmocom.org/12896 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I33d0153b3e89aa1924129b8068ef068c08059958 Gerrit-Change-Number: 12896 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 12:57:12 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 14 Feb 2019 12:57:12 +0000 Subject: Change in osmo-gsm-tester[master]: modem: Log once dbus returns call was answered In-Reply-To: References: Message-ID: Pau Espin Pedrol has submitted this change and it was merged. ( https://gerrit.osmocom.org/12898 ) Change subject: modem: Log once dbus returns call was answered ...................................................................... modem: Log once dbus returns call was answered Change-Id: Ia277b2eecdbf9969d77a688638837f9d9e1a44b6 --- M src/osmo_gsm_tester/modem.py 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/osmo_gsm_tester/modem.py b/src/osmo_gsm_tester/modem.py index 6a2a49a..59e2136 100644 --- a/src/osmo_gsm_tester/modem.py +++ b/src/osmo_gsm_tester/modem.py @@ -717,6 +717,7 @@ assert self.call_state(call_id) == 'incoming' call_dbus_obj = systembus_get(call_id) call_dbus_obj.Answer() + self.dbg('Answered call %s' % call_id) def call_hangup(self, call_id): self.dbg('Hang up call %s' % call_id) -- To view, visit https://gerrit.osmocom.org/12898 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ia277b2eecdbf9969d77a688638837f9d9e1a44b6 Gerrit-Change-Number: 12898 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Thu Feb 14 14:22:34 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Thu, 14 Feb 2019 14:22:34 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-trx_=C2=BB_--wit?= =?UTF-8?Q?h-sse,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#882?= In-Reply-To: <1200295526.228.1550137319249.JavaMail.jenkins@jenkins.osmocom.org> References: <1200295526.228.1550137319249.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <86660334.230.1550154154196.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Thu Feb 14 14:59:47 2019 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Thu, 14 Feb 2019 14:59:47 +0000 Subject: Change in libosmocore[master]: gsm_08_08.h: Add constants for Channel Type in signalling mode Message-ID: tnt has uploaded this change for review. ( https://gerrit.osmocom.org/12905 Change subject: gsm_08_08.h: Add constants for Channel Type in signalling mode ...................................................................... gsm_08_08.h: Add constants for Channel Type in signalling mode This is from TS 08.08 3.2.2.11 directly. The choices for Data mode and Speech mode were already present, but not for Signalling mode Change-Id: I9e24841ea877a9a78dc4d2bd14cbf60c4bea79a6 Signed-off-by: Sylvain Munaut --- M include/osmocom/gsm/protocol/gsm_08_08.h 1 file changed, 14 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/05/12905/1 diff --git a/include/osmocom/gsm/protocol/gsm_08_08.h b/include/osmocom/gsm/protocol/gsm_08_08.h index 721da33..67dc6ee 100644 --- a/include/osmocom/gsm/protocol/gsm_08_08.h +++ b/include/osmocom/gsm/protocol/gsm_08_08.h @@ -437,6 +437,20 @@ GSM0808_SPEECH_PERM_NO_CHANGE = 0x1f, }; +/* GSM 08.08 3.2.2.11 Channel Type */ +enum gsm0808_chan_rate_type_sign { + GSM0808_SIGN_ANY = 0x00, + GSM0808_SIGN_SDCCH = 0x01, + GSM0808_SIGN_SDCCH_FULL_BM = 0x02, + GSM0808_SIGN_SDCCH_HALF_LM = 0x03, + GSM0808_SIGN_FULL_BM = 0x08, + GSM0808_SIGN_HALF_LM = 0x09, + GSM0808_SIGN_FULL_PREF = 0x0a, + GSM0808_SIGN_HALF_PREF = 0x0b, + GSM0808_SIGN_FULL_PREF_NO_CHANGE = 0x1a, + GSM0808_SIGN_HALF_PREF_NO_CHANGE = 0x1b, +}; + /*! GSM 08.08 3.2.2.11 Channel Type * (see also 3GPP TS 48.008, section 3.2.2.11) */ enum gsm0808_permitted_speech { -- To view, visit https://gerrit.osmocom.org/12905 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I9e24841ea877a9a78dc4d2bd14cbf60c4bea79a6 Gerrit-Change-Number: 12905 Gerrit-PatchSet: 1 Gerrit-Owner: tnt -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 15:03:50 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 15:03:50 +0000 Subject: Change in osmo-bts[master]: Log lchan kind on PCU-related error Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12906 Change subject: Log lchan kind on PCU-related error ...................................................................... Log lchan kind on PCU-related error Change-Id: Iadb464e7040dd11e4a8cabfc96d6d90f32594109 --- M src/common/rsl.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/06/12906/1 diff --git a/src/common/rsl.c b/src/common/rsl.c index 61bf6a1..fce3495 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -694,8 +694,8 @@ send_rel_ack = false; break; default: - LOGP(DRSL, LOGL_ERROR, "%s PCU rel ack for unexpected lchan kind\n", - gsm_lchan_name(lchan)); + LOGP(DRSL, LOGL_ERROR, "%s PCU rel ack for unexpected lchan kind %s\n", + gsm_lchan_name(lchan), gsm_pchan_name(lchan->rel_act_kind)); /* Release certainly was not requested by the BSC via RSL, so don't ack. */ send_rel_ack = false; break; -- To view, visit https://gerrit.osmocom.org/12906 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iadb464e7040dd11e4a8cabfc96d6d90f32594109 Gerrit-Change-Number: 12906 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Thu Feb 14 15:10:06 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Thu, 14 Feb 2019 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#401?= In-Reply-To: <759435118.217.1550070606762.JavaMail.jenkins@jenkins.osmocom.org> References: <759435118.217.1550070606762.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <665831844.231.1550157006845.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.69 KB...] + ./configure checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Thu Feb 14 15:36:17 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 15:36:17 +0000 Subject: Change in osmo-pcu[master]: Don't install pcuif_proto.h header Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12907 Change subject: Don't install pcuif_proto.h header ...................................................................... Don't install pcuif_proto.h header Both OsmoBTS and OsmoBSC use their own copies of this header nowadays so we can simplify our installation slightly by making it local only. Change-Id: I4a87395d4ab7212fe2fc055dae0a737e10d20c69 --- M Makefile.am M configure.ac M debian/osmo-pcu.install M include/Makefile.am D osmo-pcu.pc.in M src/Makefile.am 6 files changed, 1 insertion(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/07/12907/1 diff --git a/Makefile.am b/Makefile.am index fe94ea2..48051f2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -7,6 +7,3 @@ --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir) @RELMAKE@ - -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = osmo-pcu.pc diff --git a/configure.ac b/configure.ac index a1a610c..c3e2df8 100644 --- a/configure.ac +++ b/configure.ac @@ -221,7 +221,6 @@ AC_MSG_RESULT([LDFLAGS="$LDFLAGS"]) AC_OUTPUT( - osmo-pcu.pc include/Makefile src/Makefile doc/Makefile diff --git a/debian/osmo-pcu.install b/debian/osmo-pcu.install index 9b7eac6..603e0b1 100644 --- a/debian/osmo-pcu.install +++ b/debian/osmo-pcu.install @@ -1,6 +1,4 @@ etc/osmocom/osmo-pcu.cfg lib/systemd/system/osmo-pcu.service usr/bin/osmo-pcu -usr/include/osmocom/pcu/pcuif_proto.h -usr/lib/*/pkgconfig/osmo-pcu.pc usr/share/doc/osmo-pcu/examples/osmo-pcu/osmo-pcu.cfg diff --git a/include/Makefile.am b/include/Makefile.am index e40a9c0..92896c6 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -1,2 +1,2 @@ -nobase_include_HEADERS = \ +noinst_HEADERS = \ osmocom/pcu/pcuif_proto.h diff --git a/osmo-pcu.pc.in b/osmo-pcu.pc.in deleted file mode 100644 index b72e9a8..0000000 --- a/osmo-pcu.pc.in +++ /dev/null @@ -1,10 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@/ - -Name: OsmoPCU -Description: Osmocom PCU implementation -Requires: -Version: @VERSION@ -Cflags: -I${includedir} diff --git a/src/Makefile.am b/src/Makefile.am index b2f64f2..50e0eda 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -99,9 +99,6 @@ gprs_coding_scheme.h \ egprs_rlc_compression.h -nobase_include_HEADERS = - osmocom/pcu/pcuif_proto.h - osmo_pcu_SOURCES = pcu_main.cpp if ENABLE_SYSMODSP -- To view, visit https://gerrit.osmocom.org/12907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I4a87395d4ab7212fe2fc055dae0a737e10d20c69 Gerrit-Change-Number: 12907 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 15:54:06 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 14 Feb 2019 15:54:06 +0000 Subject: Change in libosmocore[master]: Add multipatch capability to osmo-config-merge In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12897 ) Change subject: Add multipatch capability to osmo-config-merge ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I212cbdc3bf6f251c1a3175737ac74242fb004c6d Gerrit-Change-Number: 12897 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Comment-Date: Thu, 14 Feb 2019 15:54:06 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 15:57:19 2019 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Thu, 14 Feb 2019 15:57:19 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/12625 ) Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... Patch Set 9: (1 comment) https://gerrit.osmocom.org/#/c/12625/9/src/osmo-bsc/osmo_bsc_bssap.c File src/osmo-bsc/osmo_bsc_bssap.c: https://gerrit.osmocom.org/#/c/12625/9/src/osmo-bsc/osmo_bsc_bssap.c at 635 PS9, Line 635: switch (ct->ch_rate_type & GSM0808_SPEECH_PERM) { Still that weird masking ... -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 9 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy Gerrit-CC: tnt Gerrit-Comment-Date: Thu, 14 Feb 2019 15:57:19 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 16:08:47 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 14 Feb 2019 16:08:47 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Fix compilation on eclipse-titan 6.5.1 Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/12908 Change subject: Fix compilation on eclipse-titan 6.5.1 ...................................................................... Fix compilation on eclipse-titan 6.5.1 Newer eclipse-titan makefilegen already sets CPPFLAGS like this: CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)/include$(TTCN3_SUBDIR) where TTCN3_SUBDIR expands to '/titan' and TTCN3_DIR to '/usr' If we add /titan after include we end up with -I/usr/include/titan/titan/ which will cause the compile to fail due to a missing TTCN3.hh include. Check the titan version so we retain backwards compatibility. Change-Id: If9fef29ce243be112d3735f0236335197f8f140f Related: OS#3179 Sponsored-by: On-Waves ehf. --- M regen-makefile.sh 1 file changed, 8 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/08/12908/1 diff --git a/regen-makefile.sh b/regen-makefile.sh index 5a4dd4c..77fcb6c 100755 --- a/regen-makefile.sh +++ b/regen-makefile.sh @@ -25,13 +25,20 @@ fi ttcn3_makefilegen -p -l -f $* + +TITAN_VERSION=$(ttcn3_makefilegen -v 2>&1 |grep "Product number" |cut --delimiter="/" -f 2-| sed -e "s/[A-Z ]//g") + sed -i -e 's/# TTCN3_DIR = /TTCN3_DIR = \/usr/' Makefile sed -i -e 's/LDFLAGS = /LDFLAGS = -L \/usr\/lib\/titan /' Makefile #sed -i -e 's/TTCN3_LIB = ttcn3-parallel/TTCN3_LIB = ttcn3/' Makefile # The -DMAKEDEPEND_RUN is a workaround for Debian packaging issue, # see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=879816 for details -sed -i -e 's/CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)\/include/CPPFLAGS = -D$(PLATFORM) -DMAKEDEPEND_RUN -DUSE_SCTP -I$(TTCN3_DIR)\/include -I\/usr\/include\/titan/' Makefile +if [ $(($TITAN_VERSION >= 65)) = 1 ]; then + sed -i -e 's/CPPFLAGS = -D$(PLATFORM)/CPPFLAGS = -D$(PLATFORM) -DMAKEDEPEND_RUN -DUSE_SCTP/' Makefile +else + sed -i -e 's/CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)\/include/CPPFLAGS = -D$(PLATFORM) -DMAKEDEPEND_RUN -DUSE_SCTP -I$(TTCN3_DIR)\/include -I\/usr\/include\/titan/' Makefile +fi #remove -Wall from CXXFLAGS: we're not interested in generic warnings for autogenerated code cluttering the logs sed -i -e 's/-Wall//' Makefile -- To view, visit https://gerrit.osmocom.org/12908 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If9fef29ce243be112d3735f0236335197f8f140f Gerrit-Change-Number: 12908 Gerrit-PatchSet: 1 Gerrit-Owner: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 16:13:51 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 14 Feb 2019 16:13:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Fix compilation on eclipse-titan 6.5.1 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12908 ) Change subject: Fix compilation on eclipse-titan 6.5.1 ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12908/1/regen-makefile.sh File regen-makefile.sh: https://gerrit.osmocom.org/#/c/12908/1/regen-makefile.sh at 36 PS1, Line 36: # see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=879816 for details The makedepend_run issue is reported as fixed upstream, but they have been wrong before... Keeping the define doesn't break it and my g++ currently matches what titan was compiled with I can't just test if it is gone for us or not. -- To view, visit https://gerrit.osmocom.org/12908 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If9fef29ce243be112d3735f0236335197f8f140f Gerrit-Change-Number: 12908 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: daniel Gerrit-CC: Jenkins Builder (1000002) Gerrit-Comment-Date: Thu, 14 Feb 2019 16:13:51 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 16:26:53 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Thu, 14 Feb 2019 16:26:53 +0000 Subject: Change in osmo-asf4-dfu[master]: fix USB transfer Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12909 Change subject: fix USB transfer ...................................................................... fix USB transfer this ASFv4 USB library change fixes USB transfer. two transfer-size issues existed: - on multi-packet transfer if the last packet was less than the USB transfer packet size, the packet would be received but not acknowledged - during normal transfer the packet size of a previous packet set the size of the current packet, ignoring the actual transfer size transfer with a combination of partial or full USB single packet, USB multi-packet, max transfer, and control endpoint sizes was successfully tested (in bytes): 4, 32, 64, 128, 129, 512, 516, 544, 576, 640, 641, 1024, 1028 Change-Id: Ic4e64168e865362e12e0b76386f964895b8b6c20 --- M hpl/usb/hpl_usb.c 1 file changed, 1 insertion(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-asf4-dfu refs/changes/09/12909/1 diff --git a/hpl/usb/hpl_usb.c b/hpl/usb/hpl_usb.c index 6bf09ab..cc6cc41 100644 --- a/hpl/usb/hpl_usb.c +++ b/hpl/usb/hpl_usb.c @@ -1135,6 +1135,7 @@ /* Short packet. */ ept->flags.bits.need_zlp = 0; ept->trans_count += last_trans; + _usbd_ep_set_out_trans(epn, 0, ept->size, 0); } else { /* Full packets. */ ept->trans_count += trans_size; @@ -1154,9 +1155,6 @@ if (trans_next > ept->size) { if (trans_next > USB_D_DEV_TRANS_MAX) { trans_next = USB_D_DEV_TRANS_MAX; - } else { - /* Must expect multiple of ep size. */ - trans_next -= trans_next & size_mask; } } else if (trans_next < ept->size) { /* Last un-aligned packet should be cached. */ -- To view, visit https://gerrit.osmocom.org/12909 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic4e64168e865362e12e0b76386f964895b8b6c20 Gerrit-Change-Number: 12909 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 16:26:54 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Thu, 14 Feb 2019 16:26:54 +0000 Subject: Change in osmo-asf4-dfu[master]: add specific board support, including sysmoOCTSIM Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12910 Change subject: add specific board support, including sysmoOCTSIM ...................................................................... add specific board support, including sysmoOCTSIM the board specific definitions should be coded when particular environment variable/marco is defined. this macro name is provided by the makefile in the BOARD variable. this allows to compile the bootloader for specific devices. see README for more information. the board definition for the sysmoOCTSIM is also added. Change-Id: Ie51a3af7c77ba76ac40570b871f31fd527fb255b --- M README.md M atmel_start_pins.h M config/usbd_config.h M driver_init.c M driver_init.h M gcc/Makefile M usb_dfu_main.c M usb_start.c 8 files changed, 109 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-asf4-dfu refs/changes/10/12910/1 diff --git a/README.md b/README.md index 031bc27..58833aa 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,22 @@ This is an implementation of the DFU mode of the [USB DFU Device Class Specification](https://usb.org/document-library/device-firmware-upgrade-11-new-version-31-aug-2004) for the Microchip SAM D5x/E5x micro-controller. It is meant to be used as bootloader to allow flashing the main application over USB. -The code has been developed for the Microchip [SAM E54 Xplained Pro](https://www.microchip.com/DevelopmentTools/ProductDetails/PartNo/ATSAME54-XPRO) development board using a [SAM E54](https://www.microchip.com/wwwproducts/en/ATSAME54P20A) micro-controller. +The code has been developed using a [SAM E54](https://www.microchip.com/wwwproducts/en/ATSAME54P20A) micro-controller. It should work on any chip of the SAM D5x/E5x device family by replacing the corresponding device-specific definitions (usually including the chip name in the file name). The code uses the [Atmel START](https://start.atmel.com/) ASFv4 library. +Board +===== + +The code can be compiled for specific boards: + +- Microchip [SAM E54 Xplained Pro](https://www.microchip.com/DevelopmentTools/ProductDetails/PartNo/ATSAME54-XPRO) development board, named *SAME54_XPLAINED_PRO* +- sysmocom sysmoOCTSIM, name *SYSMOOCTSIM* + +The board name can be set in 'gcc/Makefile' *BOARD* variable, or provided while compiling (e.g. `make BOARD=SAME54_XPLAINED_PRO`). +*SAME54_XPLAINED_PRO* is the default value. + USB DFU ======= @@ -26,13 +37,14 @@ make ``` +The board name can be set in 'gcc/Makefile' *BOARD* variable, or provided while compiling (e.g. `make BOARD=SAME54_XPLAINED_PRO`). +*SAME54_XPLAINED_PRO* is the default value. + The resulting firmware binary is `AtmelStart.bin`. Flashing ======== -To flash the bootloader you can either use the [edbg tool](https://github.com/ataradov/edbg) over the EDBG interface of the SAM E54 Xplained Pro development board, or OpenICD with any SWJ adapter. - The USB DFU bootloader should be flashed in a protected area of the flash memory to prevent for erasing it, as specified in data sheet section 25.6.2 Memory Organization. The bootloader size is configured in the NVM user configuration BOOTPROT field, as specified in data sheet section 25.6.9 NVM User Configuration. The bit position of the BOOTPROT field is documented in data sheet section 9.4 NVM User Page Mapping. @@ -43,8 +55,26 @@ EDBG ---- +To flash the bootloader using the [edbg tool](https://github.com/ataradov/edbg) over the EDBG interface of the SAM E54 Xplained Pro development board. + To flash the USB DFU bootloader, perform the following actions: * remove reserved bootloader space so we can erase it: `edbg --target atmel_cm4v2 --fuse wv,29:26,15` * erase the whole flash: `edbg --target atmel_cm4v2 --fuse v,29:26,15 --erase` * program the bootloader: `edbg --target atmel_cm4v2 --fuse v,29:26,15 --program --verify --file AtmelStart.bin` * reserve bootloader space: `edbg --target atmel_cm4v2 --fuse wv,29:26,13` + +SWJ +--- + +The bootloader can also be flashed over SWJ (e.g. JTAG or SWD). +You need to perform the following actions: + +* remove reserved bootloader space so we can erase it (and reset MCU for change to be effective) +* erase the whole flash +* program the bootloader +* reserve bootloader space + +Using OpenOCD (with the [SAM E54 patch](http://openocd.zylin.com/#/c/4272/)) and a ST-LINK/V2 SWD adapter, run the following command: + +`openocd --file interface/stlink.cfg --command "transport select hla_swd" --command "set CHIPNAME same54" --command "set CPUTAPID 0x2ba01477" --file target/atsame5x.cfg --command "init" --command "reset halt" --command "atsame5 bootloader 0" --command "flash erase_sector 0 0 last" --command "reset halt" --command "program ./AtmelStart.bin" --command "atsame5 bootloader 16384" --command "reset run" --command "shutdown"` + diff --git a/atmel_start_pins.h b/atmel_start_pins.h index 86e1dfb..220a7b5 100644 --- a/atmel_start_pins.h +++ b/atmel_start_pins.h @@ -27,11 +27,19 @@ #define GPIO_PIN_FUNCTION_M 12 #define GPIO_PIN_FUNCTION_N 13 -/** LED pin to indicate system state (pull low to switch on) */ +/** LED pin to indicate system state */ +#if defined(SAME54_XPLAINED_PRO) #define LED_SYSTEM GPIO(GPIO_PORTC, 18) +#elif defined(SYSMOOCTSIM) +#define LED_SYSTEM GPIO(GPIO_PORTC, 26) +#endif -/** User button to force DFu bootloader (connected to ground when pressed) */ +/** User button to force DFU bootloader (connected to ground when pressed) */ +#if defined(SAME54_XPLAINED_PRO) #define BUTTON_FORCE_DFU GPIO(GPIO_PORTB, 31) +#elif defined(SYSMOOCTSIM) +#define BUTTON_FORCE_DFU GPIO(GPIO_PORTC, 14) +#endif /** USB D+/D- pins */ #define PA24 GPIO(GPIO_PORTA, 24) diff --git a/config/usbd_config.h b/config/usbd_config.h index c20dfb2..6133596 100644 --- a/config/usbd_config.h +++ b/config/usbd_config.h @@ -85,8 +85,12 @@ // <0x6140=> osmo-ASF4-DFU // usb_dfud_idproduct #ifndef CONF_USB_OSMOASF4DFU_IDPRODUCT +#if defined(SYSMOOCTSIM) +#define CONF_USB_OSMOASF4DFU_IDPRODUCT 0x6141 +#else #define CONF_USB_OSMOASF4DFU_IDPRODUCT 0x6140 #endif +#endif // bcdDevice <0x0000-0xFFFF> // usb_dfud_bcddevice @@ -107,12 +111,20 @@ // Unicode string of iManufact // usb_dfud_imanufact_str #ifndef CONF_USB_DFUD_IMANUFACT_STR +#if defined(SYSMOOCTSIM) +#define CONF_USB_DFUD_IMANUFACT_STR "sysmocom" +#else #define CONF_USB_DFUD_IMANUFACT_STR "osmocom" #endif +#endif #ifndef CONF_USB_DFUD_IMANUFACT_STR_DESC +#if defined(SYSMOOCTSIM) +#define CONF_USB_DFUD_IMANUFACT_STR_DESC 18, 0x03, 's', 0x00, 'y', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, 'c', 0x00, 'o', 0x00, 'm', 0x00, +#else #define CONF_USB_DFUD_IMANUFACT_STR_DESC 16, 0x03, 'o', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, 'c', 0x00, 'o', 0x00, 'm', 0x00, #endif +#endif // @@ -130,12 +142,20 @@ // Unicode string of iProduct // usb_dfud_iproduct_str #ifndef CONF_USB_DFUD_IPRODUCT_STR +#if defined(SYSMOOCTSIM) +#define CONF_USB_DFUD_IPRODUCT_STR "sysmoOCTSIM (osmo-ASF4-DFU)" +#else #define CONF_USB_DFUD_IPRODUCT_STR "osmo-ASF4-DFU" #endif +#endif #ifndef CONF_USB_DFUD_IPRODUCT_STR_DESC +#if defined(SYSMOOCTSIM) +#define CONF_USB_DFUD_IPRODUCT_STR_DESC 56, 0x03, 's', 0x00, 'y', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, 'O', 0x00, 'C', 0x00, 'T', 0x00, 'S', 0x00, 'I', 0x00, 'M', 0x00, ' ', 0x00, '(', 0x00, 'o', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, '-', 0x00, 'A', 0x00, 'S', 0x00, 'F', 0x00, '4', 0x00, '-', 0x00, 'D', 0x00, 'F', 0x00, 'U', 0x00, ')', 0x00, +#else #define CONF_USB_DFUD_IPRODUCT_STR_DESC 28, 0x03, 'o', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, '-', 0x00, 'A', 0x00, 'S', 0x00, 'F', 0x00, '4', 0x00, '-', 0x00, 'D', 0x00, 'F', 0x00, 'U', 0x00, #endif +#endif // diff --git a/driver_init.c b/driver_init.c index a91b0eb..d873230 100644 --- a/driver_init.c +++ b/driver_init.c @@ -139,18 +139,38 @@ flash_init(&FLASH_0, NVMCTRL); } +void LED_SYSTEM_on(void) +{ +#if defined(SYSMOOCTSIM) + gpio_set_pin_level(LED_SYSTEM, true); +#else + gpio_set_pin_level(LED_SYSTEM, false); +#endif +} + +void LED_SYSTEM_off(void) +{ +#if defined(SYSMOOCTSIM) + gpio_set_pin_level(LED_SYSTEM, false); +#else + gpio_set_pin_level(LED_SYSTEM, true); +#endif +} + void system_init(void) { init_mcu(); // configure system LED - gpio_set_pin_level(LED_SYSTEM, true); // switch off LED + LED_SYSTEM_off(); gpio_set_pin_direction(LED_SYSTEM, GPIO_DIRECTION_OUT); gpio_set_pin_function(LED_SYSTEM, GPIO_PIN_FUNCTION_OFF); // configure force DFU user button gpio_set_pin_direction(BUTTON_FORCE_DFU, GPIO_DIRECTION_IN); - gpio_set_pin_pull_mode(BUTTON_FORCE_DFU, GPIO_PULL_UP); +#if !defined(SYSMOOCTSIM) + gpio_set_pin_pull_mode(BUTTON_FORCE_DFU, GPIO_PULL_UP); // use internal pull-up resistor +#endif gpio_set_pin_function(BUTTON_FORCE_DFU, GPIO_PIN_FUNCTION_OFF); USB_DEVICE_INSTANCE_init(); diff --git a/driver_init.h b/driver_init.h index 0d440d4..8d8a30b 100644 --- a/driver_init.h +++ b/driver_init.h @@ -34,6 +34,15 @@ void FLASH_0_CLOCK_init(void); /** + * \brief Switch system LED on + */ +void LED_SYSTEM_on(void); +/** + * \brief Switch system LED off + */ +void LED_SYSTEM_off(void); + +/** * \brief Perform system initialization, initialize pins and clocks for * peripherals */ diff --git a/gcc/Makefile b/gcc/Makefile index 16c7858..7ad24b1 100644 --- a/gcc/Makefile +++ b/gcc/Makefile @@ -1,4 +1,13 @@ ################################################################################ +# User configuration. Can be edited +################################################################################ + +# Set for which board the bootloader should be compiled +# run `make clean` for the change to be effective +# possible values: SAME54_XPLAINED_PRO, SYSMOOCTSIM +BOARD ?= SAME54_XPLAINED_PRO + +################################################################################ # Automatically-generated file. Do not edit! ################################################################################ @@ -202,7 +211,7 @@ @echo Building file: $< @echo ARM/GNU C Compiler $(QUOTE)arm-none-eabi-gcc$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ --D__SAME54P20A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ +-D__SAME54P20A__ -D$(BOARD) -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ -I"../" -I"../config" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/nvmctrl" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/dfu" -I"../usb/class/dfu/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include" \ -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" @echo Finished building: $< @@ -211,7 +220,7 @@ @echo Building file: $< @echo ARM/GNU Assembler $(QUOTE)arm-none-eabi-as$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ --D__SAME54P20A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ +-D__SAME54P20A__ -D$(BOARD) -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ -I"../" -I"../config" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/nvmctrl" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/dfu" -I"../usb/class/dfu/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include" \ -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" @echo Finished building: $< @@ -220,7 +229,7 @@ @echo Building file: $< @echo ARM/GNU Preprocessing Assembler $(QUOTE)arm-none-eabi-gcc$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ --D__SAME54P20A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ +-D__SAME54P20A__ -D$(BOARD) -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ -I"../" -I"../config" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/nvmctrl" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/dfu" -I"../usb/class/dfu/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include" \ -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" @echo Finished building: $< diff --git a/usb_dfu_main.c b/usb_dfu_main.c index 449b311..96032c5 100644 --- a/usb_dfu_main.c +++ b/usb_dfu_main.c @@ -48,7 +48,6 @@ */ static bool check_force_dfu(void) { - gpio_set_pin_pull_mode(BUTTON_FORCE_DFU, GPIO_PULL_UP); // pull button high return (0 == gpio_get_pin_level(BUTTON_FORCE_DFU)); // signal is low when button is pressed } diff --git a/usb_start.c b/usb_start.c index ad91840..93059ad 100644 --- a/usb_start.c +++ b/usb_start.c @@ -80,7 +80,7 @@ void usb_dfu(void) { while (!dfudf_is_enabled()); // wait for DFU to be installed - gpio_set_pin_level(LED_SYSTEM, false); // switch LED on to indicate USB DFU stack is ready + LED_SYSTEM_on(); // switch LED on to indicate USB DFU stack is ready ASSERT(hri_nvmctrl_read_STATUS_BOOTPROT_bf(FLASH_0.dev.hw) <= 15); uint32_t application_start_address = (15 - hri_nvmctrl_read_STATUS_BOOTPROT_bf(FLASH_0.dev.hw)) * 8192; // calculate bootloader size to know where we should write the application firmware @@ -89,7 +89,7 @@ while (true) { // main DFU infinite loop // run the second part of the USB DFU state machine handling non-USB aspects if (USB_DFU_STATE_DFU_DNLOAD_SYNC == dfu_state || USB_DFU_STATE_DFU_DNBUSY == dfu_state) { // there is some data to be flashed - gpio_set_pin_level(LED_SYSTEM, true); // switch LED off to indicate we are flashing + LED_SYSTEM_off(); // switch LED off to indicate we are flashing if (dfu_download_length > 0) { // there is some data to be flashed int32_t rc = flash_write(&FLASH_0, application_start_address + dfu_download_offset, dfu_download_data, dfu_download_length); // write downloaded data chunk to flash if (ERR_NONE == rc) { @@ -108,7 +108,7 @@ // this case should not happen, but it's not a critical error dfu_state = USB_DFU_STATE_DFU_DNLOAD_IDLE; // indicate flashing can continue } - gpio_set_pin_level(LED_SYSTEM, false); // switch LED on to indicate USB DFU can resume + LED_SYSTEM_on(); // switch LED on to indicate USB DFU can resume } if (USB_DFU_STATE_DFU_MANIFEST == dfu_state) { // we can start manifestation (finish flashing) // in theory every DFU files should have a suffix to with a CRC to check the data -- To view, visit https://gerrit.osmocom.org/12910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie51a3af7c77ba76ac40570b871f31fd527fb255b Gerrit-Change-Number: 12910 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 16:27:26 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 16:27:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Fix compilation on eclipse-titan 6.5.1 In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12908 ) Change subject: Fix compilation on eclipse-titan 6.5.1 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12908 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If9fef29ce243be112d3735f0236335197f8f140f Gerrit-Change-Number: 12908 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 14 Feb 2019 16:27:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 16:28:58 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Thu, 14 Feb 2019 16:28:58 +0000 Subject: Change in osmo-asf4-dfu[master]: avoid mutli-packet USB transfer In-Reply-To: References: Message-ID: K?vin Redon has abandoned this change. ( https://gerrit.osmocom.org/12595 ) Change subject: avoid mutli-packet USB transfer ...................................................................... Abandoned USB transfer is now fixed -- To view, visit https://gerrit.osmocom.org/12595 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: abandon Gerrit-Change-Id: Icb4c5f4bc06095f5f962152b8d8247054ef6a520 Gerrit-Change-Number: 12595 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 16:36:56 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 16:36:56 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: add extended (11-bit) RACH support In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/6315 ) Change subject: osmo-bts-trx: add extended (11-bit) RACH support ...................................................................... Patch Set 7: Tested both gprs and egprs (without 11bit_rach_support_for_egprs in BSC): works just fine, no noticeable effects. Since 11bit_rach_support_for_egprs is disabled by default we can safely merge this. Testing with this option enabled require additional fixes to OsmoPCU related to OS#3014. -- To view, visit https://gerrit.osmocom.org/6315 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia28741603636406744e5e22ffff1fb7a9689955a Gerrit-Change-Number: 6315 Gerrit-PatchSet: 7 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Stefan Sperling Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 14 Feb 2019 16:36:56 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 16:45:56 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 16:45:56 +0000 Subject: Change in osmo-msc[master]: transaction: clarify magic 0xff transaction ID In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12901 ) Change subject: transaction: clarify magic 0xff transaction ID ...................................................................... Patch Set 3: Code-Review+1 (1 comment) Anyway, just a food for thought, not an obstacle for merging this. https://gerrit.osmocom.org/#/c/12901/2/src/libmsc/gsm_04_11.c File src/libmsc/gsm_04_11.c: https://gerrit.osmocom.org/#/c/12901/2/src/libmsc/gsm_04_11.c at 1044 PS2, Line 1044: /* According to 8.2.3, MR is in the range 0 through 255 */ That kinda looks suspicious as well: it's not clear from the comment whether 255 is included in the range but it's never reached by the cycle below. -- To view, visit https://gerrit.osmocom.org/12901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2d3a6334f49989bedbb1430d26ffad8b61dfd873 Gerrit-Change-Number: 12901 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 14 Feb 2019 16:45:56 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 16:46:42 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 16:46:42 +0000 Subject: Change in osmo-msc[master]: transaction: drop meaningless ti_flag of trans_assign_trans_id() In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12519 ) Change subject: transaction: drop meaningless ti_flag of trans_assign_trans_id() ...................................................................... Patch Set 5: Code-Review-1 Just to get my earlier comment more visible :) -- To view, visit https://gerrit.osmocom.org/12519 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie11999900b1789652ee078d34636dcda1e137eb0 Gerrit-Change-Number: 12519 Gerrit-PatchSet: 5 Gerrit-Owner: Max Gerrit-Assignee: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 14 Feb 2019 16:46:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 17:37:38 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Thu, 14 Feb 2019 17:37:38 +0000 Subject: Change in osmo-asf4-dfu[master]: minor: rename output binary to bootloader Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12911 Change subject: minor: rename output binary to bootloader ...................................................................... minor: rename output binary to bootloader Change-Id: I4dfa761c482d6d061eddf3ff8ee91ec049955f53 --- M README.md M gcc/Makefile 2 files changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-asf4-dfu refs/changes/11/12911/1 diff --git a/README.md b/README.md index 58833aa..d6d8d69 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ The board name can be set in 'gcc/Makefile' *BOARD* variable, or provided while compiling (e.g. `make BOARD=SAME54_XPLAINED_PRO`). *SAME54_XPLAINED_PRO* is the default value. -The resulting firmware binary is `AtmelStart.bin`. +The resulting firmware binary is `bootlaoder.bin`. Flashing ======== @@ -60,7 +60,7 @@ To flash the USB DFU bootloader, perform the following actions: * remove reserved bootloader space so we can erase it: `edbg --target atmel_cm4v2 --fuse wv,29:26,15` * erase the whole flash: `edbg --target atmel_cm4v2 --fuse v,29:26,15 --erase` -* program the bootloader: `edbg --target atmel_cm4v2 --fuse v,29:26,15 --program --verify --file AtmelStart.bin` +* program the bootloader: `edbg --target atmel_cm4v2 --fuse v,29:26,15 --program --verify --file bootloader.bin` * reserve bootloader space: `edbg --target atmel_cm4v2 --fuse wv,29:26,13` SWJ @@ -76,5 +76,5 @@ Using OpenOCD (with the [SAM E54 patch](http://openocd.zylin.com/#/c/4272/)) and a ST-LINK/V2 SWD adapter, run the following command: -`openocd --file interface/stlink.cfg --command "transport select hla_swd" --command "set CHIPNAME same54" --command "set CPUTAPID 0x2ba01477" --file target/atsame5x.cfg --command "init" --command "reset halt" --command "atsame5 bootloader 0" --command "flash erase_sector 0 0 last" --command "reset halt" --command "program ./AtmelStart.bin" --command "atsame5 bootloader 16384" --command "reset run" --command "shutdown"` +`openocd --file interface/stlink.cfg --command "transport select hla_swd" --command "set CHIPNAME same54" --command "set CPUTAPID 0x2ba01477" --file target/atsame5x.cfg --command "init" --command "reset halt" --command "atsame5 bootloader 0" --command "flash erase_sector 0 0 last" --command "reset halt" --command "program ./bootloader.bin" --command "atsame5 bootloader 16384" --command "reset run" --command "shutdown"` diff --git a/gcc/Makefile b/gcc/Makefile index 7ad24b1..0817806 100644 --- a/gcc/Makefile +++ b/gcc/Makefile @@ -167,7 +167,7 @@ "gcc/system_same54.d" \ "atmel_start.d" -OUTPUT_FILE_NAME :=AtmelStart +OUTPUT_FILE_NAME := bootloader QUOTE := " OUTPUT_FILE_PATH +=$(OUTPUT_FILE_NAME).elf OUTPUT_FILE_PATH_AS_ARGS +=$(OUTPUT_FILE_NAME).elf -- To view, visit https://gerrit.osmocom.org/12911 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I4dfa761c482d6d061eddf3ff8ee91ec049955f53 Gerrit-Change-Number: 12911 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 17:37:38 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Thu, 14 Feb 2019 17:37:38 +0000 Subject: Change in osmo-asf4-dfu[master]: add force DFU using magic value Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12912 Change subject: add force DFU using magic value ...................................................................... add force DFU using magic value if the string "DFU!" is found at the beginning of the RAM (e.g. as written by the main application during USB detach), the DFU bootloader will be started. Change-Id: I298e3697c06d352a6e0f47266097844c490e1722 --- M README.md M gcc/gcc/same54p20a_flash.ld M usb_dfu_main.c 3 files changed, 26 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-asf4-dfu refs/changes/12/12912/1 diff --git a/README.md b/README.md index d6d8d69..8402b13 100644 --- a/README.md +++ b/README.md @@ -28,10 +28,16 @@ Set the corresponding attributes in the 'DFUD_IFACE_DESCB' macro definition in the 'usb/class/dfu/device/dfudf_desc.h' file. +To force the DFU bootloader to start there are several possibilities: + +* if the application following the bootloader is invalid (e.g. MSP is not in RAM) +* if a button is pressed (the button defined in *BUTTON_FORCE_DFU*) +* if the magic value "DFU!" (e.g. 0x44465521) is set at the start of the RAM (e.g. by the main application when performing a USB detach) + Compiling ========= -Use the 'Makefile' script to compile the source code using the ARM none EABI GCC cross-cimpilig toolchain: +Use the 'Makefile' script to compile the source code using the ARM none EABI GCC cross-compiling toolchain: ``` cd gcc make diff --git a/gcc/gcc/same54p20a_flash.ld b/gcc/gcc/same54p20a_flash.ld index 08099d2..32ded77 100644 --- a/gcc/gcc/same54p20a_flash.ld +++ b/gcc/gcc/same54p20a_flash.ld @@ -36,7 +36,8 @@ MEMORY { rom (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 - ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 + /* The first word of the RAM is used for the DFU magic */ + ram (rwx) : ORIGIN = 0x20000000 + 4, LENGTH = 0x00040000 - 4 bkupram (rwx) : ORIGIN = 0x47000000, LENGTH = 0x00002000 qspi (rwx) : ORIGIN = 0x04000000, LENGTH = 0x01000000 } @@ -47,6 +48,12 @@ /* Section Definitions */ SECTIONS { + /* Location of the DFU magic. The application must set the magic value "DFU!" (e.g. 0x44465521) at this address to force the DFU bootloader to start (e.g. to perform a DFU detach) */ + .dfu_magic 0x20000000 : + { + KEEP(*(.dfu_magic)) ; + } + .text : { . = ALIGN(4); diff --git a/usb_dfu_main.c b/usb_dfu_main.c index 96032c5..81b02f8 100644 --- a/usb_dfu_main.c +++ b/usb_dfu_main.c @@ -27,6 +27,9 @@ */ static uint32_t* application_start_address; +/** Location of the DFU magic value to force starting DFU */ +static uint32_t dfu_magic __attribute__ ((section (".dfu_magic"))) __attribute__ ((__used__)); + /** Check if the bootloader is valid * \return true if the bootloader is valid and can be run * \remark initializes application_start_address @@ -48,7 +51,14 @@ */ static bool check_force_dfu(void) { - return (0 == gpio_get_pin_level(BUTTON_FORCE_DFU)); // signal is low when button is pressed + if (0x44465521 == dfu_magic) { // check for the magic value which can be set by the main application + dfu_magic = 0; // erase value so we don't stay in the DFU bootloader upon reset + return true; + } + if (0 == gpio_get_pin_level(BUTTON_FORCE_DFU)) { // signal is low when button is pressed + return true; + } + return false; } /** Check if the application is valid -- To view, visit https://gerrit.osmocom.org/12912 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I298e3697c06d352a6e0f47266097844c490e1722 Gerrit-Change-Number: 12912 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 17:56:37 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 14 Feb 2019 17:56:37 +0000 Subject: Change in docker-playground[master]: ttcn3-msc-test: Enable SGs interface In-Reply-To: References: Message-ID: dexter has abandoned this change. ( https://gerrit.osmocom.org/12878 ) Change subject: ttcn3-msc-test: Enable SGs interface ...................................................................... Abandoned This patch does not solve the problem. A different approach needs to be found. -- To view, visit https://gerrit.osmocom.org/12878 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: abandon Gerrit-Change-Id: I260fbd21d00d4fc160e95b76fc26b5d5b8f3c9e8 Gerrit-Change-Number: 12878 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 17:56:58 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 14 Feb 2019 17:56:58 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC_Tests: Make sure only sgsap related tests use the SGs interface Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/12913 Change subject: MSC_Tests: Make sure only sgsap related tests use the SGs interface ...................................................................... MSC_Tests: Make sure only sgsap related tests use the SGs interface At the moment the SGs interface is started and connected in all tests in the testsuite. This may be a problem because the IUT may lack the SGs support. In this case all tests would fail because of the missing SGs interface. Lets initalize and connect the SGs interface only for SGs related tests to prevent unrelated test failures. Change-Id: I8e012e3599ad00db2e132b6463499f8a4a2307f1 Related: OS#3614 --- M msc/MSC_Tests.ttcn 1 file changed, 81 insertions(+), 45 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/13/12913/1 diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 34fe9ad..00f9bec 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -119,8 +119,6 @@ charstring mp_mme_name := "mmec01.mmegi0001.mme.epc.mnc070.mcc901.3gppnetwork.org"; charstring mp_vlr_name := "vlr.example.net"; - boolean mp_sgsap_enable := false; - BSSAP_Configurations mp_bssap_cfg := { { sccp_service_type := "mtp3_itu", @@ -254,7 +252,7 @@ } } -function f_init(integer num_bsc := 1) runs on MTC_CT { +function f_init(integer num_bsc := 1, boolean sgsap := false) runs on MTC_CT { if (g_initialized == true) { return; @@ -280,7 +278,7 @@ f_init_gsup("MSC_Test"); f_init_smpp("MSC_Test"); - if (mp_sgsap_enable == true) { + if (sgsap == true) { f_init_sgsap("MSC_Test"); } @@ -472,7 +470,7 @@ type function void_fn(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr; /* FIXME: move into BSC_ConnectionHandler? */ -function f_init_pars(integer imsi_suffix) runs on MTC_CT return BSC_ConnHdlrPars { +function f_init_pars(integer imsi_suffix, boolean sgsap := false) runs on MTC_CT return BSC_ConnHdlrPars { var BSC_ConnHdlrNetworkPars net_pars := { kc_support := '0A'O, /* A5/1 and A5/3 enabled */ expect_tmsi := true, @@ -497,7 +495,7 @@ ipa_ctrl_port := mp_msc_ctrl_port, ipa_ctrl_enable := true, mm_info := mp_mm_info, - sgsap_enable := mp_sgsap_enable + sgsap_enable := sgsap }; return pars; } @@ -523,7 +521,7 @@ connect(vc_conn:SMPP, vc_SMPP:SMPP_CLIENT); connect(vc_conn:SMPP_PROC, vc_SMPP:SMPP_PROC); /* SGs part */ - if (mp_sgsap_enable == true) { + if (pars.sgsap_enable == true) { connect(vc_conn:SGsAP, vc_SGsAP:SGsAP_CLIENT); connect(vc_conn:SGsAP_PROC, vc_SGsAP:SGsAP_PROC); } @@ -3569,9 +3567,11 @@ } testcase TC_sgsap_reset() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_reset), 11810); + f_init(1, true); + pars := f_init_pars(11810, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_reset), pars); vc_conn.done; } @@ -3661,9 +3661,11 @@ setverdict(pass); } testcase TC_sgsap_lu() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_lu), 11811); + f_init(1, true); + pars := f_init_pars(11811, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_lu), pars); vc_conn.done; } @@ -3698,10 +3700,12 @@ setverdict(pass); } testcase TC_sgsap_lu_imsi_reject() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); + f_init(1, true); + pars := f_init_pars(11812, true); - vc_conn := f_start_handler(refers(f_tc_sgsap_lu_imsi_reject), 11812); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_lu_imsi_reject), pars); vc_conn.done; } @@ -3759,10 +3763,12 @@ setverdict(pass); } testcase TC_sgsap_lu_and_nothing() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); + f_init(1, true); + pars := f_init_pars(11813, true); - vc_conn := f_start_handler(refers(f_tc_sgsap_lu_and_nothing), 11813); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_lu_and_nothing), pars); vc_conn.done; } @@ -3782,9 +3788,11 @@ setverdict(pass); } testcase TC_sgsap_expl_imsi_det_eps() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_expl_imsi_det_eps), 11814); + f_init(1, true); + pars := f_init_pars(11814, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_expl_imsi_det_eps), pars); vc_conn.done; } @@ -3805,9 +3813,11 @@ setverdict(pass); } testcase TC_sgsap_expl_imsi_det_noneps() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_expl_imsi_det_noneps), 11815); + f_init(1, true); + pars := f_init_pars(11815, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_expl_imsi_det_noneps), pars); vc_conn.done; } @@ -3854,9 +3864,11 @@ setverdict(pass); } testcase TC_sgsap_paging_rej() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_paging_rej), 11816); + f_init(1, true); + pars := f_init_pars(11816, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_paging_rej), pars); vc_conn.done; } @@ -3901,9 +3913,11 @@ setverdict(pass); } testcase TC_sgsap_paging_subscr_rej() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_paging_subscr_rej), 11817); + f_init(1, true); + pars := f_init_pars(11817, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_paging_subscr_rej), pars); vc_conn.done; } @@ -3943,9 +3957,11 @@ setverdict(pass); } testcase TC_sgsap_paging_ue_unr() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_paging_ue_unr), 11818); + f_init(1, true); + pars := f_init_pars(11818, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_paging_ue_unr), pars); vc_conn.done; } @@ -3982,9 +3998,11 @@ setverdict(pass); } testcase TC_sgsap_paging_and_nothing() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_paging_and_nothing), 11819); + f_init(1, true); + pars := f_init_pars(11819, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_paging_and_nothing), pars); vc_conn.done; } @@ -4038,9 +4056,11 @@ setverdict(pass); } testcase TC_sgsap_paging_and_lu() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_paging_and_lu), 11820); + f_init(1, true); + pars := f_init_pars(11820, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_paging_and_lu), pars); vc_conn.done; } @@ -4067,9 +4087,11 @@ setverdict(pass); } testcase TC_sgsap_unexp_ud() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_unexp_ud), 11821); + f_init(1, true); + pars := f_init_pars(11821, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_unexp_ud), pars); vc_conn.done; } @@ -4091,9 +4113,11 @@ setverdict(pass); } testcase TC_sgsap_unsol_ud() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_unsol_ud), 11822); + f_init(1, true); + pars := f_init_pars(11822, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_unsol_ud), pars); vc_conn.done; } @@ -4237,9 +4261,11 @@ setverdict(pass); } testcase TC_sgsap_mt_sms() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_mt_sms), 11823); + f_init(1, true); + pars := f_init_pars(11823, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_mt_sms), pars); vc_conn.done; } @@ -4265,9 +4291,11 @@ f_sgsap_bssmap_screening() } testcase TC_sgsap_mo_sms() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_mo_sms), 11824); + f_init(1, true); + pars := f_init_pars(11824, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_mo_sms), pars); vc_conn.done; } @@ -4337,9 +4365,11 @@ setverdict(pass); } testcase TC_sgsap_mt_sms_and_nothing() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_mt_sms_and_nothing), 11825); + f_init(1, true); + pars := f_init_pars(11825, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_mt_sms_and_nothing), pars); vc_conn.done; } @@ -4397,9 +4427,11 @@ setverdict(pass); } testcase TC_sgsap_mt_sms_and_reject() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_mt_sms_and_reject), 11826); + f_init(1, true); + pars := f_init_pars(11826, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_mt_sms_and_reject), pars); vc_conn.done; } @@ -4471,10 +4503,12 @@ f_mt_lu_and_csfb_call(id, pars, true); } testcase TC_bssap_lu_sgsap_lu_and_mt_call() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); + f_init(1, true); + pars := f_init_pars(118139, true); - vc_conn := f_start_handler(refers(f_tc_bssap_lu_sgsap_lu_and_mt_call), 139); + vc_conn := f_start_handler_with_pars(refers(f_tc_bssap_lu_sgsap_lu_and_mt_call), pars); vc_conn.done; } @@ -4484,10 +4518,12 @@ f_mt_lu_and_csfb_call(id, pars, false); } testcase TC_sgsap_lu_and_mt_call() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); + f_init(1, true); + pars := f_init_pars(11827, true); - vc_conn := f_start_handler(refers(f_tc_sgsap_lu_and_mt_call), 11827); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_lu_and_mt_call), pars); vc_conn.done; } -- To view, visit https://gerrit.osmocom.org/12913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I8e012e3599ad00db2e132b6463499f8a4a2307f1 Gerrit-Change-Number: 12913 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 18:00:03 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Thu, 14 Feb 2019 18:00:03 +0000 Subject: Change in osmo-asf4-dfu[master]: minor: rename output binary to bootloader In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12911 to look at the new patch set (#2). Change subject: minor: rename output binary to bootloader ...................................................................... minor: rename output binary to bootloader Change-Id: I4dfa761c482d6d061eddf3ff8ee91ec049955f53 --- M README.md M gcc/Makefile 2 files changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-asf4-dfu refs/changes/11/12911/2 -- To view, visit https://gerrit.osmocom.org/12911 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I4dfa761c482d6d061eddf3ff8ee91ec049955f53 Gerrit-Change-Number: 12911 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 18:00:04 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Thu, 14 Feb 2019 18:00:04 +0000 Subject: Change in osmo-asf4-dfu[master]: set initial DFU state to ERROR if application is corrupt Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12914 Change subject: set initial DFU state to ERROR if application is corrupt ...................................................................... set initial DFU state to ERROR if application is corrupt as specified in DFU standard Change-Id: Icd503a2d19f829eb43a83c28b526b73d595640f0 --- M usb/class/dfu/device/dfudf.c M usb_dfu_main.c 2 files changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-asf4-dfu refs/changes/14/12914/1 diff --git a/usb/class/dfu/device/dfudf.c b/usb/class/dfu/device/dfudf.c index 8232979..223999a 100644 --- a/usb/class/dfu/device/dfudf.c +++ b/usb/class/dfu/device/dfudf.c @@ -306,7 +306,6 @@ usbdc_register_function(&_dfudf); usbdc_register_handler(USBDC_HDL_REQ, &dfudf_req_h); - // TODO check if firmware is corrupted and set dfuERROR state if it is return ERR_NONE; } diff --git a/usb_dfu_main.c b/usb_dfu_main.c index 81b02f8..7fd54d3 100644 --- a/usb_dfu_main.c +++ b/usb_dfu_main.c @@ -101,6 +101,9 @@ if (!check_force_dfu() && check_application()) { // application is valid start_application(); // start application } else { + if (!check_application()) { // if the application is corrupted the start DFU start should be dfuERROR + dfu_state = USB_DFU_STATE_DFU_ERROR; + } usb_dfu(); // start DFU bootloader } } -- To view, visit https://gerrit.osmocom.org/12914 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Icd503a2d19f829eb43a83c28b526b73d595640f0 Gerrit-Change-Number: 12914 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 18:07:48 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 18:07:48 +0000 Subject: Change in osmo-remsim[master]: Add git-review config Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12915 Change subject: Add git-review config ...................................................................... Add git-review config Change-Id: Iceb58eba5922687aefae7e086a64ea9ae0d225c3 --- A .gitreview 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-remsim refs/changes/15/12915/1 diff --git a/.gitreview b/.gitreview new file mode 100644 index 0000000..4df3975 --- /dev/null +++ b/.gitreview @@ -0,0 +1,3 @@ +[gerrit] +host=gerrit.osmocom.org +project=osmo-remsim -- To view, visit https://gerrit.osmocom.org/12915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iceb58eba5922687aefae7e086a64ea9ae0d225c3 Gerrit-Change-Number: 12915 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 18:12:04 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 14 Feb 2019 18:12:04 +0000 Subject: Change in osmo-pcu[master]: Don't install pcuif_proto.h header In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12907 ) Change subject: Don't install pcuif_proto.h header ...................................................................... Patch Set 1: Code-Review-1 What's the problem with installing it? How does this patch simplify installation? -- To view, visit https://gerrit.osmocom.org/12907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4a87395d4ab7212fe2fc055dae0a737e10d20c69 Gerrit-Change-Number: 12907 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 14 Feb 2019 18:12:04 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 18:13:08 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 18:13:08 +0000 Subject: Change in libosmocore[master]: Enable remote SIM protocol log level Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12916 Change subject: Enable remote SIM protocol log level ...................................................................... Enable remote SIM protocol log level It's defined in logging.h for quite some time but is not actually enabled alongside with other internal logging categories. Change-Id: I0e7a2add6293a072752900608c8ba34cc3850f31 --- M src/logging.c 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/16/12916/1 diff --git a/src/logging.c b/src/logging.c index 2bb53ae..09021e4 100644 --- a/src/logging.c +++ b/src/logging.c @@ -169,6 +169,11 @@ .description = "libosmo-netif Jitter Buffer", .enabled = 1, .loglevel = LOGL_NOTICE, }, + [INT2IDX(DLRSPRO)] = { + .name = "DLRSPRO", + .description = "Remote SIM protocol", + .enabled = 1, .loglevel = LOGL_NOTICE, + }, }; void assert_loginfo(const char *src) -- To view, visit https://gerrit.osmocom.org/12916 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0e7a2add6293a072752900608c8ba34cc3850f31 Gerrit-Change-Number: 12916 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 18:16:24 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 18:16:24 +0000 Subject: Change in osmo-pcu[master]: Don't install pcuif_proto.h header In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12907 ) Change subject: Don't install pcuif_proto.h header ...................................................................... Patch Set 1: > What's the problem with installing it? How does this patch simplify installation? It simplifies installation by not installing useless files. The potential problem is that we install pkg-config file for something which is used only locally. That's plain wrong. -- To view, visit https://gerrit.osmocom.org/12907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4a87395d4ab7212fe2fc055dae0a737e10d20c69 Gerrit-Change-Number: 12907 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 14 Feb 2019 18:16:24 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 18:23:17 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 18:23:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC_Tests: Make sure only sgsap related tests use the SGs interface In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12913 ) Change subject: MSC_Tests: Make sure only sgsap related tests use the SGs interface ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I8e012e3599ad00db2e132b6463499f8a4a2307f1 Gerrit-Change-Number: 12913 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Thu, 14 Feb 2019 18:23:17 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 18:25:06 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 18:25:06 +0000 Subject: Change in libosmocore[master]: gsm_08_08.h: Add constants for Channel Type in signalling mode In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12905 ) Change subject: gsm_08_08.h: Add constants for Channel Type in signalling mode ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12905 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9e24841ea877a9a78dc4d2bd14cbf60c4bea79a6 Gerrit-Change-Number: 12905 Gerrit-PatchSet: 1 Gerrit-Owner: tnt Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Thu, 14 Feb 2019 18:25:06 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 18:26:58 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 18:26:58 +0000 Subject: Change in libosmocore[master]: Enable remote SIM protocol log level In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12916 ) Change subject: Enable remote SIM protocol log level ...................................................................... Patch Set 2: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/12916 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0e7a2add6293a072752900608c8ba34cc3850f31 Gerrit-Change-Number: 12916 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-Reviewer: Max Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 14 Feb 2019 18:26:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 18:30:42 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 14 Feb 2019 18:30:42 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: add extended (11-bit) RACH support In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/6315 ) Change subject: osmo-bts-trx: add extended (11-bit) RACH support ...................................................................... Patch Set 7: Code-Review-1 Please see my comment about a possible optimization. Should be easy to implement. -- To view, visit https://gerrit.osmocom.org/6315 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia28741603636406744e5e22ffff1fb7a9689955a Gerrit-Change-Number: 6315 Gerrit-PatchSet: 7 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Stefan Sperling Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: tnt Gerrit-Comment-Date: Thu, 14 Feb 2019 18:30:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 18:39:11 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 14 Feb 2019 18:39:11 +0000 Subject: Change in osmo-pcu[master]: Don't install pcuif_proto.h header In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12907 ) Change subject: Don't install pcuif_proto.h header ...................................................................... Patch Set 1: I don't like the idea of having separate copies of the protocol definition. This is similar to the situation with MNCC - one needs to keep all existing copies updated. Why not to move it to libosmocore? -- To view, visit https://gerrit.osmocom.org/12907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4a87395d4ab7212fe2fc055dae0a737e10d20c69 Gerrit-Change-Number: 12907 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 14 Feb 2019 18:39:11 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 18:41:40 2019 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Thu, 14 Feb 2019 18:41:40 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: add extended (11-bit) RACH support In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/6315 ) Change subject: osmo-bts-trx: add extended (11-bit) RACH support ...................................................................... Patch Set 7: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/6315 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia28741603636406744e5e22ffff1fb7a9689955a Gerrit-Change-Number: 6315 Gerrit-PatchSet: 7 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Stefan Sperling Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: tnt Gerrit-Comment-Date: Thu, 14 Feb 2019 18:41:40 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 18:48:58 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 14 Feb 2019 18:48:58 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: add extended (11-bit) RACH support In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/6315 ) Change subject: osmo-bts-trx: add extended (11-bit) RACH support ...................................................................... Patch Set 7: Code-Review+1 Sorry, I missed the recent updates to this change... But there is still no TTCN-3 test case ;) -- To view, visit https://gerrit.osmocom.org/6315 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia28741603636406744e5e22ffff1fb7a9689955a Gerrit-Change-Number: 6315 Gerrit-PatchSet: 7 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Stefan Sperling Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: tnt Gerrit-Comment-Date: Thu, 14 Feb 2019 18:48:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 19:09:25 2019 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 14 Feb 2019 19:09:25 +0000 Subject: Change in osmo-remsim[master]: Add git-review config In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/12915 ) Change subject: Add git-review config ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iceb58eba5922687aefae7e086a64ea9ae0d225c3 Gerrit-Change-Number: 12915 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-Reviewer: Max Gerrit-Reviewer: lynxis lazus Gerrit-Comment-Date: Thu, 14 Feb 2019 19:09:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 19:09:38 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 14 Feb 2019 19:09:38 +0000 Subject: Change in osmo-msc[master]: transaction: clarify magic 0xff transaction ID In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12901 ) Change subject: transaction: clarify magic 0xff transaction ID ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/12901/2/src/libmsc/gsm_04_11.c File src/libmsc/gsm_04_11.c: https://gerrit.osmocom.org/#/c/12901/2/src/libmsc/gsm_04_11.c at 1044 PS2, Line 1044: /* According to 8.2.3, MR is in the range 0 through 255 */ > That kinda looks suspicious as well: it's not clear from the comment whether 255 is included in the [?] The "... in the range 0 through 255" comes from the specs. as is. As far as I understand, 0xff is also a valid value, but I don't think a subscriber can reach such value. Even in case of the multi-part SMS, when each part has a unique Message Reference. The current code does limit the amount of parts to 255. How often do you send SMS messages consisting of 256 parts? ;) In case of OTA messages, I don't think a regular SIM has such amount of RAM available. -- To view, visit https://gerrit.osmocom.org/12901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2d3a6334f49989bedbb1430d26ffad8b61dfd873 Gerrit-Change-Number: 12901 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 14 Feb 2019 19:09:38 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 19:09:51 2019 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 14 Feb 2019 19:09:51 +0000 Subject: Change in osmo-remsim[master]: Add git-review config In-Reply-To: References: Message-ID: lynxis lazus has submitted this change and it was merged. ( https://gerrit.osmocom.org/12915 ) Change subject: Add git-review config ...................................................................... Add git-review config Change-Id: Iceb58eba5922687aefae7e086a64ea9ae0d225c3 --- A .gitreview 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified lynxis lazus: Looks good to me, approved diff --git a/.gitreview b/.gitreview new file mode 100644 index 0000000..4df3975 --- /dev/null +++ b/.gitreview @@ -0,0 +1,3 @@ +[gerrit] +host=gerrit.osmocom.org +project=osmo-remsim -- To view, visit https://gerrit.osmocom.org/12915 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iceb58eba5922687aefae7e086a64ea9ae0d225c3 Gerrit-Change-Number: 12915 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-Reviewer: Max Gerrit-Reviewer: lynxis lazus -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 19:15:00 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 14 Feb 2019 19:15:00 +0000 Subject: Change in osmo-pcu[master]: Don't install pcuif_proto.h header In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12907 ) Change subject: Don't install pcuif_proto.h header ...................................................................... Patch Set 1: > > What's the problem with installing it? How does this patch > simplify installation? > > It simplifies installation by not installing useless files. The > potential problem is that we install pkg-config file for something > which is used only locally. That's plain wrong. I think it's a good idea to install it since (maybe not osmo-bts now) any application that wants to talk this interface needs to get the header definitions from somewhere to compile its code. I agree with Vadim that having a copy is probably not the best approach. Are osmo-bts and osmo-pcu both installing this file at exactly the same location? If that's the case, then let's install it from one repo, most probably the one acting as a server on the unix socket. -- To view, visit https://gerrit.osmocom.org/12907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4a87395d4ab7212fe2fc055dae0a737e10d20c69 Gerrit-Change-Number: 12907 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 14 Feb 2019 19:15:00 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 19:19:34 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 14 Feb 2019 19:19:34 +0000 Subject: Change in osmo-msc[master]: transaction: drop meaningless ti_flag of trans_assign_trans_id() In-Reply-To: References: Message-ID: Vadim Yanitskiy has uploaded a new patch set (#6) to the change originally created by Max. ( https://gerrit.osmocom.org/12519 ) Change subject: transaction: drop meaningless ti_flag of trans_assign_trans_id() ...................................................................... transaction: drop meaningless ti_flag of trans_assign_trans_id() According to GSM 04.07, the TI flag takes one bit and can be either of the following: '0'B - transaction is allocated by sender of a message, '1'B - transaction is allocated by receiver of a message. Since we store transaction ID in gsm_trans structure, we also store TI flag (as a part of transaction ID), which in this context means: '0'B - transaction is allocated by us (OsmoMSC), '1'B - transaction is allocated by some MS. In 100% cases, trans_assign_trans_id() is used to assign transaction IDs to transactions allocated by us (i.e. OsmoMSC) for MT connections. And there is no need to use it for MO transactions, because they basically already do contain a valid transaction ID assigned by the MS. Change-Id: Ie11999900b1789652ee078d34636dcda1e137eb0 --- M include/osmocom/msc/transaction.h M src/libmsc/gsm_04_08_cc.c M src/libmsc/gsm_04_11.c M src/libmsc/gsm_09_11.c M src/libmsc/transaction.c 5 files changed, 9 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/19/12519/6 -- To view, visit https://gerrit.osmocom.org/12519 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ie11999900b1789652ee078d34636dcda1e137eb0 Gerrit-Change-Number: 12519 Gerrit-PatchSet: 6 Gerrit-Owner: Max Gerrit-Assignee: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 19:20:18 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 14 Feb 2019 19:20:18 +0000 Subject: Change in osmo-msc[master]: transaction: drop meaningless ti_flag of trans_assign_trans_id() In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12519 ) Change subject: transaction: drop meaningless ti_flag of trans_assign_trans_id() ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/#/c/12519/5/src/libmsc/transaction.c File src/libmsc/transaction.c: https://gerrit.osmocom.org/#/c/12519/5/src/libmsc/transaction.c at 182 PS5, Line 182: * in the given protocol using TI flag = 0 (allocated by us). > Would be nice to add spec reference here as well to make it clear where it comes from. Done -- To view, visit https://gerrit.osmocom.org/12519 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie11999900b1789652ee078d34636dcda1e137eb0 Gerrit-Change-Number: 12519 Gerrit-PatchSet: 5 Gerrit-Owner: Max Gerrit-Assignee: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 14 Feb 2019 19:20:18 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 19:30:12 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 14 Feb 2019 19:30:12 +0000 Subject: Change in libosmocore[master]: Add multipatch capability to osmo-config-merge In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12897 ) Change subject: Add multipatch capability to osmo-config-merge ...................................................................... Patch Set 3: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/12897/3/utils/osmo-config-merge.c File utils/osmo-config-merge.c: https://gerrit.osmocom.org/#/c/12897/3/utils/osmo-config-merge.c at 267 PS3, Line 267: return 3; Why don't you talloc_free(ctx) here? -- To view, visit https://gerrit.osmocom.org/12897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I212cbdc3bf6f251c1a3175737ac74242fb004c6d Gerrit-Change-Number: 12897 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Comment-Date: Thu, 14 Feb 2019 19:30:12 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:03:55 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 21:03:55 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: add extended (11-bit) RACH support In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/6315 ) Change subject: osmo-bts-trx: add extended (11-bit) RACH support ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/6315 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia28741603636406744e5e22ffff1fb7a9689955a Gerrit-Change-Number: 6315 Gerrit-PatchSet: 7 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Stefan Sperling Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: tnt Gerrit-Comment-Date: Thu, 14 Feb 2019 21:03:55 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:03:59 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 21:03:59 +0000 Subject: Change in osmo-bts[master]: osmo-bts-trx: add extended (11-bit) RACH support In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/6315 ) Change subject: osmo-bts-trx: add extended (11-bit) RACH support ...................................................................... osmo-bts-trx: add extended (11-bit) RACH support Attempt to decode incoming RACH burst as 11-bit first and fallback to 8-bit if unsuccessful. Change-Id: Ia28741603636406744e5e22ffff1fb7a9689955a Related: OS#1854 --- M src/osmo-bts-trx/scheduler_trx.c 1 file changed, 38 insertions(+), 10 deletions(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve Vadim Yanitskiy: Looks good to me, but someone else must approve Max: Looks good to me, approved diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index 1b0ba73..b395479 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -716,18 +716,29 @@ uint8_t chan_nr; struct osmo_phsap_prim l1sap; int n_errors, n_bits_total; + bool is_11bit = true; + uint16_t ra11; uint8_t ra; - int rc; + int rc = 1; chan_nr = trx_chan_desc[chan].chan_nr | tn; LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Received RACH toa=%d\n", toa256); - /* decode */ - rc = gsm0503_rach_decode_ber(&ra, bits + 8 + 41, l1t->trx->bts->bsic, &n_errors, &n_bits_total); + if (chan == TRXC_RACH) /* Attempt to decode as extended (11-bit) RACH first */ + rc = gsm0503_rach_ext_decode_ber(&ra11, bits + 8 + 41, + l1t->trx->bts->bsic, &n_errors, &n_bits_total); if (rc) { - LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Received bad AB frame\n"); - return 0; + /* Indicate non-extended RACH */ + is_11bit = false; + + /* Fall-back to the normal RACH decoding */ + rc = gsm0503_rach_decode_ber(&ra, bits + 8 + 41, + l1t->trx->bts->bsic, &n_errors, &n_bits_total); + if (rc) { + LOGL1S(DL1P, LOGL_DEBUG, l1t, tn, chan, fn, "Received bad AB frame\n"); + return 0; + } } /* compose primitive */ @@ -736,17 +747,34 @@ osmo_prim_init(&l1sap.oph, SAP_GSM_PH, PRIM_PH_RACH, PRIM_OP_INDICATION, NULL); l1sap.u.rach_ind.chan_nr = chan_nr; - l1sap.u.rach_ind.ra = ra; l1sap.u.rach_ind.acc_delay = (toa256 >= 0) ? toa256/256 : 0; l1sap.u.rach_ind.fn = fn; - - /* 11bit RACH is not supported for osmo-trx */ - l1sap.u.rach_ind.is_11bit = 0; - l1sap.u.rach_ind.burst_type = GSM_L1_BURST_TYPE_ACCESS_0; l1sap.u.rach_ind.rssi = rssi; l1sap.u.rach_ind.ber10k = compute_ber10k(n_bits_total, n_errors); l1sap.u.rach_ind.acc_delay_256bits = toa256; + if (is_11bit) { + l1sap.u.rach_ind.is_11bit = 1; + l1sap.u.rach_ind.ra = ra11; + l1sap.u.rach_ind.burst_type = BSIC2BCC(l1t->trx->bts->bsic); + switch (l1sap.u.rach_ind.burst_type) { + case GSM_L1_BURST_TYPE_ACCESS_0: + case GSM_L1_BURST_TYPE_ACCESS_1: + case GSM_L1_BURST_TYPE_ACCESS_2: + break; + default: + LOGL1S(DL1P, LOGL_NOTICE, l1t, tn, chan, fn, + "Received RACH frame with unexpected TSC %u, " + "forcing default %u\n", l1sap.u.rach_ind.burst_type, + GSM_L1_BURST_TYPE_ACCESS_0); + l1sap.u.rach_ind.burst_type = GSM_L1_BURST_TYPE_ACCESS_0; + } + } else { + l1sap.u.rach_ind.is_11bit = 0; + l1sap.u.rach_ind.ra = ra; + l1sap.u.rach_ind.burst_type = GSM_L1_BURST_TYPE_ACCESS_0; + } + /* forward primitive */ l1sap_up(l1t->trx, &l1sap); -- To view, visit https://gerrit.osmocom.org/6315 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ia28741603636406744e5e22ffff1fb7a9689955a Gerrit-Change-Number: 6315 Gerrit-PatchSet: 7 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Stefan Sperling Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: tnt -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:33:14 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:33:14 +0000 Subject: Change in osmo-msc[master]: transaction: clarify magic 0xff transaction ID In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12901 ) Change subject: transaction: clarify magic 0xff transaction ID ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2d3a6334f49989bedbb1430d26ffad8b61dfd873 Gerrit-Change-Number: 12901 Gerrit-PatchSet: 4 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 14 Feb 2019 21:33:14 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:33:34 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:33:34 +0000 Subject: Change in osmo-msc[master]: transaction: drop meaningless ti_flag of trans_assign_trans_id() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12519 ) Change subject: transaction: drop meaningless ti_flag of trans_assign_trans_id() ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12519 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie11999900b1789652ee078d34636dcda1e137eb0 Gerrit-Change-Number: 12519 Gerrit-PatchSet: 6 Gerrit-Owner: Max Gerrit-Assignee: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 14 Feb 2019 21:33:34 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:35:00 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:35:00 +0000 Subject: Change in docker-playground[master]: cosmetic: remove excess space at line end In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12881 ) Change subject: cosmetic: remove excess space at line end ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12881 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I36a1b9f87f1671844e78a84121e84272e8f1d373 Gerrit-Change-Number: 12881 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Comment-Date: Thu, 14 Feb 2019 21:35:00 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:35:02 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:35:02 +0000 Subject: Change in docker-playground[master]: cosmetic: remove excess space at line end In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12881 ) Change subject: cosmetic: remove excess space at line end ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/12881 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I36a1b9f87f1671844e78a84121e84272e8f1d373 Gerrit-Change-Number: 12881 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Comment-Date: Thu, 14 Feb 2019 21:35:02 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:35:20 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:35:20 +0000 Subject: Change in docker-playground[master]: cosmetic: remove excess space at line end In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12881 ) Change subject: cosmetic: remove excess space at line end ...................................................................... Patch Set 2: Verified+1 -- To view, visit https://gerrit.osmocom.org/12881 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I36a1b9f87f1671844e78a84121e84272e8f1d373 Gerrit-Change-Number: 12881 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Comment-Date: Thu, 14 Feb 2019 21:35:20 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:35:21 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:35:21 +0000 Subject: Change in docker-playground[master]: cosmetic: remove excess space at line end In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12881 ) Change subject: cosmetic: remove excess space at line end ...................................................................... cosmetic: remove excess space at line end Change-Id: I36a1b9f87f1671844e78a84121e84272e8f1d373 --- M ttcn3-msc-test/MSC_Tests.cfg 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved; Verified Max: Looks good to me, but someone else must approve diff --git a/ttcn3-msc-test/MSC_Tests.cfg b/ttcn3-msc-test/MSC_Tests.cfg index 2ce2b8c..e40a0e5 100644 --- a/ttcn3-msc-test/MSC_Tests.cfg +++ b/ttcn3-msc-test/MSC_Tests.cfg @@ -34,7 +34,7 @@ } }; -# remote (IUT) side +# remote (IUT) side MSC_Tests.mp_msc_mncc := "/data/unix/mncc"; MSC_Tests.mp_msc_ip := "172.18.1.10"; # local (emulation) side) -- To view, visit https://gerrit.osmocom.org/12881 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I36a1b9f87f1671844e78a84121e84272e8f1d373 Gerrit-Change-Number: 12881 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:37:49 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:37:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC_Tests: Make sure only sgsap related tests use the SGs interface In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12913 ) Change subject: MSC_Tests: Make sure only sgsap related tests use the SGs interface ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I8e012e3599ad00db2e132b6463499f8a4a2307f1 Gerrit-Change-Number: 12913 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Thu, 14 Feb 2019 21:37:49 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:37:51 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:37:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC_Tests: Make sure only sgsap related tests use the SGs interface In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12913 ) Change subject: MSC_Tests: Make sure only sgsap related tests use the SGs interface ...................................................................... MSC_Tests: Make sure only sgsap related tests use the SGs interface At the moment the SGs interface is started and connected in all tests in the testsuite. This may be a problem because the IUT may lack the SGs support. In this case all tests would fail because of the missing SGs interface. Lets initalize and connect the SGs interface only for SGs related tests to prevent unrelated test failures. Change-Id: I8e012e3599ad00db2e132b6463499f8a4a2307f1 Related: OS#3614 --- M msc/MSC_Tests.ttcn 1 file changed, 81 insertions(+), 45 deletions(-) Approvals: Jenkins Builder: Verified Max: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 34fe9ad..00f9bec 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -119,8 +119,6 @@ charstring mp_mme_name := "mmec01.mmegi0001.mme.epc.mnc070.mcc901.3gppnetwork.org"; charstring mp_vlr_name := "vlr.example.net"; - boolean mp_sgsap_enable := false; - BSSAP_Configurations mp_bssap_cfg := { { sccp_service_type := "mtp3_itu", @@ -254,7 +252,7 @@ } } -function f_init(integer num_bsc := 1) runs on MTC_CT { +function f_init(integer num_bsc := 1, boolean sgsap := false) runs on MTC_CT { if (g_initialized == true) { return; @@ -280,7 +278,7 @@ f_init_gsup("MSC_Test"); f_init_smpp("MSC_Test"); - if (mp_sgsap_enable == true) { + if (sgsap == true) { f_init_sgsap("MSC_Test"); } @@ -472,7 +470,7 @@ type function void_fn(charstring id, BSC_ConnHdlrPars pars) runs on BSC_ConnHdlr; /* FIXME: move into BSC_ConnectionHandler? */ -function f_init_pars(integer imsi_suffix) runs on MTC_CT return BSC_ConnHdlrPars { +function f_init_pars(integer imsi_suffix, boolean sgsap := false) runs on MTC_CT return BSC_ConnHdlrPars { var BSC_ConnHdlrNetworkPars net_pars := { kc_support := '0A'O, /* A5/1 and A5/3 enabled */ expect_tmsi := true, @@ -497,7 +495,7 @@ ipa_ctrl_port := mp_msc_ctrl_port, ipa_ctrl_enable := true, mm_info := mp_mm_info, - sgsap_enable := mp_sgsap_enable + sgsap_enable := sgsap }; return pars; } @@ -523,7 +521,7 @@ connect(vc_conn:SMPP, vc_SMPP:SMPP_CLIENT); connect(vc_conn:SMPP_PROC, vc_SMPP:SMPP_PROC); /* SGs part */ - if (mp_sgsap_enable == true) { + if (pars.sgsap_enable == true) { connect(vc_conn:SGsAP, vc_SGsAP:SGsAP_CLIENT); connect(vc_conn:SGsAP_PROC, vc_SGsAP:SGsAP_PROC); } @@ -3569,9 +3567,11 @@ } testcase TC_sgsap_reset() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_reset), 11810); + f_init(1, true); + pars := f_init_pars(11810, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_reset), pars); vc_conn.done; } @@ -3661,9 +3661,11 @@ setverdict(pass); } testcase TC_sgsap_lu() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_lu), 11811); + f_init(1, true); + pars := f_init_pars(11811, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_lu), pars); vc_conn.done; } @@ -3698,10 +3700,12 @@ setverdict(pass); } testcase TC_sgsap_lu_imsi_reject() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); + f_init(1, true); + pars := f_init_pars(11812, true); - vc_conn := f_start_handler(refers(f_tc_sgsap_lu_imsi_reject), 11812); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_lu_imsi_reject), pars); vc_conn.done; } @@ -3759,10 +3763,12 @@ setverdict(pass); } testcase TC_sgsap_lu_and_nothing() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); + f_init(1, true); + pars := f_init_pars(11813, true); - vc_conn := f_start_handler(refers(f_tc_sgsap_lu_and_nothing), 11813); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_lu_and_nothing), pars); vc_conn.done; } @@ -3782,9 +3788,11 @@ setverdict(pass); } testcase TC_sgsap_expl_imsi_det_eps() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_expl_imsi_det_eps), 11814); + f_init(1, true); + pars := f_init_pars(11814, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_expl_imsi_det_eps), pars); vc_conn.done; } @@ -3805,9 +3813,11 @@ setverdict(pass); } testcase TC_sgsap_expl_imsi_det_noneps() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_expl_imsi_det_noneps), 11815); + f_init(1, true); + pars := f_init_pars(11815, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_expl_imsi_det_noneps), pars); vc_conn.done; } @@ -3854,9 +3864,11 @@ setverdict(pass); } testcase TC_sgsap_paging_rej() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_paging_rej), 11816); + f_init(1, true); + pars := f_init_pars(11816, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_paging_rej), pars); vc_conn.done; } @@ -3901,9 +3913,11 @@ setverdict(pass); } testcase TC_sgsap_paging_subscr_rej() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_paging_subscr_rej), 11817); + f_init(1, true); + pars := f_init_pars(11817, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_paging_subscr_rej), pars); vc_conn.done; } @@ -3943,9 +3957,11 @@ setverdict(pass); } testcase TC_sgsap_paging_ue_unr() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_paging_ue_unr), 11818); + f_init(1, true); + pars := f_init_pars(11818, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_paging_ue_unr), pars); vc_conn.done; } @@ -3982,9 +3998,11 @@ setverdict(pass); } testcase TC_sgsap_paging_and_nothing() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_paging_and_nothing), 11819); + f_init(1, true); + pars := f_init_pars(11819, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_paging_and_nothing), pars); vc_conn.done; } @@ -4038,9 +4056,11 @@ setverdict(pass); } testcase TC_sgsap_paging_and_lu() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_paging_and_lu), 11820); + f_init(1, true); + pars := f_init_pars(11820, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_paging_and_lu), pars); vc_conn.done; } @@ -4067,9 +4087,11 @@ setverdict(pass); } testcase TC_sgsap_unexp_ud() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_unexp_ud), 11821); + f_init(1, true); + pars := f_init_pars(11821, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_unexp_ud), pars); vc_conn.done; } @@ -4091,9 +4113,11 @@ setverdict(pass); } testcase TC_sgsap_unsol_ud() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_unsol_ud), 11822); + f_init(1, true); + pars := f_init_pars(11822, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_unsol_ud), pars); vc_conn.done; } @@ -4237,9 +4261,11 @@ setverdict(pass); } testcase TC_sgsap_mt_sms() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_mt_sms), 11823); + f_init(1, true); + pars := f_init_pars(11823, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_mt_sms), pars); vc_conn.done; } @@ -4265,9 +4291,11 @@ f_sgsap_bssmap_screening() } testcase TC_sgsap_mo_sms() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_mo_sms), 11824); + f_init(1, true); + pars := f_init_pars(11824, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_mo_sms), pars); vc_conn.done; } @@ -4337,9 +4365,11 @@ setverdict(pass); } testcase TC_sgsap_mt_sms_and_nothing() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_mt_sms_and_nothing), 11825); + f_init(1, true); + pars := f_init_pars(11825, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_mt_sms_and_nothing), pars); vc_conn.done; } @@ -4397,9 +4427,11 @@ setverdict(pass); } testcase TC_sgsap_mt_sms_and_reject() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); - vc_conn := f_start_handler(refers(f_tc_sgsap_mt_sms_and_reject), 11826); + f_init(1, true); + pars := f_init_pars(11826, true); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_mt_sms_and_reject), pars); vc_conn.done; } @@ -4471,10 +4503,12 @@ f_mt_lu_and_csfb_call(id, pars, true); } testcase TC_bssap_lu_sgsap_lu_and_mt_call() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); + f_init(1, true); + pars := f_init_pars(118139, true); - vc_conn := f_start_handler(refers(f_tc_bssap_lu_sgsap_lu_and_mt_call), 139); + vc_conn := f_start_handler_with_pars(refers(f_tc_bssap_lu_sgsap_lu_and_mt_call), pars); vc_conn.done; } @@ -4484,10 +4518,12 @@ f_mt_lu_and_csfb_call(id, pars, false); } testcase TC_sgsap_lu_and_mt_call() runs on MTC_CT { + var BSC_ConnHdlrPars pars; var BSC_ConnHdlr vc_conn; - f_init(); + f_init(1, true); + pars := f_init_pars(11827, true); - vc_conn := f_start_handler(refers(f_tc_sgsap_lu_and_mt_call), 11827); + vc_conn := f_start_handler_with_pars(refers(f_tc_sgsap_lu_and_mt_call), pars); vc_conn.done; } -- To view, visit https://gerrit.osmocom.org/12913 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I8e012e3599ad00db2e132b6463499f8a4a2307f1 Gerrit-Change-Number: 12913 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:41:25 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:41:25 +0000 Subject: Change in osmo-pcu[master]: Don't install pcuif_proto.h header In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12907 ) Change subject: Don't install pcuif_proto.h header ...................................................................... Patch Set 1: Code-Review+1 > I don't like the idea of having separate copies of the protocol > definition. This is similar to the situation with MNCC - one needs > to keep all existing copies updated. Why not to move it to > libosmocore? In general, it has proven a very bad idea to move "shared" header files between projects to libosmocore, particularly if the related interfaces are still subject to being changed. This means that a lot of chagnes to the header file will introduce all kinds of forward/backward API compatibility problems. We've had "gsm_data_shared.h" which was shared between openbsc + osmo-bts for a long time, and it was a nightmare as you always needed to have two very closely-matching bodies of the source repositories in order to build osmo-bts at all. I prefer to have each project build by its own, with *very* little external depedencies. incompatible versions of a given protocol should be detecetd by having version numbers inside the protocol itself. -- To view, visit https://gerrit.osmocom.org/12907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4a87395d4ab7212fe2fc055dae0a737e10d20c69 Gerrit-Change-Number: 12907 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 14 Feb 2019 21:41:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:42:09 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:42:09 +0000 Subject: Change in osmo-asf4-dfu[master]: fix USB transfer In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12909 ) Change subject: fix USB transfer ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12909 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic4e64168e865362e12e0b76386f964895b8b6c20 Gerrit-Change-Number: 12909 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Thu, 14 Feb 2019 21:42:09 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:42:59 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:42:59 +0000 Subject: Change in osmo-asf4-dfu[master]: add specific board support, including sysmoOCTSIM In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12910 ) Change subject: add specific board support, including sysmoOCTSIM ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie51a3af7c77ba76ac40570b871f31fd527fb255b Gerrit-Change-Number: 12910 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Thu, 14 Feb 2019 21:42:59 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:43:08 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:43:08 +0000 Subject: Change in osmo-asf4-dfu[master]: minor: rename output binary to bootloader In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12911 ) Change subject: minor: rename output binary to bootloader ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12911 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4dfa761c482d6d061eddf3ff8ee91ec049955f53 Gerrit-Change-Number: 12911 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Thu, 14 Feb 2019 21:43:08 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:43:27 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:43:27 +0000 Subject: Change in osmo-asf4-dfu[master]: add force DFU using magic value In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12912 ) Change subject: add force DFU using magic value ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12912 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I298e3697c06d352a6e0f47266097844c490e1722 Gerrit-Change-Number: 12912 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Thu, 14 Feb 2019 21:43:27 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:43:40 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:43:40 +0000 Subject: Change in osmo-asf4-dfu[master]: set initial DFU state to ERROR if application is corrupt In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12914 ) Change subject: set initial DFU state to ERROR if application is corrupt ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12914 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icd503a2d19f829eb43a83c28b526b73d595640f0 Gerrit-Change-Number: 12914 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Thu, 14 Feb 2019 21:43:40 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:43:42 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:43:42 +0000 Subject: Change in osmo-asf4-dfu[master]: fix USB transfer In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12909 ) Change subject: fix USB transfer ...................................................................... fix USB transfer this ASFv4 USB library change fixes USB transfer. two transfer-size issues existed: - on multi-packet transfer if the last packet was less than the USB transfer packet size, the packet would be received but not acknowledged - during normal transfer the packet size of a previous packet set the size of the current packet, ignoring the actual transfer size transfer with a combination of partial or full USB single packet, USB multi-packet, max transfer, and control endpoint sizes was successfully tested (in bytes): 4, 32, 64, 128, 129, 512, 516, 544, 576, 640, 641, 1024, 1028 Change-Id: Ic4e64168e865362e12e0b76386f964895b8b6c20 --- M hpl/usb/hpl_usb.c 1 file changed, 1 insertion(+), 3 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/hpl/usb/hpl_usb.c b/hpl/usb/hpl_usb.c index 6bf09ab..cc6cc41 100644 --- a/hpl/usb/hpl_usb.c +++ b/hpl/usb/hpl_usb.c @@ -1135,6 +1135,7 @@ /* Short packet. */ ept->flags.bits.need_zlp = 0; ept->trans_count += last_trans; + _usbd_ep_set_out_trans(epn, 0, ept->size, 0); } else { /* Full packets. */ ept->trans_count += trans_size; @@ -1154,9 +1155,6 @@ if (trans_next > ept->size) { if (trans_next > USB_D_DEV_TRANS_MAX) { trans_next = USB_D_DEV_TRANS_MAX; - } else { - /* Must expect multiple of ep size. */ - trans_next -= trans_next & size_mask; } } else if (trans_next < ept->size) { /* Last un-aligned packet should be cached. */ -- To view, visit https://gerrit.osmocom.org/12909 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic4e64168e865362e12e0b76386f964895b8b6c20 Gerrit-Change-Number: 12909 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:43:42 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:43:42 +0000 Subject: Change in osmo-asf4-dfu[master]: add specific board support, including sysmoOCTSIM In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12910 ) Change subject: add specific board support, including sysmoOCTSIM ...................................................................... add specific board support, including sysmoOCTSIM the board specific definitions should be coded when particular environment variable/marco is defined. this macro name is provided by the makefile in the BOARD variable. this allows to compile the bootloader for specific devices. see README for more information. the board definition for the sysmoOCTSIM is also added. Change-Id: Ie51a3af7c77ba76ac40570b871f31fd527fb255b --- M README.md M atmel_start_pins.h M config/usbd_config.h M driver_init.c M driver_init.h M gcc/Makefile M usb_dfu_main.c M usb_start.c 8 files changed, 109 insertions(+), 14 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/README.md b/README.md index 031bc27..58833aa 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,22 @@ This is an implementation of the DFU mode of the [USB DFU Device Class Specification](https://usb.org/document-library/device-firmware-upgrade-11-new-version-31-aug-2004) for the Microchip SAM D5x/E5x micro-controller. It is meant to be used as bootloader to allow flashing the main application over USB. -The code has been developed for the Microchip [SAM E54 Xplained Pro](https://www.microchip.com/DevelopmentTools/ProductDetails/PartNo/ATSAME54-XPRO) development board using a [SAM E54](https://www.microchip.com/wwwproducts/en/ATSAME54P20A) micro-controller. +The code has been developed using a [SAM E54](https://www.microchip.com/wwwproducts/en/ATSAME54P20A) micro-controller. It should work on any chip of the SAM D5x/E5x device family by replacing the corresponding device-specific definitions (usually including the chip name in the file name). The code uses the [Atmel START](https://start.atmel.com/) ASFv4 library. +Board +===== + +The code can be compiled for specific boards: + +- Microchip [SAM E54 Xplained Pro](https://www.microchip.com/DevelopmentTools/ProductDetails/PartNo/ATSAME54-XPRO) development board, named *SAME54_XPLAINED_PRO* +- sysmocom sysmoOCTSIM, name *SYSMOOCTSIM* + +The board name can be set in 'gcc/Makefile' *BOARD* variable, or provided while compiling (e.g. `make BOARD=SAME54_XPLAINED_PRO`). +*SAME54_XPLAINED_PRO* is the default value. + USB DFU ======= @@ -26,13 +37,14 @@ make ``` +The board name can be set in 'gcc/Makefile' *BOARD* variable, or provided while compiling (e.g. `make BOARD=SAME54_XPLAINED_PRO`). +*SAME54_XPLAINED_PRO* is the default value. + The resulting firmware binary is `AtmelStart.bin`. Flashing ======== -To flash the bootloader you can either use the [edbg tool](https://github.com/ataradov/edbg) over the EDBG interface of the SAM E54 Xplained Pro development board, or OpenICD with any SWJ adapter. - The USB DFU bootloader should be flashed in a protected area of the flash memory to prevent for erasing it, as specified in data sheet section 25.6.2 Memory Organization. The bootloader size is configured in the NVM user configuration BOOTPROT field, as specified in data sheet section 25.6.9 NVM User Configuration. The bit position of the BOOTPROT field is documented in data sheet section 9.4 NVM User Page Mapping. @@ -43,8 +55,26 @@ EDBG ---- +To flash the bootloader using the [edbg tool](https://github.com/ataradov/edbg) over the EDBG interface of the SAM E54 Xplained Pro development board. + To flash the USB DFU bootloader, perform the following actions: * remove reserved bootloader space so we can erase it: `edbg --target atmel_cm4v2 --fuse wv,29:26,15` * erase the whole flash: `edbg --target atmel_cm4v2 --fuse v,29:26,15 --erase` * program the bootloader: `edbg --target atmel_cm4v2 --fuse v,29:26,15 --program --verify --file AtmelStart.bin` * reserve bootloader space: `edbg --target atmel_cm4v2 --fuse wv,29:26,13` + +SWJ +--- + +The bootloader can also be flashed over SWJ (e.g. JTAG or SWD). +You need to perform the following actions: + +* remove reserved bootloader space so we can erase it (and reset MCU for change to be effective) +* erase the whole flash +* program the bootloader +* reserve bootloader space + +Using OpenOCD (with the [SAM E54 patch](http://openocd.zylin.com/#/c/4272/)) and a ST-LINK/V2 SWD adapter, run the following command: + +`openocd --file interface/stlink.cfg --command "transport select hla_swd" --command "set CHIPNAME same54" --command "set CPUTAPID 0x2ba01477" --file target/atsame5x.cfg --command "init" --command "reset halt" --command "atsame5 bootloader 0" --command "flash erase_sector 0 0 last" --command "reset halt" --command "program ./AtmelStart.bin" --command "atsame5 bootloader 16384" --command "reset run" --command "shutdown"` + diff --git a/atmel_start_pins.h b/atmel_start_pins.h index 86e1dfb..220a7b5 100644 --- a/atmel_start_pins.h +++ b/atmel_start_pins.h @@ -27,11 +27,19 @@ #define GPIO_PIN_FUNCTION_M 12 #define GPIO_PIN_FUNCTION_N 13 -/** LED pin to indicate system state (pull low to switch on) */ +/** LED pin to indicate system state */ +#if defined(SAME54_XPLAINED_PRO) #define LED_SYSTEM GPIO(GPIO_PORTC, 18) +#elif defined(SYSMOOCTSIM) +#define LED_SYSTEM GPIO(GPIO_PORTC, 26) +#endif -/** User button to force DFu bootloader (connected to ground when pressed) */ +/** User button to force DFU bootloader (connected to ground when pressed) */ +#if defined(SAME54_XPLAINED_PRO) #define BUTTON_FORCE_DFU GPIO(GPIO_PORTB, 31) +#elif defined(SYSMOOCTSIM) +#define BUTTON_FORCE_DFU GPIO(GPIO_PORTC, 14) +#endif /** USB D+/D- pins */ #define PA24 GPIO(GPIO_PORTA, 24) diff --git a/config/usbd_config.h b/config/usbd_config.h index c20dfb2..6133596 100644 --- a/config/usbd_config.h +++ b/config/usbd_config.h @@ -85,8 +85,12 @@ // <0x6140=> osmo-ASF4-DFU // usb_dfud_idproduct #ifndef CONF_USB_OSMOASF4DFU_IDPRODUCT +#if defined(SYSMOOCTSIM) +#define CONF_USB_OSMOASF4DFU_IDPRODUCT 0x6141 +#else #define CONF_USB_OSMOASF4DFU_IDPRODUCT 0x6140 #endif +#endif // bcdDevice <0x0000-0xFFFF> // usb_dfud_bcddevice @@ -107,12 +111,20 @@ // Unicode string of iManufact // usb_dfud_imanufact_str #ifndef CONF_USB_DFUD_IMANUFACT_STR +#if defined(SYSMOOCTSIM) +#define CONF_USB_DFUD_IMANUFACT_STR "sysmocom" +#else #define CONF_USB_DFUD_IMANUFACT_STR "osmocom" #endif +#endif #ifndef CONF_USB_DFUD_IMANUFACT_STR_DESC +#if defined(SYSMOOCTSIM) +#define CONF_USB_DFUD_IMANUFACT_STR_DESC 18, 0x03, 's', 0x00, 'y', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, 'c', 0x00, 'o', 0x00, 'm', 0x00, +#else #define CONF_USB_DFUD_IMANUFACT_STR_DESC 16, 0x03, 'o', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, 'c', 0x00, 'o', 0x00, 'm', 0x00, #endif +#endif // @@ -130,12 +142,20 @@ // Unicode string of iProduct // usb_dfud_iproduct_str #ifndef CONF_USB_DFUD_IPRODUCT_STR +#if defined(SYSMOOCTSIM) +#define CONF_USB_DFUD_IPRODUCT_STR "sysmoOCTSIM (osmo-ASF4-DFU)" +#else #define CONF_USB_DFUD_IPRODUCT_STR "osmo-ASF4-DFU" #endif +#endif #ifndef CONF_USB_DFUD_IPRODUCT_STR_DESC +#if defined(SYSMOOCTSIM) +#define CONF_USB_DFUD_IPRODUCT_STR_DESC 56, 0x03, 's', 0x00, 'y', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, 'O', 0x00, 'C', 0x00, 'T', 0x00, 'S', 0x00, 'I', 0x00, 'M', 0x00, ' ', 0x00, '(', 0x00, 'o', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, '-', 0x00, 'A', 0x00, 'S', 0x00, 'F', 0x00, '4', 0x00, '-', 0x00, 'D', 0x00, 'F', 0x00, 'U', 0x00, ')', 0x00, +#else #define CONF_USB_DFUD_IPRODUCT_STR_DESC 28, 0x03, 'o', 0x00, 's', 0x00, 'm', 0x00, 'o', 0x00, '-', 0x00, 'A', 0x00, 'S', 0x00, 'F', 0x00, '4', 0x00, '-', 0x00, 'D', 0x00, 'F', 0x00, 'U', 0x00, #endif +#endif // diff --git a/driver_init.c b/driver_init.c index a91b0eb..d873230 100644 --- a/driver_init.c +++ b/driver_init.c @@ -139,18 +139,38 @@ flash_init(&FLASH_0, NVMCTRL); } +void LED_SYSTEM_on(void) +{ +#if defined(SYSMOOCTSIM) + gpio_set_pin_level(LED_SYSTEM, true); +#else + gpio_set_pin_level(LED_SYSTEM, false); +#endif +} + +void LED_SYSTEM_off(void) +{ +#if defined(SYSMOOCTSIM) + gpio_set_pin_level(LED_SYSTEM, false); +#else + gpio_set_pin_level(LED_SYSTEM, true); +#endif +} + void system_init(void) { init_mcu(); // configure system LED - gpio_set_pin_level(LED_SYSTEM, true); // switch off LED + LED_SYSTEM_off(); gpio_set_pin_direction(LED_SYSTEM, GPIO_DIRECTION_OUT); gpio_set_pin_function(LED_SYSTEM, GPIO_PIN_FUNCTION_OFF); // configure force DFU user button gpio_set_pin_direction(BUTTON_FORCE_DFU, GPIO_DIRECTION_IN); - gpio_set_pin_pull_mode(BUTTON_FORCE_DFU, GPIO_PULL_UP); +#if !defined(SYSMOOCTSIM) + gpio_set_pin_pull_mode(BUTTON_FORCE_DFU, GPIO_PULL_UP); // use internal pull-up resistor +#endif gpio_set_pin_function(BUTTON_FORCE_DFU, GPIO_PIN_FUNCTION_OFF); USB_DEVICE_INSTANCE_init(); diff --git a/driver_init.h b/driver_init.h index 0d440d4..8d8a30b 100644 --- a/driver_init.h +++ b/driver_init.h @@ -34,6 +34,15 @@ void FLASH_0_CLOCK_init(void); /** + * \brief Switch system LED on + */ +void LED_SYSTEM_on(void); +/** + * \brief Switch system LED off + */ +void LED_SYSTEM_off(void); + +/** * \brief Perform system initialization, initialize pins and clocks for * peripherals */ diff --git a/gcc/Makefile b/gcc/Makefile index 16c7858..7ad24b1 100644 --- a/gcc/Makefile +++ b/gcc/Makefile @@ -1,4 +1,13 @@ ################################################################################ +# User configuration. Can be edited +################################################################################ + +# Set for which board the bootloader should be compiled +# run `make clean` for the change to be effective +# possible values: SAME54_XPLAINED_PRO, SYSMOOCTSIM +BOARD ?= SAME54_XPLAINED_PRO + +################################################################################ # Automatically-generated file. Do not edit! ################################################################################ @@ -202,7 +211,7 @@ @echo Building file: $< @echo ARM/GNU C Compiler $(QUOTE)arm-none-eabi-gcc$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ --D__SAME54P20A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ +-D__SAME54P20A__ -D$(BOARD) -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ -I"../" -I"../config" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/nvmctrl" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/dfu" -I"../usb/class/dfu/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include" \ -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" @echo Finished building: $< @@ -211,7 +220,7 @@ @echo Building file: $< @echo ARM/GNU Assembler $(QUOTE)arm-none-eabi-as$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ --D__SAME54P20A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ +-D__SAME54P20A__ -D$(BOARD) -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ -I"../" -I"../config" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/nvmctrl" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/dfu" -I"../usb/class/dfu/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include" \ -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" @echo Finished building: $< @@ -220,7 +229,7 @@ @echo Building file: $< @echo ARM/GNU Preprocessing Assembler $(QUOTE)arm-none-eabi-gcc$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ --D__SAME54P20A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ +-D__SAME54P20A__ -D$(BOARD) -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ -I"../" -I"../config" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/nvmctrl" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/dfu" -I"../usb/class/dfu/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include" \ -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" @echo Finished building: $< diff --git a/usb_dfu_main.c b/usb_dfu_main.c index 449b311..96032c5 100644 --- a/usb_dfu_main.c +++ b/usb_dfu_main.c @@ -48,7 +48,6 @@ */ static bool check_force_dfu(void) { - gpio_set_pin_pull_mode(BUTTON_FORCE_DFU, GPIO_PULL_UP); // pull button high return (0 == gpio_get_pin_level(BUTTON_FORCE_DFU)); // signal is low when button is pressed } diff --git a/usb_start.c b/usb_start.c index ad91840..93059ad 100644 --- a/usb_start.c +++ b/usb_start.c @@ -80,7 +80,7 @@ void usb_dfu(void) { while (!dfudf_is_enabled()); // wait for DFU to be installed - gpio_set_pin_level(LED_SYSTEM, false); // switch LED on to indicate USB DFU stack is ready + LED_SYSTEM_on(); // switch LED on to indicate USB DFU stack is ready ASSERT(hri_nvmctrl_read_STATUS_BOOTPROT_bf(FLASH_0.dev.hw) <= 15); uint32_t application_start_address = (15 - hri_nvmctrl_read_STATUS_BOOTPROT_bf(FLASH_0.dev.hw)) * 8192; // calculate bootloader size to know where we should write the application firmware @@ -89,7 +89,7 @@ while (true) { // main DFU infinite loop // run the second part of the USB DFU state machine handling non-USB aspects if (USB_DFU_STATE_DFU_DNLOAD_SYNC == dfu_state || USB_DFU_STATE_DFU_DNBUSY == dfu_state) { // there is some data to be flashed - gpio_set_pin_level(LED_SYSTEM, true); // switch LED off to indicate we are flashing + LED_SYSTEM_off(); // switch LED off to indicate we are flashing if (dfu_download_length > 0) { // there is some data to be flashed int32_t rc = flash_write(&FLASH_0, application_start_address + dfu_download_offset, dfu_download_data, dfu_download_length); // write downloaded data chunk to flash if (ERR_NONE == rc) { @@ -108,7 +108,7 @@ // this case should not happen, but it's not a critical error dfu_state = USB_DFU_STATE_DFU_DNLOAD_IDLE; // indicate flashing can continue } - gpio_set_pin_level(LED_SYSTEM, false); // switch LED on to indicate USB DFU can resume + LED_SYSTEM_on(); // switch LED on to indicate USB DFU can resume } if (USB_DFU_STATE_DFU_MANIFEST == dfu_state) { // we can start manifestation (finish flashing) // in theory every DFU files should have a suffix to with a CRC to check the data -- To view, visit https://gerrit.osmocom.org/12910 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie51a3af7c77ba76ac40570b871f31fd527fb255b Gerrit-Change-Number: 12910 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:43:43 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:43:43 +0000 Subject: Change in osmo-asf4-dfu[master]: minor: rename output binary to bootloader In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12911 ) Change subject: minor: rename output binary to bootloader ...................................................................... minor: rename output binary to bootloader Change-Id: I4dfa761c482d6d061eddf3ff8ee91ec049955f53 --- M README.md M gcc/Makefile 2 files changed, 4 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/README.md b/README.md index 58833aa..96cf583 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ The board name can be set in 'gcc/Makefile' *BOARD* variable, or provided while compiling (e.g. `make BOARD=SAME54_XPLAINED_PRO`). *SAME54_XPLAINED_PRO* is the default value. -The resulting firmware binary is `AtmelStart.bin`. +The resulting firmware binary is `bootloader.bin`. Flashing ======== @@ -60,7 +60,7 @@ To flash the USB DFU bootloader, perform the following actions: * remove reserved bootloader space so we can erase it: `edbg --target atmel_cm4v2 --fuse wv,29:26,15` * erase the whole flash: `edbg --target atmel_cm4v2 --fuse v,29:26,15 --erase` -* program the bootloader: `edbg --target atmel_cm4v2 --fuse v,29:26,15 --program --verify --file AtmelStart.bin` +* program the bootloader: `edbg --target atmel_cm4v2 --fuse v,29:26,15 --program --verify --file bootloader.bin` * reserve bootloader space: `edbg --target atmel_cm4v2 --fuse wv,29:26,13` SWJ @@ -76,5 +76,5 @@ Using OpenOCD (with the [SAM E54 patch](http://openocd.zylin.com/#/c/4272/)) and a ST-LINK/V2 SWD adapter, run the following command: -`openocd --file interface/stlink.cfg --command "transport select hla_swd" --command "set CHIPNAME same54" --command "set CPUTAPID 0x2ba01477" --file target/atsame5x.cfg --command "init" --command "reset halt" --command "atsame5 bootloader 0" --command "flash erase_sector 0 0 last" --command "reset halt" --command "program ./AtmelStart.bin" --command "atsame5 bootloader 16384" --command "reset run" --command "shutdown"` +`openocd --file interface/stlink.cfg --command "transport select hla_swd" --command "set CHIPNAME same54" --command "set CPUTAPID 0x2ba01477" --file target/atsame5x.cfg --command "init" --command "reset halt" --command "atsame5 bootloader 0" --command "flash erase_sector 0 0 last" --command "reset halt" --command "program ./bootloader.bin" --command "atsame5 bootloader 16384" --command "reset run" --command "shutdown"` diff --git a/gcc/Makefile b/gcc/Makefile index 7ad24b1..0817806 100644 --- a/gcc/Makefile +++ b/gcc/Makefile @@ -167,7 +167,7 @@ "gcc/system_same54.d" \ "atmel_start.d" -OUTPUT_FILE_NAME :=AtmelStart +OUTPUT_FILE_NAME := bootloader QUOTE := " OUTPUT_FILE_PATH +=$(OUTPUT_FILE_NAME).elf OUTPUT_FILE_PATH_AS_ARGS +=$(OUTPUT_FILE_NAME).elf -- To view, visit https://gerrit.osmocom.org/12911 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I4dfa761c482d6d061eddf3ff8ee91ec049955f53 Gerrit-Change-Number: 12911 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:43:43 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:43:43 +0000 Subject: Change in osmo-asf4-dfu[master]: add force DFU using magic value In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12912 ) Change subject: add force DFU using magic value ...................................................................... add force DFU using magic value if the string "DFU!" is found at the beginning of the RAM (e.g. as written by the main application during USB detach), the DFU bootloader will be started. Change-Id: I298e3697c06d352a6e0f47266097844c490e1722 --- M README.md M gcc/gcc/same54p20a_flash.ld M usb_dfu_main.c 3 files changed, 26 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/README.md b/README.md index 96cf583..dd61824 100644 --- a/README.md +++ b/README.md @@ -28,10 +28,16 @@ Set the corresponding attributes in the 'DFUD_IFACE_DESCB' macro definition in the 'usb/class/dfu/device/dfudf_desc.h' file. +To force the DFU bootloader to start there are several possibilities: + +* if the application following the bootloader is invalid (e.g. MSP is not in RAM) +* if a button is pressed (the button defined in *BUTTON_FORCE_DFU*) +* if the magic value "DFU!" (e.g. 0x44465521) is set at the start of the RAM (e.g. by the main application when performing a USB detach) + Compiling ========= -Use the 'Makefile' script to compile the source code using the ARM none EABI GCC cross-cimpilig toolchain: +Use the 'Makefile' script to compile the source code using the ARM none EABI GCC cross-compiling toolchain: ``` cd gcc make diff --git a/gcc/gcc/same54p20a_flash.ld b/gcc/gcc/same54p20a_flash.ld index 08099d2..32ded77 100644 --- a/gcc/gcc/same54p20a_flash.ld +++ b/gcc/gcc/same54p20a_flash.ld @@ -36,7 +36,8 @@ MEMORY { rom (rx) : ORIGIN = 0x00000000, LENGTH = 0x00100000 - ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00040000 + /* The first word of the RAM is used for the DFU magic */ + ram (rwx) : ORIGIN = 0x20000000 + 4, LENGTH = 0x00040000 - 4 bkupram (rwx) : ORIGIN = 0x47000000, LENGTH = 0x00002000 qspi (rwx) : ORIGIN = 0x04000000, LENGTH = 0x01000000 } @@ -47,6 +48,12 @@ /* Section Definitions */ SECTIONS { + /* Location of the DFU magic. The application must set the magic value "DFU!" (e.g. 0x44465521) at this address to force the DFU bootloader to start (e.g. to perform a DFU detach) */ + .dfu_magic 0x20000000 : + { + KEEP(*(.dfu_magic)) ; + } + .text : { . = ALIGN(4); diff --git a/usb_dfu_main.c b/usb_dfu_main.c index 96032c5..81b02f8 100644 --- a/usb_dfu_main.c +++ b/usb_dfu_main.c @@ -27,6 +27,9 @@ */ static uint32_t* application_start_address; +/** Location of the DFU magic value to force starting DFU */ +static uint32_t dfu_magic __attribute__ ((section (".dfu_magic"))) __attribute__ ((__used__)); + /** Check if the bootloader is valid * \return true if the bootloader is valid and can be run * \remark initializes application_start_address @@ -48,7 +51,14 @@ */ static bool check_force_dfu(void) { - return (0 == gpio_get_pin_level(BUTTON_FORCE_DFU)); // signal is low when button is pressed + if (0x44465521 == dfu_magic) { // check for the magic value which can be set by the main application + dfu_magic = 0; // erase value so we don't stay in the DFU bootloader upon reset + return true; + } + if (0 == gpio_get_pin_level(BUTTON_FORCE_DFU)) { // signal is low when button is pressed + return true; + } + return false; } /** Check if the application is valid -- To view, visit https://gerrit.osmocom.org/12912 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I298e3697c06d352a6e0f47266097844c490e1722 Gerrit-Change-Number: 12912 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:43:44 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:43:44 +0000 Subject: Change in osmo-asf4-dfu[master]: set initial DFU state to ERROR if application is corrupt In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12914 ) Change subject: set initial DFU state to ERROR if application is corrupt ...................................................................... set initial DFU state to ERROR if application is corrupt as specified in DFU standard Change-Id: Icd503a2d19f829eb43a83c28b526b73d595640f0 --- M usb/class/dfu/device/dfudf.c M usb_dfu_main.c 2 files changed, 3 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/usb/class/dfu/device/dfudf.c b/usb/class/dfu/device/dfudf.c index 8232979..223999a 100644 --- a/usb/class/dfu/device/dfudf.c +++ b/usb/class/dfu/device/dfudf.c @@ -306,7 +306,6 @@ usbdc_register_function(&_dfudf); usbdc_register_handler(USBDC_HDL_REQ, &dfudf_req_h); - // TODO check if firmware is corrupted and set dfuERROR state if it is return ERR_NONE; } diff --git a/usb_dfu_main.c b/usb_dfu_main.c index 81b02f8..7fd54d3 100644 --- a/usb_dfu_main.c +++ b/usb_dfu_main.c @@ -101,6 +101,9 @@ if (!check_force_dfu() && check_application()) { // application is valid start_application(); // start application } else { + if (!check_application()) { // if the application is corrupted the start DFU start should be dfuERROR + dfu_state = USB_DFU_STATE_DFU_ERROR; + } usb_dfu(); // start DFU bootloader } } -- To view, visit https://gerrit.osmocom.org/12914 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Icd503a2d19f829eb43a83c28b526b73d595640f0 Gerrit-Change-Number: 12914 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:44:05 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:44:05 +0000 Subject: Change in libosmocore[master]: Enable remote SIM protocol log level In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12916 ) Change subject: Enable remote SIM protocol log level ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12916 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0e7a2add6293a072752900608c8ba34cc3850f31 Gerrit-Change-Number: 12916 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-Reviewer: Max Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 14 Feb 2019 21:44:05 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:44:22 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:44:22 +0000 Subject: Change in osmo-bts[master]: Log lchan kind on PCU-related error In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12906 ) Change subject: Log lchan kind on PCU-related error ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12906 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iadb464e7040dd11e4a8cabfc96d6d90f32594109 Gerrit-Change-Number: 12906 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Thu, 14 Feb 2019 21:44:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:45:21 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:45:21 +0000 Subject: Change in osmocom-bb[master]: firmware/board/compal: indicate both DCS and PCS Rx ports as connected In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12884 ) Change subject: firmware/board/compal: indicate both DCS and PCS Rx ports as connected ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12884 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I620084c33ad165faffbbfc45923faedad77aafb2 Gerrit-Change-Number: 12884 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Thu, 14 Feb 2019 21:45:21 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:45:30 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:45:30 +0000 Subject: Change in osmocom-bb[master]: firmware/board/pirelli_dpl10: fix ASIC_CONF_REG setting In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12882 ) Change subject: firmware/board/pirelli_dpl10: fix ASIC_CONF_REG setting ...................................................................... firmware/board/pirelli_dpl10: fix ASIC_CONF_REG setting Set LPG and PWL pin mux like Pirelli's firmware does. Change-Id: I099e13800b7821a8fb274c5264c9823153afe564 --- M src/target/firmware/board/pirelli_dpl10/init.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, but someone else must approve Max: Looks good to me, approved diff --git a/src/target/firmware/board/pirelli_dpl10/init.c b/src/target/firmware/board/pirelli_dpl10/init.c index 4c74a6d..da23308 100644 --- a/src/target/firmware/board/pirelli_dpl10/init.c +++ b/src/target/firmware/board/pirelli_dpl10/init.c @@ -60,8 +60,8 @@ uint16_t reg; reg = readw(ASIC_CONF_REG); - /* Set function pins to I2C Mode */ - reg |= ((1 << 12) | (1 << 7)); /* SCL / SDA */ + /* Set LPG and PWL pin mux like Pirelli's fw does */ + reg |= (1 << 6) | (1 << 4); /* TWL3025: Set SPI+RIF RX clock to rising edge */ reg |= (1 << 13) | (1 << 14); reg &= ~(1 << 1); -- To view, visit https://gerrit.osmocom.org/12882 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I099e13800b7821a8fb274c5264c9823153afe564 Gerrit-Change-Number: 12882 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: steve-m -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:45:36 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:45:36 +0000 Subject: Change in osmocom-bb[master]: firmware/board/gta0x: fix GPIO and ASIC_CONF_REG configuration In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12883 ) Change subject: firmware/board/gta0x: fix GPIO and ASIC_CONF_REG configuration ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12883 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I306ffacb623d2b06a188f84026ccadab408d1676 Gerrit-Change-Number: 12883 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Thu, 14 Feb 2019 21:45:36 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:45:41 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:45:41 +0000 Subject: Change in osmocom-bb[master]: firmware/board/gta0x: fix GPIO and ASIC_CONF_REG configuration In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12883 ) Change subject: firmware/board/gta0x: fix GPIO and ASIC_CONF_REG configuration ...................................................................... firmware/board/gta0x: fix GPIO and ASIC_CONF_REG configuration Most Calypso peripheral interface signals are unconnected on Openmoko GTA0x. Let's configure them to be GPIOs in IO_CONF_REG, then configure them to be outputs in IO_CNTL_REG, then set the outputs to 0 in ARMIO_LATCH_OUT. Change-Id: I306ffacb623d2b06a188f84026ccadab408d1676 --- M src/target/firmware/board/gta0x/init.c 1 file changed, 10 insertions(+), 13 deletions(-) Approvals: Jenkins Builder: Verified Max: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/target/firmware/board/gta0x/init.c b/src/target/firmware/board/gta0x/init.c index 4f49e80..b93f79c 100644 --- a/src/target/firmware/board/gta0x/init.c +++ b/src/target/firmware/board/gta0x/init.c @@ -49,29 +49,26 @@ #define ARMIO_LATCH_OUT 0xfffe4802 #define IO_CNTL_REG 0xfffe4804 #define ASIC_CONF_REG 0xfffef008 +#define IO_CONF_REG 0xfffef00a static void board_io_init(void) { uint16_t reg; reg = readw(ASIC_CONF_REG); - /* LCD Set I/O(3) / SA0 to I/O(3) mode */ - reg &= ~(1 << 10); - /* Set function pins to I2C Mode */ - reg |= ((1 << 12) | (1 << 7)); /* SCL / SDA */ /* TWL3025: Set SPI+RIF RX clock to rising edge */ reg |= (1 << 13) | (1 << 14); writew(reg, ASIC_CONF_REG); - /* LCD Set I/O(3) to output mode */ - reg = readw(IO_CNTL_REG); - reg &= ~(1 << 3); - writew(reg, IO_CNTL_REG); - - /* LCD Set I/O(3) output low */ - reg = readw(ARMIO_LATCH_OUT); - reg &= ~(1 << 3); - writew(reg, ARMIO_LATCH_OUT); + /* + * Most Calypso peripheral interface signals are unconnected + * on this modem. We configure them to be GPIOs in IO_CONF_REG, + * then configure them to be outputs in IO_CNTL_REG, then set + * the outputs to 0 in ARMIO_LATCH_OUT. + */ + writew(0x03F5, IO_CONF_REG); + writew(0xC000, IO_CNTL_REG); + writew(0x0000, ARMIO_LATCH_OUT); } void board_init(int with_irq) -- To view, visit https://gerrit.osmocom.org/12883 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I306ffacb623d2b06a188f84026ccadab408d1676 Gerrit-Change-Number: 12883 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:46:34 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 21:46:34 +0000 Subject: Change in osmo-bts[master]: Log lchan kind on PCU-related error In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12906 ) Change subject: Log lchan kind on PCU-related error ...................................................................... Log lchan kind on PCU-related error Change-Id: Iadb464e7040dd11e4a8cabfc96d6d90f32594109 --- M src/common/rsl.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/rsl.c b/src/common/rsl.c index 61bf6a1..fce3495 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -694,8 +694,8 @@ send_rel_ack = false; break; default: - LOGP(DRSL, LOGL_ERROR, "%s PCU rel ack for unexpected lchan kind\n", - gsm_lchan_name(lchan)); + LOGP(DRSL, LOGL_ERROR, "%s PCU rel ack for unexpected lchan kind %s\n", + gsm_lchan_name(lchan), gsm_pchan_name(lchan->rel_act_kind)); /* Release certainly was not requested by the BSC via RSL, so don't ack. */ send_rel_ack = false; break; -- To view, visit https://gerrit.osmocom.org/12906 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iadb464e7040dd11e4a8cabfc96d6d90f32594109 Gerrit-Change-Number: 12906 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:46:59 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 14 Feb 2019 21:46:59 +0000 Subject: Change in libosmocore[master]: Enable remote SIM protocol log level In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12916 ) Change subject: Enable remote SIM protocol log level ...................................................................... Enable remote SIM protocol log level It's defined in logging.h for quite some time but is not actually enabled alongside with other internal logging categories. Change-Id: I0e7a2add6293a072752900608c8ba34cc3850f31 --- M src/logging.c M tests/logging/logging_vty_test.vty 2 files changed, 6 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/logging.c b/src/logging.c index 2bb53ae..09021e4 100644 --- a/src/logging.c +++ b/src/logging.c @@ -169,6 +169,11 @@ .description = "libosmo-netif Jitter Buffer", .enabled = 1, .loglevel = LOGL_NOTICE, }, + [INT2IDX(DLRSPRO)] = { + .name = "DLRSPRO", + .description = "Remote SIM protocol", + .enabled = 1, .loglevel = LOGL_NOTICE, + }, }; void assert_loginfo(const char *src) diff --git a/tests/logging/logging_vty_test.vty b/tests/logging/logging_vty_test.vty index b190927..895d2bc 100644 --- a/tests/logging/logging_vty_test.vty +++ b/tests/logging/logging_vty_test.vty @@ -53,7 +53,7 @@ logging print level (0|1) logging print file (0|1|basename) [last] logging set-log-mask MASK - logging level (aa|bb|ccc|dddd|eee|lglobal|llapd|linp|lmux|lmi|lmib|lsms|lctrl|lgtp|lstats|lgsup|loap|lss7|lsccp|lsua|lm3ua|lmgcp|ljibuf) (debug|info|notice|error|fatal) + logging level (aa|bb|ccc|dddd|eee|lglobal|llapd|linp|lmux|lmi|lmib|lsms|lctrl|lgtp|lstats|lgsup|loap|lss7|lsccp|lsua|lm3ua|lmgcp|ljibuf|lrspro) (debug|info|notice|error|fatal) logging level set-all (debug|info|notice|error|fatal) logging level force-all (debug|info|notice|error|fatal) no logging level force-all -- To view, visit https://gerrit.osmocom.org/12916 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I0e7a2add6293a072752900608c8ba34cc3850f31 Gerrit-Change-Number: 12916 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-Reviewer: Max Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:52:45 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:52:45 +0000 Subject: Change in osmo-sip-connector[master]: Support International Caller ID In-Reply-To: References: Message-ID: Harald Welte has uploaded a new patch set (#6) to the change originally created by Keith Whyte. ( https://gerrit.osmocom.org/12706 ) Change subject: Support International Caller ID ...................................................................... Support International Caller ID When the SIP call source contains + as first character, set the TON to International so that the MS displays caller ID correctly Change-Id: Idcfa31aff90e04dd0aa3583957f288889b1bbefe --- M src/mncc.c 1 file changed, 8 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sip-connector refs/changes/06/12706/6 -- To view, visit https://gerrit.osmocom.org/12706 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Idcfa31aff90e04dd0aa3583957f288889b1bbefe Gerrit-Change-Number: 12706 Gerrit-PatchSet: 6 Gerrit-Owner: Keith Whyte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Keith Whyte Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 21:52:46 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 21:52:46 +0000 Subject: Change in osmo-sip-connector[master]: cosmetic: use OSMO_STRLCPY_ARRAY() instead of osmo_strlcpy() Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12917 Change subject: cosmetic: use OSMO_STRLCPY_ARRAY() instead of osmo_strlcpy() ...................................................................... cosmetic: use OSMO_STRLCPY_ARRAY() instead of osmo_strlcpy() This saves us the extra sizeof(). Change-Id: If329f122017c0c5b5222e46d55f39731c5bdf662 --- M src/mncc.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sip-connector refs/changes/17/12917/1 diff --git a/src/mncc.c b/src/mncc.c index 5d220ba..0f003bd 100644 --- a/src/mncc.c +++ b/src/mncc.c @@ -790,7 +790,7 @@ mncc.fields |= MNCC_F_CALLED; mncc.called.plan = GSM48_NPI_ISDN_E164; mncc.called.type = GSM48_TON_UNKNOWN; - osmo_strlcpy(mncc.called.number, call->dest, sizeof(mncc.called.number)); + OSMO_STRLCPY_ARRAY(mncc.called.number, call->dest); } /* -- To view, visit https://gerrit.osmocom.org/12917 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If329f122017c0c5b5222e46d55f39731c5bdf662 Gerrit-Change-Number: 12917 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 22:11:50 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 22:11:50 +0000 Subject: Change in osmo-sip-connector[master]: Support International Caller ID In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12706 ) Change subject: Support International Caller ID ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12706 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Idcfa31aff90e04dd0aa3583957f288889b1bbefe Gerrit-Change-Number: 12706 Gerrit-PatchSet: 6 Gerrit-Owner: Keith Whyte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Keith Whyte Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Thu, 14 Feb 2019 22:11:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 22:12:42 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 22:12:42 +0000 Subject: Change in osmo-sip-connector[master]: Support International Caller ID In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12706 ) Change subject: Support International Caller ID ...................................................................... Support International Caller ID When the SIP call source contains + as first character, set the TON to International so that the MS displays caller ID correctly Change-Id: Idcfa31aff90e04dd0aa3583957f288889b1bbefe --- M src/mncc.c 1 file changed, 8 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/mncc.c b/src/mncc.c index ea6a9fc..5d220ba 100644 --- a/src/mncc.c +++ b/src/mncc.c @@ -775,8 +775,14 @@ mncc.fields |= MNCC_F_CALLING; mncc.calling.plan = GSM48_NPI_ISDN_E164; - mncc.calling.type = GSM48_TON_UNKNOWN; - osmo_strlcpy(mncc.calling.number, call->source, sizeof(mncc.calling.number)); + + if (call->source && call->source[0] == '+') { + mncc.calling.type = GSM48_TON_INTERNATIONAL; + OSMO_STRLCPY_ARRAY(mncc.calling.number, call->source + 1); + } else { + mncc.calling.type = GSM48_TON_UNKNOWN; + OSMO_STRLCPY_ARRAY(mncc.calling.number, call->source); + } if (conn->app->use_imsi_as_id) { snprintf(mncc.imsi, 15, "%s", call->dest); -- To view, visit https://gerrit.osmocom.org/12706 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Idcfa31aff90e04dd0aa3583957f288889b1bbefe Gerrit-Change-Number: 12706 Gerrit-PatchSet: 6 Gerrit-Owner: Keith Whyte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Keith Whyte Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 22:12:48 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 22:12:48 +0000 Subject: Change in osmo-sip-connector[master]: cosmetic: use OSMO_STRLCPY_ARRAY() instead of osmo_strlcpy() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12917 ) Change subject: cosmetic: use OSMO_STRLCPY_ARRAY() instead of osmo_strlcpy() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12917 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If329f122017c0c5b5222e46d55f39731c5bdf662 Gerrit-Change-Number: 12917 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Thu, 14 Feb 2019 22:12:48 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 22:12:50 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 14 Feb 2019 22:12:50 +0000 Subject: Change in osmo-sip-connector[master]: cosmetic: use OSMO_STRLCPY_ARRAY() instead of osmo_strlcpy() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12917 ) Change subject: cosmetic: use OSMO_STRLCPY_ARRAY() instead of osmo_strlcpy() ...................................................................... cosmetic: use OSMO_STRLCPY_ARRAY() instead of osmo_strlcpy() This saves us the extra sizeof(). Change-Id: If329f122017c0c5b5222e46d55f39731c5bdf662 --- M src/mncc.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/mncc.c b/src/mncc.c index 5d220ba..0f003bd 100644 --- a/src/mncc.c +++ b/src/mncc.c @@ -790,7 +790,7 @@ mncc.fields |= MNCC_F_CALLED; mncc.called.plan = GSM48_NPI_ISDN_E164; mncc.called.type = GSM48_TON_UNKNOWN; - osmo_strlcpy(mncc.called.number, call->dest, sizeof(mncc.called.number)); + OSMO_STRLCPY_ARRAY(mncc.called.number, call->dest); } /* -- To view, visit https://gerrit.osmocom.org/12917 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sip-connector Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If329f122017c0c5b5222e46d55f39731c5bdf662 Gerrit-Change-Number: 12917 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 22:43:51 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 14 Feb 2019 22:43:51 +0000 Subject: Change in osmo-msc[master]: transaction: drop meaningless ti_flag of trans_assign_trans_id() In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/12519 ) Change subject: transaction: drop meaningless ti_flag of trans_assign_trans_id() ...................................................................... transaction: drop meaningless ti_flag of trans_assign_trans_id() According to GSM 04.07, the TI flag takes one bit and can be either of the following: '0'B - transaction is allocated by sender of a message, '1'B - transaction is allocated by receiver of a message. Since we store transaction ID in gsm_trans structure, we also store TI flag (as a part of transaction ID), which in this context means: '0'B - transaction is allocated by us (OsmoMSC), '1'B - transaction is allocated by some MS. In 100% cases, trans_assign_trans_id() is used to assign transaction IDs to transactions allocated by us (i.e. OsmoMSC) for MT connections. And there is no need to use it for MO transactions, because they basically already do contain a valid transaction ID assigned by the MS. Change-Id: Ie11999900b1789652ee078d34636dcda1e137eb0 --- M include/osmocom/msc/transaction.h M src/libmsc/gsm_04_08_cc.c M src/libmsc/gsm_04_11.c M src/libmsc/gsm_09_11.c M src/libmsc/transaction.c 5 files changed, 9 insertions(+), 14 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/msc/transaction.h b/include/osmocom/msc/transaction.h index 36e9bc1..c5c740c 100644 --- a/include/osmocom/msc/transaction.h +++ b/include/osmocom/msc/transaction.h @@ -111,7 +111,7 @@ void trans_free(struct gsm_trans *trans); int trans_assign_trans_id(const struct gsm_network *net, const struct vlr_subscr *vsub, - uint8_t protocol, uint8_t ti_flag); + uint8_t protocol); struct gsm_trans *trans_has_conn(const struct ran_conn *conn); void trans_conn_closed(const struct ran_conn *conn); diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c index 93e136c..b84fd03 100644 --- a/src/libmsc/gsm_04_08_cc.c +++ b/src/libmsc/gsm_04_08_cc.c @@ -630,8 +630,7 @@ } /* Get free transaction_id */ - trans_id = trans_assign_trans_id(trans->net, trans->vsub, - GSM48_PDISC_CC, 0); + trans_id = trans_assign_trans_id(trans->net, trans->vsub, GSM48_PDISC_CC); if (trans_id < 0) { /* no free transaction ID */ rc = mncc_release_ind(trans->net, trans, trans->callref, diff --git a/src/libmsc/gsm_04_11.c b/src/libmsc/gsm_04_11.c index e63d1b6..ccb2610 100644 --- a/src/libmsc/gsm_04_11.c +++ b/src/libmsc/gsm_04_11.c @@ -1064,7 +1064,7 @@ LOGP(DLSMS, LOGL_INFO, "Going to send a MT SMS\n"); /* Generate a new transaction ID */ - tid = trans_assign_trans_id(net, vsub, GSM48_PDISC_SMS, 0); + tid = trans_assign_trans_id(net, vsub, GSM48_PDISC_SMS); if (tid == -1) { LOGP(DLSMS, LOGL_ERROR, "No available transaction IDs\n"); return NULL; diff --git a/src/libmsc/gsm_09_11.c b/src/libmsc/gsm_09_11.c index dca315d..08721d4 100644 --- a/src/libmsc/gsm_09_11.c +++ b/src/libmsc/gsm_09_11.c @@ -306,8 +306,7 @@ osmo_counter_inc(net->active_nc_ss); /* Assign transaction ID */ - tid = trans_assign_trans_id(trans->net, - trans->vsub, GSM48_PDISC_NC_SS, 0); + tid = trans_assign_trans_id(trans->net, trans->vsub, GSM48_PDISC_NC_SS); if (tid < 0) { LOGP(DMM, LOGL_ERROR, "No free transaction ID\n"); /* TODO: inform HLR about this */ diff --git a/src/libmsc/transaction.c b/src/libmsc/transaction.c index 7c91c92..237191d 100644 --- a/src/libmsc/transaction.c +++ b/src/libmsc/transaction.c @@ -179,22 +179,19 @@ } /*! allocate an unused transaction ID for the given subscriber - * in the given protocol using the ti_flag specified + * in the given protocol using TI flag = 0 (allocated by us). + * See GSM 04.07, section 11.2.3.1.3 "Transaction identifier". * \param[in] net GSM network * \param[in] subscr Subscriber for which to find ID * \param[in] protocol Protocol for whihc to find ID - * \param[in] ti_flag FIXME */ int trans_assign_trans_id(const struct gsm_network *net, const struct vlr_subscr *vsub, - uint8_t protocol, uint8_t ti_flag) + uint8_t protocol) { struct gsm_trans *trans; unsigned int used_tid_bitmask = 0; int i, j, h; - if (ti_flag) - ti_flag = 0x8; - /* generate bitmask of already-used TIDs for this (subscr,proto) */ llist_for_each_entry(trans, &net->trans_list, entry) { if (trans->vsub != vsub || @@ -206,10 +203,10 @@ /* find a new one, trying to go in a 'circular' pattern */ for (h = 6; h > 0; h--) - if (used_tid_bitmask & (1 << (h | ti_flag))) + if (used_tid_bitmask & (1 << h)) break; for (i = 0; i < 7; i++) { - j = ((h + i) % 7) | ti_flag; + j = (h + i) % 7; if ((used_tid_bitmask & (1 << j)) == 0) return j; } -- To view, visit https://gerrit.osmocom.org/12519 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie11999900b1789652ee078d34636dcda1e137eb0 Gerrit-Change-Number: 12519 Gerrit-PatchSet: 6 Gerrit-Owner: Max Gerrit-Assignee: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 22:43:51 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 14 Feb 2019 22:43:51 +0000 Subject: Change in osmo-msc[master]: transaction: clarify magic 0xff transaction ID In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/12901 ) Change subject: transaction: clarify magic 0xff transaction ID ...................................................................... transaction: clarify magic 0xff transaction ID Change-Id: I2d3a6334f49989bedbb1430d26ffad8b61dfd873 --- M include/osmocom/msc/transaction.h M src/libmsc/gsm_04_08_cc.c M src/libmsc/gsm_09_11.c M src/libmsc/transaction.c 4 files changed, 8 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved Max: Looks good to me, but someone else must approve diff --git a/include/osmocom/msc/transaction.h b/include/osmocom/msc/transaction.h index c5c740c..5e8d637 100644 --- a/include/osmocom/msc/transaction.h +++ b/include/osmocom/msc/transaction.h @@ -9,6 +9,9 @@ #include #include +/* Used for late TID assignment */ +#define TRANS_ID_UNASSIGNED 0xff + enum bridge_state { BRIDGE_STATE_NONE, BRIDGE_STATE_LOOPBACK_PENDING, diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c index b84fd03..98c2aa3 100644 --- a/src/libmsc/gsm_04_08_cc.c +++ b/src/libmsc/gsm_04_08_cc.c @@ -617,7 +617,7 @@ gh = (struct gsm48_hdr *) msgb_put(msg, sizeof(*gh)); /* transaction id must not be assigned */ - if (trans->transaction_id != 0xff) { /* unasssigned */ + if (trans->transaction_id != TRANS_ID_UNASSIGNED) { DEBUGP(DCC, "TX Setup with assigned transaction. " "This is not allowed!\n"); /* Temporarily out of order */ @@ -1928,7 +1928,8 @@ GSM48_CC_CAUSE_DEST_OOO); } /* Create transaction */ - trans = trans_alloc(net, vsub, GSM48_PDISC_CC, 0xff, data->callref); + trans = trans_alloc(net, vsub, GSM48_PDISC_CC, + TRANS_ID_UNASSIGNED, data->callref); if (!trans) { LOGP(DCC, LOGL_ERROR, "No memory for trans.\n"); vlr_subscr_put(vsub); diff --git a/src/libmsc/gsm_09_11.c b/src/libmsc/gsm_09_11.c index 08721d4..d2ad0b7 100644 --- a/src/libmsc/gsm_09_11.c +++ b/src/libmsc/gsm_09_11.c @@ -296,7 +296,7 @@ /* Allocate a new transaction */ trans = trans_alloc(net, vsub, GSM48_PDISC_NC_SS, - 0xff, gsup_msg->session_id); + TRANS_ID_UNASSIGNED, gsup_msg->session_id); if (!trans) { LOGP(DMM, LOGL_ERROR, " -> No memory for trans\n"); return NULL; diff --git a/src/libmsc/transaction.c b/src/libmsc/transaction.c index 237191d..23880aa 100644 --- a/src/libmsc/transaction.c +++ b/src/libmsc/transaction.c @@ -196,7 +196,7 @@ llist_for_each_entry(trans, &net->trans_list, entry) { if (trans->vsub != vsub || trans->protocol != protocol || - trans->transaction_id == 0xff) + trans->transaction_id == TRANS_ID_UNASSIGNED) continue; used_tid_bitmask |= (1 << trans->transaction_id); } -- To view, visit https://gerrit.osmocom.org/12901 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I2d3a6334f49989bedbb1430d26ffad8b61dfd873 Gerrit-Change-Number: 12901 Gerrit-PatchSet: 4 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 22:43:52 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 14 Feb 2019 22:43:52 +0000 Subject: Change in osmo-msc[master]: transaction: fix description of trans_assign_trans_id() In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/12902 ) Change subject: transaction: fix description of trans_assign_trans_id() ...................................................................... transaction: fix description of trans_assign_trans_id() Change-Id: I80238d89e95b6fd791961c48de80aac69ff5b0e9 --- M src/libmsc/transaction.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/libmsc/transaction.c b/src/libmsc/transaction.c index 23880aa..66126e6 100644 --- a/src/libmsc/transaction.c +++ b/src/libmsc/transaction.c @@ -182,8 +182,8 @@ * in the given protocol using TI flag = 0 (allocated by us). * See GSM 04.07, section 11.2.3.1.3 "Transaction identifier". * \param[in] net GSM network - * \param[in] subscr Subscriber for which to find ID - * \param[in] protocol Protocol for whihc to find ID + * \param[in] subscr Subscriber for which to assign a new TID + * \param[in] protocol Protocol of to be assigned TID */ int trans_assign_trans_id(const struct gsm_network *net, const struct vlr_subscr *vsub, uint8_t protocol) -- To view, visit https://gerrit.osmocom.org/12902 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I80238d89e95b6fd791961c48de80aac69ff5b0e9 Gerrit-Change-Number: 12902 Gerrit-PatchSet: 4 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-CC: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 14 22:43:52 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 14 Feb 2019 22:43:52 +0000 Subject: Change in osmo-msc[master]: transaction.h: use #pragma once as include guard In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/12903 ) Change subject: transaction.h: use #pragma once as include guard ...................................................................... transaction.h: use #pragma once as include guard Change-Id: I52787120d5ec59897329d28eab28e0fda3d0f44f --- M include/osmocom/msc/transaction.h 1 file changed, 1 insertion(+), 4 deletions(-) Approvals: Jenkins Builder: Verified Max: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/include/osmocom/msc/transaction.h b/include/osmocom/msc/transaction.h index 5e8d637..39b09ae 100644 --- a/include/osmocom/msc/transaction.h +++ b/include/osmocom/msc/transaction.h @@ -1,5 +1,4 @@ -#ifndef _TRANSACT_H -#define _TRANSACT_H +#pragma once #include #include @@ -117,5 +116,3 @@ uint8_t protocol); struct gsm_trans *trans_has_conn(const struct ran_conn *conn); void trans_conn_closed(const struct ran_conn *conn); - -#endif -- To view, visit https://gerrit.osmocom.org/12903 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I52787120d5ec59897329d28eab28e0fda3d0f44f Gerrit-Change-Number: 12903 Gerrit-PatchSet: 4 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Thu Feb 14 23:18:26 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Thu, 14 Feb 2019 23:18:26 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-bts_=C2=BB_sysmo,f?= =?UTF-8?Q?emtobts=5Fv2.7,1,default,osmocom-master-debian9_#1811?= Message-ID: <227468200.232.1550186306791.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 69.15 KB...] more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in src/gsm make[2]: Entering directory ' GEN gsm0503_conv.c Generating convolutional codes... Generate 'xcch' definition Generate 'rach' definition Generate 'rach_ext' definition Generate 'sch' definition Generate 'cs2' definition Generate 'cs3' definition Generate 'cs2_np' definition Generate 'cs3_np' definition Generate 'tch_afs_12_2' definition Generate 'tch_afs_10_2' definition Generate 'tch_afs_7_95' definition Generate 'tch_afs_7_4' definition Generate 'tch_afs_6_7' definition Generate 'tch_afs_5_9' definition Generate 'tch_afs_5_15' definition Generate 'tch_afs_4_75' definition Generate 'tch_fr' definition Generate 'tch_hr' definition Generate 'tch_ahs_7_95' definition Generate 'tch_ahs_7_4' definition Generate 'tch_ahs_6_7' definition Generate 'tch_ahs_5_9' definition Generate 'tch_ahs_5_15' definition Generate 'tch_ahs_4_75' definition Generate 'mcs1_dl_hdr' definition Generate 'mcs1_ul_hdr' definition Generate 'mcs1' definition Generate 'mcs2' definition Generate 'mcs3' definition Generate 'mcs4' definition Generate 'mcs5_dl_hdr' definition Generate 'mcs5_ul_hdr' definition Generate 'mcs5' definition Generate 'mcs6' definition Generate 'mcs7_dl_hdr' definition Generate 'mcs7_ul_hdr' definition Generate 'mcs7' definition Generate 'mcs8' definition Generate 'mcs9' definition Generation complete. make install-am make[3]: Entering directory ' CC a5.lo CC rxlev_stat.lo CC tlv_parser.lo CC comp128v23.lo CC gsm_utils.lo CC gsm48.lo CC comp128.lo CC rsl.lo gsm_utils.c:116:9: note: #pragma message: including GnuTLS for getrandom fallback. #pragma message ("including GnuTLS for getrandom fallback.") ^~~~~~~ gsm_utils.c: In function ?osmo_get_rand_id?: gsm_utils.c:453:9: note: #pragma message: Using direct syscall access for getrandom(): consider upgrading to glibc >= 2.25 #pragma message ("Using direct syscall access for getrandom(): consider upgrading to glibc >= 2.25") ^~~~~~~ CC gsm48_arfcn_range_encode.lo CC gsm48_ie.lo CC gsm0808.lo CC gprs_cipher_core.lo CC sysinfo.lo CC gsm0480.lo CC abis_nm.lo CC gprs_rlc.lo CC gsm0502.lo CC gsm0411_utils.lo CC gsm0411_smc.lo CC gsm0411_smr.lo CC gsm0414.lo CC lapd_core.lo CC lapdm.lo CC gsm29205.lo CC kasumi.lo CC gsm_04_08_gprs.lo CC auth_core.lo CC auth_comp128v1.lo CC auth_comp128v23.lo CC auth_milenage.lo CC gea.lo CC milenage/aes-internal-enc.lo CC milenage/aes-internal.lo CC milenage/milenage.lo CC gan.lo CC ipa.lo CC gsm0341.lo ipa.c: In function ?ipa_ccm_idtag_parse?: ipa.c:103:2: warning: ?ipa_ccm_idtag_parse_off? is deprecated: Use ipa_ccm_id_{get,resp}_parse instead [-Wdeprecated-declarations] return ipa_ccm_idtag_parse_off(dec, buf, len, 0); ^~~~~~ In file included from ipa.c:45:0: ../../include/osmocom/gsm/ipa.h:31:5: note: declared here int ipa_ccm_idtag_parse_off(struct tlv_parsed *dec, unsigned char *buf, int len, const int len_offset) ^~~~~~~~~~~~~~~~~~~~~~~ CC apn.lo CC gsup.lo CC gsup_sms.lo CC gsm0503_conv.lo CC gprs_gea.lo CC oap.lo CC gsm0808_utils.lo CC gsm23003.lo CC mncc.lo CC bts_features.lo CC oap_client.lo CC gsm29118.lo CC milenage/aes-encblock.lo CCLD libgsmint.la ar: `u' modifier ignored since `D' is the default (see `U') CCLD libosmogsm.la make[4]: Entering directory ' make[4]: Nothing to be done for 'install-data-am'. /bin/mkdir -p ' /bin/bash ../../libtool --mode=install /usr/bin/install -c libosmogsm.la ' libtool: warning: relinking 'libosmogsm.la' libtool: install: (cd /bin/bash " --silent --tag CC --mode=relink gcc -Wall -g -O2 -DBUILDING_LIBOSMOCORE -Wall -Wl,--version-script=./libosmogsm.map -version-info 11:0:0 -no-undefined -o libosmogsm.la -rpath libgsmint.la -ltalloc -lgnutls ) libtool: install: /usr/bin/install -c .libs/libosmogsm.so.11.0.0T libtool: install: (cd && { ln -s -f libosmogsm.so.11.0.0 libosmogsm.so.11 || { rm -f libosmogsm.so.11 && ln -s libosmogsm.so.11.0.0 libosmogsm.so.11; }; }) libtool: install: (cd && { ln -s -f libosmogsm.so.11.0.0 libosmogsm.so || { rm -f libosmogsm.so && ln -s libosmogsm.so.11.0.0 libosmogsm.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmogsm.lai libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/sbin" ldconfig -n ---------------------------------------------------------------------- Libraries have been installed in: If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in src/coding make[2]: Entering directory ' CC gsm0503_mapping.lo CC gsm0503_interleaving.lo CC gsm0503_tables.lo CC gsm0503_parity.lo CC gsm0503_coding.lo CCLD libosmocoding.la make[3]: Entering directory ' make[3]: Nothing to be done for 'install-data-am'. /bin/mkdir -p ' /bin/bash ../../libtool --mode=install /usr/bin/install -c libosmocoding.la ' libtool: warning: relinking 'libosmocoding.la' libtool: install: (cd /bin/bash " --silent --tag CC --mode=relink gcc -Wall -g -O2 -DBUILDING_LIBOSMOCORE -Wall -Wl,--version-script=./libosmocoding.map -version-info 1:1:1 -no-undefined -ltalloc -o libosmocoding.la -rpath gsm0503_interleaving.lo gsm0503_mapping.lo gsm0503_tables.lo gsm0503_parity.lo gsm0503_coding.lo ../libosmocore.la ../gsm/libosmogsm.la ../codec/libosmocodec.la ) libtool: install: /usr/bin/install -c .libs/libosmocoding.so.0.1.1T libtool: install: (cd && { ln -s -f libosmocoding.so.0.1.1 libosmocoding.so.0 || { rm -f libosmocoding.so.0 && ln -s libosmocoding.so.0.1.1 libosmocoding.so.0; }; }) libtool: install: (cd && { ln -s -f libosmocoding.so.0.1.1 libosmocoding.so || { rm -f libosmocoding.so && ln -s libosmocoding.so.0.1.1 libosmocoding.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmocoding.lai libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/sbin" ldconfig -n ---------------------------------------------------------------------- Libraries have been installed in: If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in src/gb make[2]: Entering directory ' CC gprs_ns.lo CC gprs_ns_frgre.lo CC gprs_bssgp.lo CC gprs_ns_vty.lo CC gprs_bssgp_util.lo CC gprs_bssgp_vty.lo CC common_vty.lo CC gprs_bssgp_bss.lo CCLD libosmogb.la make[3]: Entering directory ' make[3]: Nothing to be done for 'install-data-am'. /bin/mkdir -p ' /bin/bash ../../libtool --mode=install /usr/bin/install -c libosmogb.la ' libtool: warning: relinking 'libosmogb.la' libtool: install: (cd /bin/bash " --silent --tag CC --mode=relink gcc -Wall -fno-strict-aliasing -g -O2 -DBUILDING_LIBOSMOCORE -Wall -Wl,--version-script=./libosmogb.map -version-info 8:0:2 -o libosmogb.la -rpath gprs_ns.lo gprs_ns_frgre.lo gprs_ns_vty.lo gprs_bssgp.lo gprs_bssgp_util.lo gprs_bssgp_vty.lo gprs_bssgp_bss.lo common_vty.lo -ltalloc ../../src/libosmocore.la ../../src/vty/libosmovty.la ../../src/gsm/libosmogsm.la ) libtool: install: /usr/bin/install -c .libs/libosmogb.so.6.2.0T libtool: install: (cd && { ln -s -f libosmogb.so.6.2.0 libosmogb.so.6 || { rm -f libosmogb.so.6 && ln -s libosmogb.so.6.2.0 libosmogb.so.6; }; }) libtool: install: (cd && { ln -s -f libosmogb.so.6.2.0 libosmogb.so || { rm -f libosmogb.so && ln -s libosmogb.so.6.2.0 libosmogb.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmogb.lai libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/sbin" ldconfig -n ---------------------------------------------------------------------- Libraries have been installed in: If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in src/ctrl make[2]: Entering directory ' CC control_cmd.lo CC control_if.lo CC fsm_ctrl_commands.lo CC control_vty.lo /bin/bash: line 2: 11424 Segmentation fault /bin/bash ../../libtool --silent --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -DBUILDING_LIBOSMOCORE -Wall -Wall -I../../include -I../../include -g -O2 -DBUILDING_LIBOSMOCORE -Wall -MT fsm_ctrl_commands.lo -MD -MP -MF $depbase.Tpo -c -o fsm_ctrl_commands.lo fsm_ctrl_commands.c Makefile:485: recipe for target 'fsm_ctrl_commands.lo' failed make[2]: *** [fsm_ctrl_commands.lo] Error 139 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:625: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:924: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Fri Feb 15 00:02:03 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Fri, 15 Feb 2019 00:02:03 +0000 Subject: Change in osmo-asf4-dfu[master]: fix DFU magic address and linker script Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12918 Change subject: fix DFU magic address and linker script ...................................................................... fix DFU magic address and linker script using the address specified in the linker script leads to a large output binary (as large as the address specified. instead the address is now specified in the source file. Change-Id: I69ad101593e903b74084f179cfc97fccccdfa5a3 --- M gcc/gcc/same54p20a_flash.ld M usb_dfu_main.c 2 files changed, 3 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-asf4-dfu refs/changes/18/12918/1 diff --git a/gcc/gcc/same54p20a_flash.ld b/gcc/gcc/same54p20a_flash.ld index 32ded77..6aa3fb1 100644 --- a/gcc/gcc/same54p20a_flash.ld +++ b/gcc/gcc/same54p20a_flash.ld @@ -48,12 +48,6 @@ /* Section Definitions */ SECTIONS { - /* Location of the DFU magic. The application must set the magic value "DFU!" (e.g. 0x44465521) at this address to force the DFU bootloader to start (e.g. to perform a DFU detach) */ - .dfu_magic 0x20000000 : - { - KEEP(*(.dfu_magic)) ; - } - .text : { . = ALIGN(4); diff --git a/usb_dfu_main.c b/usb_dfu_main.c index 7fd54d3..e6d933d 100644 --- a/usb_dfu_main.c +++ b/usb_dfu_main.c @@ -28,7 +28,7 @@ static uint32_t* application_start_address; /** Location of the DFU magic value to force starting DFU */ -static uint32_t dfu_magic __attribute__ ((section (".dfu_magic"))) __attribute__ ((__used__)); +static volatile uint32_t* dfu_magic = (uint32_t*)0x20000000; // magic value should be written at start of RAM /** Check if the bootloader is valid * \return true if the bootloader is valid and can be run @@ -51,8 +51,8 @@ */ static bool check_force_dfu(void) { - if (0x44465521 == dfu_magic) { // check for the magic value which can be set by the main application - dfu_magic = 0; // erase value so we don't stay in the DFU bootloader upon reset + if (0x44465521 == *dfu_magic) { // check for the magic value which can be set by the main application + *dfu_magic = 0; // erase value so we don't stay in the DFU bootloader upon reset return true; } if (0 == gpio_get_pin_level(BUTTON_FORCE_DFU)) { // signal is low when button is pressed -- To view, visit https://gerrit.osmocom.org/12918 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I69ad101593e903b74084f179cfc97fccccdfa5a3 Gerrit-Change-Number: 12918 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Fri Feb 15 00:07:43 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 15 Feb 2019 00:07:43 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-bts_=C2=BB_sys?= =?UTF-8?Q?mo,femtobts=5Fv2.7,1,default,osmocom-master-debian9_#1812?= In-Reply-To: <227468200.232.1550186306791.JavaMail.jenkins@jenkins.osmocom.org> References: <227468200.232.1550186306791.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <258157697.233.1550189263632.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Fri Feb 15 03:01:54 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 15 Feb 2019 03:01:54 +0000 Subject: Change in libosmocore[master]: get_value_string(): guard against NULL In-Reply-To: References: Message-ID: Neels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/12879 ) Change subject: get_value_string(): guard against NULL ...................................................................... get_value_string(): guard against NULL get_value_string() conveniently prints the value number to a static buffer if it is unknown in a value_string array. Do the same if the value_string array pointer itself is NULL. If a value string array is user supplied and might be NULL, one could add a separate NULL check around it; but by making get_value_string() itself guard against NULL, another static char buffer to print the value number is avoided. Change-Id: Ie640e9258a959da8f4f9089478de993509853997 --- M src/utils.c 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Max: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/utils.c b/src/utils.c index 0b2ed31..2d5bcb0 100644 --- a/src/utils.c +++ b/src/utils.c @@ -73,6 +73,9 @@ { int i; + if (!vs) + return NULL; + for (i = 0;; i++) { if (vs[i].value == 0 && vs[i].str == NULL) break; -- To view, visit https://gerrit.osmocom.org/12879 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie640e9258a959da8f4f9089478de993509853997 Gerrit-Change-Number: 12879 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 03:03:23 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 15 Feb 2019 03:03:23 +0000 Subject: Change in libosmocore[master]: add OSMO_STRBUF_PRINTF() In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/12880 ) Change subject: add OSMO_STRBUF_PRINTF() ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/#/c/12880/2/include/osmocom/core/utils.h File include/osmocom/core/utils.h: https://gerrit.osmocom.org/#/c/12880/2/include/osmocom/core/utils.h at 153 PS2, Line 153: size_t len; > the members might need a quick comment, at least the len_needed isn't immediately obvious. oh shucks, I forgot to push the new patch set I made which contains lots more comments -- To view, visit https://gerrit.osmocom.org/12880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2497514e26c5e7a5d88985fc7e58343be1a027b2 Gerrit-Change-Number: 12880 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Max Gerrit-Comment-Date: Fri, 15 Feb 2019 03:03:23 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 03:03:36 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 15 Feb 2019 03:03:36 +0000 Subject: Change in libosmocore[master]: fix osmo_gsm48_classmark* libosmogsm.map entries Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/12919 Change subject: fix osmo_gsm48_classmark* libosmogsm.map entries ...................................................................... fix osmo_gsm48_classmark* libosmogsm.map entries When the initial patch was tweaked from osmo_classmark_* to osmo_gsm48_classmark_* naming, the libosmogsm.map entries were forgotten to be changed as well. Change-Id: I53a41b5e965a529d3c146ee85102f7f1725c6014 --- M src/gsm/libosmogsm.map 1 file changed, 6 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/19/12919/1 diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index ae7c0a1..48757a7 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -583,12 +583,12 @@ osmo_lu_type_names; osmo_cm_service_type_names; -osmo_classmark_is_r99; -osmo_classmark1_is_r99; -osmo_classmark2_is_r99; -osmo_classmark_supports_a5; -osmo_classmark_a5_name; -osmo_classmark_update; +osmo_gsm48_classmark_is_r99; +osmo_gsm48_classmark1_is_r99; +osmo_gsm48_classmark2_is_r99; +osmo_gsm48_classmark_supports_a5; +osmo_gsm48_classmark_a5_name; +osmo_gsm48_classmark_update; local: *; }; -- To view, visit https://gerrit.osmocom.org/12919 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I53a41b5e965a529d3c146ee85102f7f1725c6014 Gerrit-Change-Number: 12919 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 03:05:11 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 15 Feb 2019 03:05:11 +0000 Subject: Change in libosmocore[master]: add OSMO_STRBUF_PRINTF() In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/12880 ) Change subject: add OSMO_STRBUF_PRINTF() ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/#/c/12880/2/include/osmocom/core/utils.h File include/osmocom/core/utils.h: https://gerrit.osmocom.org/#/c/12880/2/include/osmocom/core/utils.h at 153 PS2, Line 153: size_t len; > oh shucks, I forgot to push the new patch set I made which contains lots more comments actually no, I had pushed it, just the comment was still on an old patch set :) -- To view, visit https://gerrit.osmocom.org/12880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2497514e26c5e7a5d88985fc7e58343be1a027b2 Gerrit-Change-Number: 12880 Gerrit-PatchSet: 4 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Max Gerrit-Comment-Date: Fri, 15 Feb 2019 03:05:11 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 03:07:50 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 15 Feb 2019 03:07:50 +0000 Subject: Change in libosmocore[master]: fix osmo_gsm48_classmark* libosmogsm.map entries In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/12919 ) Change subject: fix osmo_gsm48_classmark* libosmogsm.map entries ...................................................................... Patch Set 1: Code-Review+2 triviality and build fixing: +2 to self -- To view, visit https://gerrit.osmocom.org/12919 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I53a41b5e965a529d3c146ee85102f7f1725c6014 Gerrit-Change-Number: 12919 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Jenkins Builder (1000002) Gerrit-Comment-Date: Fri, 15 Feb 2019 03:07:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 07:45:25 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Feb 2019 07:45:25 +0000 Subject: Change in libosmocore[master]: fix osmo_gsm48_classmark* libosmogsm.map entries In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12919 ) Change subject: fix osmo_gsm48_classmark* libosmogsm.map entries ...................................................................... fix osmo_gsm48_classmark* libosmogsm.map entries When the initial patch was tweaked from osmo_classmark_* to osmo_gsm48_classmark_* naming, the libosmogsm.map entries were forgotten to be changed as well. Change-Id: I53a41b5e965a529d3c146ee85102f7f1725c6014 --- M src/gsm/libosmogsm.map 1 file changed, 6 insertions(+), 6 deletions(-) Approvals: Neels Hofmeyr: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index ae7c0a1..48757a7 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -583,12 +583,12 @@ osmo_lu_type_names; osmo_cm_service_type_names; -osmo_classmark_is_r99; -osmo_classmark1_is_r99; -osmo_classmark2_is_r99; -osmo_classmark_supports_a5; -osmo_classmark_a5_name; -osmo_classmark_update; +osmo_gsm48_classmark_is_r99; +osmo_gsm48_classmark1_is_r99; +osmo_gsm48_classmark2_is_r99; +osmo_gsm48_classmark_supports_a5; +osmo_gsm48_classmark_a5_name; +osmo_gsm48_classmark_update; local: *; }; -- To view, visit https://gerrit.osmocom.org/12919 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I53a41b5e965a529d3c146ee85102f7f1725c6014 Gerrit-Change-Number: 12919 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 07:46:19 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Feb 2019 07:46:19 +0000 Subject: Change in libosmocore[master]: add OSMO_STRBUF_PRINTF() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12880 ) Change subject: add OSMO_STRBUF_PRINTF() ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2497514e26c5e7a5d88985fc7e58343be1a027b2 Gerrit-Change-Number: 12880 Gerrit-PatchSet: 4 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Max Gerrit-Comment-Date: Fri, 15 Feb 2019 07:46:19 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 07:48:10 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Feb 2019 07:48:10 +0000 Subject: Change in osmo-asf4-dfu[master]: fix DFU magic address and linker script In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12918 ) Change subject: fix DFU magic address and linker script ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/12918/1/usb_dfu_main.c File usb_dfu_main.c: https://gerrit.osmocom.org/#/c/12918/1/usb_dfu_main.c at 31 PS1, Line 31: 0x20000000 HSRAM_ADDR might be used here? -- To view, visit https://gerrit.osmocom.org/12918 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I69ad101593e903b74084f179cfc97fccccdfa5a3 Gerrit-Change-Number: 12918 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Fri, 15 Feb 2019 07:48:10 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 07:49:51 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Feb 2019 07:49:51 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Fix compilation on eclipse-titan 6.5.1 In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12908 ) Change subject: Fix compilation on eclipse-titan 6.5.1 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12908 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If9fef29ce243be112d3735f0236335197f8f140f Gerrit-Change-Number: 12908 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 15 Feb 2019 07:49:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 07:49:54 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Feb 2019 07:49:54 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Fix compilation on eclipse-titan 6.5.1 In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12908 ) Change subject: Fix compilation on eclipse-titan 6.5.1 ...................................................................... Fix compilation on eclipse-titan 6.5.1 Newer eclipse-titan makefilegen already sets CPPFLAGS like this: CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)/include$(TTCN3_SUBDIR) where TTCN3_SUBDIR expands to '/titan' and TTCN3_DIR to '/usr' If we add /titan after include we end up with -I/usr/include/titan/titan/ which will cause the compile to fail due to a missing TTCN3.hh include. Check the titan version so we retain backwards compatibility. Change-Id: If9fef29ce243be112d3735f0236335197f8f140f Related: OS#3179 Sponsored-by: On-Waves ehf. --- M regen-makefile.sh 1 file changed, 8 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Max: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/regen-makefile.sh b/regen-makefile.sh index 5a4dd4c..77fcb6c 100755 --- a/regen-makefile.sh +++ b/regen-makefile.sh @@ -25,13 +25,20 @@ fi ttcn3_makefilegen -p -l -f $* + +TITAN_VERSION=$(ttcn3_makefilegen -v 2>&1 |grep "Product number" |cut --delimiter="/" -f 2-| sed -e "s/[A-Z ]//g") + sed -i -e 's/# TTCN3_DIR = /TTCN3_DIR = \/usr/' Makefile sed -i -e 's/LDFLAGS = /LDFLAGS = -L \/usr\/lib\/titan /' Makefile #sed -i -e 's/TTCN3_LIB = ttcn3-parallel/TTCN3_LIB = ttcn3/' Makefile # The -DMAKEDEPEND_RUN is a workaround for Debian packaging issue, # see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=879816 for details -sed -i -e 's/CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)\/include/CPPFLAGS = -D$(PLATFORM) -DMAKEDEPEND_RUN -DUSE_SCTP -I$(TTCN3_DIR)\/include -I\/usr\/include\/titan/' Makefile +if [ $(($TITAN_VERSION >= 65)) = 1 ]; then + sed -i -e 's/CPPFLAGS = -D$(PLATFORM)/CPPFLAGS = -D$(PLATFORM) -DMAKEDEPEND_RUN -DUSE_SCTP/' Makefile +else + sed -i -e 's/CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)\/include/CPPFLAGS = -D$(PLATFORM) -DMAKEDEPEND_RUN -DUSE_SCTP -I$(TTCN3_DIR)\/include -I\/usr\/include\/titan/' Makefile +fi #remove -Wall from CXXFLAGS: we're not interested in generic warnings for autogenerated code cluttering the logs sed -i -e 's/-Wall//' Makefile -- To view, visit https://gerrit.osmocom.org/12908 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If9fef29ce243be112d3735f0236335197f8f140f Gerrit-Change-Number: 12908 Gerrit-PatchSet: 2 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 09:10:54 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Fri, 15 Feb 2019 09:10:54 +0000 Subject: Change in osmo-asf4-dfu[master]: fix DFU magic address and linker script In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12918 to look at the new patch set (#2). Change subject: fix DFU magic address and linker script ...................................................................... fix DFU magic address and linker script using the address specified in the linker script leads to a large output binary (as large as the address specified. instead the address is now specified in the source file. Change-Id: I69ad101593e903b74084f179cfc97fccccdfa5a3 --- M gcc/gcc/same54p20a_flash.ld M usb_dfu_main.c 2 files changed, 3 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-asf4-dfu refs/changes/18/12918/2 -- To view, visit https://gerrit.osmocom.org/12918 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I69ad101593e903b74084f179cfc97fccccdfa5a3 Gerrit-Change-Number: 12918 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 09:10:54 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Fri, 15 Feb 2019 09:10:54 +0000 Subject: Change in osmo-asf4-dfu[master]: minox: use RAM address define instead of hardcoded value Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/12920 Change subject: minox: use RAM address define instead of hardcoded value ...................................................................... minox: use RAM address define instead of hardcoded value Change-Id: I81a42637194cbf0b5152fe38c691522021ab7582 --- M usb_dfu_main.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-asf4-dfu refs/changes/20/12920/1 diff --git a/usb_dfu_main.c b/usb_dfu_main.c index f431d29..19fe437 100644 --- a/usb_dfu_main.c +++ b/usb_dfu_main.c @@ -73,7 +73,7 @@ * if the SP is not in this range (e.g. flash has been erased) there is no valid application * the second entry in the vector table is the reset address, corresponding to the application start */ - return (0x20000000 == ((*application_start_address) & 0xFFF80000)); + return (HSRAM_ADDR == ((*application_start_address) & 0xFFF80000)); } /** Start the application -- To view, visit https://gerrit.osmocom.org/12920 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I81a42637194cbf0b5152fe38c691522021ab7582 Gerrit-Change-Number: 12920 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 09:12:15 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Fri, 15 Feb 2019 09:12:15 +0000 Subject: Change in osmo-asf4-dfu[master]: fix DFU magic address and linker script In-Reply-To: References: Message-ID: K?vin Redon has posted comments on this change. ( https://gerrit.osmocom.org/12918 ) Change subject: fix DFU magic address and linker script ...................................................................... Patch Set 2: > (1 comment) fixed. the same define is also used in the next commit -- To view, visit https://gerrit.osmocom.org/12918 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I69ad101593e903b74084f179cfc97fccccdfa5a3 Gerrit-Change-Number: 12918 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-Comment-Date: Fri, 15 Feb 2019 09:12:15 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Fri Feb 15 09:41:59 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 15 Feb 2019 09:41:59 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-trx_=C2=BB_--with-ss?= =?UTF-8?Q?e,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#883?= Message-ID: <689928172.245.1550223719068.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 107.47 KB...] Searching INPUT for files to process... Reading and parsing tag files Parsing files Building group list... Building directory list... Building namespace list... Building file list... Building class list... Associating documentation with classes... Computing nesting relations for classes... Building example list... Searching for enumerations... Searching for documented typedefs... Searching for members imported via using declarations... Searching for included using directives... Searching for documented variables... Building interface member list... Building member list... Searching for friends... Searching for documented defines... Computing class inheritance relations... Computing class usage relations... Flushing cached template relations that have become invalid... Computing class relations... Add enum values to enums... Searching for member function documentation... Creating members for template instances... Building page list... Search for main page... Computing page relations... Determining the scope of groups... Sorting lists... Freeing entry tree Determining which enums are documented Computing member relations... Building full member lists recursively... Adding members to member groups. Computing member references... Inheriting documentation... Generating disk names... Adding source references... Adding xrefitems... Sorting member lists... Computing dependencies between directories... Generating citations page... Counting data structures... Resolving user defined references... Finding anchors and sections in the documentation... Transferring function references... Combining using relations... Adding members to index pages... Generating style sheet... Generating search indices... Generating example documentation... Generating file sources... Generating file documentation... Generating page documentation... Generating group documentation... Generating class documentation... Generating namespace index... Generating graph info page... Generating directory documentation... Generating index page... Generating page index... Generating module index... Generating namespace index... Generating namespace member index... Generating annotated compound index... Generating alphabetical compound index... Generating hierarchical class index... Generating graphical class hierarchy... Generating member index... Generating file index... Generating file member index... Generating example index... finalizing index lists... writing tag file... Running dot... Running dot for graph 1/1 lookup cache used 0/65536 hits=0 misses=0 finished... make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_guide.html /usr/bin/install -c -m 644 ../README ' cp -r html make[5]: Leaving directory ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in firmware make[2]: Entering directory ' Making install in include make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_i2c_addr.h usrp_spi_defs.h fpga_regs_common.h fpga_regs_standard.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' Making install in lib make[3]: Entering directory ' sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c delay.c -o delay.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c fx2utils.c -o fx2utils.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c i2c.c -o i2c.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c isr.c -o isr.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c timer.c -o timer.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c usb_common.c -o usb_common.rel usb_common.c:65: warning 196: pointer target lost const qualifier usb_common.c:66: warning 196: pointer target lost const qualifier usb_common.c:67: warning 196: pointer target lost const qualifier usb_common.c:68: warning 196: pointer target lost const qualifier usb_common.c:71: warning 196: pointer target lost const qualifier usb_common.c:72: warning 196: pointer target lost const qualifier usb_common.c:73: warning 196: pointer target lost const qualifier usb_common.c:74: warning 196: pointer target lost const qualifier timer.c:45: warning 158: overflow in implicit constant conversion isr.c:73: warning 94: comparison is always false due to limited range of data type isr.c:100: warning 94: comparison is always false due to limited range of data type -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'int fixed' to type 'volatile-unsigned-char xdata* xdata' usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:217: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:226: warning 126: unreachable code usb_common.c:184: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG usb_common.c:315: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG rm -f libfx2.lib touch libfx2.lib for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done make[3]: Leaving directory ' Making install in src make[3]: Entering directory ' Making install in common make[4]: Entering directory ' make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory ' make[4]: Leaving directory ' Making install in usrp2 make[4]: Entering directory ' test -f `basename 'eeprom_boot.a51'` || ln -s 'eeprom_boot.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_init.rel `test -f 'eeprom_init.c' || echo './'`eeprom_init.c test -f `basename '_startup.a51'` || ln -s '_startup.a51' . test -f `basename 'vectors.a51'` || ln -s 'vectors.a51' . srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_common.rel `test -f 'usrp_common.c' || echo './'`usrp_common.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o board_specific.rel `test -f 'board_specific.c' || echo './'`board_specific.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_load.rel `test -f 'fpga_load.c' || echo './'`fpga_load.c test -f ../common/`basename 'eeprom_boot.a51'` -o \ \! -f `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` \ || ln -s `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` ../common/`basename 'eeprom_boot.a51'` test -f ../common/`basename '_startup.a51'` -o \ \! -f `dirname '_startup.a51'`/../common/`basename '_startup.a51'` \ || ln -s `dirname '_startup.a51'`/../common/`basename '_startup.a51'` ../common/`basename '_startup.a51'` test -f ../common/`basename 'vectors.a51'` -o \ \! -f `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` \ || ln -s `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` ../common/`basename 'vectors.a51'` sdas8051 -plosgff `basename 'eeprom_boot.a51'` sdas8051 -plosgff `basename 'vectors.a51'` sdas8051 -plosgff `basename '_startup.a51'` board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'bits' board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'mask' sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_rev2.rel `test -f 'fpga_rev2.c' || echo './'`fpga_rev2.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o init_gpif.rel `test -f 'init_gpif.c' || echo './'`init_gpif.c srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h ../common/fpga_load.c:139: warning 85: in function clock_out_config_byte unreferenced function argument : 'bits' ../common/fpga_load.c:181: warning 126: unreachable code test -f `basename 'usb_descriptors.a51'` || ln -s 'usb_descriptors.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o spi.rel `test -f 'spi.c' || echo './'`spi.c test -f ../common/`basename 'usb_descriptors.a51'` -o \ \! -f `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` \ || ln -s `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` ../common/`basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_io.rel `test -f 'eeprom_io.c' || echo './'`eeprom_io.c sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o eeprom_boot.ihx eeprom_boot.rel eeprom_init.rel _startup.rel sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_main.rel `test -f 'usrp_main.c' || echo './'`usrp_main.c sdas8051 -plosgff `basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_gpif.rel `test -f 'usrp_gpif.c' || echo './'`usrp_gpif.c ./../common/build_eeprom.py -p -r2 eeprom_boot.ihx > burn-usrp2-eeprom usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion ./../common/build_eeprom.py -p -r4 eeprom_boot.ihx > burn-usrp4-eeprom chmod +x burn-usrp4-eeprom chmod +x burn-usrp2-eeprom usrp_main.c:223: warning 112: function 'setup_flowstate_common' implicit declaration usrp_main.c:260: warning 112: function 'setup_flowstate_write' implicit declaration usrp_main.c:282: warning 112: function 'setup_flowstate_read' implicit declaration usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o std.ihx vectors.rel usrp_main.rel usrp_common.rel board_specific.rel fpga_load.rel fpga_rev2.rel init_gpif.rel usrp_gpif.rel usb_descriptors.rel spi.rel eeprom_io.rel _startup.rel ?ASlink-Warning-Undefined Global '_setup_flowstate_read' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_write' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_common' referenced by module 'usrp_main' Makefile:688: recipe for target 'std.ihx' failed make[4]: *** [std.ihx] Error 1 make[4]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[3]: *** [install-recursive] Error 1 make[3]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[2]: *** [install-recursive] Error 1 make[2]: Leaving directory ' Makefile:628: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:925: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Fri Feb 15 10:27:54 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Feb 2019 10:27:54 +0000 Subject: Change in osmo-asf4-dfu[master]: minox: use RAM address define instead of hardcoded value In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12920 ) Change subject: minox: use RAM address define instead of hardcoded value ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12920 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I81a42637194cbf0b5152fe38c691522021ab7582 Gerrit-Change-Number: 12920 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Fri, 15 Feb 2019 10:27:54 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 10:28:05 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Feb 2019 10:28:05 +0000 Subject: Change in osmo-asf4-dfu[master]: fix DFU magic address and linker script In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12918 ) Change subject: fix DFU magic address and linker script ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12918 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I69ad101593e903b74084f179cfc97fccccdfa5a3 Gerrit-Change-Number: 12918 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-Comment-Date: Fri, 15 Feb 2019 10:28:05 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 10:28:18 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Feb 2019 10:28:18 +0000 Subject: Change in osmo-asf4-dfu[master]: fix DFU magic address and linker script In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12918 ) Change subject: fix DFU magic address and linker script ...................................................................... fix DFU magic address and linker script using the address specified in the linker script leads to a large output binary (as large as the address specified. instead the address is now specified in the source file. Change-Id: I69ad101593e903b74084f179cfc97fccccdfa5a3 --- M gcc/gcc/same54p20a_flash.ld M usb_dfu_main.c 2 files changed, 3 insertions(+), 9 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/gcc/gcc/same54p20a_flash.ld b/gcc/gcc/same54p20a_flash.ld index 32ded77..6aa3fb1 100644 --- a/gcc/gcc/same54p20a_flash.ld +++ b/gcc/gcc/same54p20a_flash.ld @@ -48,12 +48,6 @@ /* Section Definitions */ SECTIONS { - /* Location of the DFU magic. The application must set the magic value "DFU!" (e.g. 0x44465521) at this address to force the DFU bootloader to start (e.g. to perform a DFU detach) */ - .dfu_magic 0x20000000 : - { - KEEP(*(.dfu_magic)) ; - } - .text : { . = ALIGN(4); diff --git a/usb_dfu_main.c b/usb_dfu_main.c index 7fd54d3..f431d29 100644 --- a/usb_dfu_main.c +++ b/usb_dfu_main.c @@ -28,7 +28,7 @@ static uint32_t* application_start_address; /** Location of the DFU magic value to force starting DFU */ -static uint32_t dfu_magic __attribute__ ((section (".dfu_magic"))) __attribute__ ((__used__)); +static volatile uint32_t* dfu_magic = (uint32_t*)HSRAM_ADDR; // magic value should be written at start of RAM /** Check if the bootloader is valid * \return true if the bootloader is valid and can be run @@ -51,8 +51,8 @@ */ static bool check_force_dfu(void) { - if (0x44465521 == dfu_magic) { // check for the magic value which can be set by the main application - dfu_magic = 0; // erase value so we don't stay in the DFU bootloader upon reset + if (0x44465521 == *dfu_magic) { // check for the magic value which can be set by the main application + *dfu_magic = 0; // erase value so we don't stay in the DFU bootloader upon reset return true; } if (0 == gpio_get_pin_level(BUTTON_FORCE_DFU)) { // signal is low when button is pressed -- To view, visit https://gerrit.osmocom.org/12918 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I69ad101593e903b74084f179cfc97fccccdfa5a3 Gerrit-Change-Number: 12918 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 10:28:19 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 15 Feb 2019 10:28:19 +0000 Subject: Change in osmo-asf4-dfu[master]: minox: use RAM address define instead of hardcoded value In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12920 ) Change subject: minox: use RAM address define instead of hardcoded value ...................................................................... minox: use RAM address define instead of hardcoded value Change-Id: I81a42637194cbf0b5152fe38c691522021ab7582 --- M usb_dfu_main.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/usb_dfu_main.c b/usb_dfu_main.c index f431d29..19fe437 100644 --- a/usb_dfu_main.c +++ b/usb_dfu_main.c @@ -73,7 +73,7 @@ * if the SP is not in this range (e.g. flash has been erased) there is no valid application * the second entry in the vector table is the reset address, corresponding to the application start */ - return (0x20000000 == ((*application_start_address) & 0xFFF80000)); + return (HSRAM_ADDR == ((*application_start_address) & 0xFFF80000)); } /** Start the application -- To view, visit https://gerrit.osmocom.org/12920 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-asf4-dfu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I81a42637194cbf0b5152fe38c691522021ab7582 Gerrit-Change-Number: 12920 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 13:46:11 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 15 Feb 2019 13:46:11 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: Hello Max, Neels Hofmeyr, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12625 to look at the new patch set (#10). Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... assignment_fsm: fix channel allocator preferences When the MSC allocates a channel through the ASSIGNMENT REQUEST, it may ask for a TCH/H and a TCH/F at the same time and tell which of the two types it prefers. The process of channel allocation currently selects, based on the BTS, MSC and MS capabilites exactly one apropriate codec/rate (e.g. TCH/H) and then tries to allocate it. If that allocation fails, there is no way to try the second choice and the assignment fails. For example: The MSC asks for TCH/F and TCH/H, prefering TCH/F, then the channel allocator will try TCH/F and if it fails (all TCH/F are currently in use), then TCH/H is never tried. Since the BSC currently only trys the first best codec/rate that is supported it also ignores the preference. Lets fix those problems by including the preference information and both possible codec/rate settings into the channel allocation decision. Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Related: OS#3503 --- M include/osmocom/bsc/codec_pref.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/codec_pref.c M src/osmo-bsc/handover_fsm.c M src/osmo-bsc/osmo_bsc_bssap.c M tests/codec_pref/codec_pref_test.c 8 files changed, 323 insertions(+), 117 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/25/12625/10 -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 10 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy Gerrit-CC: tnt -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Fri Feb 15 14:18:32 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 15 Feb 2019 14:18:32 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-trx_=C2=BB_--with-ss?= =?UTF-8?Q?e,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#884?= In-Reply-To: <689928172.245.1550223719068.JavaMail.jenkins@jenkins.osmocom.org> References: <689928172.245.1550223719068.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <562721247.246.1550240312739.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 123.30 KB...] Searching INPUT for files to process... Reading and parsing tag files Parsing files Building group list... Building directory list... Building namespace list... Building file list... Building class list... Associating documentation with classes... Computing nesting relations for classes... Building example list... Searching for enumerations... Searching for documented typedefs... Searching for members imported via using declarations... Searching for included using directives... Searching for documented variables... Building interface member list... Building member list... Searching for friends... Searching for documented defines... Computing class inheritance relations... Computing class usage relations... Flushing cached template relations that have become invalid... Computing class relations... Add enum values to enums... Searching for member function documentation... Creating members for template instances... Building page list... Search for main page... Computing page relations... Determining the scope of groups... Sorting lists... Freeing entry tree Determining which enums are documented Computing member relations... Building full member lists recursively... Adding members to member groups. Computing member references... Inheriting documentation... Generating disk names... Adding source references... Adding xrefitems... Sorting member lists... Computing dependencies between directories... Generating citations page... Counting data structures... Resolving user defined references... Finding anchors and sections in the documentation... Transferring function references... Combining using relations... Adding members to index pages... Generating style sheet... Generating search indices... Generating example documentation... Generating file sources... Generating file documentation... Generating page documentation... Generating group documentation... Generating class documentation... Generating namespace index... Generating graph info page... Generating directory documentation... Generating index page... Generating page index... Generating module index... Generating namespace index... Generating namespace member index... Generating annotated compound index... Generating alphabetical compound index... Generating hierarchical class index... Generating graphical class hierarchy... Generating member index... Generating file index... Generating file member index... Generating example index... finalizing index lists... writing tag file... Running dot... Running dot for graph 1/1 lookup cache used 0/65536 hits=0 misses=0 finished... make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_guide.html cp -r html /usr/bin/install -c -m 644 ../README ' make[5]: Leaving directory ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in firmware make[2]: Entering directory ' Making install in include make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_i2c_addr.h usrp_spi_defs.h fpga_regs_common.h fpga_regs_standard.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' Making install in lib make[3]: Entering directory ' sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c delay.c -o delay.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c fx2utils.c -o fx2utils.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c i2c.c -o i2c.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c isr.c -o isr.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c timer.c -o timer.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c usb_common.c -o usb_common.rel timer.c:45: warning 158: overflow in implicit constant conversion usb_common.c:65: warning 196: pointer target lost const qualifier usb_common.c:66: warning 196: pointer target lost const qualifier usb_common.c:67: warning 196: pointer target lost const qualifier usb_common.c:68: warning 196: pointer target lost const qualifier usb_common.c:71: warning 196: pointer target lost const qualifier usb_common.c:72: warning 196: pointer target lost const qualifier usb_common.c:73: warning 196: pointer target lost const qualifier usb_common.c:74: warning 196: pointer target lost const qualifier isr.c:73: warning 94: comparison is always false due to limited range of data type isr.c:100: warning 94: comparison is always false due to limited range of data type -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'int fixed' to type 'volatile-unsigned-char xdata* xdata' usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:217: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:226: warning 126: unreachable code usb_common.c:184: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG usb_common.c:315: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG rm -f libfx2.lib touch libfx2.lib for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done make[3]: Leaving directory ' Making install in src make[3]: Entering directory ' Making install in common make[4]: Entering directory ' make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory ' make[4]: Leaving directory ' Making install in usrp2 make[4]: Entering directory ' test -f `basename 'eeprom_boot.a51'` || ln -s 'eeprom_boot.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_init.rel `test -f 'eeprom_init.c' || echo './'`eeprom_init.c test -f `basename '_startup.a51'` || ln -s '_startup.a51' . test -f `basename 'vectors.a51'` || ln -s 'vectors.a51' . srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_common.rel `test -f 'usrp_common.c' || echo './'`usrp_common.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o board_specific.rel `test -f 'board_specific.c' || echo './'`board_specific.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_load.rel `test -f 'fpga_load.c' || echo './'`fpga_load.c test -f ../common/`basename '_startup.a51'` -o \ \! -f `dirname '_startup.a51'`/../common/`basename '_startup.a51'` \ || ln -s `dirname '_startup.a51'`/../common/`basename '_startup.a51'` ../common/`basename '_startup.a51'` test -f ../common/`basename 'eeprom_boot.a51'` -o \ \! -f `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` \ || ln -s `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` ../common/`basename 'eeprom_boot.a51'` test -f ../common/`basename 'vectors.a51'` -o \ \! -f `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` \ || ln -s `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` ../common/`basename 'vectors.a51'` sdas8051 -plosgff `basename 'eeprom_boot.a51'` sdas8051 -plosgff `basename '_startup.a51'` sdas8051 -plosgff `basename 'vectors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_rev2.rel `test -f 'fpga_rev2.c' || echo './'`fpga_rev2.c board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'bits' board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'mask' sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o init_gpif.rel `test -f 'init_gpif.c' || echo './'`init_gpif.c ../common/fpga_load.c:139: warning 85: in function clock_out_config_byte unreferenced function argument : 'bits' srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h ../common/fpga_load.c:181: warning 126: unreachable code test -f `basename 'usb_descriptors.a51'` || ln -s 'usb_descriptors.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o spi.rel `test -f 'spi.c' || echo './'`spi.c test -f ../common/`basename 'usb_descriptors.a51'` -o \ \! -f `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` \ || ln -s `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` ../common/`basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_io.rel `test -f 'eeprom_io.c' || echo './'`eeprom_io.c sdas8051 -plosgff `basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o eeprom_boot.ihx eeprom_boot.rel eeprom_init.rel _startup.rel sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_main.rel `test -f 'usrp_main.c' || echo './'`usrp_main.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_gpif.rel `test -f 'usrp_gpif.c' || echo './'`usrp_gpif.c ./../common/build_eeprom.py -p -r2 eeprom_boot.ihx > burn-usrp2-eeprom ./../common/build_eeprom.py -p -r4 eeprom_boot.ihx > burn-usrp4-eeprom usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion chmod +x burn-usrp4-eeprom chmod +x burn-usrp2-eeprom usrp_main.c:223: warning 112: function 'setup_flowstate_common' implicit declaration usrp_main.c:260: warning 112: function 'setup_flowstate_write' implicit declaration usrp_main.c:282: warning 112: function 'setup_flowstate_read' implicit declaration usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o std.ihx vectors.rel usrp_main.rel usrp_common.rel board_specific.rel fpga_load.rel fpga_rev2.rel init_gpif.rel usrp_gpif.rel usb_descriptors.rel spi.rel eeprom_io.rel _startup.rel ?ASlink-Warning-Undefined Global '_setup_flowstate_read' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_write' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_common' referenced by module 'usrp_main' Makefile:688: recipe for target 'std.ihx' failed make[4]: *** [std.ihx] Error 1 make[4]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[3]: *** [install-recursive] Error 1 make[3]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[2]: *** [install-recursive] Error 1 make[2]: Leaving directory ' Makefile:628: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:925: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Fri Feb 15 15:10:06 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 15 Feb 2019 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#402?= In-Reply-To: <665831844.231.1550157006845.JavaMail.jenkins@jenkins.osmocom.org> References: <665831844.231.1550157006845.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <2097499232.247.1550243406783.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.76 KB...] checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs mkdir .libs mkdir: cannot create directory '.libs': File exists gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Fri Feb 15 15:15:02 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Fri, 15 Feb 2019 15:15:02 +0000 Subject: Change in osmo-pcu[master]: Don't install pcuif_proto.h header In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12907 ) Change subject: Don't install pcuif_proto.h header ...................................................................... Patch Set 1: > I think it's a good idea to install it since (maybe not osmo-bts now) any application that wants to talk this interface Which application do you have in mind exactly? It's a very specific niche protocol. In more than 10 years it's been used by osmo-bts and osmo-bsc only and I really doubt this is going to be any different in next 10 years. > Are osmo-bts and osmo-pcu both installing this file at exactly the same location? OsmoBTS does not install it (local copy is used). OsmoBSC does not install it (local copy is used). OsmoPCU uses local copy as well but for legacy reasons it also installs it globally. This patch proposes to change that and make OsmoPCU behave like OsmoBTS and OsmoBSC. In general I think it only make sense to have single copy of this file as long as all related functions are in the same repo: serialization, deserialization, tests, data structures etc. But that would be much more intrusive change. -- To view, visit https://gerrit.osmocom.org/12907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4a87395d4ab7212fe2fc055dae0a737e10d20c69 Gerrit-Change-Number: 12907 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 15 Feb 2019 15:15:02 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 15:17:23 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Fri, 15 Feb 2019 15:17:23 +0000 Subject: Change in osmo-pcu[master]: Don't install pcuif_proto.h header In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12907 ) Change subject: Don't install pcuif_proto.h header ...................................................................... Patch Set 1: > Why not to move it to libosmocore? In general I agree (provided we move encoder/decoder, tests etc as well) but that would require exactly the same patch as this one anyway :) -- To view, visit https://gerrit.osmocom.org/12907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4a87395d4ab7212fe2fc055dae0a737e10d20c69 Gerrit-Change-Number: 12907 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 15 Feb 2019 15:17:23 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 15:35:03 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Fri, 15 Feb 2019 15:35:03 +0000 Subject: Change in osmo-ci[master]: Fix copy and paste in the script. Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/12921 Change subject: Fix copy and paste in the script. ...................................................................... Fix copy and paste in the script. Change-Id: I51d01a8799f09ce7d813a0ef8353a4233d5c8bb5 --- M jobs/osmo-gsm-tester_ttcn3.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/21/12921/1 diff --git a/jobs/osmo-gsm-tester_ttcn3.sh b/jobs/osmo-gsm-tester_ttcn3.sh index f2b974f..a4d5e16 100644 --- a/jobs/osmo-gsm-tester_ttcn3.sh +++ b/jobs/osmo-gsm-tester_ttcn3.sh @@ -1,7 +1,7 @@ #!/bin/sh set -e -x -# On our hardware, we actually use the example configuration as-is. +# On our hardware, we actually use the ttcn3 configuration as-is. export OSMO_GSM_TESTER_CONF="$PWD/osmo-gsm-tester/ttcn3" # debug: provoke a failure -- To view, visit https://gerrit.osmocom.org/12921 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I51d01a8799f09ce7d813a0ef8353a4233d5c8bb5 Gerrit-Change-Number: 12921 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 16:52:26 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 15 Feb 2019 16:52:26 +0000 Subject: Change in osmo-bts[master]: scheduler_trx: use stored fn for pdtch data indications Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/12922 Change subject: scheduler_trx: use stored fn for pdtch data indications ...................................................................... scheduler_trx: use stored fn for pdtch data indications When the ph-data indications for the PDTCH are passed up to l1sap, then a forumla is used to calculate the frame number of the beginning of the block that is just passed up. This is not necessary since the start frame number of the block is stored in *first_fn when the block arrives. We should use this frame number instead. (For the measurement indication it is already done this way). Change-Id: I6c01987be78203acfa689c6decb2c806f8fff3d6 Related: OS#2977 --- M src/osmo-bts-trx/scheduler_trx.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/22/12922/1 diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index b395479..32bdb98 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -974,7 +974,7 @@ return 0; } ber10k = compute_ber10k(n_bits_total, n_errors); - return _sched_compose_ph_data_ind(l1t, tn, (fn + GSM_HYPERFRAME - 3) % GSM_HYPERFRAME, chan, + return _sched_compose_ph_data_ind(l1t, tn, *first_fn, chan, l2, rc, *rssi_sum / *rssi_num, *toa256_sum / *toa_num, 0, ber10k, PRES_INFO_BOTH); } -- To view, visit https://gerrit.osmocom.org/12922 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6c01987be78203acfa689c6decb2c806f8fff3d6 Gerrit-Change-Number: 12922 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 16:53:35 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Fri, 15 Feb 2019 16:53:35 +0000 Subject: Change in osmo-bts[master]: scheduler_trx: use stored block fn instead of calculating it. In-Reply-To: References: Message-ID: dexter has abandoned this change. ( https://gerrit.osmocom.org/12779 ) Change subject: scheduler_trx: use stored block fn instead of calculating it. ...................................................................... Abandoned Unfortunately this approach does not work out, however, I submitted a patch for pdtch as vadim suggested under #12922 -- To view, visit https://gerrit.osmocom.org/12779 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: abandon Gerrit-Change-Id: Ia27254bbf6e36426f7890ece6154dcd395673f63 Gerrit-Change-Number: 12779 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: dexter Gerrit-Reviewer: tnt Gerrit-CC: Harald Welte Gerrit-CC: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 16:59:10 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 15 Feb 2019 16:59:10 +0000 Subject: Change in osmo-bts[master]: scheduler_trx: use stored fn for pdtch data indications In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12922 ) Change subject: scheduler_trx: use stored fn for pdtch data indications ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12922 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6c01987be78203acfa689c6decb2c806f8fff3d6 Gerrit-Change-Number: 12922 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 15 Feb 2019 16:59:10 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 17:18:15 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Fri, 15 Feb 2019 17:18:15 +0000 Subject: Change in libosmocore[master]: Add multipatch capability to osmo-config-merge In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12897 ) Change subject: Add multipatch capability to osmo-config-merge ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/#/c/12897/3/utils/osmo-config-merge.c File utils/osmo-config-merge.c: https://gerrit.osmocom.org/#/c/12897/3/utils/osmo-config-merge.c at 267 PS3, Line 267: return 3; > Why don't you talloc_free(ctx) here? That's return from the main() so all the memory will be cleared anyway. -- To view, visit https://gerrit.osmocom.org/12897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I212cbdc3bf6f251c1a3175737ac74242fb004c6d Gerrit-Change-Number: 12897 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 15 Feb 2019 17:18:15 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 17:52:10 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Fri, 15 Feb 2019 17:52:10 +0000 Subject: Change in osmo-bts[master]: scheduler_trx: use stored fn for pdtch data indications In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12922 ) Change subject: scheduler_trx: use stored fn for pdtch data indications ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12922 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6c01987be78203acfa689c6decb2c806f8fff3d6 Gerrit-Change-Number: 12922 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 15 Feb 2019 17:52:10 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 17:52:29 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Fri, 15 Feb 2019 17:52:29 +0000 Subject: Change in osmo-ci[master]: Fix copy and paste in the script. In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12921 ) Change subject: Fix copy and paste in the script. ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12921 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I51d01a8799f09ce7d813a0ef8353a4233d5c8bb5 Gerrit-Change-Number: 12921 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Max Gerrit-Comment-Date: Fri, 15 Feb 2019 17:52:29 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 18:15:20 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Fri, 15 Feb 2019 18:15:20 +0000 Subject: Change in libosmocore[master]: Add multipatch capability to osmo-config-merge In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12897 ) Change subject: Add multipatch capability to osmo-config-merge ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/#/c/12897/3/utils/osmo-config-merge.c File utils/osmo-config-merge.c: https://gerrit.osmocom.org/#/c/12897/3/utils/osmo-config-merge.c at 267 PS3, Line 267: return 3; > That's return from the main() so all the memory will be cleared anyway. Yes, but ASAN won't be happy. This is why we do talloc_free(ctx) in all other cases. -- To view, visit https://gerrit.osmocom.org/12897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I212cbdc3bf6f251c1a3175737ac74242fb004c6d Gerrit-Change-Number: 12897 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 15 Feb 2019 18:15:20 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 19:57:56 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 15 Feb 2019 19:57:56 +0000 Subject: Change in osmo-pcu[master]: Don't install pcuif_proto.h header In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12907 ) Change subject: Don't install pcuif_proto.h header ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4a87395d4ab7212fe2fc055dae0a737e10d20c69 Gerrit-Change-Number: 12907 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-CC: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Fri, 15 Feb 2019 19:57:56 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 20:00:15 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 15 Feb 2019 20:00:15 +0000 Subject: Change in osmo-ci[master]: Fix copy and paste in the script. In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12921 ) Change subject: Fix copy and paste in the script. ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12921 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I51d01a8799f09ce7d813a0ef8353a4233d5c8bb5 Gerrit-Change-Number: 12921 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Fri, 15 Feb 2019 20:00:15 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 15 20:02:26 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 15 Feb 2019 20:02:26 +0000 Subject: Change in libosmocore[master]: Add multipatch capability to osmo-config-merge In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12897 ) Change subject: Add multipatch capability to osmo-config-merge ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/#/c/12897/3/utils/osmo-config-merge.c File utils/osmo-config-merge.c: https://gerrit.osmocom.org/#/c/12897/3/utils/osmo-config-merge.c at 267 PS3, Line 267: return 3; > Yes, but ASAN won't be happy. This is why we do talloc_free(ctx) in all other cases. Agree with Vadim, I already had a similar comment in another commit. Please let's free stuff as soon as not needed anymore, instead of assuming talloc will release it at some point in the future. -- To view, visit https://gerrit.osmocom.org/12897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I212cbdc3bf6f251c1a3175737ac74242fb004c6d Gerrit-Change-Number: 12897 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Fri, 15 Feb 2019 20:02:26 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sat Feb 16 00:13:14 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 16 Feb 2019 00:13:14 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--enable-i?= =?UTF-8?Q?u,0,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#8823?= Message-ID: <1227111306.248.1550275994270.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 858.23 KB...] ^ ../../include/osmocom/ranap/RANAP_LA-LIST.h:27:2: note: in expansion of macro 'A_SEQUENCE_OF' A_SEQUENCE_OF(struct MemberA { ^ ../../include/osmocom/ranap/RANAP_LA-LIST.h:27:23: warning: its scope is only this definition or declaration, which is probably not what you want A_SEQUENCE_OF(struct MemberA { ^ /build/deps/install/stow/libasn1c/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro 'A_SET_OF' void (*free)(type *); \ ^ ../../include/osmocom/ranap/RANAP_LA-LIST.h:27:2: note: in expansion of macro 'A_SEQUENCE_OF' A_SEQUENCE_OF(struct MemberA { ^ ../../include/osmocom/ranap/RANAP_PLMNs-in-shared-network.h:27:23: warning: 'struct MemberM' declared inside parameter list A_SEQUENCE_OF(struct MemberM { ^ /build/deps/install/stow/libasn1c/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro 'A_SET_OF' void (*free)(type *); \ ^ ../../include/osmocom/ranap/RANAP_PLMNs-in-shared-network.h:27:2: note: in expansion of macro 'A_SEQUENCE_OF' A_SEQUENCE_OF(struct MemberM { ^ CC RANAP_SDU-Parameters.lo CC RANAP_SDU-ParameterItem.lo CC RANAP_SNA-Access-Information.lo CC RANAP_SNAC.lo CC RANAP_Service-Handover.lo CC RANAP_Source-ToTarget-TransparentContainer.lo CC RANAP_SourceeNodeB-ToTargeteNodeB-TransparentContainer.lo CC RANAP_SourceCellID.lo In file included from /build/deps/install/stow/libasn1c/include/asn1c/asn_SEQUENCE_OF.h:8:0, from ../../include/osmocom/ranap/RANAP_AuthorisedPLMNs.h:14, from ../../include/osmocom/ranap/RANAP_SNA-Access-Information.h:14, from RANAP_SNA-Access-Information.c:7: ../../include/osmocom/ranap/RANAP_AuthorisedPLMNs.h:27:23: warning: 'struct MemberC' declared inside parameter list A_SEQUENCE_OF(struct MemberC { ^ /build/deps/install/stow/libasn1c/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro 'A_SET_OF' void (*free)(type *); \ ^ ../../include/osmocom/ranap/RANAP_AuthorisedPLMNs.h:27:2: note: in expansion of macro 'A_SEQUENCE_OF' A_SEQUENCE_OF(struct MemberC { ^ ../../include/osmocom/ranap/RANAP_AuthorisedPLMNs.h:27:23: warning: its scope is only this definition or declaration, which is probably not what you want A_SEQUENCE_OF(struct MemberC { ^ /build/deps/install/stow/libasn1c/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro 'A_SET_OF' void (*free)(type *); \ ^ ../../include/osmocom/ranap/RANAP_AuthorisedPLMNs.h:27:2: note: in expansion of macro 'A_SEQUENCE_OF' A_SEQUENCE_OF(struct MemberC { ^ CC RANAP_SourceBSS-ToTargetBSS-TransparentContainer.lo CC RANAP_SourceID.lo CC RANAP_SourceRNC-ID.lo CC RANAP_SourceRNC-ToTargetRNC-TransparentContainer.lo CC RANAP_IRAT-Measurement-Configuration.lo CC RANAP_IRATmeasurementParameters.lo CC RANAP_RSRQ-Type.lo CC RANAP_RSRQ-Extension.lo CC RANAP_EUTRANFrequencies.lo CC RANAP_MeasBand.lo In file included from /build/deps/install/stow/libasn1c/include/asn1c/asn_SEQUENCE_OF.h:8:0, from ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:14, from ../../include/osmocom/ranap/RANAP_IRATmeasurementParameters.h:15, from ../../include/osmocom/ranap/RANAP_IRAT-Measurement-Configuration.h:15, from RANAP_IRAT-Measurement-Configuration.c:7: ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:27:23: warning: 'struct MemberJ' declared inside parameter list A_SEQUENCE_OF(struct MemberJ { ^ /build/deps/install/stow/libasn1c/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro 'A_SET_OF' void (*free)(type *); \ ^ ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:27:2: note: in expansion of macro 'A_SEQUENCE_OF' A_SEQUENCE_OF(struct MemberJ { ^ ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:27:23: warning: its scope is only this definition or declaration, which is probably not what you want A_SEQUENCE_OF(struct MemberJ { ^ /build/deps/install/stow/libasn1c/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro 'A_SET_OF' void (*free)(type *); \ ^ ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:27:2: note: in expansion of macro 'A_SEQUENCE_OF' A_SEQUENCE_OF(struct MemberJ { ^ In file included from /build/deps/install/stow/libasn1c/include/asn1c/asn_SEQUENCE_OF.h:8:0, from ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:14, from ../../include/osmocom/ranap/RANAP_IRATmeasurementParameters.h:15, from RANAP_IRATmeasurementParameters.c:7: ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:27:23: warning: 'struct MemberJ' declared inside parameter list A_SEQUENCE_OF(struct MemberJ { ^ /build/deps/install/stow/libasn1c/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro 'A_SET_OF' void (*free)(type *); \ ^ ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:27:2: note: in expansion of macro 'A_SEQUENCE_OF' A_SEQUENCE_OF(struct MemberJ { ^ ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:27:23: warning: its scope is only this definition or declaration, which is probably not what you want A_SEQUENCE_OF(struct MemberJ { ^ /build/deps/install/stow/libasn1c/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro 'A_SET_OF' void (*free)(type *); \ ^ ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:27:2: note: in expansion of macro 'A_SEQUENCE_OF' A_SEQUENCE_OF(struct MemberJ { ^ In file included from /build/deps/install/stow/libasn1c/include/asn1c/asn_SEQUENCE_OF.h:8:0, from ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:14, from RANAP_EUTRANFrequencies.c:7: ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:27:23: warning: 'struct MemberJ' declared inside parameter list A_SEQUENCE_OF(struct MemberJ { ^ /build/deps/install/stow/libasn1c/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro 'A_SET_OF' void (*free)(type *); \ ^ ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:27:2: note: in expansion of macro 'A_SEQUENCE_OF' A_SEQUENCE_OF(struct MemberJ { ^ ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:27:23: warning: its scope is only this definition or declaration, which is probably not what you want A_SEQUENCE_OF(struct MemberJ { ^ /build/deps/install/stow/libasn1c/include/asn1c/asn_SET_OF.h:17:16: note: in definition of macro 'A_SET_OF' void (*free)(type *); \ ^ ../../include/osmocom/ranap/RANAP_EUTRANFrequencies.h:27:2: note: in expansion of macro 'A_SEQUENCE_OF' A_SEQUENCE_OF(struct MemberJ { ^ CC RANAP_SubscriberProfileIDforRFP.lo CC RANAP_SourceStatisticsDescriptor.lo CC RANAP_SupportedRAB-ParameterBitrateList.lo CC RANAP_SupportedBitrate.lo CC RANAP_SourceUTRANCellID.lo CC RANAP_SRB-ID.lo CC RANAP_SRB-TrCH-Mapping.lo CC RANAP_SRB-TrCH-MappingItem.lo CC RANAP_SRVCC-HO-Indication.lo CC RANAP_SRVCC-Information.lo CC RANAP_SRVCC-Operation-Possible.lo CC RANAP_SubflowSDU-Size.lo CC RANAP_TAC.lo CC RANAP_TAI.lo CC RANAP_Target-ToSource-TransparentContainer.lo CC RANAP_TargeteNodeB-ToSourceeNodeB-TransparentContainer.lo CC RANAP_TargetBSS-ToSourceBSS-TransparentContainer.lo CC RANAP_TargetCellId.lo CC RANAP_TargetID.lo CC RANAP_TargetENB-ID.lo CC RANAP_TargetRNC-ID.lo CC RANAP_TargetRNC-ToSourceRNC-TransparentContainer.lo CC RANAP_TBCD-STRING.lo CC RANAP_TemporaryUE-ID.lo CC RANAP_Time-UE-StayedInCell.lo CC RANAP_Time-UE-StayedInCell-EnhancedGranularity.lo CC RANAP_TimeToMBMSDataTransfer.lo CC RANAP_TimingDifferenceULDL.lo CC RANAP_TMGI.lo CC RANAP_TMSI.lo CC RANAP_TraceDepth.lo CC RANAP_TraceInformation.lo CC RANAP_TracePropagationParameters.lo CC RANAP_TraceRecordingSessionInformation.lo CC RANAP_TraceRecordingSessionReference.lo CC RANAP_TraceReference.lo CC RANAP_TraceType.lo CC RANAP_TrafficClass.lo CC RANAP_TrafficHandlingPriority.lo CC RANAP_TransferDelay.lo CC RANAP_UnsuccessfullyTransmittedDataVolume.lo CC RANAP_TransportLayerAddress.lo CC RANAP_TrCH-ID.lo CC RANAP_TrCH-ID-List.lo CC RANAP_TriggerID.lo CC RANAP_TunnelInformation.lo CC RANAP_TypeOfError.lo CC RANAP_UE-AggregateMaximumBitRate.lo CC RANAP_UE-AggregateMaximumBitRateDownlink.lo CC RANAP_UE-AggregateMaximumBitRateUplink.lo CC RANAP_UE-History-Information.lo CC RANAP_UE-ID.lo CC RANAP_UESBI-Iu.lo CC RANAP_UESBI-IuA.lo CC RANAP_UESBI-IuB.lo CC RANAP_UL-GTP-PDU-SequenceNumber.lo CC RANAP_UL-N-PDU-SequenceNumber.lo CC RANAP_UPInformation.lo CC RANAP_UPInitialisationFrame.lo CC RANAP_UP-ModeVersions.lo CC RANAP_USCH-ID.lo CC RANAP_UserPlaneMode.lo CC RANAP_UTRAN-CellID.lo CC RANAP_VelocityEstimate.lo CC RANAP_HorizontalVelocity.lo CC RANAP_HorizontalWithVerticalVelocity.lo CC RANAP_HorizontalVelocityWithUncertainty.lo CC RANAP_HorizontalWithVerticalVelocityAndUncertainty.lo CC RANAP_HorizontalSpeedAndBearing.lo CC RANAP_VerticalVelocity.lo CC RANAP_VerticalSpeedDirection.lo CC RANAP_VerticalAccuracyCode.lo CC RANAP_VoiceSupportMatchIndicator.lo CC RANAP_RANAP-PDU.lo CC RANAP_InitiatingMessage.lo CC RANAP_SuccessfulOutcome.lo CC RANAP_UnsuccessfulOutcome.lo CC RANAP_Outcome.lo CC RANAP_Iu-ReleaseCommand.lo CC RANAP_Iu-ReleaseComplete.lo CC RANAP_RelocationRequired.lo CC RANAP_RelocationPreparationFailure.lo CC RANAP_RelocationCommand.lo CC RANAP_RelocationRequest.lo CC RANAP_RelocationRequestAcknowledge.lo CC RANAP_RelocationFailure.lo CC RANAP_RelocationCancel.lo CC RANAP_RelocationCancelAcknowledge.lo CC RANAP_SRNS-ContextRequest.lo CC RANAP_RAB-DataForwardingList-SRNS-CtxReq.lo CC RANAP_DataVolumeReportRequest.lo CC RANAP_SRNS-ContextResponse.lo CC RANAP_SecurityModeCommand.lo CC RANAP_SecurityModeComplete.lo CC RANAP_SecurityModeReject.lo CC RANAP_DataVolumeReport.lo CC RANAP_Reset.lo CC RANAP_ResetAcknowledge.lo CC RANAP_RAB-ReleaseRequest.lo CC RANAP_RedirectionIndication.lo CC RANAP_RAB-ReleaseList.lo CC RANAP_Iu-ReleaseRequest.lo CC RANAP_RelocationDetect.lo /bin/bash: line 1: 27680 Segmentation fault (core dumped) /bin/bash ../../libtool --silent --tag=CC --mode=compile gcc -DPACKAGE_NAME=\"osmo-iuh\" -DPACKAGE_TARNAME=\"osmo-iuh\" -DPACKAGE_VERSION=\"0.4.0.1-04b5\" -DPACKAGE_STRING=\"osmo-iuh\ 0.4.0.1-04b5\" -DPACKAGE_BUGREPORT=\"openbsc at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-iuh\" -DVERSION=\"0.4.0.1-04b5\" -DSTDC_HEADERS=1 -I. -Wall -I../../include -I/build/deps/install/stow/libasn1c/include/ -I/build/deps/install/stow/libasn1c/include/asn1c -I/build/deps/install/stow/libosmocore/include/ -g -O2 -Wall -MT RANAP_RelocationDetect.lo -MD -MP -MF .deps/RANAP_RelocationDetect.Tpo -c -o RANAP_RelocationDetect.lo RANAP_RelocationDetect.c Makefile:2495: recipe for target 'RANAP_RelocationDetect.lo' failed make[4]: *** [RANAP_RelocationDetect.lo] Error 139 make[4]: *** Waiting for unfinished jobs.... make[4]: Leaving directory '/build/deps/osmo-iuh/src/ranap' Makefile:631: recipe for target 'install-recursive' failed make[3]: Leaving directory '/build/deps/osmo-iuh/src' make[3]: *** [install-recursive] Error 1 Makefile:790: recipe for target 'install' failed make[2]: Leaving directory '/build/deps/osmo-iuh/src' make[2]: *** [install] Error 2 make[1]: *** [install-recursive] Error 1 Makefile:446: recipe for target 'install-recursive' failed make[1]: Leaving directory '/build/deps/osmo-iuh' make: *** [install] Error 2 Makefile:745: recipe for target 'install' failed Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Sat Feb 16 00:21:04 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 16 Feb 2019 00:21:04 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-sgsn_=C2=BB_--ena?= =?UTF-8?Q?ble-iu,0,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#8824?= In-Reply-To: <1227111306.248.1550275994270.JavaMail.jenkins@jenkins.osmocom.org> References: <1227111306.248.1550275994270.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1251549531.249.1550276464625.JavaMail.jenkins@jenkins.osmocom.org> See From jenkins at lists.osmocom.org Sat Feb 16 09:46:02 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 16 Feb 2019 09:46:02 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-trx_=C2=BB_--wit?= =?UTF-8?Q?h-sse,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#885?= In-Reply-To: <562721247.246.1550240312739.JavaMail.jenkins@jenkins.osmocom.org> References: <562721247.246.1550240312739.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <452444691.262.1550310362220.JavaMail.jenkins@jenkins.osmocom.org> See From jenkins at lists.osmocom.org Sat Feb 16 15:10:06 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 16 Feb 2019 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#403?= In-Reply-To: <2097499232.247.1550243406783.JavaMail.jenkins@jenkins.osmocom.org> References: <2097499232.247.1550243406783.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1476807828.263.1550329806802.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.76 KB...] checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs mkdir .libs mkdir: cannot create directory '.libs': File exists gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Sat Feb 16 17:12:14 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Sat, 16 Feb 2019 17:12:14 +0000 Subject: Change in osmo-ci[master]: Fix copy and paste in the script. In-Reply-To: References: Message-ID: Holger Freyther has posted comments on this change. ( https://gerrit.osmocom.org/12921 ) Change subject: Fix copy and paste in the script. ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/12921 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I51d01a8799f09ce7d813a0ef8353a4233d5c8bb5 Gerrit-Change-Number: 12921 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sat, 16 Feb 2019 17:12:14 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 16 17:12:17 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Sat, 16 Feb 2019 17:12:17 +0000 Subject: Change in osmo-ci[master]: Fix copy and paste in the script. In-Reply-To: References: Message-ID: Holger Freyther has submitted this change and it was merged. ( https://gerrit.osmocom.org/12921 ) Change subject: Fix copy and paste in the script. ...................................................................... Fix copy and paste in the script. Change-Id: I51d01a8799f09ce7d813a0ef8353a4233d5c8bb5 --- M jobs/osmo-gsm-tester_ttcn3.sh 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Max: Looks good to me, but someone else must approve Pau Espin Pedrol: Looks good to me, approved Holger Freyther: Verified diff --git a/jobs/osmo-gsm-tester_ttcn3.sh b/jobs/osmo-gsm-tester_ttcn3.sh index f2b974f..a4d5e16 100644 --- a/jobs/osmo-gsm-tester_ttcn3.sh +++ b/jobs/osmo-gsm-tester_ttcn3.sh @@ -1,7 +1,7 @@ #!/bin/sh set -e -x -# On our hardware, we actually use the example configuration as-is. +# On our hardware, we actually use the ttcn3 configuration as-is. export OSMO_GSM_TESTER_CONF="$PWD/osmo-gsm-tester/ttcn3" # debug: provoke a failure -- To view, visit https://gerrit.osmocom.org/12921 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I51d01a8799f09ce7d813a0ef8353a4233d5c8bb5 Gerrit-Change-Number: 12921 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 16 17:34:28 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Sat, 16 Feb 2019 17:34:28 +0000 Subject: Change in osmo-ci[master]: docker: Add dependencies needed for the gsm tester as well Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/12923 Change subject: docker: Add dependencies needed for the gsm tester as well ...................................................................... docker: Add dependencies needed for the gsm tester as well This way we can execute the tester with a virtual environment. Change-Id: I1e6432d77442f590453a328023c9f09cd52787a8 --- M docker/Dockerfile_osmocom_jenkins.amd64 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/23/12923/1 diff --git a/docker/Dockerfile_osmocom_jenkins.amd64 b/docker/Dockerfile_osmocom_jenkins.amd64 index 81f46ca..73440ae 100644 --- a/docker/Dockerfile_osmocom_jenkins.amd64 +++ b/docker/Dockerfile_osmocom_jenkins.amd64 @@ -48,5 +48,10 @@ # Add rpath to binaries RUN DEBIAN_FRONTEND=noninteractive apt-get install -y patchelf +# Be able to run the osmo-gsm-tester +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y dbus tcpdump sqlite3 python3 python3-yaml python3-mako python3-gi ofono python3-pip +RUN pip3 install git+git://github.com/podshumok/python-smpplib.git +RUN pip3 install pydbus + ADD http://git.osmocom.org/python/osmo-python-tests/patch /tmp/commit RUN git clone git://git.osmocom.org/python/osmo-python-tests && cd osmo-python-tests && ./contrib/jenkins.sh -- To view, visit https://gerrit.osmocom.org/12923 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I1e6432d77442f590453a328023c9f09cd52787a8 Gerrit-Change-Number: 12923 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 17 12:24:54 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 17 Feb 2019 12:24:54 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12625 ) Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... Patch Set 10: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 10 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy Gerrit-CC: tnt Gerrit-Comment-Date: Sun, 17 Feb 2019 12:24:54 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 17 13:32:32 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 17 Feb 2019 13:32:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Add TTCN-3 definition of GSM Abis OML protocol (TS 12.21) In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12875 to look at the new patch set (#2). Change subject: Add TTCN-3 definition of GSM Abis OML protocol (TS 12.21) ...................................................................... Add TTCN-3 definition of GSM Abis OML protocol (TS 12.21) Change-Id: I65f71bf7f54cbe3290757e810b1df1e54929bdd1 --- A library/AbisOML_Types.ttcn 1 file changed, 1,221 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/75/12875/2 -- To view, visit https://gerrit.osmocom.org/12875 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I65f71bf7f54cbe3290757e810b1df1e54929bdd1 Gerrit-Change-Number: 12875 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 17 13:32:57 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 17 Feb 2019 13:32:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: IPA_Emulation: Integrate OML decoding/encoding; add OML port In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12876 ) Change subject: IPA_Emulation: Integrate OML decoding/encoding; add OML port ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id0dabe7eca4f81d22a60b346ac598be81533f53c Gerrit-Change-Number: 12876 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Sun, 17 Feb 2019 13:32:57 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 17 13:33:17 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 17 Feb 2019 13:33:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Add TTCN-3 definition of GSM Abis OML protocol (TS 12.21) In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12875 ) Change subject: Add TTCN-3 definition of GSM Abis OML protocol (TS 12.21) ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12875 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I65f71bf7f54cbe3290757e810b1df1e54929bdd1 Gerrit-Change-Number: 12875 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max Gerrit-Comment-Date: Sun, 17 Feb 2019 13:33:17 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 17 13:33:47 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 17 Feb 2019 13:33:47 +0000 Subject: Change in osmo-ci[master]: docker: Add dependencies needed for the gsm tester as well In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12923 ) Change subject: docker: Add dependencies needed for the gsm tester as well ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12923 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1e6432d77442f590453a328023c9f09cd52787a8 Gerrit-Change-Number: 12923 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Sun, 17 Feb 2019 13:33:47 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 17 13:34:25 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 17 Feb 2019 13:34:25 +0000 Subject: Change in osmo-pcu[master]: Don't install pcuif_proto.h header In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12907 ) Change subject: Don't install pcuif_proto.h header ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4a87395d4ab7212fe2fc055dae0a737e10d20c69 Gerrit-Change-Number: 12907 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-CC: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Sun, 17 Feb 2019 13:34:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 17 13:34:27 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 17 Feb 2019 13:34:27 +0000 Subject: Change in osmo-pcu[master]: Don't install pcuif_proto.h header In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12907 ) Change subject: Don't install pcuif_proto.h header ...................................................................... Don't install pcuif_proto.h header Both OsmoBTS and OsmoBSC use their own copies of this header nowadays so we can simplify our installation slightly by making it local only. Change-Id: I4a87395d4ab7212fe2fc055dae0a737e10d20c69 --- M Makefile.am M configure.ac M debian/osmo-pcu.install M include/Makefile.am D osmo-pcu.pc.in M src/Makefile.am 6 files changed, 1 insertion(+), 20 deletions(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/Makefile.am b/Makefile.am index fe94ea2..48051f2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -7,6 +7,3 @@ --with-systemdsystemunitdir=$$dc_install_base/$(systemdsystemunitdir) @RELMAKE@ - -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = osmo-pcu.pc diff --git a/configure.ac b/configure.ac index a1a610c..c3e2df8 100644 --- a/configure.ac +++ b/configure.ac @@ -221,7 +221,6 @@ AC_MSG_RESULT([LDFLAGS="$LDFLAGS"]) AC_OUTPUT( - osmo-pcu.pc include/Makefile src/Makefile doc/Makefile diff --git a/debian/osmo-pcu.install b/debian/osmo-pcu.install index 9b7eac6..603e0b1 100644 --- a/debian/osmo-pcu.install +++ b/debian/osmo-pcu.install @@ -1,6 +1,4 @@ etc/osmocom/osmo-pcu.cfg lib/systemd/system/osmo-pcu.service usr/bin/osmo-pcu -usr/include/osmocom/pcu/pcuif_proto.h -usr/lib/*/pkgconfig/osmo-pcu.pc usr/share/doc/osmo-pcu/examples/osmo-pcu/osmo-pcu.cfg diff --git a/include/Makefile.am b/include/Makefile.am index e40a9c0..92896c6 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -1,2 +1,2 @@ -nobase_include_HEADERS = \ +noinst_HEADERS = \ osmocom/pcu/pcuif_proto.h diff --git a/osmo-pcu.pc.in b/osmo-pcu.pc.in deleted file mode 100644 index b72e9a8..0000000 --- a/osmo-pcu.pc.in +++ /dev/null @@ -1,10 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@/ - -Name: OsmoPCU -Description: Osmocom PCU implementation -Requires: -Version: @VERSION@ -Cflags: -I${includedir} diff --git a/src/Makefile.am b/src/Makefile.am index b2f64f2..50e0eda 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -99,9 +99,6 @@ gprs_coding_scheme.h \ egprs_rlc_compression.h -nobase_include_HEADERS = - osmocom/pcu/pcuif_proto.h - osmo_pcu_SOURCES = pcu_main.cpp if ENABLE_SYSMODSP -- To view, visit https://gerrit.osmocom.org/12907 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I4a87395d4ab7212fe2fc055dae0a737e10d20c69 Gerrit-Change-Number: 12907 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-CC: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 17 13:34:49 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 17 Feb 2019 13:34:49 +0000 Subject: Change in osmo-bts[master]: scheduler_trx: use stored fn for pdtch data indications In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12922 ) Change subject: scheduler_trx: use stored fn for pdtch data indications ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12922 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6c01987be78203acfa689c6decb2c806f8fff3d6 Gerrit-Change-Number: 12922 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Sun, 17 Feb 2019 13:34:49 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 17 13:34:51 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 17 Feb 2019 13:34:51 +0000 Subject: Change in osmo-bts[master]: scheduler_trx: use stored fn for pdtch data indications In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12922 ) Change subject: scheduler_trx: use stored fn for pdtch data indications ...................................................................... scheduler_trx: use stored fn for pdtch data indications When the ph-data indications for the PDTCH are passed up to l1sap, then a forumla is used to calculate the frame number of the beginning of the block that is just passed up. This is not necessary since the start frame number of the block is stored in *first_fn when the block arrives. We should use this frame number instead. (For the measurement indication it is already done this way). Change-Id: I6c01987be78203acfa689c6decb2c806f8fff3d6 Related: OS#2977 --- M src/osmo-bts-trx/scheduler_trx.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Max: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c index b395479..32bdb98 100644 --- a/src/osmo-bts-trx/scheduler_trx.c +++ b/src/osmo-bts-trx/scheduler_trx.c @@ -974,7 +974,7 @@ return 0; } ber10k = compute_ber10k(n_bits_total, n_errors); - return _sched_compose_ph_data_ind(l1t, tn, (fn + GSM_HYPERFRAME - 3) % GSM_HYPERFRAME, chan, + return _sched_compose_ph_data_ind(l1t, tn, *first_fn, chan, l2, rc, *rssi_sum / *rssi_num, *toa256_sum / *toa_num, 0, ber10k, PRES_INFO_BOTH); } -- To view, visit https://gerrit.osmocom.org/12922 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I6c01987be78203acfa689c6decb2c806f8fff3d6 Gerrit-Change-Number: 12922 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 17 13:35:23 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 17 Feb 2019 13:35:23 +0000 Subject: Change in libosmocore[master]: gsm_08_08.h: Add constants for Channel Type in signalling mode In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12905 ) Change subject: gsm_08_08.h: Add constants for Channel Type in signalling mode ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12905 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9e24841ea877a9a78dc4d2bd14cbf60c4bea79a6 Gerrit-Change-Number: 12905 Gerrit-PatchSet: 1 Gerrit-Owner: tnt Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Sun, 17 Feb 2019 13:35:23 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 17 13:35:24 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 17 Feb 2019 13:35:24 +0000 Subject: Change in libosmocore[master]: gsm_08_08.h: Add constants for Channel Type in signalling mode In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12905 ) Change subject: gsm_08_08.h: Add constants for Channel Type in signalling mode ...................................................................... gsm_08_08.h: Add constants for Channel Type in signalling mode This is from TS 08.08 3.2.2.11 directly. The choices for Data mode and Speech mode were already present, but not for Signalling mode Change-Id: I9e24841ea877a9a78dc4d2bd14cbf60c4bea79a6 Signed-off-by: Sylvain Munaut --- M include/osmocom/gsm/protocol/gsm_08_08.h 1 file changed, 14 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Max: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/gsm/protocol/gsm_08_08.h b/include/osmocom/gsm/protocol/gsm_08_08.h index 721da33..67dc6ee 100644 --- a/include/osmocom/gsm/protocol/gsm_08_08.h +++ b/include/osmocom/gsm/protocol/gsm_08_08.h @@ -437,6 +437,20 @@ GSM0808_SPEECH_PERM_NO_CHANGE = 0x1f, }; +/* GSM 08.08 3.2.2.11 Channel Type */ +enum gsm0808_chan_rate_type_sign { + GSM0808_SIGN_ANY = 0x00, + GSM0808_SIGN_SDCCH = 0x01, + GSM0808_SIGN_SDCCH_FULL_BM = 0x02, + GSM0808_SIGN_SDCCH_HALF_LM = 0x03, + GSM0808_SIGN_FULL_BM = 0x08, + GSM0808_SIGN_HALF_LM = 0x09, + GSM0808_SIGN_FULL_PREF = 0x0a, + GSM0808_SIGN_HALF_PREF = 0x0b, + GSM0808_SIGN_FULL_PREF_NO_CHANGE = 0x1a, + GSM0808_SIGN_HALF_PREF_NO_CHANGE = 0x1b, +}; + /*! GSM 08.08 3.2.2.11 Channel Type * (see also 3GPP TS 48.008, section 3.2.2.11) */ enum gsm0808_permitted_speech { -- To view, visit https://gerrit.osmocom.org/12905 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I9e24841ea877a9a78dc4d2bd14cbf60c4bea79a6 Gerrit-Change-Number: 12905 Gerrit-PatchSet: 2 Gerrit-Owner: tnt Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 17 13:36:42 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 17 Feb 2019 13:36:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Add TTCN-3 definition of GSM Abis OML protocol (TS 12.21) In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12875 ) Change subject: Add TTCN-3 definition of GSM Abis OML protocol (TS 12.21) ...................................................................... Add TTCN-3 definition of GSM Abis OML protocol (TS 12.21) Change-Id: I65f71bf7f54cbe3290757e810b1df1e54929bdd1 --- A library/AbisOML_Types.ttcn 1 file changed, 1,221 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/AbisOML_Types.ttcn b/library/AbisOML_Types.ttcn new file mode 100644 index 0000000..0d37f8a --- /dev/null +++ b/library/AbisOML_Types.ttcn @@ -0,0 +1,1221 @@ +module AbisOML_Types { + +/* AbisOML_Types, defining abstract TTCN-3 data types for the A-bis OML protocol. + * + * A-bis OML is a 3GP standard protocol used between BTS and BSC in a GSM network; + * it is specified in 3GPP TS 12.21. + * + * (C) 2019 by Harald Welte + * All rights reserved. + * + * Released under the terms of the GNU General Public License, Version 2 or + * (at your option) any later version. + */ + +import from General_Types all; +import from Osmocom_Types all; +import from GSM_Types all; + +type enumerated OML_MessageDiscriminator { + ABIS_OM_MDISC_FOM ('80'H), + ABIS_OM_MDISC_MMI ('40'H), + ABIS_OM_MDISC_TRAU ('20'H), + ABIS_OM_MDISC_MANUF ('10'H) +} with { variant "FIELDLENGTH(8)" }; + +type enumerated OML_Placement { + ABIS_OM_PLACEMENT_ONLY ('80'H), + ABIS_OM_PLACEMENT_FIRST ('40'H), + ABIS_OM_PLACEMENT_MIDDLE ('20'H), + ABIS_OM_PLACEMENT_LAST ('10'H) +} with { variant "FIELDLENGTH(8)" }; + +type union OML_Union { + OML_FOM fom, + OML_MANUF manuf, + octetstring other +}; + +type record OML_PDU { + OML_MessageDiscriminator mdisc, + OML_Placement placement, + uint8_t sequence, + OML_Union u +} with { + variant (u) "CROSSTAG( + fom, mdisc = ABIS_OM_MDISC_FOM; + manuf, mdisc = ABIS_OM_MDISC_MANUF; + other, OTHERWISE; + )" }; + + +type record OML_FOM_ObjectInstance { + uint8_t bts_nr, + uint8_t trx_nr, + uint8_t ts_nr +}; + + +type record OML_FOM_Header { + OML_FOM_MessageType msg_type, + OML_FOM_ObjectClass obj_class, + OML_FOM_ObjectInstance obj_inst +}; + +/* Section 9.1 */ +type enumerated OML_FOM_MessageType { + /* SW Download Management Messages */ + NM_MT_LOAD_INIT ('01'H), + NM_MT_LOAD_INIT_ACK ('02'H), + NM_MT_LOAD_INIT_NACK ('03'H), + NM_MT_LOAD_SEG ('04'H), + NM_MT_LOAD_SEG_ACK ('05'H), + NM_MT_LOAD_ABORT ('06'H), + NM_MT_LOAD_END ('07'H), + NM_MT_LOAD_END_ACK ('08'H), + NM_MT_LOAD_END_NACK ('09'H), + NM_MT_SW_ACT_REQ ('0a'H), + NM_MT_SW_ACT_REQ_ACK ('0b'H), + NM_MT_SW_ACT_REQ_NACK ('0c'H), + NM_MT_ACTIVATE_SW ('0d'H), + NM_MT_ACTIVATE_SW_ACK ('0e'H), + NM_MT_ACTIVATE_SW_NACK ('0f'H), + NM_MT_SW_ACTIVATED_REP ('10'H), + + /* A-bis Interface Management Messages */ + NM_MT_ESTABLISH_TEI ('21'H), + NM_MT_ESTABLISH_TEI_ACK ('22'H), + NM_MT_ESTABLISH_TEI_NACK ('23'H), + NM_MT_CONN_TERR_SIGN ('24'H), + NM_MT_CONN_TERR_SIGN_ACK ('25'H), + NM_MT_CONN_TERR_SIGN_NACK ('26'H), + NM_MT_DISC_TERR_SIGN ('27'H), + NM_MT_DISC_TERR_SIGN_ACK ('28'H), + NM_MT_DISC_TERR_SIGN_NACK ('29'H), + NM_MT_CONN_TERR_TRAF ('2a'H), + NM_MT_CONN_TERR_TRAF_ACK ('2b'H), + NM_MT_CONN_TERR_TRAF_NACK ('2c'H), + NM_MT_DISC_TERR_TRAF ('2d'H), + NM_MT_DISC_TERR_TRAF_ACK ('2e'H), + NM_MT_DISC_TERR_TRAF_NACK ('2f'H), + /* Transmission Management Messages */ + NM_MT_CONN_MDROP_LINK ('31'H), + NM_MT_CONN_MDROP_LINK_ACK ('32'H), + NM_MT_CONN_MDROP_LINK_NACK ('33'H), + NM_MT_DISC_MDROP_LINK ('34'H), + NM_MT_DISC_MDROP_LINK_ACK ('35'H), + NM_MT_DISC_MDROP_LINK_NACK ('36'H), + /* Air Interface Management Messages */ + NM_MT_SET_BTS_ATTR ('41'H), + NM_MT_SET_BTS_ATTR_ACK ('42'H), + NM_MT_SET_BTS_ATTR_NACK ('43'H), + NM_MT_SET_RADIO_ATTR ('44'H), + NM_MT_SET_RADIO_ATTR_ACK ('45'H), + NM_MT_SET_RADIO_ATTR_NACK ('46'H), + NM_MT_SET_CHAN_ATTR ('47'H), + NM_MT_SET_CHAN_ATTR_ACK ('48'H), + NM_MT_SET_CHAN_ATTR_NACK ('49'H), + /* Test Management Messages */ + NM_MT_PERF_TEST ('51'H), + NM_MT_PERF_TEST_ACK ('52'H), + NM_MT_PERF_TEST_NACK ('53'H), + NM_MT_TEST_REP ('54'H), + NM_MT_SEND_TEST_REP ('55'H), + NM_MT_SEND_TEST_REP_ACK ('56'H), + NM_MT_SEND_TEST_REP_NACK ('57'H), + NM_MT_STOP_TEST ('58'H), + NM_MT_STOP_TEST_ACK ('59'H), + NM_MT_STOP_TEST_NACK ('5a'H), + /* State Management and Event Report Messages */ + NM_MT_STATECHG_EVENT_REP ('61'H), + NM_MT_FAILURE_EVENT_REP ('62'H), + NM_MT_STOP_EVENT_REP ('63'H), + NM_MT_STOP_EVENT_REP_ACK ('64'H), + NM_MT_STOP_EVENT_REP_NACK ('65'H), + NM_MT_REST_EVENT_REP ('66'H), + NM_MT_REST_EVENT_REP_ACK ('67'H), + NM_MT_REST_EVENT_REP_NACK ('68'H), + NM_MT_CHG_ADM_STATE ('69'H), + NM_MT_CHG_ADM_STATE_ACK ('6a'H), + NM_MT_CHG_ADM_STATE_NACK ('6b'H), + NM_MT_CHG_ADM_STATE_REQ ('6c'H), + NM_MT_CHG_ADM_STATE_REQ_ACK ('6d'H), + NM_MT_CHG_ADM_STATE_REQ_NACK ('6e'H), + + NM_MT_REP_OUTST_ALARMS ('93'H), + NM_MT_REP_OUTST_ALARMS_ACK ('94'H), + NM_MT_REP_OUTST_ALARMS_NACK ('95'H), + + /* Equipment Management Messages */ + NM_MT_CHANGEOVER ('71'H), + NM_MT_CHANGEOVER_ACK ('72'H), + NM_MT_CHANGEOVER_NACK ('73'H), + NM_MT_OPSTART ('74'H), + NM_MT_OPSTART_ACK ('75'H), + NM_MT_OPSTART_NACK ('76'H), + NM_MT_REINIT ('77'H), + NM_MT_REINIT_ACK ('78'H), + NM_MT_REINIT_NACK ('79'H), + NM_MT_SET_SITE_OUT ('7a'H), + NM_MT_SET_SITE_OUT_ACK ('7b'H), + NM_MT_SET_SITE_OUT_NACK ('7c'H), + + NM_MT_CHG_HW_CONF ('90'H), + NM_MT_CHG_HW_CONF_ACK ('91'H), + NM_MT_CHG_HW_CONF_NACK ('92'H), + + /* Measurement Management Messages */ + NM_MT_MEAS_RES_REQ ('8a'H), + NM_MT_MEAS_RES_RESP ('8b'H), + NM_MT_STOP_MEAS ('8c'H), + NM_MT_START_MEAS ('8d'H), + + /* Other Messages */ + NM_MT_GET_ATTR ('81'H), + NM_MT_GET_ATTR_RESP ('82'H), + NM_MT_GET_ATTR_NACK ('83'H), + NM_MT_SET_ALARM_THRES ('84'H), + NM_MT_SET_ALARM_THRES_ACK ('85'H), + NM_MT_SET_ALARM_THRES_NACK ('86'H), + + /* IPA specific messages */ + NM_MT_IPACC_RESTART ('87'H), + NM_MT_IPACC_RESTART_ACK ('88'H), + NM_MT_IPACC_RESTART_NACK ('89'H), + + NM_MT_IPACC_RSL_CONNECT ('e0'H), + NM_MT_IPACC_RSL_CONNECT_ACK ('e1'H), + NM_MT_IPACC_RSL_CONNECT_NACK ('e2'H), + NM_MT_IPACC_RSL_DISCONNECT ('e3'H), + NM_MT_IPACC_RSL_DISCONNECT_ACK ('e4'H), + NM_MT_IPACC_RSL_DISCONNECT_NACK ('e5'H), + NM_MT_IPACC_CONN_TRAF ('e6'H), + NM_MT_IPACC_CONN_TRAF_ACK ('e7'H), + NM_MT_IPACC_CONN_TRAF_NACK ('e8'H), + NM_MT_IPACC_DEF_BOOT_SW ('ec'H), + NM_MT_IPACC_DEF_BOOT_SW_ACK ('ed'H), + MN_MT_IPACC_DEF_BOOT_SW_NACK ('ee'H), + NM_MT_IPACC_SET_NVATTR ('ef'H), + NM_MT_IPACC_SET_NVATTR_ACK ('f0'H), + NM_MT_IPACC_SET_NVATTR_NACK ('f1'H), + NM_MT_IPACC_GET_NVATTR ('f2'H), + NM_MT_IPACC_GET_NVATTR_ACK ('f3'H), + NM_MT_IPACC_GET_NVATTR_NACK ('f4'H), + NM_MT_IPACC_SET_ATTR ('f5'H), + NM_MT_IPACC_SET_ATTR_ACK ('f6'H), + NM_MT_IPACC_SET_ATTR_NACK ('f7'H) + +} with { variant "FIELDLENGTH(8)" }; + +/* Section 9.2 */ +type enumerated OML_FOM_ObjectClass { + NM_OC_SITE_MANAGER ('00'H), + NM_OC_BTS ('01'H), + NM_OC_RADIO_CARRIER ('02'H), + NM_OC_CHANNEL ('03'H), + NM_OC_BASEB_TRANSC ('04'H), + + NM_OC_IPAC_E1_TRUNK ('0e'H), + NM_OC_IPAC_E1_PORT ('0f'H), + NM_OC_IPAC_E1_CHAN ('10'H), + NM_OC_IPAC_CLK_MODULE ('22'H), + + NM_OC_GPRS_NSE ('f0'H), + NM_OC_GPRS_CELL ('f1'H), + NM_OC_GPRS_NSVC ('f2'H), + + NM_OC_NULL ('ff'H) +} with { variant "FIELDLENGTH(8)" }; + +/* Section 9.4 */ +type enumerated OML_FOM_IE_Type { + NM_ATT_ABIS_CHANNEL ('01'H), + NM_ATT_ADD_INFO ('02'H), + NM_ATT_ADD_TEXT ('03'H), + NM_ATT_ADM_STATE ('04'H), + NM_ATT_ARFCN_LIST ('05'H), + NM_ATT_AUTON_REPORT ('06'H), + NM_ATT_AVAIL_STATUS ('07'H), + NM_ATT_BCCH_ARFCN ('08'H), + NM_ATT_BSIC ('09'H), + NM_ATT_BTS_AIR_TIMER ('0a'H), + NM_ATT_CCCH_L_I_P ('0b'H), + NM_ATT_CCCH_L_T ('0c'H), + NM_ATT_CHAN_COMB ('0d'H), + NM_ATT_CONN_FAIL_CRIT ('0e'H), + NM_ATT_DEST ('0f'H), + /* res */ + NM_ATT_EVENT_TYPE ('11'H), + NM_ATT_FILE_ID ('12'H), + NM_ATT_FILE_VERSION ('13'H), + NM_ATT_GSM_TIME ('14'H), + NM_ATT_HSN ('15'H), + NM_ATT_HW_CONFIG ('16'H), + NM_ATT_HW_DESC ('17'H), + NM_ATT_INTAVE_PARAM ('18'H), + NM_ATT_INTERF_BOUND ('19'H), + NM_ATT_LIST_REQ_ATTR ('1a'H), + NM_ATT_MAIO ('1b'H), + NM_ATT_MANUF_STATE ('1c'H), + NM_ATT_MANUF_THRESH ('1d'H), + NM_ATT_MANUF_ID ('1e'H), + NM_ATT_MAX_TA ('1f'H), + NM_ATT_MDROP_LINK ('20'H), + NM_ATT_MDROP_NEXT ('21'H), + NM_ATT_NACK_CAUSES ('22'H), + NM_ATT_NY1 ('23'H), + NM_ATT_OPER_STATE ('24'H), + NM_ATT_OVERL_PERIOD ('25'H), + NM_ATT_PHYS_CONF ('26'H), + NM_ATT_POWER_CLASS ('27'H), + NM_ATT_POWER_THRESH ('28'H), + NM_ATT_PROB_CAUSE ('29'H), + NM_ATT_RACH_B_THRESH ('2a'H), + NM_ATT_LDAVG_SLOTS ('2b'H), + NM_ATT_RAD_SUBC ('2c'H), + NM_ATT_RF_MAXPOWR_R ('2d'H), + NM_ATT_SITE_INPUTS ('2e'H), + NM_ATT_SITE_OUTPUTS ('2f'H), + NM_ATT_SOURCE ('30'H), + NM_ATT_SPEC_PROB ('31'H), + NM_ATT_START_TIME ('32'H), + NM_ATT_T200 ('33'H), + NM_ATT_TEI ('34'H), + NM_ATT_TEST_DUR ('35'H), + NM_ATT_TEST_NO ('36'H), + NM_ATT_TEST_REPORT ('37'H), + NM_ATT_VSWR_THRESH ('38'H), + NM_ATT_WINDOW_SIZE ('39'H), + /* res */ + NM_ATT_BS11_RSSI_OFFS ('3d'H), + NM_ATT_BS11_TXPWR ('3e'H), + NM_ATT_BS11_DIVERSITY ('3f'H), + /* res */ + NM_ATT_TSC ('40'H), + NM_ATT_SW_CONFIG ('41'H), + NM_ATT_SW_DESCR ('42'H), + NM_ATT_SEVERITY ('43'H), + NM_ATT_GET_ARI ('44'H), + NM_ATT_HW_CONF_CHG ('45'H), + NM_ATT_OUTST_ALARM ('46'H), + NM_ATT_FILE_DATA ('47'H), + NM_ATT_MEAS_RES ('48'H), + NM_ATT_MEAS_TYPE ('49'H), + /* res */ + NM_ATT_BS11_ESN_FW_CODE_NO ('4c'H), + NM_ATT_BS11_ESN_HW_CODE_NO ('4f'H), + /* res */ + NM_ATT_BS11_ESN_PCB_SERIAL ('55'H), + NM_ATT_BS11_EXCESSIVE_DISTANCE ('58'H), + NM_ATT_BS11_ALL_TEST_CATG ('60'H), + NM_ATT_BS11_BTSLS_HOPPING ('61'H), + NM_ATT_BS11_CELL_ALLOC_NR ('62'H), + NM_ATT_BS11_CELL_GLOBAL_ID ('63'H), + + NM_ATT_BS11_ENA_INTERF_CLASS ('66'H), + NM_ATT_BS11_ENA_INT_INTEC_HANDO ('67'H), + NM_ATT_BS11_ENA_INT_INTRC_HANDO ('68'H), + NM_ATT_BS11_ENA_MS_PWR_CTRL ('69'H), + NM_ATT_BS11_ENA_PWR_BDGT_HO ('6a'H), + NM_ATT_BS11_ENA_PWR_CTRL_RLFW ('6b'H), + NM_ATT_BS11_ENA_RXLEV_HO ('6c'H), + NM_ATT_BS11_ENA_RXQUAL_HO ('6d'H), + NM_ATT_BS11_FACCH_QUAL ('6e'H), + + NM_ATT_IPACC_DST_IP ('80'H), + NM_ATT_IPACC_DST_IP_PORT ('81'H), + NM_ATT_IPACC_SSRC ('82'H), + NM_ATT_IPACC_RTP_PAYLD_TYPE ('83'H), + NM_ATT_IPACC_BASEB_ID ('84'H), + NM_ATT_IPACC_STREAM_ID ('85'H), + NM_ATT_IPACC_NV_FLAGS ('86'H), + NM_ATT_IPACC_FREQ_CTRL ('87'H), + NM_ATT_IPACC_PRIM_OML_CFG ('88'H), + NM_ATT_IPACC_SEC_OML_CFG ('89'H), + NM_ATT_IPACC_IP_IF_CFG ('8a'H), + NM_ATT_IPACC_IP_GW_CFG ('8b'H), + NM_ATT_IPACC_IN_SERV_TIME ('8c'H), + NM_ATT_IPACC_TRX_BTS_ASS ('8d'H), + NM_ATT_IPACC_LOCATION ('8e'H), /* string describing location */ + NM_ATT_IPACC_PAGING_CFG ('8f'H), + NM_ATT_IPACC_FILE_DATA ('90'H), + NM_ATT_IPACC_UNIT_ID ('91'H), /* Site/BTS/TRX */ + NM_ATT_IPACC_PARENT_UNIT_ID ('92'H), + NM_ATT_IPACC_UNIT_NAME ('93'H), /* default: nbts- */ + NM_ATT_IPACC_SNMP_CFG ('94'H), + NM_ATT_IPACC_PRIM_OML_CFG_LIST ('95'H), + NM_ATT_IPACC_PRIM_OML_FB_TOUT ('96'H), + NM_ATT_IPACC_CUR_SW_CFG ('97'H), + NM_ATT_IPACC_TIMING_BUS ('98'H), + NM_ATT_IPACC_CGI ('99'H), + NM_ATT_IPACC_RAC ('9a'H), + NM_ATT_IPACC_OBJ_VERSION ('9b'H), + NM_ATT_IPACC_GPRS_PAGING_CFG ('9c'H), + NM_ATT_IPACC_NSEI ('9d'H), + NM_ATT_IPACC_BVCI ('9e'H), + NM_ATT_IPACC_NSVCI ('9f'H), + NM_ATT_IPACC_NS_CFG ('a0'H), + NM_ATT_IPACC_BSSGP_CFG ('a1'H), + NM_ATT_IPACC_NS_LINK_CFG ('a2'H), + NM_ATT_IPACC_RLC_CFG ('a3'H), + NM_ATT_IPACC_ALM_THRESH_LIST ('a4'H), + NM_ATT_IPACC_MONIT_VAL_LIST ('a5'H), + NM_ATT_IPACC_TIB_CONTROL ('a6'H), + NM_ATT_IPACC_SUPP_FEATURES ('a7'H), + NM_ATT_IPACC_CODING_SCHEMES ('a8'H), + NM_ATT_IPACC_RLC_CFG_2 ('a9'H), + NM_ATT_IPACC_HEARTB_TOUT ('aa'H), + NM_ATT_IPACC_UPTIME ('ab'H), + NM_ATT_IPACC_RLC_CFG_3 ('ac'H), + NM_ATT_IPACC_SSL_CFG ('ad'H), + NM_ATT_IPACC_SEC_POSSIBLE ('ae'H), + NM_ATT_IPACC_IML_SSL_STATE ('af'H), + NM_ATT_IPACC_REVOC_DATE ('b0'H), + + +/* + NM_ATT_BS11_RF_RES_IND_PER ('8f'H), + + NM_ATT_BS11_RX_LEV_MIN_CELL ('90'H), + NM_ATT_BS11_ABIS_EXT_TIME ('91'H), + NM_ATT_BS11_TIMER_HO_REQUEST ('92'H), + NM_ATT_BS11_TIMER_NCELL ('93'H), + NM_ATT_BS11_TSYNC ('94'H), + NM_ATT_BS11_TTRAU ('95'H), + NM_ATT_BS11_EMRG_CFG_MEMBER ('9b'H), + NM_ATT_BS11_TRX_AREA ('9f'H), + + NM_ATT_BS11_BCCH_RECONF ('d7'H), + NM_ATT_BS11_BIT_ERR_THESH ('a0'H), + NM_ATT_BS11_BOOT_SW_VERS ('a1'H), + NM_ATT_BS11_CCLK_ACCURACY ('a3'H), + NM_ATT_BS11_CCLK_TYPE ('a4'H), + NM_ATT_BS11_INP_IMPEDANCE ('aa'H), + NM_ATT_BS11_L1_PROT_TYPE ('ab'H), + NM_ATT_BS11_LINE_CFG ('ac'H), + NM_ATT_BS11_LI_PORT_1 ('ad'H), + NM_ATT_BS11_LI_PORT_2 ('ae'H), + + NM_ATT_BS11_L1_REM_ALM_TYPE ('b0'H), + NM_ATT_BS11_SW_LOAD_INTENDED ('bb'H), + NM_ATT_BS11_SW_LOAD_SAFETY ('bc'H), + NM_ATT_BS11_SW_LOAD_STORED ('bd'H), + + NM_ATT_BS11_VENDOR_NAME ('c1'H), + NM_ATT_BS11_HOPPING_MODE ('c5'H), + NM_ATT_BS11_LMT_LOGON_SESSION ('c6'H), + NM_ATT_BS11_LMT_LOGIN_TIME ('c7'H), + NM_ATT_BS11_LMT_USER_ACC_LEV ('c8'H), + NM_ATT_BS11_LMT_USER_NAME ('c9'H), + + NM_ATT_BS11_L1_CONTROL_TS ('d8'H), + NM_ATT_BS11_RADIO_MEAS_GRAN ('dc'H), + NM_ATT_BS11_RADIO_MEAS_REP ('dd'H), + + NM_ATT_BS11_SH_LAPD_INT_TIMER ('e8'H), + + NM_ATT_BS11_BTS_STATE ('f0'H), + NM_ATT_BS11_E1_STATE ('f1'H), + NM_ATT_BS11_PLL ('f2'H), + NM_ATT_BS11_RX_OFFSET ('f3'H), + NM_ATT_BS11_ANT_TYPE ('f4'H), + NM_ATT_BS11_PLL_MODE ('fc'H), + NM_ATT_BS11_PASSWORD ('fd'H), +*/ + + /* osmocom (osmo-bts) specific attributes, used in combination + * with the "org.osmocom" manufacturer identification */ + NM_ATT_OSMO_REDUCEPOWER ('fe'H) /* TLV_TYPE_TV */ + +} with { variant "FIELDLENGTH(8)" }; + +/* Section 9.4.4 */ +type enumerated OML_FOM_AdministrativeState { + NM_STATE_LOCKED ('01'H), + NM_STATE_UNLOCKED ('02'H), + NM_STATE_SHUTDOWN ('03'H), + NM_STATE_NULL ('ff'H) +} with { variant "FIELDLENGTH(8)" }; + +/* Section 9.4.7 */ +type enumerated OML_FOM_AvailabilityStatus { + NM_AVSTATE_IN_TEST (1), + NM_AVSTATE_POWER_OFF (2), + NM_AVSTATE_OFF_LINE (3), + NM_AVSTATE_DEPENDENCY (5), + NM_AVSTATE_DEGRADED (6), + NM_AVSTATE_NOT_INSTALLED (7), + NM_AVSTATE_OK (255) +} with { variant "FIELDLENGTH(8)" }; + +type enumerated OML_FOM_OperationalState { + NM_OPSTATE_DISABLED (1), + NM_OPSTATE_ENABLED (2), + NM_OPSTATE_NULL (255) +} with { variant "FIELDLENGTH(8)" }; + +/* Section 9.4.13 */ +type enumerated OML_ChannelCombination { + NM_CHANC_TCHFull ('00'H), /* TCH/F + TCH/H + SACCH/TF */ + NM_CHANC_TCHHalf ('01'H), /* TCH/H(0,1) + FACCH/H(0,1) + SACCH/TH(0,1) */ + NM_CHANC_TCHHalf2 ('02'H), /* TCH/H(0) + FACCH/H(0) + SACCH/TH(0) + TCH/H(1) */ + NM_CHANC_SDCCH ('03'H), /* SDCCH/8 + SACCH/8 */ + NM_CHANC_mainBCCH ('04'H), /* FCCH + SCH + BCCH + CCCH */ + NM_CHANC_BCCHComb ('05'H), /* FCCH + SCH + BCCH + CCCH + SDCCH/4 + SACCH/C4 */ + NM_CHANC_BCCH ('06'H), /* BCCH + CCCH */ + NM_CHANC_BCCH_CBCH ('07'H), /* CHANC_BCCHComb + CBCH */ + NM_CHANC_SDCCH_CBCH ('08'H), /* CHANC_SDCCH8 + CBCH */ + /* ip.access + Osmocom */ + NM_CHANC_IPAC_bPDCH ('0b'H), /* PBCCH + PCCCH + PDTCH/F + PACCH/F + PTCCH/F */ + NM_CHANC_IPAC_cPDCH ('0c'H), /* PBCCH + PDTCH/F + PACCH/F + PTCCH/F */ + NM_CHANC_IPAC_PDCH ('0d'H), /* PDTCH/F + PACCH/F + PTCCH/F */ + NM_CHANC_IPAC_TCHFull_PDCH ('80'H), + NM_CHANC_IPAC_TCHFull_TCHHalf ('81'H), + /* Osmocom */ + NM_CHANC_OSMO_TCHFull_TCHHalf_PDCH ('90'H) +} with { variant "FIELDLENGTH(8)" }; + +/* Section 9.4.16 */ +type enumerated OML_FOM_EventType { + NM_EVT_COMM_FAIL (1), + NM_EVT_QOS_FAIL (2), + NM_EVT_PROC_FAIL (3), + NM_EVT_EQUIP_FAIL (4), + NM_EVT_ENV_FAIL (5) +} with { variant "FIELDLENGTH(8)" }; + +/* Section 9.4.63 */ +type enumerated OML_FOM_Severity { + NM_SEVER_CEASED (0), + NM_SEVER_CRITICAL (1), + NM_SEVER_MAJOR (2), + NM_SEVER_MINOR (3), + NM_SEVER_WARNING (4), + NM_SEVER_INDETERMINATE (5) +} with { variant "FIELDLENGTH(8)" }; + +/* Section 9.4.36 */ +type enumerated OML_FOM_NackCause { + /* General Nack Causes */ + NM_NACK_INCORR_STRUCT ('01'H), + NM_NACK_MSGTYPE_INVAL ('02'H), + NM_NACK_OBJCLASS_INVAL ('05'H), + NM_NACK_OBJCLASS_NOTSUPP ('06'H), + NM_NACK_BTSNR_UNKN ('07'H), + NM_NACK_TRXNR_UNKN ('08'H), + NM_NACK_OBJINST_UNKN ('09'H), + NM_NACK_ATTRID_INVAL ('0c'H), + NM_NACK_ATTRID_NOTSUPP ('0d'H), + NM_NACK_PARAM_RANGE ('0e'H), + NM_NACK_ATTRLIST_INCONSISTENT ('0f'H), + NM_NACK_SPEC_IMPL_NOTSUPP ('10'H), + NM_NACK_CANT_PERFORM ('11'H), + /* Specific Nack Causes */ + NM_NACK_RES_NOTIMPL ('19'H), + NM_NACK_RES_NOTAVAIL ('1a'H), + NM_NACK_FREQ_NOTAVAIL ('1b'H), + NM_NACK_TEST_NOTSUPP ('1c'H), + NM_NACK_CAPACITY_RESTR ('1d'H), + NM_NACK_PHYSCFG_NOTPERFORM ('1e'H), + NM_NACK_TEST_NOTINIT ('1f'H), + NM_NACK_PHYSCFG_NOTRESTORE ('20'H), + NM_NACK_TEST_NOSUCH ('21'H), + NM_NACK_TEST_NOSTOP ('22'H), + NM_NACK_MSGINCONSIST_PHYSCFG ('23'H), + NM_NACK_FILE_INCOMPLETE ('25'H), + NM_NACK_FILE_NOTAVAIL ('26'H), + NM_NACK_FILE_NOTACTIVATE ('27'H), + NM_NACK_REQ_NOT_GRANT ('28'H), + NM_NACK_WAIT ('29'H), + NM_NACK_NOTH_REPORT_EXIST ('2a'H), + NM_NACK_MEAS_NOTSUPP ('2b'H), + NM_NACK_MEAS_NOTSTART ('2c'H) +} with { variant "FIELDLENGTH(8)" }; + + + +type record OML_FOM { + uint8_t len, + OML_FOM_Header hdr, + OML_FOM_IE_List ies optional +} with { variant (len) "LENGTHTO(hdr,ies)" }; + +type record OML_IE_LV { + uint8_t len, + octetstring payload +} with { variant (len) "LENGTHTO(payload)" }; + +type record OML_IE_L16V { + uint16_t len, + octetstring payload +} with { variant (len) "LENGTHTO(payload)" }; + +template (value) OML_IE_L16V ts_OML_IE_L16V(template (value) uint16_t len, template (value) octetstring payload) := { + len := len, + payload := payload +} +template OML_IE_L16V tr_OML_IE_L16V(template uint16_t len, template octetstring payload) := { + len := len, + payload := payload +} + + +type record OML_IE_AvailStatus { + uint16_t len, + OML_FOM_AvailabilityStatus avail_status +} with { variant (len) "LENGTHTO(avail_status)" }; + +/* Section 9.4.1 */ +type record OML_FOM_AbisChannel { + uint8_t bts_port_nr, + uint8_t timeslot_nr, + OML_FOM_Subslot subslot_nr +}; +type enumerated OML_FOM_Subslot { + NM_SUBSLOT_A (0), + NM_SUBSLOT_B (1), + NM_SUBSLOT_C (2), + NM_SUBSLOT_D (3), + NM_SUBSLOT_64k (255) +} with { variant "FIELDLENGTH(8)" }; + +/* Section 9.4.5 */ +type record of uint16_t OML_ArfcnList; +type record OML_IE_ArfcnList { + uint16_t len, + OML_ArfcnList arfcn_list +}; + +/* Section 9.4.25 */ +type record length(6) of uint8_t OML_FOM_InterfLevBoundaries; + +/* Section 9.4.42 */ +type record length(3) of uint8_t OML_FOM_PowerOuthputThresholds; + +/* Section 9.4.43 */ +type enumerated OML_FOM_ProbableCauseType { + NM_PCAUSE_T_X721 (1), + NM_PCAUSE_T_GSM (2), + NM_PCAUSE_T_MANUF (3) +} with { variant "FIELDLENGTH(8)" }; +type record OML_FOM_ProbableCause { + OML_FOM_ProbableCauseType cause_type, + OCT2 cause_value +}; + +/* Section 9.4.53 */ +type record OML_FOM_T200 { + uint8_t sdcch_5ms, + uint8_t facch_f_5ms, + uint8_t facch_h_5ms, + uint8_t sacch_tch_sapi0_10ms, + uint8_t sacch_sdcch_10ms, + uint8_t sdcch_sapi3_5ms, + uint8_t sacch_rch_sapi3_10ms +}; + +type union OML_FOM_IE_Body { + OML_FOM_AbisChannel abis_channel, + OML_FOM_AdministrativeState adm_state, + OCT1 auton_report, + uint16_t bcch_arfcn, + uint8_t bsic, + uint8_t air_timer, + uint8_t load_ind_period, + uint8_t load_threshold, + OML_ChannelCombination chan_comb, + OML_FOM_EventType event_type, + uint16_t gsm_time, + uint8_t hsn, + uint8_t intave_param, + OML_FOM_InterfLevBoundaries interf_bound, + uint8_t maio, + uint8_t manuf_state, + uint8_t max_ta, + OML_FOM_NackCause nack_causes, + uint8_t ny1, + OML_FOM_OperationalState opstate, + uint8_t power_class, + OML_FOM_PowerOuthputThresholds power_thresh, + OML_FOM_ProbableCause prob_cause, + uint8_t rach_b_thresh, + uint16_t loadavg_slots, + uint8_t radio_subch, + uint8_t rf_maxpwr_r, + uint8_t spec_prob, + uint16_t start_time, + OML_FOM_T200 t200, + uint8_t tei, + uint8_t test_no, + OCT2 vswr_thresh, + uint8_t window_size, + uint8_t tsc, + OML_FOM_Severity severity, + uint8_t outst_alarm, + uint8_t meas_type, + + OML_IE_AvailStatus avail_status, + OML_IE_ArfcnList arfcn_list, + + uint32_t ip, + uint16_t portnr, + uint8_t stream_id, + OCT6 sec_oml_cfg, + OCT8 ip_if_cfg, + OCT12 ip_gw_cfg, + uint32_t in_serv_time, + uint16_t paging_cfg, + OCT2 freq_ctrl, + + OML_IE_L16V other +}; + +type record OML_FOM_IE { + OML_FOM_IE_Type iei, + OML_FOM_IE_Body body +} with { variant (body) "CROSSTAG( + abis_channel, iei = NM_ATT_ABIS_CHANNEL; + adm_state, iei = NM_ATT_ADM_STATE; + auton_report, iei = NM_ATT_AUTON_REPORT; + bcch_arfcn, iei = NM_ATT_BCCH_ARFCN; + bsic, iei = NM_ATT_BSIC; + air_timer, iei = NM_ATT_BTS_AIR_TIMER; + load_ind_period, iei = NM_ATT_CCCH_L_I_P; + load_threshold, iei = NM_ATT_CCCH_L_T; + chan_comb, iei = NM_ATT_CHAN_COMB; + event_type, iei = NM_ATT_EVENT_TYPE; + gsm_time, iei = NM_ATT_GSM_TIME; + hsn, iei = NM_ATT_HSN; + intave_param, iei = NM_ATT_INTAVE_PARAM; + interf_bound, iei = NM_ATT_INTERF_BOUND; + maio, iei = NM_ATT_MAIO; + manuf_state, iei = NM_ATT_MANUF_STATE; + max_ta, iei = NM_ATT_MAX_TA; + nack_causes, iei = NM_ATT_NACK_CAUSES; + ny1, iei = NM_ATT_NY1; + opstate, iei = NM_ATT_OPER_STATE; + power_class, iei = NM_ATT_POWER_CLASS; + power_thresh, iei = NM_ATT_POWER_THRESH; + prob_cause, iei = NM_ATT_PROB_CAUSE; + rach_b_thresh, iei = NM_ATT_RACH_B_THRESH; + loadavg_slots, iei = NM_ATT_LDAVG_SLOTS; + radio_subch, iei = NM_ATT_RAD_SUBC; + rf_maxpwr_r, iei = NM_ATT_RF_MAXPOWR_R; + spec_prob, iei = NM_ATT_SPEC_PROB; + start_time, iei = NM_ATT_START_TIME; + t200, iei = NM_ATT_T200; + tei, iei = NM_ATT_TEI; + test_no, iei = NM_ATT_TEST_NO; + vswr_thresh, iei = NM_ATT_VSWR_THRESH; + window_size, iei = NM_ATT_WINDOW_SIZE; + tsc, iei = NM_ATT_TSC; + severity, iei = NM_ATT_SEVERITY; + outst_alarm, iei = NM_ATT_OUTST_ALARM; + meas_type, iei = NM_ATT_MEAS_TYPE; + + avail_status, iei = NM_ATT_AVAIL_STATUS; + arfcn_list, iei = NM_ATT_ARFCN_LIST; + + ip, iei = NM_ATT_IPACC_DST_IP; + portnr, iei = NM_ATT_IPACC_DST_IP_PORT; + stream_id, iei = NM_ATT_IPACC_STREAM_ID; + sec_oml_cfg, iei = NM_ATT_IPACC_SEC_OML_CFG; + ip_if_cfg, iei = NM_ATT_IPACC_IP_IF_CFG; + ip_gw_cfg, iei = NM_ATT_IPACC_IP_GW_CFG; + in_serv_time, iei = NM_ATT_IPACC_IN_SERV_TIME; + paging_cfg, iei = NM_ATT_IPACC_PAGING_CFG; + freq_ctrl, iei = NM_ATT_IPACC_FREQ_CTRL; + + other, OTHERWISE; + )" }; + +type record of OML_FOM_IE OML_FOM_IE_List; + +type record OML_MANUF_IPA { + uint8_t len, + uint8_t str_len, + charstring manuf_str, + OML_FOM_Header hdr, + OML_FOM_IE_List ies optional +} with { variant (len) "LENGTHTO(hdr,ies)" + variant (str_len) "LENGTHTO(manuf_str)" }; + +type union OML_MANUF { + OML_MANUF_IPA ipa +}; + + +external function enc_OML_PDU(in OML_PDU msg) return octetstring + with { extension "prototype(convert) encode(RAW)" }; +external function dec_OML_PDU(in octetstring stream) return OML_PDU + with { extension "prototype(convert) decode(RAW)" }; + + + +template (value) OML_FOM_IE ts_OML_IE(OML_FOM_IE_Type iei, template (value) OML_FOM_IE_Body body) := { + iei := iei, + body := body +} +template OML_FOM_IE tr_OML_IE(OML_FOM_IE_Type iei, template OML_FOM_IE_Body body) := { + iei := ?, + body := body +} + +template OML_PDU tr_OML_FOM_only := { + mdisc := ABIS_OM_MDISC_FOM, + placement := ABIS_OM_PLACEMENT_ONLY, + sequence := 0, + u := ? +} + +template OML_PDU tr_OML_MsgType(template OML_FOM_MessageType msg_type, + template OML_FOM_ObjectClass obj_class := ?, + template OML_FOM_ObjectInstance obj_inst := ?, + template OML_FOM_IE_List ies := *) +modifies tr_OML_FOM_only := { + u := { + fom := { + hdr := { + msg_type := msg_type, + obj_class := obj_class, + obj_inst := obj_inst + }, + ies := ies + } + } +} +template (value) OML_PDU ts_OML_MsgType(template (value) OML_FOM_MessageType msg_type, + template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (omit) OML_FOM_IE_List ies := omit) := { + mdisc := ABIS_OM_MDISC_FOM, + placement := ABIS_OM_PLACEMENT_ONLY, + sequence := 0, + u := { + fom := { + len := 0, /* overwritten */ + hdr := ts_OML_FomHeader(msg_type, obj_class, obj_inst), + ies := ies + } + } +} + + +template (value) OML_FOM_Header ts_OML_FomHeader(template (value) OML_FOM_MessageType msg_type, + template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst) := { + msg_type := msg_type, + obj_class := obj_class, + obj_inst := obj_inst +} +template OML_FOM_Header tr_OML_FomHeader(template OML_FOM_MessageType msg_type, + template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst) := { + msg_type := msg_type, + obj_class := obj_class, + obj_inst := obj_inst +} + + +template (value) OML_FOM_ObjectInstance ts_OML_ObjectInstance(uint8_t bts, uint8_t trx, uint8_t ts) := { + bts_nr := bts, + trx_nr := trx, + ts_nr := ts +} +template OML_FOM_ObjectInstance tr_OML_ObjectInstance(template uint8_t bts, template uint8_t trx, + template uint8_t ts) := { + bts_nr := bts, + trx_nr := trx, + ts_nr := ts +} + + + +template (value) OML_PDU ts_OML_IPA_MsgType(template (value) OML_FOM_MessageType msg_type, + template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (omit) OML_FOM_IE_List ies := omit) := { + mdisc := ABIS_OM_MDISC_MANUF, + placement := ABIS_OM_PLACEMENT_ONLY, + sequence := 0, + u := { + manuf := { + ipa := { + len := 0, /* overwritten */ + str_len := 13, + manuf_str := "com.ipaccess" & char(0,0,0,0), + hdr := ts_OML_FomHeader(msg_type, obj_class, obj_inst), + ies := ies + } + } + } +} +template OML_PDU tr_OML_IPA_MsgType(template OML_FOM_MessageType msg_type := ?, + template OML_FOM_ObjectClass obj_class := ?, + template OML_FOM_ObjectInstance obj_inst := ?, + template OML_FOM_IE_List ies := *) := { + mdisc := ABIS_OM_MDISC_MANUF, + placement := ABIS_OM_PLACEMENT_ONLY, + sequence := 0, + u := { + manuf := { + ipa := { + len := ?, + str_len := 13, + manuf_str := "com.ipaccess" & char(0,0,0,0), + hdr := tr_OML_FomHeader(msg_type, obj_class, obj_inst), + ies := ies + } + } + } +} + +/* 8.8.1 State Changed Event Report */ +template (value) OML_PDU ts_OML_StateChgEvtRep(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (value) OML_FOM_OperationalState opstate, + template (value) OML_FOM_AvailabilityStatus avstate) := + ts_OML_MsgType(NM_MT_STATECHG_EVENT_REP, obj_class, obj_inst, { + ts_OML_IE(NM_ATT_OPER_STATE, OML_FOM_IE_Body:{opstate := opstate}), + ts_OML_IE(NM_ATT_AVAIL_STATUS, OML_FOM_IE_Body:{avail_status := {len:= 1, avail_status := avstate}}) + }); +template OML_PDU tr_OML_StateChgEvtRep(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst, + template OML_FOM_OperationalState opstate := ?, + template OML_FOM_AvailabilityStatus avstate := ?) := + tr_OML_MsgType(NM_MT_STATECHG_EVENT_REP, obj_class, obj_inst, { + tr_OML_IE(NM_ATT_OPER_STATE, OML_FOM_IE_Body:{opstate := opstate}), + tr_OML_IE(NM_ATT_AVAIL_STATUS, OML_FOM_IE_Body:{avail_status := {len := 1, avail_status := avstate}}) + }); + +/* 8.8.2 Failure Event Report */ +template (value) OML_PDU ts_OML_FailureEvtRep(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (value) OML_FOM_EventType evt_type, + template (value) OML_FOM_Severity severity, + template (value) OML_FOM_ProbableCause cause) := + ts_OML_MsgType(NM_MT_FAILURE_EVENT_REP, obj_class, obj_inst, { + ts_OML_IE(NM_ATT_EVENT_TYPE, OML_FOM_IE_Body:{event_type := evt_type}), + ts_OML_IE(NM_ATT_SEVERITY, OML_FOM_IE_Body:{severity := severity}), + ts_OML_IE(NM_ATT_PROB_CAUSE, OML_FOM_IE_Body:{prob_cause := cause}) + }); +template OML_PDU tr_OML_FailureEvtRep(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst, + template OML_FOM_EventType evt_type, + template OML_FOM_Severity severity, + template OML_FOM_ProbableCause cause) := + tr_OML_MsgType(NM_MT_FAILURE_EVENT_REP, obj_class, obj_inst, { + tr_OML_IE(NM_ATT_EVENT_TYPE, OML_FOM_IE_Body:{event_type := evt_type}), + tr_OML_IE(NM_ATT_SEVERITY, OML_FOM_IE_Body:{severity := severity}), + tr_OML_IE(NM_ATT_PROB_CAUSE, OML_FOM_IE_Body:{prob_cause := cause}), + * + }); + +/* 8.8.5 Change Administrative State */ +template (value) OML_PDU ts_OML_ChangeAdmState(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (value) OML_FOM_AdministrativeState adm_st) := + ts_OML_MsgType(NM_MT_CHG_ADM_STATE, obj_class, obj_inst, { + ts_OML_IE(NM_ATT_ADM_STATE, OML_FOM_IE_Body:{adm_state := adm_st}) + }); +template OML_PDU tr_OML_ChangeAdmState(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst, + template OML_FOM_AdministrativeState adm_st) := + tr_OML_MsgType(NM_MT_CHG_ADM_STATE, obj_class, obj_inst, { + tr_OML_IE(NM_ATT_ADM_STATE, OML_FOM_IE_Body:{adm_state := adm_st}) + }); + +template (value) OML_PDU ts_OML_ChangeAdmStateACK(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (value) OML_FOM_AdministrativeState adm_st) := + ts_OML_MsgType(NM_MT_CHG_ADM_STATE_ACK, obj_class, obj_inst, { + ts_OML_IE(NM_ATT_ADM_STATE, OML_FOM_IE_Body:{adm_state := adm_st}) + }); +template OML_PDU tr_OML_ChangeAdmStateACK(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst, + template OML_FOM_AdministrativeState adm_st) := + tr_OML_MsgType(NM_MT_CHG_ADM_STATE_ACK, obj_class, obj_inst, { + tr_OML_IE(NM_ATT_ADM_STATE, OML_FOM_IE_Body:{adm_state := adm_st}) + }); +template (value) OML_PDU ts_OML_ChangeAdmStateNACK(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (value) OML_FOM_NackCause cause) := + ts_OML_MsgType(NM_MT_CHG_ADM_STATE_NACK, obj_class, obj_inst, { + ts_OML_IE(NM_ATT_NACK_CAUSES, OML_FOM_IE_Body:{nack_causes := cause}) + }); +template OML_PDU tr_OML_ChangeAdmStateNACK(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst, + template OML_FOM_NackCause cause := ?) := + tr_OML_MsgType(NM_MT_CHG_ADM_STATE_NACK, obj_class, obj_inst, { + *, + tr_OML_IE(NM_ATT_NACK_CAUSES, OML_FOM_IE_Body:{nack_causes := cause}) + }); + + + + + +/* 8.9.2 Opstart */ +template (value) OML_PDU ts_OML_Opstart(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst) := + ts_OML_MsgType(NM_MT_OPSTART, obj_class, obj_inst); +template OML_PDU tr_OML_Opstart(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst) := + tr_OML_MsgType(NM_MT_OPSTART, obj_class, obj_inst); + +template (value) OML_PDU ts_OML_OpstartACK(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst) := + ts_OML_MsgType(NM_MT_OPSTART_ACK, obj_class, obj_inst); +template OML_PDU tr_OML_OpstartACK(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst) := + tr_OML_MsgType(NM_MT_OPSTART_ACK, obj_class, obj_inst); + +template (value) OML_PDU ts_OML_OpstartNACK(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (value) OML_FOM_NackCause cause) := + ts_OML_MsgType(NM_MT_OPSTART_NACK, obj_class, obj_inst, { + ts_OML_IE(NM_ATT_NACK_CAUSES, OML_FOM_IE_Body:{nack_causes := cause}) + }); +template OML_PDU tr_OML_OpstartNACK(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst, + template OML_FOM_NackCause cause := ?) := + tr_OML_MsgType(NM_MT_OPSTART_NACK, obj_class, obj_inst, { + tr_OML_IE(NM_ATT_NACK_CAUSES, OML_FOM_IE_Body:{nack_causes := cause}) + }); + +/* 8.3.5 SW Activate Request */ +template (value) OML_PDU ts_OML_SwActReq(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (value) octetstring hw_config, + template (value) octetstring sw_config) := + ts_OML_MsgType(NM_MT_SW_ACT_REQ, obj_class, obj_inst, { + ts_OML_IE(NM_ATT_HW_CONFIG, OML_FOM_IE_Body:{other := ts_OML_IE_L16V(0, hw_config)}), + ts_OML_IE(NM_ATT_SW_CONFIG, OML_FOM_IE_Body:{other := ts_OML_IE_L16V(0, sw_config)}) + }); +template OML_PDU tr_OML_SwActReq(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst, + template octetstring hw_config, + template octetstring sw_config) := + tr_OML_MsgType(NM_MT_SW_ACT_REQ, obj_class, obj_inst, { + tr_OML_IE(NM_ATT_HW_CONFIG, OML_FOM_IE_Body:{other := tr_OML_IE_L16V(?, hw_config)}), + tr_OML_IE(NM_ATT_SW_CONFIG, OML_FOM_IE_Body:{other := tr_OML_IE_L16V(?, sw_config)}) + }); + +template (value) OML_PDU ts_OML_SwActReqACK(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (value) octetstring hw_config, + template (value) octetstring sw_config) := + ts_OML_MsgType(NM_MT_SW_ACT_REQ_ACK, obj_class, obj_inst, { + ts_OML_IE(NM_ATT_HW_CONFIG, OML_FOM_IE_Body:{other := ts_OML_IE_L16V(0, hw_config)}), + ts_OML_IE(NM_ATT_SW_CONFIG, OML_FOM_IE_Body:{other := ts_OML_IE_L16V(0, sw_config)}) + }); +template OML_PDU tr_OML_SwActReqACK(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst, + template octetstring hw_config, + template octetstring sw_config) := + tr_OML_MsgType(NM_MT_SW_ACT_REQ_ACK, obj_class, obj_inst, { + tr_OML_IE(NM_ATT_HW_CONFIG, OML_FOM_IE_Body:{other := tr_OML_IE_L16V(?, hw_config)}), + tr_OML_IE(NM_ATT_SW_CONFIG, OML_FOM_IE_Body:{other := tr_OML_IE_L16V(?, sw_config)}) + }); + +/* 8.3.6 Activate SW */ +template (value) OML_PDU ts_OML_ActivateSw(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (value) octetstring file_id, + template (value) octetstring sw_desc) := + ts_OML_MsgType(NM_MT_ACTIVATE_SW, obj_class, obj_inst, { + ts_OML_IE(NM_ATT_FILE_ID, OML_FOM_IE_Body:{other := ts_OML_IE_L16V(0, file_id)}), + ts_OML_IE(NM_ATT_SW_DESCR, OML_FOM_IE_Body:{other := ts_OML_IE_L16V(0, sw_desc)}) + }); +template OML_PDU tr_OML_ActivateSw(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst, + template octetstring file_id, + template octetstring sw_desc) := + tr_OML_MsgType(NM_MT_ACTIVATE_SW, obj_class, obj_inst, { + tr_OML_IE(NM_ATT_FILE_ID, OML_FOM_IE_Body:{other := tr_OML_IE_L16V(?, file_id)}), + tr_OML_IE(NM_ATT_SW_DESCR, OML_FOM_IE_Body:{other := tr_OML_IE_L16V(?, sw_desc)}) + }); + +template (value) OML_PDU ts_OML_ActivateSwACK(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (value) octetstring file_id, + template (value) octetstring sw_desc) := + ts_OML_MsgType(NM_MT_ACTIVATE_SW_ACK, obj_class, obj_inst, { + ts_OML_IE(NM_ATT_FILE_ID, OML_FOM_IE_Body:{other := ts_OML_IE_L16V(0, file_id)}), + ts_OML_IE(NM_ATT_SW_DESCR, OML_FOM_IE_Body:{other := ts_OML_IE_L16V(0, sw_desc)}) + }); +template OML_PDU tr_OML_ActivateSwACK(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst, + template octetstring file_id, + template octetstring sw_desc) := + tr_OML_MsgType(NM_MT_ACTIVATE_SW_ACK, obj_class, obj_inst, { + tr_OML_IE(NM_ATT_FILE_ID, OML_FOM_IE_Body:{other := tr_OML_IE_L16V(?, file_id)}), + tr_OML_IE(NM_ATT_SW_DESCR, OML_FOM_IE_Body:{other := tr_OML_IE_L16V(?, sw_desc)}) + }); + +/* 8.3.7 SW Activated Report */ +template (value) OML_PDU ts_OML_SwActivatedRep(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst) := + ts_OML_MsgType(NM_MT_SW_ACTIVATED_REP, obj_class, obj_inst, {}); +template OML_PDU tr_OML_SwActivatedRep(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst) := + tr_OML_MsgType(NM_MT_SW_ACTIVATED_REP, obj_class, obj_inst, *); + + +/* 8.6.1 Set BTS Attributes */ +template (value) OML_PDU ts_OML_SetBtsAttr(template (value) OML_FOM_ObjectInstance obj_inst, + template (value) OML_FOM_IE_List ies) := + ts_OML_MsgType(NM_MT_SET_BTS_ATTR, NM_OC_BTS, obj_inst, ies); +template OML_PDU tr_OML_SetBtsAttr(template OML_FOM_ObjectInstance obj_inst, + template OML_FOM_IE_List ies) := + tr_OML_MsgType(NM_MT_SET_BTS_ATTR, NM_OC_BTS, obj_inst, ies); + + +/* 8.6.2 Set Radio Carrier Attributes */ +template (value) OML_PDU ts_OML_SetRadioAttr(template (value) OML_FOM_ObjectInstance obj_inst, + template (value) uint8_t maxpwr_r, + template (value) OML_ArfcnList arfcn_list) := + ts_OML_MsgType(NM_MT_SET_RADIO_ATTR, NM_OC_RADIO_CARRIER, obj_inst, { + ts_OML_IE(NM_ATT_RF_MAXPOWR_R, OML_FOM_IE_Body:{rf_maxpwr_r := maxpwr_r}), + ts_OML_IE(NM_ATT_ARFCN_LIST, OML_FOM_IE_Body:{arfcn_list := {len:=0, arfcn_list:=arfcn_list}}) + }); +template OML_PDU tr_OML_SetRadioAttr(template OML_FOM_ObjectInstance obj_inst, + template uint8_t maxpwr_r, + template OML_ArfcnList arfcn_list) := + tr_OML_MsgType(NM_MT_SET_RADIO_ATTR, NM_OC_RADIO_CARRIER, obj_inst, { + tr_OML_IE(NM_ATT_RF_MAXPOWR_R, OML_FOM_IE_Body:{rf_maxpwr_r := maxpwr_r}), + tr_OML_IE(NM_ATT_ARFCN_LIST, OML_FOM_IE_Body:{arfcn_list := {len:=0, arfcn_list:=arfcn_list}}) + }); + + +/* 8.6.3 Set Channel Attributes */ +template (value) OML_PDU ts_OML_SetChanAttr(template (value) OML_FOM_ObjectInstance obj_inst, + template (value) OML_ChannelCombination chan_comb, + template (value) uint8_t tsc) := + ts_OML_MsgType(NM_MT_SET_CHAN_ATTR, NM_OC_CHANNEL, obj_inst, { + ts_OML_IE(NM_ATT_CHAN_COMB, OML_FOM_IE_Body:{chan_comb := chan_comb}), + ts_OML_IE(NM_ATT_TSC, OML_FOM_IE_Body:{tsc := tsc}) + }); +template OML_PDU tr_OML_SetChanAttr(template OML_FOM_ObjectInstance obj_inst, + template OML_ChannelCombination chan_comb, + template uint8_t tsc) := + tr_OML_MsgType(NM_MT_SET_CHAN_ATTR, NM_OC_CHANNEL, obj_inst, { + tr_OML_IE(NM_ATT_CHAN_COMB, OML_FOM_IE_Body:{chan_comb := chan_comb}), + *, + tr_OML_IE(NM_ATT_TSC, OML_FOM_IE_Body:{tsc := tsc}) + }); + + +/* 8.11.1 Get Attributes */ +template (value) OML_PDU ts_OML_GetAttributes(template (value) OML_FOM_ObjectClass obj_class, + template (value) OML_FOM_ObjectInstance obj_inst, + template (value) octetstring req_attr) := + ts_OML_MsgType(NM_MT_GET_ATTR, obj_class, obj_inst, { + ts_OML_IE(NM_ATT_LIST_REQ_ATTR, OML_FOM_IE_Body:{other := ts_OML_IE_L16V(0, req_attr)}) + }); +template OML_PDU tr_OML_GetAttributes(template OML_FOM_ObjectClass obj_class, + template OML_FOM_ObjectInstance obj_inst, + template octetstring req_attr) := + tr_OML_MsgType(NM_MT_GET_ATTR, obj_class, obj_inst, { + tr_OML_IE(NM_ATT_LIST_REQ_ATTR, OML_FOM_IE_Body:{other := tr_OML_IE_L16V(?, req_attr)}) + }); + +/* convert a request into an ACK */ +function f_OML_make_ack(OML_PDU orig) return OML_PDU { + var OML_PDU resp := orig; + if (ischosen(resp.u.fom)) { + int2enum(enum2int(orig.u.fom.hdr.msg_type)+1, resp.u.fom.hdr.msg_type); + } else if (ischosen(resp.u.manuf)) { + int2enum(enum2int(orig.u.manuf.ipa.hdr.msg_type)+1, resp.u.manuf.ipa.hdr.msg_type); + } else { + testcase.stop("Unsupported OML in f_OML_make_ack(): ", orig); + } + return resp; +} +function f_OML_make_ack_exp(OML_PDU orig) return template OML_PDU { + var template OML_PDU resp := orig; + var OML_FOM_MessageType msg_t; + if (ischosen(resp.u.fom)) { + resp.u.fom.len := ?; + int2enum(enum2int(orig.u.fom.hdr.msg_type)+1, msg_t); + resp.u.fom.hdr.msg_type := msg_t; + } else if (ischosen(resp.u.manuf)) { + resp.u.manuf.ipa.len := ?; + int2enum(enum2int(orig.u.manuf.ipa.hdr.msg_type)+1, msg_t); + resp.u.manuf.ipa.hdr.msg_type := msg_t; + } else { + testcase.stop("Unsupported OML in f_OML_make_ack(): ", orig); + } + return resp; +} + +/* convert a request into a NACK, appending the cause IE */ +function f_OML_make_nack(OML_PDU orig, OML_FOM_NackCause cause) return OML_PDU { + var OML_PDU resp := orig; + if (ischosen(resp.u.fom)) { + int2enum(enum2int(orig.u.fom.hdr.msg_type)+2, resp.u.fom.hdr.msg_type); + resp.u.fom.ies := orig.u.fom.ies & { + valueof(ts_OML_IE(NM_ATT_NACK_CAUSES, OML_FOM_IE_Body:{nack_causes := cause})) + }; + } else if (ischosen(resp.u.manuf)) { + int2enum(enum2int(orig.u.manuf.ipa.hdr.msg_type)+2, resp.u.manuf.ipa.hdr.msg_type); + resp.u.manuf.ipa.ies := orig.u.manuf.ipa.ies & { + valueof(ts_OML_IE(NM_ATT_NACK_CAUSES, OML_FOM_IE_Body:{nack_causes := cause})) + }; + } else { + testcase.stop("Unsupported OML in f_OML_make_nack(): ", orig); + } + return resp; +} +function f_OML_make_nack_exp(OML_PDU orig, template OML_FOM_NackCause cause) return template OML_PDU { + var template OML_PDU resp := orig; + var OML_FOM_MessageType msg_t; + if (ischosen(resp.u.fom)) { + resp.u.fom.len := ?; + int2enum(enum2int(orig.u.fom.hdr.msg_type)+2, msg_t); + resp.u.fom.hdr.msg_type := msg_t; + resp.u.fom.ies := { *, + tr_OML_IE(NM_ATT_NACK_CAUSES, OML_FOM_IE_Body:{nack_causes := cause}) + }; + } else if (ischosen(resp.u.manuf)) { + resp.u.manuf.ipa.len := ?; + int2enum(enum2int(orig.u.manuf.ipa.hdr.msg_type)+2, msg_t); + resp.u.manuf.ipa.hdr.msg_type := msg_t; + resp.u.manuf.ipa.ies := { *, + tr_OML_IE(NM_ATT_NACK_CAUSES, OML_FOM_IE_Body:{nack_causes := cause}) + }; +/* + resp.u.manuf.ipa.ies := resp.u.manuf.ipa.ies & { + tr_OML_IE(NM_ATT_NACK_CAUSES, OML_FOM_IE_Body:{nack_causes := cause}) + }; +*/ + } else { + testcase.stop("Unsupported OML in f_OML_make_nack_exp(): ", orig); + } + return resp; +} + + + +/*********************************************************************** + * IPA / Osmocom specifics + ***********************************************************************/ + + + +template (value) OML_PDU ts_OML_IPA_RslConnect(uint8_t stream_id, uint16_t port_nr) := + ts_OML_IPA_MsgType(NM_MT_IPACC_RSL_CONNECT, NM_OC_BASEB_TRANSC, ts_OML_ObjectInstance(0,0,255), { + ts_OML_IE(NM_ATT_IPACC_STREAM_ID, OML_FOM_IE_Body:{stream_id := stream_id}), + ts_OML_IE(NM_ATT_IPACC_DST_IP_PORT, OML_FOM_IE_Body:{portnr := port_nr}) + }); +template OML_PDU tr_OML_IPA_RslConnect(template uint8_t stream_id, template uint16_t port_nr) := + tr_OML_IPA_MsgType(NM_MT_IPACC_RSL_CONNECT, NM_OC_BASEB_TRANSC, tr_OML_ObjectInstance(0,0,255), { + tr_OML_IE(NM_ATT_IPACC_STREAM_ID, OML_FOM_IE_Body:{stream_id := stream_id}), + tr_OML_IE(NM_ATT_IPACC_DST_IP_PORT, OML_FOM_IE_Body:{portnr := port_nr}) + }); + + + + + +} with { encode "RAW"; variant "FIELDORDER(msb)" }; -- To view, visit https://gerrit.osmocom.org/12875 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I65f71bf7f54cbe3290757e810b1df1e54929bdd1 Gerrit-Change-Number: 12875 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 17 13:36:43 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 17 Feb 2019 13:36:43 +0000 Subject: Change in osmo-ttcn3-hacks[master]: IPA_Emulation: Integrate OML decoding/encoding; add OML port In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12876 ) Change subject: IPA_Emulation: Integrate OML decoding/encoding; add OML port ...................................................................... IPA_Emulation: Integrate OML decoding/encoding; add OML port Change-Id: Id0dabe7eca4f81d22a60b346ac598be81533f53c --- M library/IPA_Emulation.ttcnpp 1 file changed, 47 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Max: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/library/IPA_Emulation.ttcnpp b/library/IPA_Emulation.ttcnpp index 413d290..f556327 100644 --- a/library/IPA_Emulation.ttcnpp +++ b/library/IPA_Emulation.ttcnpp @@ -31,6 +31,10 @@ import from RSL_Types all; #endif +#ifdef IPA_EMULATION_OML +import from AbisOML_Types all; +#endif + #ifdef IPA_EMULATION_MGCP import from MGCP_Types all; #endif @@ -112,6 +116,7 @@ IPAC_PROTO_RSL_TRX2, IPAC_PROTO_RSL_TRX3 ); #endif + /* Client port for general IPA messages, not further decoded */ type port IPA_SP_PT message { inout ASP_IPA_Unitdata, ASP_IPA_Event; @@ -131,6 +136,13 @@ } with { extension "internal" } #endif +#ifdef IPA_EMULATION_OML +/* Client port for A-bis OML inside IPA */ +type port IPA_OML_PT message { + inout OML_PDU, octetstring, ASP_IPA_Event; +} with { extension "internal" } +#endif + /* Client port for CTRL inside IPA */ type port IPA_CTRL_PT message { inout CtrlMessage, ASP_IPA_Event; @@ -167,6 +179,10 @@ /* up-facing port for RSL */ port IPA_RSL_PT IPA_RSL_PORT; #endif +#ifdef IPA_EMULATION_OML + /* up-facing port for OML */ + port IPA_OML_PT IPA_OML_PORT; +#endif /* up-facing port for CTRL */ port IPA_CTRL_PT IPA_CTRL_PORT; #ifdef IPA_EMULATION_GSUP @@ -276,6 +292,11 @@ IPA_RSL_PORT.send(evt); } #endif +#ifdef IPA_EMULATION_OML + if (IPA_OML_PORT.checkstate("Connected")) { + IPA_OML_PORT.send(evt); + } +#endif if (IPA_CTRL_PORT.checkstate("Connected")) { IPA_CTRL_PORT.send(evt); } @@ -437,6 +458,14 @@ } #endif +#ifdef IPA_EMULATION_OML +private function f_from_oml(IPL4asp_Types.ConnectionId connId, OML_PDU oml_tx) return IPA_Send { + var octetstring payload := enc_OML_PDU(oml_tx); + var IPA_Send ret := valueof(t_IPA_Send(connId, IPAC_PROTO_OML, payload)); + return ret; +} +#endif + /* main function to use for a client-side IPA implementation */ function main_client(charstring remote_host, IPL4asp_Types.PortNumber remote_port, charstring local_host, IPL4asp_Types.PortNumber local_port, @@ -527,6 +556,9 @@ #ifdef IPA_EMULATION_RSL var ASP_RSL_Unitdata rsl; #endif +#ifdef IPA_EMULATION_OML + var OML_PDU oml; +#endif #ifdef IPA_EMULATION_RSPRO var RsproPDU rspro; #endif @@ -577,6 +609,12 @@ IPA_RSL_PORT.send(rsl); } #endif +#ifdef IPA_EMULATION_OML + case (IPAC_PROTO_OML) { + oml := dec_OML_PDU(ipa_rx.msg) + IPA_OML_PORT.send(oml); + } +#endif case (IPAC_PROTO_OSMO) { select (ipa_rx.streamIdExt) { #ifdef IPA_EMULATION_MGCP @@ -691,7 +729,15 @@ IPA_PORT.send(f_from_rsl(g_ipa_conn_id, rsl)); } #endif - +#ifdef IPA_EMULATION_OML + /* Received OML -> down into IPA */ + [] IPA_OML_PORT.receive(OML_PDU:?) -> value oml { + IPA_PORT.send(f_from_oml(g_ipa_conn_id, oml)); + } + [] IPA_OML_PORT.receive(octetstring:?) -> value payload { + IPA_PORT.send(t_IPA_Send(g_ipa_conn_id, IPAC_PROTO_OML, payload)); + } +#endif /* Received MISC (OML/CTRL) -> down into IPA */ [] IPA_SP_PORT.receive(ASP_IPA_Unitdata: ?) -> value ipa_ud { IPA_PORT.send(f_from_asp(g_ipa_conn_id, ipa_ud)); -- To view, visit https://gerrit.osmocom.org/12876 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Id0dabe7eca4f81d22a60b346ac598be81533f53c Gerrit-Change-Number: 12876 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 17 13:37:29 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 17 Feb 2019 13:37:29 +0000 Subject: Change in osmocom-bb[master]: firmware/board/compal: indicate both DCS and PCS Rx ports as connected In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12884 ) Change subject: firmware/board/compal: indicate both DCS and PCS Rx ports as connected ...................................................................... firmware/board/compal: indicate both DCS and PCS Rx ports as connected Each given Mot C1xx phone is made either for 900+1800 MHz, in which case only the DCS Rx port is connected, or for 850+1900 MHz, in which case only the PCS Rx port is connected. Let's tell the TRF6151 driver that both DCS and PCS ports are connected, so that the same binary build can be used on both EU-band and US-band C1xx phones. If one needs to tune the TRF6151 receiver out of spec, or at least outside of the DCS/PCS Rx SAW filter's legitimate passband (or if the SAW filter was changed or removed), then the rffe_get_rx_ports() function might be changed to indicate which Rx port is physically connected: PORT_DCS1800 only or PORT_PCS1900 only. Change-Id: I620084c33ad165faffbbfc45923faedad77aafb2 --- M src/target/firmware/board/compal/rffe_dualband.c M src/target/firmware/board/compal_e86/rffe_dualband_e86.c 2 files changed, 44 insertions(+), 4 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/target/firmware/board/compal/rffe_dualband.c b/src/target/firmware/board/compal/rffe_dualband.c index de16189..faa68ff 100644 --- a/src/target/firmware/board/compal/rffe_dualband.c +++ b/src/target/firmware/board/compal/rffe_dualband.c @@ -44,10 +44,30 @@ tsp_act_update(tspact); } -/* Returns RF wiring */ +/* + * Each given Mot C1xx phone is made either for 900+1800 MHz, in which + * case only the DCS Rx port is connected, or for 850+1900 MHz, in which + * case only the PCS Rx port is connected. Here we tell the TRF6151 driver + * that both DCS and PCS ports are connected, so that the same binary + * build can be used on both EU-band and US-band C1xx phones. + * + * If you are using your phone the way it was meant to be used, i.e., + * listening to EGSM and DCS downlinks only with EU-band phones or + * listening to GSM850 and PCS downlinks only with US-band phones, then + * the same standard binary build will work on both: the TRF6151 driver + * will use the DCS Rx port when trying to receive DCS downlink or the + * PCS Rx port when trying to receive PCS downlink, and everything will + * just work. However, if you are interested in using OsmocomBB for + * various hacking purposes (its original and primary intended use) + * and you need to tune your phone's TRF6151 receiver out of spec or + * at least outside of the DCS/PCS Rx SAW filter's legitimate passband + * (or if you have changed or removed that SAW filter), then you need + * to change the following rffe_get_rx_ports() function to match your + * specific hw version, i.e., PORT_DCS1800 only or PORT_PCS1900 only. + */ uint32_t rffe_get_rx_ports(void) { - return (1 << PORT_LO) | (1 << PORT_DCS1800); + return (1 << PORT_LO) | (1 << PORT_DCS1800) | (1 << PORT_PCS1900); } uint32_t rffe_get_tx_ports(void) diff --git a/src/target/firmware/board/compal_e86/rffe_dualband_e86.c b/src/target/firmware/board/compal_e86/rffe_dualband_e86.c index 4ad85dc..c6dccd3 100644 --- a/src/target/firmware/board/compal_e86/rffe_dualband_e86.c +++ b/src/target/firmware/board/compal_e86/rffe_dualband_e86.c @@ -48,10 +48,30 @@ tsp_act_update(tspact); } -/* Returns RF wiring */ +/* + * Each given Mot C1xx phone is made either for 900+1800 MHz, in which + * case only the DCS Rx port is connected, or for 850+1900 MHz, in which + * case only the PCS Rx port is connected. Here we tell the TRF6151 driver + * that both DCS and PCS ports are connected, so that the same binary + * build can be used on both EU-band and US-band C1xx phones. + * + * If you are using your phone the way it was meant to be used, i.e., + * listening to EGSM and DCS downlinks only with EU-band phones or + * listening to GSM850 and PCS downlinks only with US-band phones, then + * the same standard binary build will work on both: the TRF6151 driver + * will use the DCS Rx port when trying to receive DCS downlink or the + * PCS Rx port when trying to receive PCS downlink, and everything will + * just work. However, if you are interested in using OsmocomBB for + * various hacking purposes (its original and primary intended use) + * and you need to tune your phone's TRF6151 receiver out of spec or + * at least outside of the DCS/PCS Rx SAW filter's legitimate passband + * (or if you have changed or removed that SAW filter), then you need + * to change the following rffe_get_rx_ports() function to match your + * specific hw version, i.e., PORT_DCS1800 only or PORT_PCS1900 only. + */ uint32_t rffe_get_rx_ports(void) { - return (1 << PORT_LO) | (1 << PORT_DCS1800); + return (1 << PORT_LO) | (1 << PORT_DCS1800) | (1 << PORT_PCS1900); } uint32_t rffe_get_tx_ports(void) -- To view, visit https://gerrit.osmocom.org/12884 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I620084c33ad165faffbbfc45923faedad77aafb2 Gerrit-Change-Number: 12884 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: steve-m Gerrit-Reviewer: tnt -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 17 13:37:30 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 17 Feb 2019 13:37:30 +0000 Subject: Change in osmocom-bb[master]: firmware/board/compal_e99: enable reading the second half of flash In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12886 ) Change subject: firmware/board/compal_e99: enable reading the second half of flash ...................................................................... firmware/board/compal_e99: enable reading the second half of flash The ability to read the second half of flash on E99 is needed for the follow-up change, that implements reading of the factory RF calibration values. Change-Id: Ia677ebdc1ada9fd41daf211fd9da06cd118365fa Related: OS#3582 --- M src/target/firmware/board/compal_e99/init.c 1 file changed, 6 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/target/firmware/board/compal_e99/init.c b/src/target/firmware/board/compal_e99/init.c index 7cc3c67..0271f16 100644 --- a/src/target/firmware/board/compal_e99/init.c +++ b/src/target/firmware/board/compal_e99/init.c @@ -51,6 +51,7 @@ #define ARMIO_LATCH_OUT 0xfffe4802 #define IO_CNTL_REG 0xfffe4804 +#define ARM_CONF_REG 0xfffef006 #define ASIC_CONF_REG 0xfffef008 static void board_io_init(void) @@ -76,6 +77,11 @@ reg &= ~(1 << 3); reg |= (1 << 1); writew(reg, ARMIO_LATCH_OUT); + + /* configure ADD(22), needed for second half of flash */ + reg = readw(ARM_CONF_REG); + reg |= (1 << 3); + writew(reg, ARM_CONF_REG); } void board_init(int with_irq) -- To view, visit https://gerrit.osmocom.org/12886 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ia677ebdc1ada9fd41daf211fd9da06cd118365fa Gerrit-Change-Number: 12886 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: steve-m Gerrit-Reviewer: tnt -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sun Feb 17 14:18:31 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sun, 17 Feb 2019 14:18:31 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-trx_=C2=BB_--with-ss?= =?UTF-8?Q?e,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#888?= Message-ID: <1376820630.275.1550413111987.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 108.11 KB...] Searching INPUT for files to process... Reading and parsing tag files Parsing files Building group list... Building directory list... Building namespace list... Building file list... Building class list... Associating documentation with classes... Computing nesting relations for classes... Building example list... Searching for enumerations... Searching for documented typedefs... Searching for members imported via using declarations... Searching for included using directives... Searching for documented variables... Building interface member list... Building member list... Searching for friends... Searching for documented defines... Computing class inheritance relations... Computing class usage relations... Flushing cached template relations that have become invalid... Computing class relations... Add enum values to enums... Searching for member function documentation... Creating members for template instances... Building page list... Search for main page... Computing page relations... Determining the scope of groups... Sorting lists... Freeing entry tree Determining which enums are documented Computing member relations... Building full member lists recursively... Adding members to member groups. Computing member references... Inheriting documentation... Generating disk names... Adding source references... Adding xrefitems... Sorting member lists... Computing dependencies between directories... Generating citations page... Counting data structures... Resolving user defined references... Finding anchors and sections in the documentation... Transferring function references... Combining using relations... Adding members to index pages... Generating style sheet... Generating search indices... Generating example documentation... Generating file sources... Generating file documentation... Generating page documentation... Generating group documentation... Generating class documentation... Generating namespace index... Generating graph info page... Generating directory documentation... Generating index page... Generating page index... Generating module index... Generating namespace index... Generating namespace member index... Generating annotated compound index... Generating alphabetical compound index... Generating hierarchical class index... Generating graphical class hierarchy... Generating member index... Generating file index... Generating file member index... Generating example index... finalizing index lists... writing tag file... Running dot... Running dot for graph 1/1 lookup cache used 0/65536 hits=0 misses=0 finished... make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_guide.html /usr/bin/install -c -m 644 ../README ' cp -r html make[5]: Leaving directory ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in firmware make[2]: Entering directory ' Making install in include make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_i2c_addr.h usrp_spi_defs.h fpga_regs_common.h fpga_regs_standard.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' Making install in lib make[3]: Entering directory ' sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c delay.c -o delay.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c fx2utils.c -o fx2utils.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c i2c.c -o i2c.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c isr.c -o isr.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c timer.c -o timer.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c usb_common.c -o usb_common.rel usb_common.c:65: warning 196: pointer target lost const qualifier usb_common.c:66: warning 196: pointer target lost const qualifier usb_common.c:67: warning 196: pointer target lost const qualifier usb_common.c:68: warning 196: pointer target lost const qualifier usb_common.c:71: warning 196: pointer target lost const qualifier usb_common.c:72: warning 196: pointer target lost const qualifier usb_common.c:73: warning 196: pointer target lost const qualifier usb_common.c:74: warning 196: pointer target lost const qualifier timer.c:45: warning 158: overflow in implicit constant conversion isr.c:73: warning 94: comparison is always false due to limited range of data type -:0: isr.c:100: warning 94: warning 154: comparison is always false due to limited range of data typeconverting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'int fixed' to type 'volatile-unsigned-char xdata* xdata' usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:217: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:226: warning 126: unreachable code usb_common.c:184: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG usb_common.c:315: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG rm -f libfx2.lib touch libfx2.lib for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done make[3]: Leaving directory ' Making install in src make[3]: Entering directory ' Making install in common make[4]: Entering directory ' make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory ' make[4]: Leaving directory ' Making install in usrp2 make[4]: Entering directory ' test -f `basename 'eeprom_boot.a51'` || ln -s 'eeprom_boot.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_init.rel `test -f 'eeprom_init.c' || echo './'`eeprom_init.c test -f `basename '_startup.a51'` || ln -s '_startup.a51' . test -f `basename 'vectors.a51'` || ln -s 'vectors.a51' . srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_common.rel `test -f 'usrp_common.c' || echo './'`usrp_common.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o board_specific.rel `test -f 'board_specific.c' || echo './'`board_specific.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_load.rel `test -f 'fpga_load.c' || echo './'`fpga_load.c test -f ../common/`basename 'eeprom_boot.a51'` -o \ \! -f `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` \ || ln -s `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` ../common/`basename 'eeprom_boot.a51'` test -f ../common/`basename '_startup.a51'` -o \ \! -f `dirname '_startup.a51'`/../common/`basename '_startup.a51'` \ || ln -s `dirname '_startup.a51'`/../common/`basename '_startup.a51'` ../common/`basename '_startup.a51'` test -f ../common/`basename 'vectors.a51'` -o \ \! -f `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` \ || ln -s `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` ../common/`basename 'vectors.a51'` sdas8051 -plosgff `basename 'eeprom_boot.a51'` sdas8051 -plosgff `basename '_startup.a51'` sdas8051 -plosgff `basename 'vectors.a51'` board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'bits' board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'mask' ../common/fpga_load.c:139: warning 85: in function clock_out_config_byte unreferenced function argument : 'bits' sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_rev2.rel `test -f 'fpga_rev2.c' || echo './'`fpga_rev2.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o init_gpif.rel `test -f 'init_gpif.c' || echo './'`init_gpif.c srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h ../common/fpga_load.c:181: warning 126: unreachable code test -f `basename 'usb_descriptors.a51'` || ln -s 'usb_descriptors.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o spi.rel `test -f 'spi.c' || echo './'`spi.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_io.rel `test -f 'eeprom_io.c' || echo './'`eeprom_io.c test -f ../common/`basename 'usb_descriptors.a51'` -o \ \! -f `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` \ || ln -s `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` ../common/`basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_main.rel `test -f 'usrp_main.c' || echo './'`usrp_main.c sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o eeprom_boot.ihx eeprom_boot.rel eeprom_init.rel _startup.rel sdas8051 -plosgff `basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_gpif.rel `test -f 'usrp_gpif.c' || echo './'`usrp_gpif.c ./../common/build_eeprom.py -p -r2 eeprom_boot.ihx > burn-usrp2-eeprom ./../common/build_eeprom.py -p -r4 eeprom_boot.ihx > burn-usrp4-eeprom usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion usrp_main.c:223: warning 112: function 'setup_flowstate_common' implicit declaration usrp_main.c:260: warning 112: function 'setup_flowstate_write' implicit declaration usrp_main.c:282: warning 112: function 'setup_flowstate_read' implicit declaration usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization chmod +x burn-usrp2-eeprom chmod +x burn-usrp4-eeprom sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o std.ihx vectors.rel usrp_main.rel usrp_common.rel board_specific.rel fpga_load.rel fpga_rev2.rel init_gpif.rel usrp_gpif.rel usb_descriptors.rel spi.rel eeprom_io.rel _startup.rel ?ASlink-Warning-Undefined Global '_setup_flowstate_read' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_write' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_common' referenced by module 'usrp_main' Makefile:688: recipe for target 'std.ihx' failed make[4]: *** [std.ihx] Error 1 make[4]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[3]: *** [install-recursive] Error 1 make[3]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[2]: *** [install-recursive] Error 1 make[2]: Leaving directory ' Makefile:628: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:925: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Sun Feb 17 15:10:06 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sun, 17 Feb 2019 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#404?= In-Reply-To: <1476807828.263.1550329806802.JavaMail.jenkins@jenkins.osmocom.org> References: <1476807828.263.1550329806802.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <49375526.276.1550416206667.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.69 KB...] + ./configure checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Sun Feb 17 17:15:36 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sun, 17 Feb 2019 17:15:36 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12625 ) Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... Patch Set 10: (1 comment) https://gerrit.osmocom.org/#/c/12625/10/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/#/c/12625/10/src/osmo-bsc/bsc_vty.c at 4805 PS10, Line 4805: I am wondering how the changes in this file related to "channel allocator preferences"? -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 10 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy Gerrit-CC: tnt Gerrit-Comment-Date: Sun, 17 Feb 2019 17:15:36 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 17 20:03:53 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sun, 17 Feb 2019 20:03:53 +0000 Subject: Change in osmo-ci[master]: docker: Add dependencies needed for the gsm tester as well In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12923 ) Change subject: docker: Add dependencies needed for the gsm tester as well ...................................................................... Patch Set 1: What's the intended use for this? -- To view, visit https://gerrit.osmocom.org/12923 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1e6432d77442f590453a328023c9f09cd52787a8 Gerrit-Change-Number: 12923 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Sun, 17 Feb 2019 20:03:53 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 17 20:40:17 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Sun, 17 Feb 2019 20:40:17 +0000 Subject: Change in libosmocore[master]: add OSMO_STRBUF_PRINTF() In-Reply-To: References: Message-ID: Neels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/12880 ) Change subject: add OSMO_STRBUF_PRINTF() ...................................................................... add OSMO_STRBUF_PRINTF() We are using macros like this or different workarounds in libmsc. In the course of implementing inter-MSC handover, I am encountering yet another such situation of appending multiple strings to a limited char buffer. Standardize. Add a unit test to utils_test.c. Change-Id: I2497514e26c5e7a5d88985fc7e58343be1a027b2 --- M include/osmocom/core/utils.h M tests/utils/utils_test.c M tests/utils/utils_test.ok 3 files changed, 188 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/core/utils.h b/include/osmocom/core/utils.h index fe360b3..16159d3 100644 --- a/include/osmocom/core/utils.h +++ b/include/osmocom/core/utils.h @@ -145,4 +145,89 @@ const char osmo_luhn(const char* in, int in_len); +/*! State for OSMO_STRBUF_APPEND() and OSMO_STRBUF_PRINTF(). See there for examples. */ +struct osmo_strbuf { + /*! Point to the start of a string buffer. */ + char *buf; + /*! Total sizeof() the buffer buf points at. */ + size_t len; + /*! Current writing position in buf (end of the string written so far). */ + char *pos; + /*! After all OSMO_STRBUF_APPEND operations, reflects the total number of characters that would be written had + * buf been large enough. Like snprintf()'s return value, this does not include the terminating nul character. + * Hence, to allocate an adequately sized buffer, add 1 to this number. */ + size_t chars_needed; +}; + +/*! Append a string to a buffer, as printed by an snprintf()-like function and with similar bounds checking. + * Make sure to never write past the end of the buffer, and collect the total size that would be needed. + * + * // an example function implementation to append: write N spaces. + * int print_spaces(char *dst, size_t dst_len, int n) + * { + * int i; + * if (n < 0) + * return -EINVAL; + * for (i = 0; i < n && i < dst_len; i++) + * dst[i] = ' '; + * if (dst_len) + * dst[OSMO_MIN(dst_len - 1, n)] = '\0'; + * // return the n that we would have liked to write if space were available: + * return n; + * } + * + * // append above spaces as well as an snprintf() + * void strbuf_example() + * { + * char buf[23]; + * struct osmo_strbuf sb = { .buf = buf, .len = sizeof(buf) }; + * + * OSMO_STRBUF_APPEND(sb, print_spaces, 5); + * OSMO_STRBUF_APPEND(sb, snprintf, "The answer is %d but what is the question?", 42); + * OSMO_STRBUF_APPEND(sb, print_spaces, 423423); + * + * printf("%s\n", buf); + * printf("would have needed %zu bytes\n", sb.chars_needed); + * } + * + * \param[inout] STRBUF A struct osmo_strbuf instance. + * \param[in] func A function with a signature of int func(char *dst, size_t dst_len [, args]) with semantics like + * snprintf(). + * \param[in] args Arguments passed to func, if any. + */ +#define OSMO_STRBUF_APPEND(STRBUF, func, args...) do { \ + if (!(STRBUF).pos) \ + (STRBUF).pos = (STRBUF).buf; \ + size_t remain = (STRBUF).buf ? (STRBUF).len - ((STRBUF).pos - (STRBUF).buf) : 0; \ + int l = func((STRBUF).pos, remain, ##args); \ + if (l < 0 || l > remain) \ + (STRBUF).pos = (STRBUF).buf + (STRBUF).len; \ + else \ + (STRBUF).pos += l; \ + if (l > 0) \ + (STRBUF).chars_needed += l; \ + } while(0) + +/*! Shortcut for OSMO_STRBUF_APPEND() invocation using snprintf(). + * + * int strbuf_example2(char *buf, size_t buflen) + * { + * int i; + * struct osmo_strbuf sb = { .buf = buf, .len = buflen }; + * + * OSMO_STRBUF_PRINTF(sb, "T minus"); + * for (i = 10; i; i--) + * OSMO_STRBUF_PRINTF(sb, " %d", i); + * OSMO_STRBUF_PRINTF(sb, " ... Lift off!"); + * + * return sb.chars_needed; + * } + * + * \param[inout] STRBUF A struct osmo_strbuf instance. + * \param[in] fmt Format string passed to snprintf. + * \param[in] args Additional arguments passed to snprintf, if any. + */ +#define OSMO_STRBUF_PRINTF(STRBUF, fmt, args...) \ + OSMO_STRBUF_APPEND(STRBUF, snprintf, fmt, ##args) + /*! @} */ diff --git a/tests/utils/utils_test.c b/tests/utils/utils_test.c index 822861f..d592fe0 100644 --- a/tests/utils/utils_test.c +++ b/tests/utils/utils_test.c @@ -33,6 +33,7 @@ #include #include #include +#include static void hexdump_test(void) { @@ -936,6 +937,90 @@ OSMO_ASSERT(ok); } +/* Copy of the examples from OSMO_STRBUF_APPEND() */ +int print_spaces(char *dst, size_t dst_len, int argument) +{ + int i; + if (argument < 0) + return -EINVAL; + for (i = 0; i < argument && i < dst_len; i++) + dst[i] = ' '; + if (dst_len) + dst[OSMO_MIN(dst_len - 1, argument)] = '\0'; + return argument; +} + +void strbuf_example(char *buf, size_t buflen) +{ + struct osmo_strbuf sb = { .buf = buf, .len = buflen }; + + OSMO_STRBUF_APPEND(sb, print_spaces, 5); + OSMO_STRBUF_APPEND(sb, snprintf, "The answer is %d but what is the question?", 42); + OSMO_STRBUF_APPEND(sb, print_spaces, 423423); + + printf("%s\n", buf); + printf("would have needed %zu bytes\n", sb.chars_needed); +} + +/* Copy of the examples from OSMO_STRBUF_PRINTF() */ +int strbuf_example2(char *buf, size_t buflen) +{ + int i; + struct osmo_strbuf sb = { .buf = buf, .len = buflen }; + + OSMO_STRBUF_PRINTF(sb, "T minus"); + for (i = 10; i; i--) + OSMO_STRBUF_PRINTF(sb, " %d", i); + OSMO_STRBUF_PRINTF(sb, " ... Lift off!"); + + return sb.chars_needed; +} + +int strbuf_cascade(char *buf, size_t buflen) +{ + struct osmo_strbuf sb = { .buf = buf, .len = buflen }; + + OSMO_STRBUF_APPEND(sb, strbuf_example2); + OSMO_STRBUF_PRINTF(sb, " -- "); + OSMO_STRBUF_APPEND(sb, strbuf_example2); + OSMO_STRBUF_PRINTF(sb, " -- "); + OSMO_STRBUF_APPEND(sb, strbuf_example2); + + return sb.chars_needed; +} + +void strbuf_test() +{ + char buf[256]; + int rc; + printf("\n%s\n", __func__); + + printf("OSMO_STRBUF_APPEND():\n"); + strbuf_example(buf, 23); + + printf("\nOSMO_STRBUF_PRINTF():\n"); + rc = strbuf_example2(buf, 23); + printf("1: (need %d chars, had size=23) %s\n", rc, buf); + + rc = strbuf_example2(buf, rc); + printf("2: (need %d chars, had size=%d) %s\n", rc, rc, buf); + + rc = strbuf_example2(buf, rc + 1); + printf("3: (need %d chars, had size=%d+1) %s\n", rc, rc, buf); + + rc = strbuf_example2(buf, 0); + snprintf(buf, sizeof(buf), "0x2b 0x2b 0x2b..."); + printf("4: (need %d chars, had size=0) %s\n", rc, buf); + + rc = strbuf_example2(NULL, 99); + printf("5: (need %d chars, had NULL buffer)\n", rc); + + printf("\ncascade:\n"); + rc = strbuf_cascade(buf, sizeof(buf)); + printf("(need %d chars)\n%s\n", rc, buf); + rc = strbuf_cascade(buf, 63); + printf("(need %d chars, had size=63) %s\n", rc, buf); +} int main(int argc, char **argv) { @@ -954,5 +1039,6 @@ isqrt_test(); osmo_sockaddr_to_str_and_uint_test(); osmo_str_tolowupper_test(); + strbuf_test(); return 0; } diff --git a/tests/utils/utils_test.ok b/tests/utils/utils_test.ok index 8d7ced8..1215ddd 100644 --- a/tests/utils/utils_test.ok +++ b/tests/utils/utils_test.ok @@ -325,3 +325,20 @@ = 62, "ABCDEFGHIJKLMNOPQRSTUVWXYZA" osmo_str_toupper_buf(28, "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()", in-place) = 27, "ABCDEFGHIJKLMNOPQRSTUVWXYZA" + +strbuf_test +OSMO_STRBUF_APPEND(): + The answer is 42 +would have needed 423470 bytes + +OSMO_STRBUF_PRINTF(): +1: (need 42 chars, had size=23) T minus 10 9 8 7 6 5 4 +2: (need 42 chars, had size=42) T minus 10 9 8 7 6 5 4 3 2 1 ... Lift off +3: (need 42 chars, had size=42+1) T minus 10 9 8 7 6 5 4 3 2 1 ... Lift off! +4: (need 42 chars, had size=0) 0x2b 0x2b 0x2b... +5: (need 42 chars, had NULL buffer) + +cascade: +(need 134 chars) +T minus 10 9 8 7 6 5 4 3 2 1 ... Lift off! -- T minus 10 9 8 7 6 5 4 3 2 1 ... Lift off! -- T minus 10 9 8 7 6 5 4 3 2 1 ... Lift off! +(need 134 chars, had size=63) T minus 10 9 8 7 6 5 4 3 2 1 ... Lift off! -- T minus 10 9 8 7 -- To view, visit https://gerrit.osmocom.org/12880 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I2497514e26c5e7a5d88985fc7e58343be1a027b2 Gerrit-Change-Number: 12880 Gerrit-PatchSet: 5 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 17 20:44:26 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Sun, 17 Feb 2019 20:44:26 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/12625 ) Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... Patch Set 10: (1 comment) https://gerrit.osmocom.org/#/c/12625/10/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/#/c/12625/10/src/osmo-bsc/bsc_vty.c at 4805 PS10, Line 4805: > I am wondering how the changes in this file related to "channel allocator preferences"? indeed, seems like whitespace tweaks related to the previous patch that allows disabling specific lchans -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 10 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy Gerrit-CC: tnt Gerrit-Comment-Date: Sun, 17 Feb 2019 20:44:26 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Sun Feb 17 20:57:13 2019 From: admin at opensuse.org (OBS Notification) Date: Sun, 17 Feb 2019 20:57:13 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-netif in Raspbian_9.0/armv7l In-Reply-To: References: Message-ID: <5c69cabe763f5_6a5bd985f04162f2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-netif/Raspbian_9.0/armv7l Package network:osmocom:nightly/libosmo-netif failed to build in Raspbian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libosmo-netif Last lines of build log: [ 214s] | | #endif [ 214s] | | #ifdef HAVE_STRING_H [ 214s] | | # if !defined STDC_HEADERS && defined HAVE_MEMORY_H [ 214s] | | # include [ 214s] | | # endif [ 214s] | | # include [ 214s] | | #endif [ 214s] | | #ifdef HAVE_STRINGS_H [ 214s] | | # include [ 214s] | | #endif [ 214s] | | #ifdef HAVE_INTTYPES_H [ 214s] | | # include [ 214s] | | #endif [ 214s] | | #ifdef HAVE_STDINT_H [ 214s] | | # include [ 214s] | | #endif [ 214s] | | #ifdef HAVE_UNISTD_H [ 214s] | | # include [ 214s] | | #endif [ 214s] | | #include [ 214s] | configure:12791: result: no [ 214s] | configure:12791: checking dahdi/user.h presence [ 214s] | configure:12791: gcc -E -Wdate-time -D_FORTIFY_SOURCE=2 -Wall conftest.c [ 216s] | conftest.c:30:24: fatal error: dahdi/use[ 184.334373] sysrq: SysRq : Power Off [ 216s] [ 184.336133] reboot: Power down [ 216s] ### VM INTERACTION END ### [ 216s] [ 216s] armbuild18 failed "build libosmo-netif_0.4.0.14.fe35.dsc" at Sun Feb 17 20:57:01 UTC 2019. [ 216s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From jenkins at lists.osmocom.org Sun Feb 17 23:18:17 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sun, 17 Feb 2019 23:18:17 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-bts_=C2=BB_sysm?= =?UTF-8?Q?o,master,0,default,osmocom-master-debian9_#1825?= Message-ID: <560574206.277.1550445497145.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 36.09 KB...] checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... no checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for ANSI C header files... (cached) yes checking execinfo.h usability... yes checking execinfo.h presence... yes checking for execinfo.h... yes checking sys/select.h usability... yes checking sys/select.h presence... yes checking for sys/select.h... yes checking sys/socket.h usability... yes checking sys/socket.h presence... yes checking for sys/socket.h... yes checking sys/timerfd.h usability... yes checking sys/timerfd.h presence... yes checking for sys/timerfd.h... yes checking syslog.h usability... yes checking syslog.h presence... yes checking for syslog.h... yes checking ctype.h usability... yes checking ctype.h presence... yes checking for ctype.h... yes checking netinet/tcp.h usability... yes checking netinet/tcp.h presence... yes checking for netinet/tcp.h... yes checking for size_t... yes checking for working alloca.h... yes checking for alloca... yes checking for library containing dlopen... -ldl checking for library containing dlsym... -ldl checking for backtrace in -lexecinfo... no checking for library containing clock_gettime... none required checking for doxygen... /usr/bin/doxygen checking whether SYS_getrandom is declared... yes checking if gcc supports -fvisibility=hidden... yes checking for clock_gettime... yes checking for localtime_r... yes checking whether struct tm has tm_gmtoff member... yes checking for TALLOC... yes checking for PCSC... yes checking for LIBGNUTLS... yes checking whether to enable VTY/CTRL tests... no checking whether C compiler accepts -mavx2... yes checking whether C compiler accepts -mssse3... yes checking whether C compiler accepts -msse4.1... yes checking whether gcc has __builtin_cpu_supports built-in... yes CFLAGS="-g -O2 -DBUILDING_LIBOSMOCORE -Wall" CPPFLAGS=" -DBUILDING_LIBOSMOCORE -Wall" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmocore.pc config.status: creating libosmocodec.pc config.status: creating libosmocoding.pc config.status: creating libosmovty.pc config.status: creating libosmogsm.pc config.status: creating libosmogb.pc config.status: creating libosmoctrl.pc config.status: creating libosmosim.pc config.status: creating include/Makefile config.status: creating src/Makefile config.status: creating src/vty/Makefile config.status: creating src/codec/Makefile config.status: creating src/coding/Makefile config.status: creating src/sim/Makefile config.status: creating src/gsm/Makefile config.status: creating src/gb/Makefile config.status: creating src/ctrl/Makefile config.status: creating src/pseudotalloc/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating utils/Makefile config.status: creating Doxyfile.core config.status: creating Doxyfile.gsm config.status: creating Doxyfile.vty config.status: creating Doxyfile.codec config.status: creating Doxyfile.coding config.status: creating Doxyfile.gb config.status: creating Doxyfile.ctrl config.status: creating Makefile config.status: creating config.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands configure: WARNING: unrecognized options: --with-systemdsystemunitdir + make -j 8 install echo 1.0.1.39-2cbe > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory ' Making install in include make[2]: Entering directory ' GEN osmocom/gsm/gsm0503.h Generating header file... Generate 'xcch' declaration Generate 'rach' declaration Generate 'rach_ext' declaration Generate 'sch' declaration Generate 'cs2' declaration Generate 'cs3' declaration Generate 'cs2_np' declaration Generate 'cs3_np' declaration Generate 'tch_afs_12_2' declaration Generate 'tch_afs_10_2' declaration Generate 'tch_afs_7_95' declaration Generate 'tch_afs_7_4' declaration Generate 'tch_afs_6_7' declaration Generate 'tch_afs_5_9' declaration Generate 'tch_afs_5_15' declaration Generate 'tch_afs_4_75' declaration Generate 'tch_fr' declaration Generate 'tch_hr' declaration Generate 'tch_ahs_7_95' declaration Generate 'tch_ahs_7_4' declaration Generate 'tch_ahs_6_7' declaration Generate 'tch_ahs_5_9' declaration Generate 'tch_ahs_5_15' declaration Generate 'tch_ahs_4_75' declaration Generate 'mcs1_dl_hdr' declaration Generate 'mcs1_ul_hdr' declaration Generate 'mcs1' declaration Generate 'mcs2' declaration Generate 'mcs3' declaration Generate 'mcs4' declaration Generate 'mcs5_dl_hdr' declaration Generate 'mcs5_ul_hdr' declaration Generate 'mcs5' declaration Generate 'mcs6' declaration Generate 'mcs7_dl_hdr' declaration Generate 'mcs7_ul_hdr' declaration Generate 'mcs7' declaration Generate 'mcs8' declaration Generate 'mcs9' declaration Generation complete. make install-am make[3]: Entering directory ' GEN osmocom/core/bit32gen.h GEN osmocom/core/bit16gen.h GEN osmocom/core/bit64gen.h GEN osmocom/core/crc64gen.h GEN osmocom/core/crc8gen.h GEN osmocom/core/crc32gen.h GEN osmocom/core/crc64gen.h GEN osmocom/core/bit64gen.h GEN osmocom/core/crc16gen.h GEN osmocom/core/crc8gen.h GEN osmocom/core/crc32gen.h GEN osmocom/core/bit32gen.h GEN osmocom/core/bit16gen.h GEN osmocom/core/crc16gen.h make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/core/application.h osmocom/core/backtrace.h osmocom/core/bit16gen.h osmocom/core/bit32gen.h osmocom/core/bit64gen.h osmocom/core/bits.h osmocom/core/bitvec.h osmocom/core/bitcomp.h osmocom/core/byteswap.h osmocom/core/conv.h osmocom/core/counter.h osmocom/core/crc16.h osmocom/core/crc16gen.h osmocom/core/crc32gen.h osmocom/core/crc64gen.h osmocom/core/crc8gen.h osmocom/core/crcgen.h osmocom/core/endian.h osmocom/core/defs.h osmocom/core/fsm.h osmocom/core/gsmtap.h osmocom/core/gsmtap_util.h osmocom/core/isdnhdlc.h osmocom/core/linuxlist.h osmocom/core/linuxrbtree.h osmocom/core/logging.h osmocom/core/loggingrb.h osmocom/core/stats.h osmocom/core/macaddr.h osmocom/core/msgb.h osmocom/core/panic.h osmocom/core/prbs.h osmocom/core/prim.h osmocom/core/process.h osmocom/core/rate_ctr.h osmocom/core/stat_item.h osmocom/core/select.h osmocom/core/sercomm.h osmocom/core/signal.h osmocom/core/socket.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/gsm/a5.h osmocom/gsm/abis_nm.h osmocom/gsm/apn.h osmocom/gsm/bts_features.h osmocom/gsm/comp128.h osmocom/gsm/comp128v23.h osmocom/gsm/bitvec_gsm.h osmocom/gsm/gan.h osmocom/gsm/gsm0341.h osmocom/gsm/gsm0411_smc.h osmocom/gsm/gsm0411_smr.h osmocom/gsm/gsm0411_utils.h osmocom/gsm/gsm0480.h osmocom/gsm/gsm0502.h osmocom/gsm/gsm0503.h osmocom/gsm/gsm0808.h osmocom/gsm/gsm29205.h osmocom/gsm/gsm0808_utils.h osmocom/gsm/gsm23003.h osmocom/gsm/gsm29118.h osmocom/gsm/gsm48.h osmocom/gsm/gsm48_arfcn_range_encode.h osmocom/gsm/gsm48_ie.h osmocom/gsm/gsm48_rest_octets.h osmocom/gsm/gsm_utils.h osmocom/gsm/gsup.h osmocom/gsm/gsup_sms.h osmocom/gsm/ipa.h osmocom/gsm/lapd_core.h osmocom/gsm/lapdm.h osmocom/gsm/meas_rep.h osmocom/gsm/mncc.h osmocom/gsm/prim.h osmocom/gsm/l1sap.h osmocom/gsm/oap.h osmocom/gsm/oap_client.h osmocom/gsm/rsl.h osmocom/gsm/rxlev_stat.h osmocom/gsm/sysinfo.h osmocom/gsm/tlv.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/coding/gsm0503_tables.h osmocom/coding/gsm0503_parity.h osmocom/coding/gsm0503_mapping.h osmocom/coding/gsm0503_interleaving.h osmocom/coding/gsm0503_coding.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/core/statistics.h osmocom/core/strrb.h osmocom/core/talloc.h osmocom/core/tdef.h osmocom/core/timer.h osmocom/core/timer_compat.h osmocom/core/utils.h osmocom/core/write_queue.h osmocom/core/plugin.h osmocom/core/msgfile.h osmocom/core/serial.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/vty/buffer.h osmocom/vty/command.h osmocom/vty/logging.h osmocom/vty/stats.h osmocom/vty/misc.h osmocom/vty/telnet_interface.h osmocom/vty/vector.h osmocom/vty/vty.h osmocom/vty/ports.h osmocom/vty/tdef_vty.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/gsm/protocol/gsm_03_40.h osmocom/gsm/protocol/gsm_03_41.h osmocom/gsm/protocol/gsm_04_08.h osmocom/gsm/protocol/gsm_04_08_gprs.h osmocom/gsm/protocol/gsm_04_11.h osmocom/gsm/protocol/gsm_04_12.h osmocom/gsm/protocol/gsm_04_14.h osmocom/gsm/protocol/gsm_04_80.h osmocom/gsm/protocol/gsm_08_08.h osmocom/gsm/protocol/gsm_08_58.h osmocom/gsm/protocol/gsm_09_02.h osmocom/gsm/protocol/gsm_12_21.h osmocom/gsm/protocol/gsm_23_003.h osmocom/gsm/protocol/gsm_29_118.h osmocom/gsm/protocol/gsm_44_318.h osmocom/gsm/protocol/ipaccess.h osmocom/gsm/protocol/smpp34_osmocom.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/sim/class_tables.h osmocom/sim/sim.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/gprs/gprs_bssgp.h osmocom/gprs/gprs_bssgp_bss.h osmocom/gprs/gprs_msgb.h osmocom/gprs/gprs_ns.h osmocom/gprs/gprs_ns_frgre.h osmocom/gprs/gprs_rlc.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/crypt/auth.h osmocom/crypt/gprs_cipher.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/ctrl/control_cmd.h osmocom/ctrl/control_if.h osmocom/ctrl/ports.h osmocom/ctrl/control_vty.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/gprs/protocol/gsm_04_60.h osmocom/gprs/protocol/gsm_08_16.h osmocom/gprs/protocol/gsm_08_18.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/codec/ecu.h osmocom/codec/codec.h osmocom/codec/gsm610_bits.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in src make[2]: Entering directory ' GEN crc8gen.c GEN crc64gen.c GEN crc32gen.c GEN crc16gen.c make install-am make[3]: Entering directory ' CC msgb.lo CC signal.lo CC bitvec.lo CC select.lo CC timer_clockgettime.lo CC timer.lo CC timer_gettimeofday.lo CC bits.lo CC bitcomp.lo CC counter.lo CC fsm.lo CC write_queue.lo CC utils.lo CC socket.lo CC logging.lo CC logging_syslog.lo CC logging_gsmtap.lo CC rate_ctr.lo CC gsmtap_util.lo /bin/bash: line 2: 28535 Segmentation fault /bin/bash ../libtool --silent --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../include -DBUILDING_LIBOSMOCORE -Wall -Wall -g -O2 -DBUILDING_LIBOSMOCORE -Wall -MT gsmtap_util.lo -MD -MP -MF $depbase.Tpo -c -o gsmtap_util.lo gsmtap_util.c Makefile:562: recipe for target 'gsmtap_util.lo' failed make[3]: *** [gsmtap_util.lo] Error 139 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory ' Makefile:666: recipe for target 'install' failed make[2]: *** [install] Error 2 make[2]: Leaving directory ' Makefile:625: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:924: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Sun Feb 17 23:58:56 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sun, 17 Feb 2019 23:58:56 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-o?= =?UTF-8?Q?penbsc_=C2=BB_--disable-iu,--disable-m?= =?UTF-8?Q?gcp-transcoding,--enable-smpp,def?= =?UTF-8?Q?ault,osmocom-master-debian9_#3888?= Message-ID: <689629397.278.1550447936552.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 194.27 KB...] git checkout -b new_branch_name HEAD is now at 8d712f0... osmo_ss7.c: fix typo + git rev-parse HEAD 8d712f06236c6ecfb27249b789472e2de9c8179d + cd libosmo-sccp + mkdir -p /build/deps/install/stow + autoreconf --install --force libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `.'. libtoolize: copying file `./ltmain.sh' libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree. libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am. configure.ac:21: installing './compile' configure.ac:23: installing './config.guess' configure.ac:23: installing './config.sub' configure.ac:9: installing './install-sh' configure.ac:9: installing './missing' examples/Makefile.am: installing './depcomp' tests/sccp/Makefile.am:8: warning: source file '$(top_srcdir)/src/sccp.c' is in a subdirectory, tests/sccp/Makefile.am:8: but option 'subdir-objects' is disabled automake: warning: possible forward-incompatibility. automake: At least a source file is in a subdirectory, but the 'subdir-objects' automake: automake option hasn't been enabled. For now, the corresponding output automake: object file(s) will be placed in the top-level directory. However, automake: this behaviour will change in future Automake versions: they will automake: unconditionally cause object files to be placed in the same subdirectory automake: of the corresponding sources. automake: You are advised to start using 'subdir-objects' option throughout your automake: project, to avoid future incompatibilities. + ./configure --prefix=/build/deps/install/stow/libosmo-sccp --with-systemdsystemunitdir=/build/deps/install/stow/libosmo-sccp/lib/systemd/system checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking whether make sets $(MAKE)... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for LIBOSMOCORE... yes checking for LIBOSMOVTY... yes checking for LIBOSMOGSM... yes checking for LIBOSMONETIF... yes checking for library containing sctp_send... -lsctp checking if gcc supports -fvisibility=hidden... yes checking for doxygen... /usr/bin/doxygen checking whether to enable VTY/CTRL tests... no CFLAGS="-g -O2 -Wall" CPPFLAGS=" -Wall" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmo-sigtran.pc config.status: creating libosmo-sccp.pc config.status: creating libosmo-mtp.pc config.status: creating libosmo-xua.pc config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/sccp/Makefile config.status: creating include/osmocom/mtp/Makefile config.status: creating include/osmocom/sigtran/Makefile config.status: creating include/Makefile config.status: creating src/Makefile config.status: creating tests/Makefile config.status: creating tests/sccp/Makefile config.status: creating tests/mtp/Makefile config.status: creating tests/m2ua/Makefile config.status: creating tests/xua/Makefile config.status: creating tests/ss7/Makefile config.status: creating tests/vty/Makefile config.status: creating examples/Makefile config.status: creating stp/Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating doc/manuals/Makefile config.status: creating contrib/Makefile config.status: creating contrib/systemd/Makefile config.status: creating Doxyfile config.status: creating Makefile config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 install echo 1.0.0.2-8d71 > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory '/build/deps/libosmo-sccp' Making install in include make[2]: Entering directory '/build/deps/libosmo-sccp/include' Making install in osmocom make[3]: Entering directory '/build/deps/libosmo-sccp/include/osmocom' Making install in mtp make[4]: Entering directory '/build/deps/libosmo-sccp/include/osmocom/mtp' make[5]: Entering directory '/build/deps/libosmo-sccp/include/osmocom/mtp' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/deps/install/stow/libosmo-sccp/include/osmocom/mtp' /usr/bin/install -c -m 644 mtp_level3.h mtp_pcap.h '/build/deps/install/stow/libosmo-sccp/include/osmocom/mtp' make[5]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom/mtp' make[4]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom/mtp' Making install in sccp make[4]: Entering directory '/build/deps/libosmo-sccp/include/osmocom/sccp' make[5]: Entering directory '/build/deps/libosmo-sccp/include/osmocom/sccp' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/deps/install/stow/libosmo-sccp/include/osmocom/sccp' /usr/bin/install -c -m 644 sccp_types.h sccp.h '/build/deps/install/stow/libosmo-sccp/include/osmocom/sccp' make[5]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom/sccp' make[4]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom/sccp' Making install in sigtran make[4]: Entering directory '/build/deps/libosmo-sccp/include/osmocom/sigtran' make[5]: Entering directory '/build/deps/libosmo-sccp/include/osmocom/sigtran' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/deps/install/stow/libosmo-sccp/include/osmocom/sigtran' /bin/mkdir -p '/build/deps/install/stow/libosmo-sccp/include/osmocom/sigtran/protocol' /usr/bin/install -c -m 644 xua_types.h xua_msg.h m2ua_types.h sccp_sap.h sigtran_sap.h sccp_helpers.h mtp_sap.h osmo_ss7.h '/build/deps/install/stow/libosmo-sccp/include/osmocom/sigtran' /usr/bin/install -c -m 644 protocol/sua.h protocol/m3ua.h protocol/mtp.h '/build/deps/install/stow/libosmo-sccp/include/osmocom/sigtran/protocol' make[5]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom/sigtran' make[4]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom/sigtran' make[4]: Entering directory '/build/deps/libosmo-sccp/include/osmocom' make[5]: Entering directory '/build/deps/libosmo-sccp/include/osmocom' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom' make[4]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom' make[3]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom' make[3]: Entering directory '/build/deps/libosmo-sccp/include' make[4]: Entering directory '/build/deps/libosmo-sccp/include' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/build/deps/libosmo-sccp/include' make[3]: Leaving directory '/build/deps/libosmo-sccp/include' make[2]: Leaving directory '/build/deps/libosmo-sccp/include' Making install in src make[2]: Entering directory '/build/deps/libosmo-sccp/src' CC mtp_pcap.o CC sccp.o CC libxua_a-xua_msg.o CC sccp_sap.lo CC sua.lo CC sccp_helpers.lo CC xua_msg.lo CC m3ua.lo CC sccp2sua.lo CC sccp_scrc.lo CC sccp_sclc.lo CC sccp_scoc.lo CC sccp_user.lo CC xua_rkm.lo CC xua_default_lm_fsm.lo sccp_scoc.c: In function 'scoc_fsm_active': sccp_scoc.c:1032:9: note: #pragma message: TODO: internal disco: send N-DISCONNECT.ind to user #pragma message ("TODO: internal disco: send N-DISCONNECT.ind to user") ^ CC osmo_ss7.lo In file included from /usr/include/asm-generic/errno.h:4:0, from /usr/include/x86_64-linux-gnu/asm/errno.h:1, from /usr/include/linux/errno.h:1, from /usr/include/x86_64-linux-gnu/bits/errno.h:24, from /usr/include/errno.h:35, from xua_default_lm_fsm.c:30: /usr/include/asm-generic/errno-base.h:1:0: internal compiler error: Segmentation fault #ifndef _ASM_GENERIC_ERRNO_BASE_H ^ CC osmo_ss7_hmrt.lo Please submit a full bug report, with preprocessed source if appropriate. See for instructions. CC xua_asp_fsm.lo The bug is not reproducible, so it is likely a hardware or OS problem. Makefile:562: recipe for target 'xua_default_lm_fsm.lo' failed make[2]: *** [xua_default_lm_fsm.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory '/build/deps/libosmo-sccp/src' make[1]: *** [install-recursive] Error 1 Makefile:488: recipe for target 'install-recursive' failed make[1]: Leaving directory '/build/deps/libosmo-sccp' Makefile:787: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Mon Feb 18 00:03:46 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Mon, 18 Feb 2019 00:03:46 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-bts_=C2=BB?= =?UTF-8?Q?_sysmo,master,0,default,osmocom-master-debian9_#1826?= In-Reply-To: <560574206.277.1550445497145.JavaMail.jenkins@jenkins.osmocom.org> References: <560574206.277.1550445497145.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <2136736024.279.1550448226613.JavaMail.jenkins@jenkins.osmocom.org> See From jenkins at lists.osmocom.org Mon Feb 18 00:16:48 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Mon, 18 Feb 2019 00:16:48 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_m?= =?UTF-8?Q?aster-openbsc_=C2=BB_--disable-iu,--disa?= =?UTF-8?Q?ble-mgcp-transcoding,--enable-smpp,?= =?UTF-8?Q?default,osmocom-master-debian9_#3889?= In-Reply-To: <689629397.278.1550447936552.JavaMail.jenkins@jenkins.osmocom.org> References: <689629397.278.1550447936552.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1391629483.280.1550449008327.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Mon Feb 18 03:59:58 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Mon, 18 Feb 2019 03:59:58 +0000 Subject: Change in osmo-ci[master]: docker: Add dependencies needed for the gsm tester as well In-Reply-To: References: Message-ID: Holger Freyther has posted comments on this change. ( https://gerrit.osmocom.org/12923 ) Change subject: docker: Add dependencies needed for the gsm tester as well ...................................................................... Patch Set 1: Well. There is no need to run the "virtual" tests on the osmo-gsm-tester_run-prod setup and there are several advantages to just run it in a container. In terms of unique source of truth it would be nice if there would be a osmo-gsm-tester-deps package we could install. -- To view, visit https://gerrit.osmocom.org/12923 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1e6432d77442f590453a328023c9f09cd52787a8 Gerrit-Change-Number: 12923 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 03:59:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 08:25:55 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 18 Feb 2019 08:25:55 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: Hello Max, Neels Hofmeyr, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12625 to look at the new patch set (#11). Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... assignment_fsm: fix channel allocator preferences When the MSC allocates a channel through the ASSIGNMENT REQUEST, it may ask for a TCH/H and a TCH/F at the same time and tell which of the two types it prefers. The process of channel allocation currently selects, based on the BTS, MSC and MS capabilites exactly one apropriate codec/rate (e.g. TCH/H) and then tries to allocate it. If that allocation fails, there is no way to try the second choice and the assignment fails. For example: The MSC asks for TCH/F and TCH/H, prefering TCH/F, then the channel allocator will try TCH/F and if it fails (all TCH/F are currently in use), then TCH/H is never tried. Since the BSC currently only trys the first best codec/rate that is supported it also ignores the preference. Lets fix those problems by including the preference information and both possible codec/rate settings into the channel allocation decision. Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Related: OS#3503 --- M include/osmocom/bsc/codec_pref.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/codec_pref.c M src/osmo-bsc/handover_fsm.c M src/osmo-bsc/osmo_bsc_bssap.c M tests/codec_pref/codec_pref_test.c 8 files changed, 319 insertions(+), 113 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/25/12625/11 -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 11 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy Gerrit-CC: tnt -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 08:57:28 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Mon, 18 Feb 2019 08:57:28 +0000 Subject: Change in osmo-ci[master]: docker: Add dependencies needed for the gsm tester as well In-Reply-To: References: Message-ID: Holger Freyther has posted comments on this change. ( https://gerrit.osmocom.org/12923 ) Change subject: docker: Add dependencies needed for the gsm tester as well ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/12923 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1e6432d77442f590453a328023c9f09cd52787a8 Gerrit-Change-Number: 12923 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 08:57:28 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 08:57:31 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Mon, 18 Feb 2019 08:57:31 +0000 Subject: Change in osmo-ci[master]: docker: Add dependencies needed for the gsm tester as well In-Reply-To: References: Message-ID: Holger Freyther has submitted this change and it was merged. ( https://gerrit.osmocom.org/12923 ) Change subject: docker: Add dependencies needed for the gsm tester as well ...................................................................... docker: Add dependencies needed for the gsm tester as well This way we can execute the tester with a virtual environment. Change-Id: I1e6432d77442f590453a328023c9f09cd52787a8 --- M docker/Dockerfile_osmocom_jenkins.amd64 1 file changed, 5 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Holger Freyther: Verified diff --git a/docker/Dockerfile_osmocom_jenkins.amd64 b/docker/Dockerfile_osmocom_jenkins.amd64 index 81f46ca..73440ae 100644 --- a/docker/Dockerfile_osmocom_jenkins.amd64 +++ b/docker/Dockerfile_osmocom_jenkins.amd64 @@ -48,5 +48,10 @@ # Add rpath to binaries RUN DEBIAN_FRONTEND=noninteractive apt-get install -y patchelf +# Be able to run the osmo-gsm-tester +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y dbus tcpdump sqlite3 python3 python3-yaml python3-mako python3-gi ofono python3-pip +RUN pip3 install git+git://github.com/podshumok/python-smpplib.git +RUN pip3 install pydbus + ADD http://git.osmocom.org/python/osmo-python-tests/patch /tmp/commit RUN git clone git://git.osmocom.org/python/osmo-python-tests && cd osmo-python-tests && ./contrib/jenkins.sh -- To view, visit https://gerrit.osmocom.org/12923 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I1e6432d77442f590453a328023c9f09cd52787a8 Gerrit-Change-Number: 12923 Gerrit-PatchSet: 2 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Mon Feb 18 09:46:02 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Mon, 18 Feb 2019 09:46:02 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-trx_=C2=BB_--wit?= =?UTF-8?Q?h-sse,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#889?= In-Reply-To: <1376820630.275.1550413111987.JavaMail.jenkins@jenkins.osmocom.org> References: <1376820630.275.1550413111987.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <700183253.292.1550483162596.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Mon Feb 18 11:31:17 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 18 Feb 2019 11:31:17 +0000 Subject: Change in libosmocore[master]: Add multipatch capability to osmo-config-merge In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12897 ) Change subject: Add multipatch capability to osmo-config-merge ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/#/c/12897/3/utils/osmo-config-merge.c File utils/osmo-config-merge.c: https://gerrit.osmocom.org/#/c/12897/3/utils/osmo-config-merge.c at 267 PS3, Line 267: return 3; > Yes, but ASAN won't be happy. What exactly makes you think that? Those are already build with sanitizer enabled by jenkins and it passes just fine. You can also manually enable it via './configure --enable-sanitize' as well. > let's free stuff as soon as not needed anymore, instead of assuming talloc will release it at some point in the future. Memory will be freed immediately after that 'return' call. Which "some point in the future" are you talking about? -- To view, visit https://gerrit.osmocom.org/12897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I212cbdc3bf6f251c1a3175737ac74242fb004c6d Gerrit-Change-Number: 12897 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 11:31:17 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:06:01 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 12:06:01 +0000 Subject: Change in libosmocore[master]: Fix BSSMAP length generated by gsm0808_create_clear_command2() Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12924 Change subject: Fix BSSMAP length generated by gsm0808_create_clear_command2() ...................................................................... Fix BSSMAP length generated by gsm0808_create_clear_command2() In Change-Id Id8a75e1da2d5f520064666e4ee413d1c91da6ae3 we recently introduced adding the "CSFB INDICATOR" IE to the CLEAR COMMAND, but we did so with a wrong length value. Change-Id: I4d07d25fb03ca0f89fd7b94226c54309c77a010a Closes: OS#3805 Related: OS#2778 --- M src/gsm/gsm0808.c 1 file changed, 8 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/24/12924/1 diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index 2907255..d44560c 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -183,16 +183,7 @@ * \returns callee-allocated msgb with BSSMAP Clear Command message */ struct msgb *gsm0808_create_clear_command(uint8_t cause) { - struct msgb *msg = msgb_alloc_headroom(BSSMAP_MSG_SIZE, BSSMAP_MSG_HEADROOM, - "bssmap: clear command"); - if (!msg) - return NULL; - - msg->l3h = msgb_tv_put(msg, BSSAP_MSG_BSS_MANAGEMENT, 4); - msgb_v_put(msg, BSS_MAP_MSG_CLEAR_CMD); - gsm0808_enc_cause(msg, cause); - - return msg; + return gsm0808_create_clear_command2(cause, false); } /*! Create BSSMAP Clear Command message. @@ -201,13 +192,19 @@ * \returns callee-allocated msgb with BSSMAP Clear Command message. */ struct msgb *gsm0808_create_clear_command2(uint8_t cause, bool csfb_ind) { - struct msgb *msg = gsm0808_create_clear_command(cause); + struct msgb *msg = msgb_alloc_headroom(BSSMAP_MSG_SIZE, BSSMAP_MSG_HEADROOM, + "bssmap: clear command"); if (!msg) return NULL; + msgb_v_put(msg, BSS_MAP_MSG_CLEAR_CMD); + gsm0808_enc_cause(msg, cause); + if (csfb_ind) msgb_v_put(msg, GSM0808_IE_CSFB_INDICATION); + msg->l3h = msgb_tv_push(msg, BSSAP_MSG_BSS_MANAGEMENT, msgb_length(msg)); + return msg; } -- To view, visit https://gerrit.osmocom.org/12924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I4d07d25fb03ca0f89fd7b94226c54309c77a010a Gerrit-Change-Number: 12924 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:08:13 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 12:08:13 +0000 Subject: Change in osmo-msc[master]: a_iface: Centralize/wrap BSSAP / N-DATA transmission Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12925 Change subject: a_iface: Centralize/wrap BSSAP / N-DATA transmission ...................................................................... a_iface: Centralize/wrap BSSAP / N-DATA transmission We don't want multiple callers to osmo_sccp_tx_data_msg() each having to hex-dump a log message about the to-be-transmitted message, with half of the caller sitest missing that printing. Let's centralize all calls of osmo_sccp_tx_data_msg() in a wrapper function which takes care of the related OSMO_ASSERT() and the related printing. Change-Id: I6159ea72cc8e0650eda6c49544acd65e9c15e817 --- M src/libmsc/a_iface.c M tests/msc_vlr/msc_vlr_test_gsm_ciph.err M tests/msc_vlr/msc_vlr_test_ms_timeout.err M tests/msc_vlr/msc_vlr_tests.c 4 files changed, 25 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/25/12925/1 diff --git a/src/libmsc/a_iface.c b/src/libmsc/a_iface.c index 3a7690d..c76e5c5 100644 --- a/src/libmsc/a_iface.c +++ b/src/libmsc/a_iface.c @@ -141,6 +141,16 @@ return NULL; } +/* wrapper around osmo_sccp_tx_data_msg(): Transmit a fully encoded BSSAP (DTAP or BSSMAP) message */ +static int a_iface_tx_bssap(const struct ran_conn *conn, struct msgb *msg) +{ + OSMO_ASSERT(conn); + OSMO_ASSERT(conn->a.scu); + + LOGPCONN(conn, LOGL_DEBUG, "N-DATA.req(%s)\n", msgb_hexdump_l2(msg)); + return osmo_sccp_tx_data_msg(conn->a.scu, conn->a.conn_id, msg); +} + /* Send DTAP message via A-interface, take ownership of msg */ int a_iface_tx_dtap(struct msgb *msg) { @@ -167,9 +177,8 @@ return -EINVAL; } - LOGPCONN(conn, LOGL_DEBUG, "N-DATA.req(%s)\n", msgb_hexdump_l2(msg_resp)); /* osmo_sccp_tx_data_msg() takes ownership of msg_resp */ - return osmo_sccp_tx_data_msg(conn->a.scu, conn->a.conn_id, msg_resp); + return a_iface_tx_bssap(conn, msg_resp); } /* Send Cipher mode command via A-interface */ @@ -186,9 +195,7 @@ LOGPC(DBSSAP, LOGL_DEBUG, " key %s\n", osmo_hexdump_nospc(ei->key, ei->key_len)); msg_resp = gsm0808_create_cipher(ei, include_imeisv ? &crm : NULL); - LOGPCONN(conn, LOGL_DEBUG, "N-DATA.req(%s)\n", msgb_hexdump_l2(msg_resp)); - - return osmo_sccp_tx_data_msg(conn->a.scu, conn->a.conn_id, msg_resp); + return a_iface_tx_bssap(conn, msg_resp); } /* Page a subscriber via A-interface */ @@ -407,9 +414,7 @@ memcpy(&rtp_addr, &rtp_addr_in, sizeof(rtp_addr_in)); msg = gsm0808_create_ass(&ct, NULL, &rtp_addr, &scl, NULL); - - LOGPCONN(conn, LOGL_DEBUG, "N-DATA.req(%s)\n", msgb_hexdump_l2(msg)); - return osmo_sccp_tx_data_msg(conn->a.scu, conn->a.conn_id, msg); + return a_iface_tx_bssap(conn, msg); } /* Send clear command via A-interface */ @@ -425,7 +430,7 @@ csfb_ind = true; msg = gsm0808_create_clear_command2(GSM0808_CAUSE_CALL_CONTROL, csfb_ind); - return osmo_sccp_tx_data_msg(conn->a.scu, conn->a.conn_id, msg); + return a_iface_tx_bssap(conn, msg); } int a_iface_tx_classmark_request(const struct ran_conn *conn) @@ -435,7 +440,7 @@ LOGPCONN(conn, LOGL_INFO, "Tx BSSMAP CLASSMARK REQUEST to BSC\n"); msg = gsm0808_create_classmark_request(); - return osmo_sccp_tx_data_msg(conn->a.scu, conn->a.conn_id, msg); + return a_iface_tx_bssap(conn, msg); } /* Callback function: Close all open connections */ diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err index af11385..2fb9bd8 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err @@ -2452,6 +2452,7 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: Set Ciphering Mode DMM IMSI-901700000004620: to determine whether A5/3 is supported, first ask for a Classmark Update to obtain Classmark 2 DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Tx BSSMAP CLASSMARK REQUEST to BSC +DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: N-DATA.req([]) BSC <--BSSAP-BSS-MANAGEMENT-- MSC: CLASSMARK REQ [L3]> 00 01 58 DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: state_chg to RAN_CONN_S_WAIT_CLASSMARK_UPDATE DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_CIPH @@ -2987,6 +2988,7 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: Set Ciphering Mode DMM IMSI-901700000004620: to determine whether A5/3 is supported, first ask for a Classmark Update to obtain Classmark 2 DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Tx BSSMAP CLASSMARK REQUEST to BSC +DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: N-DATA.req([]) BSC <--BSSAP-BSS-MANAGEMENT-- MSC: CLASSMARK REQ [L3]> 00 01 58 DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: state_chg to RAN_CONN_S_WAIT_CLASSMARK_UPDATE DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_CIPH @@ -3295,6 +3297,7 @@ DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A-0:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: Set Ciphering Mode DMM IMSI-901700000004620:MSISDN-42342: to determine whether A5/3 is supported, first ask for a Classmark Update to obtain Classmark 2 DBSSAP RAN_conn(IMSI-901700000004620:MSISDN-42342:GERAN-A-0:PAGING_RESP){RAN_CONN_S_AUTH_CIPH}: Tx BSSMAP CLASSMARK REQUEST to BSC +DBSSAP RAN_conn(IMSI-901700000004620:MSISDN-42342:GERAN-A-0:PAGING_RESP){RAN_CONN_S_AUTH_CIPH}: N-DATA.req([]) BSC <--BSSAP-BSS-MANAGEMENT-- MSC: CLASSMARK REQ [L3]> 00 01 58 DMM RAN_conn(IMSI-901700000004620:MSISDN-42342:GERAN-A-0:PAGING_RESP){RAN_CONN_S_AUTH_CIPH}: state_chg to RAN_CONN_S_WAIT_CLASSMARK_UPDATE DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A-0:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: state_chg to PR_ARQ_S_WAIT_CIPH diff --git a/tests/msc_vlr/msc_vlr_test_ms_timeout.err b/tests/msc_vlr/msc_vlr_test_ms_timeout.err index e09389c..72d116a 100644 --- a/tests/msc_vlr/msc_vlr_test_ms_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_ms_timeout.err @@ -686,6 +686,7 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: Set Ciphering Mode DMM IMSI-901700000004620: to determine whether A5/3 is supported, first ask for a Classmark Update to obtain Classmark 2 DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Tx BSSMAP CLASSMARK REQUEST to BSC +DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: N-DATA.req([]) BSC <--BSSAP-BSS-MANAGEMENT-- MSC: CLASSMARK REQ [L3]> 00 01 58 DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: state_chg to RAN_CONN_S_WAIT_CLASSMARK_UPDATE DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_CIPH diff --git a/tests/msc_vlr/msc_vlr_tests.c b/tests/msc_vlr/msc_vlr_tests.c index eb6df09..217c647 100644 --- a/tests/msc_vlr/msc_vlr_tests.c +++ b/tests/msc_vlr/msc_vlr_tests.c @@ -192,6 +192,10 @@ } enum osmo_rat_type rx_from_ran = OSMO_RAT_GERAN_A; +struct osmo_sccp_user { + uint8_t foo; +}; +static struct osmo_sccp_user g_scu; struct ran_conn *conn_new(void) { @@ -203,6 +207,8 @@ .conn_id = 42, }; conn->iu.ue_ctx = ue_ctx; + } else { + conn->a.scu = &g_scu; } return conn; } -- To view, visit https://gerrit.osmocom.org/12925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6159ea72cc8e0650eda6c49544acd65e9c15e817 Gerrit-Change-Number: 12925 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:08:14 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 12:08:14 +0000 Subject: Change in osmo-msc[master]: a_iface: use 'const' qualifier for ran_conn whenever possible Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12926 Change subject: a_iface: use 'const' qualifier for ran_conn whenever possible ...................................................................... a_iface: use 'const' qualifier for ran_conn whenever possible Change-Id: I8a15c9baae2071569e2ecc4635ddaf5a0001f959 --- M include/osmocom/msc/a_iface.h M src/libmsc/a_iface.c 2 files changed, 4 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/26/12926/1 diff --git a/include/osmocom/msc/a_iface.h b/include/osmocom/msc/a_iface.h index 2d11cca..d8a8aab 100644 --- a/include/osmocom/msc/a_iface.h +++ b/include/osmocom/msc/a_iface.h @@ -68,7 +68,7 @@ int a_iface_tx_assignment(const struct gsm_trans *trans); /* Send clear command via A-interface */ -int a_iface_tx_clear_cmd(struct ran_conn *conn); +int a_iface_tx_clear_cmd(const struct ran_conn *conn); int a_iface_tx_classmark_request(const struct ran_conn *conn); diff --git a/src/libmsc/a_iface.c b/src/libmsc/a_iface.c index c76e5c5..2c38189 100644 --- a/src/libmsc/a_iface.c +++ b/src/libmsc/a_iface.c @@ -154,14 +154,13 @@ /* Send DTAP message via A-interface, take ownership of msg */ int a_iface_tx_dtap(struct msgb *msg) { - struct ran_conn *conn; + const struct ran_conn *conn; struct msgb *msg_resp; uint8_t link_id = OMSC_LINKID_CB(msg); OSMO_ASSERT(msg); conn = (struct ran_conn *)msg->dst; OSMO_ASSERT(conn); - OSMO_ASSERT(conn->a.scu); LOGPCONN(conn, LOGL_DEBUG, "Passing DTAP message (DLCI=0x%02x) from MSC to BSC\n", link_id); @@ -367,7 +366,7 @@ /* Send assignment request via A-interface */ int a_iface_tx_assignment(const struct gsm_trans *trans) { - struct ran_conn *conn; + const struct ran_conn *conn; struct gsm0808_channel_type ct; struct gsm0808_speech_codec_list scl; struct msgb *msg; @@ -418,7 +417,7 @@ } /* Send clear command via A-interface */ -int a_iface_tx_clear_cmd(struct ran_conn *conn) +int a_iface_tx_clear_cmd(const struct ran_conn *conn) { struct msgb *msg; struct vlr_subscr *vsub = conn->vsub; -- To view, visit https://gerrit.osmocom.org/12926 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I8a15c9baae2071569e2ecc4635ddaf5a0001f959 Gerrit-Change-Number: 12926 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:08:14 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 12:08:14 +0000 Subject: Change in osmo-msc[master]: a_iface: Fix hexdumping of N-DATA.req Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12927 Change subject: a_iface: Fix hexdumping of N-DATA.req ...................................................................... a_iface: Fix hexdumping of N-DATA.req For some reason the existing code was using msgb_hexdump_l2() while the L2 header is not used by the BSSAP transmit code. Let's fix this. Change-Id: I52a1eb3a867ece63fcfa4c2a720d035ebfb90a7b --- M src/libmsc/a_iface.c M tests/msc_vlr/msc_vlr_test_gsm_ciph.err M tests/msc_vlr/msc_vlr_test_ms_timeout.err 3 files changed, 5 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/27/12927/1 diff --git a/src/libmsc/a_iface.c b/src/libmsc/a_iface.c index 2c38189..9a7dcd0 100644 --- a/src/libmsc/a_iface.c +++ b/src/libmsc/a_iface.c @@ -147,7 +147,7 @@ OSMO_ASSERT(conn); OSMO_ASSERT(conn->a.scu); - LOGPCONN(conn, LOGL_DEBUG, "N-DATA.req(%s)\n", msgb_hexdump_l2(msg)); + LOGPCONN(conn, LOGL_DEBUG, "N-DATA.req(%s)\n", msgb_hexdump_l3(msg)); return osmo_sccp_tx_data_msg(conn->a.scu, conn->a.conn_id, msg); } diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err index 2fb9bd8..ef77391 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err @@ -2452,7 +2452,7 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: Set Ciphering Mode DMM IMSI-901700000004620: to determine whether A5/3 is supported, first ask for a Classmark Update to obtain Classmark 2 DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Tx BSSMAP CLASSMARK REQUEST to BSC -DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: N-DATA.req([]) +DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: N-DATA.req(00 01 58 ) BSC <--BSSAP-BSS-MANAGEMENT-- MSC: CLASSMARK REQ [L3]> 00 01 58 DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: state_chg to RAN_CONN_S_WAIT_CLASSMARK_UPDATE DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_CIPH @@ -2988,7 +2988,7 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: Set Ciphering Mode DMM IMSI-901700000004620: to determine whether A5/3 is supported, first ask for a Classmark Update to obtain Classmark 2 DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Tx BSSMAP CLASSMARK REQUEST to BSC -DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: N-DATA.req([]) +DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: N-DATA.req(00 01 58 ) BSC <--BSSAP-BSS-MANAGEMENT-- MSC: CLASSMARK REQ [L3]> 00 01 58 DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: state_chg to RAN_CONN_S_WAIT_CLASSMARK_UPDATE DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_CIPH @@ -3297,7 +3297,7 @@ DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A-0:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: Set Ciphering Mode DMM IMSI-901700000004620:MSISDN-42342: to determine whether A5/3 is supported, first ask for a Classmark Update to obtain Classmark 2 DBSSAP RAN_conn(IMSI-901700000004620:MSISDN-42342:GERAN-A-0:PAGING_RESP){RAN_CONN_S_AUTH_CIPH}: Tx BSSMAP CLASSMARK REQUEST to BSC -DBSSAP RAN_conn(IMSI-901700000004620:MSISDN-42342:GERAN-A-0:PAGING_RESP){RAN_CONN_S_AUTH_CIPH}: N-DATA.req([]) +DBSSAP RAN_conn(IMSI-901700000004620:MSISDN-42342:GERAN-A-0:PAGING_RESP){RAN_CONN_S_AUTH_CIPH}: N-DATA.req(00 01 58 ) BSC <--BSSAP-BSS-MANAGEMENT-- MSC: CLASSMARK REQ [L3]> 00 01 58 DMM RAN_conn(IMSI-901700000004620:MSISDN-42342:GERAN-A-0:PAGING_RESP){RAN_CONN_S_AUTH_CIPH}: state_chg to RAN_CONN_S_WAIT_CLASSMARK_UPDATE DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A-0:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: state_chg to PR_ARQ_S_WAIT_CIPH diff --git a/tests/msc_vlr/msc_vlr_test_ms_timeout.err b/tests/msc_vlr/msc_vlr_test_ms_timeout.err index 72d116a..a02b5c2 100644 --- a/tests/msc_vlr/msc_vlr_test_ms_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_ms_timeout.err @@ -686,7 +686,7 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: Set Ciphering Mode DMM IMSI-901700000004620: to determine whether A5/3 is supported, first ask for a Classmark Update to obtain Classmark 2 DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Tx BSSMAP CLASSMARK REQUEST to BSC -DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: N-DATA.req([]) +DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: N-DATA.req(00 01 58 ) BSC <--BSSAP-BSS-MANAGEMENT-- MSC: CLASSMARK REQ [L3]> 00 01 58 DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: state_chg to RAN_CONN_S_WAIT_CLASSMARK_UPDATE DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_CIPH -- To view, visit https://gerrit.osmocom.org/12927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I52a1eb3a867ece63fcfa4c2a720d035ebfb90a7b Gerrit-Change-Number: 12927 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:08:15 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 12:08:15 +0000 Subject: Change in osmo-msc[master]: a_iface: OSMO_ASSERT() if we ever want to send BSSAP with invalid length Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12928 Change subject: a_iface: OSMO_ASSERT() if we ever want to send BSSAP with invalid length ...................................................................... a_iface: OSMO_ASSERT() if we ever want to send BSSAP with invalid length Let's add a safeguard against sending BSSAP messages with invalid length values. This should never happen, and we'd rather see osmo-msc assert during the development cycle than ever releasing a version which sends invalid messages out on the wire. Change-Id: I94327a0d276c65b528a8c7e33dde61ed53582284 Related: OS#3805 --- M src/libmsc/a_iface.c 1 file changed, 13 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/28/12928/1 diff --git a/src/libmsc/a_iface.c b/src/libmsc/a_iface.c index 9a7dcd0..91a2b6a 100644 --- a/src/libmsc/a_iface.c +++ b/src/libmsc/a_iface.c @@ -148,6 +148,19 @@ OSMO_ASSERT(conn->a.scu); LOGPCONN(conn, LOGL_DEBUG, "N-DATA.req(%s)\n", msgb_hexdump_l3(msg)); + + /* some consistency checks to ensure we don't send invalid length */ + switch (msg->l3h[0]) { + case BSSAP_MSG_DTAP: + OSMO_ASSERT(msgb_l3len(msg) == msg->l3h[2] + 3); + break; + case BSSAP_MSG_BSS_MANAGEMENT: + OSMO_ASSERT(msgb_l3len(msg) == msg->l3h[1] + 2); + break; + default: + break; + } + return osmo_sccp_tx_data_msg(conn->a.scu, conn->a.conn_id, msg); } -- To view, visit https://gerrit.osmocom.org/12928 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I94327a0d276c65b528a8c7e33dde61ed53582284 Gerrit-Change-Number: 12928 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:14:10 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 18 Feb 2019 12:14:10 +0000 Subject: Change in osmo-hlr[master]: Enable statsd support Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12929 Change subject: Enable statsd support ...................................................................... Enable statsd support Change-Id: I00b8aa4e59028a4c1098a3bae034e8d8ddfbe681 --- M src/hlr.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/29/12929/1 diff --git a/src/hlr.c b/src/hlr.c index 7046180..c544310 100644 --- a/src/hlr.c +++ b/src/hlr.c @@ -23,6 +23,7 @@ #include #include +#include #include #include #include @@ -663,6 +664,7 @@ exit(1); } + osmo_stats_init(hlr_ctx); vty_init(&vty_info); ctrl_vty_init(hlr_ctx); handle_options(argc, argv); -- To view, visit https://gerrit.osmocom.org/12929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I00b8aa4e59028a4c1098a3bae034e8d8ddfbe681 Gerrit-Change-Number: 12929 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:24:30 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 18 Feb 2019 12:24:30 +0000 Subject: Change in osmo-hlr[master]: Enable statsd support In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12929 ) Change subject: Enable statsd support ...................................................................... Patch Set 2: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/12929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I00b8aa4e59028a4c1098a3bae034e8d8ddfbe681 Gerrit-Change-Number: 12929 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 18 Feb 2019 12:24:30 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:34:15 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 18 Feb 2019 12:34:15 +0000 Subject: Change in libosmo-sccp[master]: OsmoSTP: enable statsd support Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12930 Change subject: OsmoSTP: enable statsd support ...................................................................... OsmoSTP: enable statsd support Change-Id: I5309ae44e5b9eda1a5dd1bbf10db5ffdff1fa9cd --- M stp/stp_main.c 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-sccp refs/changes/30/12930/1 diff --git a/stp/stp_main.c b/stp/stp_main.c index 0efe4ed..0554b4a 100644 --- a/stp/stp_main.c +++ b/stp/stp_main.c @@ -25,6 +25,7 @@ #include #include +#include #include #include #include @@ -33,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -163,6 +165,7 @@ tall_stp_ctx = talloc_named_const(NULL, 1, "osmo-stp"); msgb_talloc_ctx_init(tall_stp_ctx, 0); osmo_init_logging2(tall_stp_ctx, &log_info); + osmo_stats_init(tall_stp_ctx); vty_init(&vty_info); handle_options(argc, argv); @@ -173,6 +176,7 @@ osmo_ss7_init(); osmo_fsm_log_addr(false); logging_vty_add_cmds(&log_info); + osmo_stats_vty_add_cmds(); osmo_ss7_vty_init_sg(tall_stp_ctx); osmo_sccp_vty_init(); osmo_fsm_vty_add_cmds(); -- To view, visit https://gerrit.osmocom.org/12930 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5309ae44e5b9eda1a5dd1bbf10db5ffdff1fa9cd Gerrit-Change-Number: 12930 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:35:27 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 12:35:27 +0000 Subject: Change in libosmo-sccp[master]: OsmoSTP: enable statsd support In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12930 ) Change subject: OsmoSTP: enable statsd support ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12930 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5309ae44e5b9eda1a5dd1bbf10db5ffdff1fa9cd Gerrit-Change-Number: 12930 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-CC: Jenkins Builder (1000002) Gerrit-Comment-Date: Mon, 18 Feb 2019 12:35:27 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:40:38 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Feb 2019 12:40:38 +0000 Subject: Change in libosmocore[master]: Fix BSSMAP length generated by gsm0808_create_clear_command2() In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12924 ) Change subject: Fix BSSMAP length generated by gsm0808_create_clear_command2() ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12924/1/src/gsm/gsm0808.c File src/gsm/gsm0808.c: https://gerrit.osmocom.org/#/c/12924/1/src/gsm/gsm0808.c at 200 PS1, Line 200: msgb_v_put(msg, BSS_MAP_MSG_CLEAR_CMD); In the commit description you state you are fixing some length, but I also see some parts of this message having their contents swapped in order (CLEAR_CMD and BSS_MANAGEMENT). Is that expected? can you explain that in the commit description? -- To view, visit https://gerrit.osmocom.org/12924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4d07d25fb03ca0f89fd7b94226c54309c77a010a Gerrit-Change-Number: 12924 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 12:40:38 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:41:28 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 18 Feb 2019 12:41:28 +0000 Subject: Change in osmo-bts[master]: Enable statsd support Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12931 Change subject: Enable statsd support ...................................................................... Enable statsd support Change-Id: I9112d9fd527cdc29d89868df40c6845a751c4865 --- M src/common/main.c M src/common/vty.c 2 files changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/31/12931/1 diff --git a/src/common/main.c b/src/common/main.c index f90a4d4..3a53813 100644 --- a/src/common/main.c +++ b/src/common/main.c @@ -33,6 +33,7 @@ #include #include +#include #include #include #include @@ -236,6 +237,7 @@ bts_vty_info.tall_ctx = tall_bts_ctx; osmo_init_logging2(tall_bts_ctx, &bts_log_info); + osmo_stats_init(tall_bts_ctx); vty_init(&bts_vty_info); ctrl_vty_init(tall_bts_ctx); rate_ctr_init(tall_bts_ctx); diff --git a/src/common/vty.c b/src/common/vty.c index e4a9dc1..9e900b2 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -1598,6 +1599,7 @@ logging_vty_add_cmds(cat); osmo_talloc_vty_add_cmds(); + osmo_stats_vty_add_cmds(); install_node(&bts_node, config_write_bts); install_element(CONFIG_NODE, &cfg_bts_cmd); -- To view, visit https://gerrit.osmocom.org/12931 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I9112d9fd527cdc29d89868df40c6845a751c4865 Gerrit-Change-Number: 12931 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:41:54 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 18 Feb 2019 12:41:54 +0000 Subject: Change in libosmo-sccp[master]: OsmoSTP: enable statsd support In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12930 ) Change subject: OsmoSTP: enable statsd support ...................................................................... OsmoSTP: enable statsd support Change-Id: I5309ae44e5b9eda1a5dd1bbf10db5ffdff1fa9cd --- M stp/stp_main.c 1 file changed, 4 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/stp/stp_main.c b/stp/stp_main.c index 0efe4ed..0554b4a 100644 --- a/stp/stp_main.c +++ b/stp/stp_main.c @@ -25,6 +25,7 @@ #include #include +#include #include #include #include @@ -33,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -163,6 +165,7 @@ tall_stp_ctx = talloc_named_const(NULL, 1, "osmo-stp"); msgb_talloc_ctx_init(tall_stp_ctx, 0); osmo_init_logging2(tall_stp_ctx, &log_info); + osmo_stats_init(tall_stp_ctx); vty_init(&vty_info); handle_options(argc, argv); @@ -173,6 +176,7 @@ osmo_ss7_init(); osmo_fsm_log_addr(false); logging_vty_add_cmds(&log_info); + osmo_stats_vty_add_cmds(); osmo_ss7_vty_init_sg(tall_stp_ctx); osmo_sccp_vty_init(); osmo_fsm_vty_add_cmds(); -- To view, visit https://gerrit.osmocom.org/12930 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-sccp Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5309ae44e5b9eda1a5dd1bbf10db5ffdff1fa9cd Gerrit-Change-Number: 12930 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:43:25 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 18 Feb 2019 12:43:25 +0000 Subject: Change in osmo-hlr[master]: Enable statsd support In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12929 ) Change subject: Enable statsd support ...................................................................... Patch Set 2: That's kinda fishy: similar https://gerrit.osmocom.org/c/libosmo-sccp/+/12930 went through smoothly but this one chokes in seemingly unrelated vty test. Could it be somehow connected to recent IMEI-related changes? -- To view, visit https://gerrit.osmocom.org/12929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I00b8aa4e59028a4c1098a3bae034e8d8ddfbe681 Gerrit-Change-Number: 12929 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 18 Feb 2019 12:43:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:44:14 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Feb 2019 12:44:14 +0000 Subject: Change in osmo-msc[master]: a_iface: Centralize/wrap BSSAP / N-DATA transmission In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12925 ) Change subject: a_iface: Centralize/wrap BSSAP / N-DATA transmission ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12925/1/tests/msc_vlr/msc_vlr_tests.c File tests/msc_vlr/msc_vlr_tests.c: https://gerrit.osmocom.org/#/c/12925/1/tests/msc_vlr/msc_vlr_tests.c at 195 PS1, Line 195: struct osmo_sccp_user { Is g_scu just a hack to prevent conn->a.scu being NULL? I think it's worth having a comment in the code. -- To view, visit https://gerrit.osmocom.org/12925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6159ea72cc8e0650eda6c49544acd65e9c15e817 Gerrit-Change-Number: 12925 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 12:44:14 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:44:43 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Feb 2019 12:44:43 +0000 Subject: Change in osmo-msc[master]: a_iface: Centralize/wrap BSSAP / N-DATA transmission In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12925 ) Change subject: a_iface: Centralize/wrap BSSAP / N-DATA transmission ...................................................................... Patch Set 1: Code-Review+1 Oh it's only a test, nevermind. -- To view, visit https://gerrit.osmocom.org/12925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6159ea72cc8e0650eda6c49544acd65e9c15e817 Gerrit-Change-Number: 12925 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 12:44:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:46:40 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Feb 2019 12:46:40 +0000 Subject: Change in osmo-msc[master]: a_iface: use 'const' qualifier for ran_conn whenever possible In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12926 ) Change subject: a_iface: use 'const' qualifier for ran_conn whenever possible ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12926/1/src/libmsc/a_iface.c File src/libmsc/a_iface.c: https://gerrit.osmocom.org/#/c/12926/1/src/libmsc/a_iface.c at a164 PS1, Line 164: Non-related remove? -- To view, visit https://gerrit.osmocom.org/12926 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I8a15c9baae2071569e2ecc4635ddaf5a0001f959 Gerrit-Change-Number: 12926 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 12:46:40 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:47:23 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Feb 2019 12:47:23 +0000 Subject: Change in osmo-msc[master]: a_iface: Fix hexdumping of N-DATA.req In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12927 ) Change subject: a_iface: Fix hexdumping of N-DATA.req ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I52a1eb3a867ece63fcfa4c2a720d035ebfb90a7b Gerrit-Change-Number: 12927 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 12:47:23 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:48:05 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 12:48:05 +0000 Subject: Change in libosmocore[master]: Fix BSSMAP length generated by gsm0808_create_clear_command2() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12924 ) Change subject: Fix BSSMAP length generated by gsm0808_create_clear_command2() ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12924/1/src/gsm/gsm0808.c File src/gsm/gsm0808.c: https://gerrit.osmocom.org/#/c/12924/1/src/gsm/gsm0808.c at 200 PS1, Line 200: msgb_v_put(msg, BSS_MAP_MSG_CLEAR_CMD); > In the commit description you state you are fixing some length, but I also see some parts of this me [?] please note the sublte difference of first putting and then pushing at the end. So the order in the code is reversed, but the order of the message is not. Adding the header at the end alows us to use msgb_length(msg) for dynamically computing the length, which is exactly what prevents this kind of bug (hard-coded length values at start of message generation). -- To view, visit https://gerrit.osmocom.org/12924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4d07d25fb03ca0f89fd7b94226c54309c77a010a Gerrit-Change-Number: 12924 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 12:48:05 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:49:07 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Feb 2019 12:49:07 +0000 Subject: Change in osmo-msc[master]: a_iface: OSMO_ASSERT() if we ever want to send BSSAP with invalid length In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12928 ) Change subject: a_iface: OSMO_ASSERT() if we ever want to send BSSAP with invalid length ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/12928/1/src/libmsc/a_iface.c File src/libmsc/a_iface.c: https://gerrit.osmocom.org/#/c/12928/1/src/libmsc/a_iface.c at 153 PS1, Line 153: switch (msg->l3h[0]) { May be worth adding an OSMO_ASSERT(msg->l3h) before this line. -- To view, visit https://gerrit.osmocom.org/12928 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I94327a0d276c65b528a8c7e33dde61ed53582284 Gerrit-Change-Number: 12928 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 12:49:07 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:49:15 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 12:49:15 +0000 Subject: Change in libosmocore[master]: Fix BSSMAP length generated by gsm0808_create_clear_command2() In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12924 to look at the new patch set (#2). Change subject: Fix BSSMAP length generated by gsm0808_create_clear_command2() ...................................................................... Fix BSSMAP length generated by gsm0808_create_clear_command2() In Change-Id Id8a75e1da2d5f520064666e4ee413d1c91da6ae3 we recently introduced adding the "CSFB INDICATOR" IE to the CLEAR COMMAND, but we did so with a wrong length value. Change-Id: I4d07d25fb03ca0f89fd7b94226c54309c77a010a Closes: OS#3805 Related: OS#2778 --- M src/gsm/gsm0808.c 1 file changed, 7 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/24/12924/2 -- To view, visit https://gerrit.osmocom.org/12924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I4d07d25fb03ca0f89fd7b94226c54309c77a010a Gerrit-Change-Number: 12924 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:49:16 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 12:49:16 +0000 Subject: Change in libosmocore[master]: gsm0808: comment about difference of gsm0808_create_clear_command() Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12932 Change subject: gsm0808: comment about difference of gsm0808_create_clear_command() ...................................................................... gsm0808: comment about difference of gsm0808_create_clear_command() This single function has a quite different behavior than the other gsm0808_ functions in terms of how the resulting msgb l2h and l3h pointers are set. Let's document that to avoid more confusion. Change-Id: I0367760a588fc968c5a2dea46001ef1ee7965c8c --- M src/gsm/gsm0808.c 1 file changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/32/12932/1 diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index 86b6c05..5be227e 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -178,7 +178,10 @@ return msg; } -/*! Create BSSMAP Clear Command message +/*! Create BSSMAP Clear Command message with BSSAP header in l2h and BSSMAP in l3h. + * This is quite different from most (all?) other gsm0808_create_* which have l3h + * point to the BSSAP header. However, we have to keep this for backwards compatibility. + * Use gsm0808_create_clear_command2() for a 'modern' implementation. * \param[in] cause TS 08.08 cause value * \returns callee-allocated msgb with BSSMAP Clear Command message */ struct msgb *gsm0808_create_clear_command(uint8_t cause) -- To view, visit https://gerrit.osmocom.org/12932 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0367760a588fc968c5a2dea46001ef1ee7965c8c Gerrit-Change-Number: 12932 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:49:16 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 12:49:16 +0000 Subject: Change in libosmocore[master]: gsm0808: Add unit tests for test_create_clear_command2() Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12933 Change subject: gsm0808: Add unit tests for test_create_clear_command2() ...................................................................... gsm0808: Add unit tests for test_create_clear_command2() Change-Id: Ie3f34b78edc91a013152742bebbd839586a787fe Related: OS#3805 --- M tests/gsm0808/gsm0808_test.c M tests/gsm0808/gsm0808_test.ok 2 files changed, 26 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/33/12933/1 diff --git a/tests/gsm0808/gsm0808_test.c b/tests/gsm0808/gsm0808_test.c index f06e8b7..65fef53 100644 --- a/tests/gsm0808/gsm0808_test.c +++ b/tests/gsm0808/gsm0808_test.c @@ -186,6 +186,28 @@ msgb_free(msg); } +static void test_create_clear_command2() +{ + static const uint8_t res[] = { 0x00, 0x04, 0x20, 0x04, 0x01, 0x23 }; + struct msgb *msg; + + printf("Testing creating Clear Command 2\n"); + msg = gsm0808_create_clear_command2(0x23, false); + VERIFY(msg, res, ARRAY_SIZE(res)); + msgb_free(msg); +} + +static void test_create_clear_command2_csfb() +{ + static const uint8_t res[] = { 0x00, 0x05, 0x20, 0x04, 0x01, 0x23, 0x8F }; + struct msgb *msg; + + printf("Testing creating Clear Command 2 (CSFB)\n"); + msg = gsm0808_create_clear_command2(0x23, true); + VERIFY(msg, res, ARRAY_SIZE(res)); + msgb_free(msg); +} + static void test_create_clear_complete() { static const uint8_t res[] = { 0x00, 0x01, 0x21 }; @@ -2219,6 +2241,8 @@ test_create_reset(); test_create_reset_ack(); test_create_clear_command(); + test_create_clear_command2(); + test_create_clear_command2_csfb(); test_create_clear_complete(); test_create_cipher(); test_create_cipher_complete(); diff --git a/tests/gsm0808/gsm0808_test.ok b/tests/gsm0808/gsm0808_test.ok index aae8959..7819e7a 100644 --- a/tests/gsm0808/gsm0808_test.ok +++ b/tests/gsm0808/gsm0808_test.ok @@ -6,6 +6,8 @@ Testing creating Reset Testing creating Reset Ack Testing creating Clear Command +Testing creating Clear Command 2 +Testing creating Clear Command 2 (CSFB) Testing creating Clear Complete Testing creating Chipher Mode Command Testing creating Cipher Complete -- To view, visit https://gerrit.osmocom.org/12933 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie3f34b78edc91a013152742bebbd839586a787fe Gerrit-Change-Number: 12933 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:52:29 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 12:52:29 +0000 Subject: Change in osmo-msc[master]: a_iface: Centralize/wrap BSSAP / N-DATA transmission In-Reply-To: References: Message-ID: Hello Pau Espin Pedrol, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12925 to look at the new patch set (#2). Change subject: a_iface: Centralize/wrap BSSAP / N-DATA transmission ...................................................................... a_iface: Centralize/wrap BSSAP / N-DATA transmission We don't want multiple callers to osmo_sccp_tx_data_msg() each having to hex-dump a log message about the to-be-transmitted message, with half of the caller sitest missing that printing. Let's centralize all calls of osmo_sccp_tx_data_msg() in a wrapper function which takes care of the related OSMO_ASSERT() and the related printing. Change-Id: I6159ea72cc8e0650eda6c49544acd65e9c15e817 --- M src/libmsc/a_iface.c M tests/msc_vlr/msc_vlr_test_gsm_ciph.err M tests/msc_vlr/msc_vlr_test_ms_timeout.err M tests/msc_vlr/msc_vlr_tests.c 4 files changed, 27 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/25/12925/2 -- To view, visit https://gerrit.osmocom.org/12925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I6159ea72cc8e0650eda6c49544acd65e9c15e817 Gerrit-Change-Number: 12925 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:52:59 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 12:52:59 +0000 Subject: Change in osmo-msc[master]: a_iface: Centralize/wrap BSSAP / N-DATA transmission In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12925 ) Change subject: a_iface: Centralize/wrap BSSAP / N-DATA transmission ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6159ea72cc8e0650eda6c49544acd65e9c15e817 Gerrit-Change-Number: 12925 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 12:52:59 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:53:09 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 12:53:09 +0000 Subject: Change in osmo-msc[master]: a_iface: use 'const' qualifier for ran_conn whenever possible In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12926 ) Change subject: a_iface: use 'const' qualifier for ran_conn whenever possible ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12926 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I8a15c9baae2071569e2ecc4635ddaf5a0001f959 Gerrit-Change-Number: 12926 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 12:53:09 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:53:14 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 18 Feb 2019 12:53:14 +0000 Subject: Change in osmo-hlr[master]: Add link to project wiki to .service file Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12934 Change subject: Add link to project wiki to .service file ...................................................................... Add link to project wiki to .service file Change-Id: Icd4d1270c1765b8424f6df083318a1b6bc31bdb7 --- M contrib/systemd/osmo-hlr.service 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/34/12934/1 diff --git a/contrib/systemd/osmo-hlr.service b/contrib/systemd/osmo-hlr.service index 64e369d..2eea0c4 100644 --- a/contrib/systemd/osmo-hlr.service +++ b/contrib/systemd/osmo-hlr.service @@ -1,5 +1,6 @@ [Unit] Description=Osmocom Home Location Register (OsmoHLR) +Documentation=https://osmocom.org/projects/osmo-hlr/wiki/OsmoHLR [Service] Type=simple -- To view, visit https://gerrit.osmocom.org/12934 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Icd4d1270c1765b8424f6df083318a1b6bc31bdb7 Gerrit-Change-Number: 12934 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:53:20 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 12:53:20 +0000 Subject: Change in osmo-msc[master]: a_iface: Fix hexdumping of N-DATA.req In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12927 ) Change subject: a_iface: Fix hexdumping of N-DATA.req ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I52a1eb3a867ece63fcfa4c2a720d035ebfb90a7b Gerrit-Change-Number: 12927 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 12:53:20 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:53:24 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 12:53:24 +0000 Subject: Change in osmo-msc[master]: a_iface: OSMO_ASSERT() if we ever want to send BSSAP with invalid length In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12928 ) Change subject: a_iface: OSMO_ASSERT() if we ever want to send BSSAP with invalid length ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12928 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I94327a0d276c65b528a8c7e33dde61ed53582284 Gerrit-Change-Number: 12928 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 12:53:24 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 12:58:53 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 12:58:53 +0000 Subject: Change in osmo-hlr[master]: Add link to project wiki to .service file In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12934 ) Change subject: Add link to project wiki to .service file ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12934 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icd4d1270c1765b8424f6df083318a1b6bc31bdb7 Gerrit-Change-Number: 12934 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Reviewer: osmith Gerrit-CC: Jenkins Builder (1000002) Gerrit-Comment-Date: Mon, 18 Feb 2019 12:58:53 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:06:34 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Feb 2019 13:06:34 +0000 Subject: Change in libosmocore[master]: Fix BSSMAP length generated by gsm0808_create_clear_command2() In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12924 ) Change subject: Fix BSSMAP length generated by gsm0808_create_clear_command2() ...................................................................... Patch Set 2: Code-Review+1 Ah good point, I didn't see it was a push -- To view, visit https://gerrit.osmocom.org/12924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4d07d25fb03ca0f89fd7b94226c54309c77a010a Gerrit-Change-Number: 12924 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 13:06:34 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:06:37 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 13:06:37 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC: Verify CSFB INDICATOR is present in CLEAR COMMAND Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12935 Change subject: MSC: Verify CSFB INDICATOR is present in CLEAR COMMAND ...................................................................... MSC: Verify CSFB INDICATOR is present in CLEAR COMMAND When a CSFB voice call is cleared by the MCS, it must include the CSFB INDICATOR in order to trigger the BSC to perform actions required for Fast Return to LTE. This patch changes TC_sgsap_lu_and_mt_call() and TC_bssap_lu_sgsap_lu_and_mt_call() to ensure the CSFB INDICATOR IE is present as expected. Change-Id: I6ce3a34f85aca7143cf7925cb9319bc679e8d395 --- M library/BSSMAP_Templates.ttcn M msc/BSC_ConnectionHandler.ttcn M msc/MSC_Tests.ttcn 3 files changed, 23 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/35/12935/1 diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index a30b8e7..b538095 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -638,6 +638,21 @@ } } +template PDU_BSSAP tr_BSSMAP_ClearCommandCSFB modifies tr_BSSAP_BSSMAP := { + pdu := { + bssmap := { + clearCommand := { + messageType := '20'O, /* overwritten */ + layer3HeaderInfo := *, + cause := ?, + cSFB_Indication := { + elementIdentifier := '8F'O + } + } + } + } +} + template (value) PDU_BSSAP ts_BSSMAP_ClearComplete modifies ts_BSSAP_BSSMAP := { pdu := { diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn index 7b88192..b041007 100644 --- a/msc/BSC_ConnectionHandler.ttcn +++ b/msc/BSC_ConnectionHandler.ttcn @@ -646,13 +646,18 @@ setverdict(pass); } -function f_call_hangup(inout CallParameters cpars, boolean release_by_ms) +function f_call_hangup(inout CallParameters cpars, boolean release_by_ms, boolean is_csfb := false) runs on BSC_ConnHdlr { var MobileIdentityLV mi; var MNCC_PDU mncc; var MgcpCommand mgcp_cmd; var boolean respond_to_dlcx; + var template PDU_BSSAP t_clear := tr_BSSMAP_ClearCommand; + + if (is_csfb) { + t_clear := tr_BSSMAP_ClearCommandCSFB; + } MNCC.send(ts_MNCC_DISC_req(cpars.mncc_callref, valueof(ts_MNCC_cause(23)))); BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_DISC(cpars.transaction_id))); @@ -673,7 +678,7 @@ /* clearing of radio channel */ interleave { - [] BSSAP.receive(tr_BSSMAP_ClearCommand) { + [] BSSAP.receive(t_clear) { BSSAP.send(ts_BSSMAP_ClearComplete); BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_IND); } diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 00f9bec..7129f81 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -4471,7 +4471,7 @@ /* Complete the call, hold it for some time and then tear it down */ f_mt_call_complete(cpars); f_sleep(3.0); - f_call_hangup(cpars, true); + f_call_hangup(cpars, true, is_csfb := true); /* Make sure that subscriber is still present and the SGs association is in tact (ref-counting) */ f_ctrl_get_exp(IPA_CTRL, "fsm.SGs-UE.id.imsi:" & hex2str(g_pars.imsi) & ".state", "SGs-ASSOCIATED"); -- To view, visit https://gerrit.osmocom.org/12935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6ce3a34f85aca7143cf7925cb9319bc679e8d395 Gerrit-Change-Number: 12935 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:08:06 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Feb 2019 13:08:06 +0000 Subject: Change in libosmocore[master]: gsm0808: comment about difference of gsm0808_create_clear_command() In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12932 ) Change subject: gsm0808: comment about difference of gsm0808_create_clear_command() ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12932/1/src/gsm/gsm0808.c File src/gsm/gsm0808.c: https://gerrit.osmocom.org/#/c/12932/1/src/gsm/gsm0808.c at 181 PS1, Line 181: /*! Create BSSMAP Clear Command message with BSSAP header in l2h and BSSMAP in l3h. I don't see l2h being set here in this function. is it set somewhere else? -- To view, visit https://gerrit.osmocom.org/12932 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0367760a588fc968c5a2dea46001ef1ee7965c8c Gerrit-Change-Number: 12932 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 13:08:06 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:08:13 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 13:08:13 +0000 Subject: Change in libosmocore[master]: Fix BSSMAP length generated by gsm0808_create_clear_command2() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12924 ) Change subject: Fix BSSMAP length generated by gsm0808_create_clear_command2() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4d07d25fb03ca0f89fd7b94226c54309c77a010a Gerrit-Change-Number: 12924 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 13:08:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:09:48 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Feb 2019 13:09:48 +0000 Subject: Change in libosmocore[master]: gsm0808: Add unit tests for test_create_clear_command2() In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12933 ) Change subject: gsm0808: Add unit tests for test_create_clear_command2() ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12933 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie3f34b78edc91a013152742bebbd839586a787fe Gerrit-Change-Number: 12933 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 13:09:48 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:10:19 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 13:10:19 +0000 Subject: Change in libosmocore[master]: gsm0808: comment about difference of gsm0808_create_clear_command() In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12932 to look at the new patch set (#2). Change subject: gsm0808: comment about difference of gsm0808_create_clear_command() ...................................................................... gsm0808: comment about difference of gsm0808_create_clear_command() This single function has a quite different behavior than the other gsm0808_ functions in terms of how the resulting msgb l3h pointers are set. Let's document that to avoid more confusion. Change-Id: I0367760a588fc968c5a2dea46001ef1ee7965c8c --- M src/gsm/gsm0808.c 1 file changed, 4 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/32/12932/2 -- To view, visit https://gerrit.osmocom.org/12932 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I0367760a588fc968c5a2dea46001ef1ee7965c8c Gerrit-Change-Number: 12932 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:10:56 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 13:10:56 +0000 Subject: Change in libosmocore[master]: gsm0808: comment about difference of gsm0808_create_clear_command() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12932 ) Change subject: gsm0808: comment about difference of gsm0808_create_clear_command() ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12932/1/src/gsm/gsm0808.c File src/gsm/gsm0808.c: https://gerrit.osmocom.org/#/c/12932/1/src/gsm/gsm0808.c at 181 PS1, Line 181: /*! Create BSSMAP Clear Command message with BSSAP header in l2h and BSSMAP in l3h. > I don't see l2h being set here in this function. [?] thanks, indeed it wasn't l2h but simply before l3h without any l*h pointer pointing to it... -- To view, visit https://gerrit.osmocom.org/12932 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0367760a588fc968c5a2dea46001ef1ee7965c8c Gerrit-Change-Number: 12932 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 13:10:56 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:11:03 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Feb 2019 13:11:03 +0000 Subject: Change in osmo-msc[master]: a_iface: Centralize/wrap BSSAP / N-DATA transmission In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12925 ) Change subject: a_iface: Centralize/wrap BSSAP / N-DATA transmission ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6159ea72cc8e0650eda6c49544acd65e9c15e817 Gerrit-Change-Number: 12925 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 13:11:03 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:11:05 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 13:11:05 +0000 Subject: Change in libosmocore[master]: Fix BSSMAP length generated by gsm0808_create_clear_command2() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12924 ) Change subject: Fix BSSMAP length generated by gsm0808_create_clear_command2() ...................................................................... Fix BSSMAP length generated by gsm0808_create_clear_command2() In Change-Id Id8a75e1da2d5f520064666e4ee413d1c91da6ae3 we recently introduced adding the "CSFB INDICATOR" IE to the CLEAR COMMAND, but we did so with a wrong length value. Change-Id: I4d07d25fb03ca0f89fd7b94226c54309c77a010a Closes: OS#3805 Related: OS#2778 --- M src/gsm/gsm0808.c 1 file changed, 7 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index 2907255..86b6c05 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -201,13 +201,19 @@ * \returns callee-allocated msgb with BSSMAP Clear Command message. */ struct msgb *gsm0808_create_clear_command2(uint8_t cause, bool csfb_ind) { - struct msgb *msg = gsm0808_create_clear_command(cause); + struct msgb *msg = msgb_alloc_headroom(BSSMAP_MSG_SIZE, BSSMAP_MSG_HEADROOM, + "bssmap: clear command"); if (!msg) return NULL; + msgb_v_put(msg, BSS_MAP_MSG_CLEAR_CMD); + gsm0808_enc_cause(msg, cause); + if (csfb_ind) msgb_v_put(msg, GSM0808_IE_CSFB_INDICATION); + msg->l3h = msgb_tv_push(msg, BSSAP_MSG_BSS_MANAGEMENT, msgb_length(msg)); + return msg; } -- To view, visit https://gerrit.osmocom.org/12924 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I4d07d25fb03ca0f89fd7b94226c54309c77a010a Gerrit-Change-Number: 12924 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:11:29 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 13:11:29 +0000 Subject: Change in libosmocore[master]: gsm0808: Add unit tests for test_create_clear_command2() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12933 ) Change subject: gsm0808: Add unit tests for test_create_clear_command2() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12933 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie3f34b78edc91a013152742bebbd839586a787fe Gerrit-Change-Number: 12933 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 13:11:29 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:11:42 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Feb 2019 13:11:42 +0000 Subject: Change in osmo-msc[master]: a_iface: use 'const' qualifier for ran_conn whenever possible In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12926 ) Change subject: a_iface: use 'const' qualifier for ran_conn whenever possible ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12926 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I8a15c9baae2071569e2ecc4635ddaf5a0001f959 Gerrit-Change-Number: 12926 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 13:11:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:11:57 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 13:11:57 +0000 Subject: Change in osmo-msc[master]: a_iface: Centralize/wrap BSSAP / N-DATA transmission In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12925 ) Change subject: a_iface: Centralize/wrap BSSAP / N-DATA transmission ...................................................................... a_iface: Centralize/wrap BSSAP / N-DATA transmission We don't want multiple callers to osmo_sccp_tx_data_msg() each having to hex-dump a log message about the to-be-transmitted message, with half of the caller sitest missing that printing. Let's centralize all calls of osmo_sccp_tx_data_msg() in a wrapper function which takes care of the related OSMO_ASSERT() and the related printing. Change-Id: I6159ea72cc8e0650eda6c49544acd65e9c15e817 --- M src/libmsc/a_iface.c M tests/msc_vlr/msc_vlr_test_gsm_ciph.err M tests/msc_vlr/msc_vlr_test_ms_timeout.err M tests/msc_vlr/msc_vlr_tests.c 4 files changed, 27 insertions(+), 11 deletions(-) Approvals: Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/libmsc/a_iface.c b/src/libmsc/a_iface.c index 3a7690d..26274d8 100644 --- a/src/libmsc/a_iface.c +++ b/src/libmsc/a_iface.c @@ -141,6 +141,16 @@ return NULL; } +/* wrapper around osmo_sccp_tx_data_msg(): Transmit a fully encoded BSSAP (DTAP or BSSMAP) message */ +static int a_iface_tx_bssap(const struct ran_conn *conn, struct msgb *msg) +{ + OSMO_ASSERT(conn); + OSMO_ASSERT(conn->a.scu); + + LOGPCONN(conn, LOGL_DEBUG, "N-DATA.req(%s)\n", msgb_hexdump_l2(msg)); + return osmo_sccp_tx_data_msg(conn->a.scu, conn->a.conn_id, msg); +} + /* Send DTAP message via A-interface, take ownership of msg */ int a_iface_tx_dtap(struct msgb *msg) { @@ -151,7 +161,6 @@ OSMO_ASSERT(msg); conn = (struct ran_conn *)msg->dst; OSMO_ASSERT(conn); - OSMO_ASSERT(conn->a.scu); LOGPCONN(conn, LOGL_DEBUG, "Passing DTAP message (DLCI=0x%02x) from MSC to BSC\n", link_id); @@ -167,9 +176,8 @@ return -EINVAL; } - LOGPCONN(conn, LOGL_DEBUG, "N-DATA.req(%s)\n", msgb_hexdump_l2(msg_resp)); /* osmo_sccp_tx_data_msg() takes ownership of msg_resp */ - return osmo_sccp_tx_data_msg(conn->a.scu, conn->a.conn_id, msg_resp); + return a_iface_tx_bssap(conn, msg_resp); } /* Send Cipher mode command via A-interface */ @@ -186,9 +194,7 @@ LOGPC(DBSSAP, LOGL_DEBUG, " key %s\n", osmo_hexdump_nospc(ei->key, ei->key_len)); msg_resp = gsm0808_create_cipher(ei, include_imeisv ? &crm : NULL); - LOGPCONN(conn, LOGL_DEBUG, "N-DATA.req(%s)\n", msgb_hexdump_l2(msg_resp)); - - return osmo_sccp_tx_data_msg(conn->a.scu, conn->a.conn_id, msg_resp); + return a_iface_tx_bssap(conn, msg_resp); } /* Page a subscriber via A-interface */ @@ -407,9 +413,7 @@ memcpy(&rtp_addr, &rtp_addr_in, sizeof(rtp_addr_in)); msg = gsm0808_create_ass(&ct, NULL, &rtp_addr, &scl, NULL); - - LOGPCONN(conn, LOGL_DEBUG, "N-DATA.req(%s)\n", msgb_hexdump_l2(msg)); - return osmo_sccp_tx_data_msg(conn->a.scu, conn->a.conn_id, msg); + return a_iface_tx_bssap(conn, msg); } /* Send clear command via A-interface */ @@ -425,7 +429,7 @@ csfb_ind = true; msg = gsm0808_create_clear_command2(GSM0808_CAUSE_CALL_CONTROL, csfb_ind); - return osmo_sccp_tx_data_msg(conn->a.scu, conn->a.conn_id, msg); + return a_iface_tx_bssap(conn, msg); } int a_iface_tx_classmark_request(const struct ran_conn *conn) @@ -435,7 +439,7 @@ LOGPCONN(conn, LOGL_INFO, "Tx BSSMAP CLASSMARK REQUEST to BSC\n"); msg = gsm0808_create_classmark_request(); - return osmo_sccp_tx_data_msg(conn->a.scu, conn->a.conn_id, msg); + return a_iface_tx_bssap(conn, msg); } /* Callback function: Close all open connections */ diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err index af11385..2fb9bd8 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err @@ -2452,6 +2452,7 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: Set Ciphering Mode DMM IMSI-901700000004620: to determine whether A5/3 is supported, first ask for a Classmark Update to obtain Classmark 2 DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Tx BSSMAP CLASSMARK REQUEST to BSC +DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: N-DATA.req([]) BSC <--BSSAP-BSS-MANAGEMENT-- MSC: CLASSMARK REQ [L3]> 00 01 58 DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: state_chg to RAN_CONN_S_WAIT_CLASSMARK_UPDATE DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_CIPH @@ -2987,6 +2988,7 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: Set Ciphering Mode DMM IMSI-901700000004620: to determine whether A5/3 is supported, first ask for a Classmark Update to obtain Classmark 2 DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Tx BSSMAP CLASSMARK REQUEST to BSC +DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: N-DATA.req([]) BSC <--BSSAP-BSS-MANAGEMENT-- MSC: CLASSMARK REQ [L3]> 00 01 58 DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: state_chg to RAN_CONN_S_WAIT_CLASSMARK_UPDATE DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_CIPH @@ -3295,6 +3297,7 @@ DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A-0:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: Set Ciphering Mode DMM IMSI-901700000004620:MSISDN-42342: to determine whether A5/3 is supported, first ask for a Classmark Update to obtain Classmark 2 DBSSAP RAN_conn(IMSI-901700000004620:MSISDN-42342:GERAN-A-0:PAGING_RESP){RAN_CONN_S_AUTH_CIPH}: Tx BSSMAP CLASSMARK REQUEST to BSC +DBSSAP RAN_conn(IMSI-901700000004620:MSISDN-42342:GERAN-A-0:PAGING_RESP){RAN_CONN_S_AUTH_CIPH}: N-DATA.req([]) BSC <--BSSAP-BSS-MANAGEMENT-- MSC: CLASSMARK REQ [L3]> 00 01 58 DMM RAN_conn(IMSI-901700000004620:MSISDN-42342:GERAN-A-0:PAGING_RESP){RAN_CONN_S_AUTH_CIPH}: state_chg to RAN_CONN_S_WAIT_CLASSMARK_UPDATE DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A-0:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: state_chg to PR_ARQ_S_WAIT_CIPH diff --git a/tests/msc_vlr/msc_vlr_test_ms_timeout.err b/tests/msc_vlr/msc_vlr_test_ms_timeout.err index e09389c..72d116a 100644 --- a/tests/msc_vlr/msc_vlr_test_ms_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_ms_timeout.err @@ -686,6 +686,7 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: Set Ciphering Mode DMM IMSI-901700000004620: to determine whether A5/3 is supported, first ask for a Classmark Update to obtain Classmark 2 DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Tx BSSMAP CLASSMARK REQUEST to BSC +DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: N-DATA.req([]) BSC <--BSSAP-BSS-MANAGEMENT-- MSC: CLASSMARK REQ [L3]> 00 01 58 DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: state_chg to RAN_CONN_S_WAIT_CLASSMARK_UPDATE DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_CIPH diff --git a/tests/msc_vlr/msc_vlr_tests.c b/tests/msc_vlr/msc_vlr_tests.c index eb6df09..4a17789 100644 --- a/tests/msc_vlr/msc_vlr_tests.c +++ b/tests/msc_vlr/msc_vlr_tests.c @@ -193,6 +193,12 @@ enum osmo_rat_type rx_from_ran = OSMO_RAT_GERAN_A; +/* SCCP user stub to make a_iface_tx_bssap() happy during test case execution */ +struct osmo_sccp_user { + uint8_t foo; +}; +static struct osmo_sccp_user g_scu; + struct ran_conn *conn_new(void) { struct ran_conn *conn; @@ -203,6 +209,8 @@ .conn_id = 42, }; conn->iu.ue_ctx = ue_ctx; + } else { + conn->a.scu = &g_scu; } return conn; } -- To view, visit https://gerrit.osmocom.org/12925 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I6159ea72cc8e0650eda6c49544acd65e9c15e817 Gerrit-Change-Number: 12925 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:11:58 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 13:11:58 +0000 Subject: Change in osmo-msc[master]: a_iface: use 'const' qualifier for ran_conn whenever possible In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12926 ) Change subject: a_iface: use 'const' qualifier for ran_conn whenever possible ...................................................................... a_iface: use 'const' qualifier for ran_conn whenever possible Change-Id: I8a15c9baae2071569e2ecc4635ddaf5a0001f959 --- M include/osmocom/msc/a_iface.h M src/libmsc/a_iface.c 2 files changed, 4 insertions(+), 4 deletions(-) Approvals: Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/msc/a_iface.h b/include/osmocom/msc/a_iface.h index 2d11cca..d8a8aab 100644 --- a/include/osmocom/msc/a_iface.h +++ b/include/osmocom/msc/a_iface.h @@ -68,7 +68,7 @@ int a_iface_tx_assignment(const struct gsm_trans *trans); /* Send clear command via A-interface */ -int a_iface_tx_clear_cmd(struct ran_conn *conn); +int a_iface_tx_clear_cmd(const struct ran_conn *conn); int a_iface_tx_classmark_request(const struct ran_conn *conn); diff --git a/src/libmsc/a_iface.c b/src/libmsc/a_iface.c index 26274d8..2c38189 100644 --- a/src/libmsc/a_iface.c +++ b/src/libmsc/a_iface.c @@ -154,7 +154,7 @@ /* Send DTAP message via A-interface, take ownership of msg */ int a_iface_tx_dtap(struct msgb *msg) { - struct ran_conn *conn; + const struct ran_conn *conn; struct msgb *msg_resp; uint8_t link_id = OMSC_LINKID_CB(msg); @@ -366,7 +366,7 @@ /* Send assignment request via A-interface */ int a_iface_tx_assignment(const struct gsm_trans *trans) { - struct ran_conn *conn; + const struct ran_conn *conn; struct gsm0808_channel_type ct; struct gsm0808_speech_codec_list scl; struct msgb *msg; @@ -417,7 +417,7 @@ } /* Send clear command via A-interface */ -int a_iface_tx_clear_cmd(struct ran_conn *conn) +int a_iface_tx_clear_cmd(const struct ran_conn *conn) { struct msgb *msg; struct vlr_subscr *vsub = conn->vsub; -- To view, visit https://gerrit.osmocom.org/12926 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I8a15c9baae2071569e2ecc4635ddaf5a0001f959 Gerrit-Change-Number: 12926 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:11:58 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 13:11:58 +0000 Subject: Change in osmo-msc[master]: a_iface: Fix hexdumping of N-DATA.req In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12927 ) Change subject: a_iface: Fix hexdumping of N-DATA.req ...................................................................... a_iface: Fix hexdumping of N-DATA.req For some reason the existing code was using msgb_hexdump_l2() while the L2 header is not used by the BSSAP transmit code. Let's fix this. Change-Id: I52a1eb3a867ece63fcfa4c2a720d035ebfb90a7b --- M src/libmsc/a_iface.c M tests/msc_vlr/msc_vlr_test_gsm_ciph.err M tests/msc_vlr/msc_vlr_test_ms_timeout.err 3 files changed, 5 insertions(+), 5 deletions(-) Approvals: Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/libmsc/a_iface.c b/src/libmsc/a_iface.c index 2c38189..9a7dcd0 100644 --- a/src/libmsc/a_iface.c +++ b/src/libmsc/a_iface.c @@ -147,7 +147,7 @@ OSMO_ASSERT(conn); OSMO_ASSERT(conn->a.scu); - LOGPCONN(conn, LOGL_DEBUG, "N-DATA.req(%s)\n", msgb_hexdump_l2(msg)); + LOGPCONN(conn, LOGL_DEBUG, "N-DATA.req(%s)\n", msgb_hexdump_l3(msg)); return osmo_sccp_tx_data_msg(conn->a.scu, conn->a.conn_id, msg); } diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err index 2fb9bd8..ef77391 100644 --- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err +++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err @@ -2452,7 +2452,7 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: Set Ciphering Mode DMM IMSI-901700000004620: to determine whether A5/3 is supported, first ask for a Classmark Update to obtain Classmark 2 DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Tx BSSMAP CLASSMARK REQUEST to BSC -DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: N-DATA.req([]) +DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: N-DATA.req(00 01 58 ) BSC <--BSSAP-BSS-MANAGEMENT-- MSC: CLASSMARK REQ [L3]> 00 01 58 DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: state_chg to RAN_CONN_S_WAIT_CLASSMARK_UPDATE DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_CIPH @@ -2988,7 +2988,7 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: Set Ciphering Mode DMM IMSI-901700000004620: to determine whether A5/3 is supported, first ask for a Classmark Update to obtain Classmark 2 DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Tx BSSMAP CLASSMARK REQUEST to BSC -DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: N-DATA.req([]) +DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: N-DATA.req(00 01 58 ) BSC <--BSSAP-BSS-MANAGEMENT-- MSC: CLASSMARK REQ [L3]> 00 01 58 DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: state_chg to RAN_CONN_S_WAIT_CLASSMARK_UPDATE DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_CIPH @@ -3297,7 +3297,7 @@ DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A-0:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: Set Ciphering Mode DMM IMSI-901700000004620:MSISDN-42342: to determine whether A5/3 is supported, first ask for a Classmark Update to obtain Classmark 2 DBSSAP RAN_conn(IMSI-901700000004620:MSISDN-42342:GERAN-A-0:PAGING_RESP){RAN_CONN_S_AUTH_CIPH}: Tx BSSMAP CLASSMARK REQUEST to BSC -DBSSAP RAN_conn(IMSI-901700000004620:MSISDN-42342:GERAN-A-0:PAGING_RESP){RAN_CONN_S_AUTH_CIPH}: N-DATA.req([]) +DBSSAP RAN_conn(IMSI-901700000004620:MSISDN-42342:GERAN-A-0:PAGING_RESP){RAN_CONN_S_AUTH_CIPH}: N-DATA.req(00 01 58 ) BSC <--BSSAP-BSS-MANAGEMENT-- MSC: CLASSMARK REQ [L3]> 00 01 58 DMM RAN_conn(IMSI-901700000004620:MSISDN-42342:GERAN-A-0:PAGING_RESP){RAN_CONN_S_AUTH_CIPH}: state_chg to RAN_CONN_S_WAIT_CLASSMARK_UPDATE DVLR Process_Access_Request_VLR(IMSI-901700000004620:MSISDN-42342:GERAN-A-0:PAGING_RESP){PR_ARQ_S_WAIT_AUTH}: state_chg to PR_ARQ_S_WAIT_CIPH diff --git a/tests/msc_vlr/msc_vlr_test_ms_timeout.err b/tests/msc_vlr/msc_vlr_test_ms_timeout.err index 72d116a..a02b5c2 100644 --- a/tests/msc_vlr/msc_vlr_test_ms_timeout.err +++ b/tests/msc_vlr/msc_vlr_test_ms_timeout.err @@ -686,7 +686,7 @@ DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: Set Ciphering Mode DMM IMSI-901700000004620: to determine whether A5/3 is supported, first ask for a Classmark Update to obtain Classmark 2 DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: Tx BSSMAP CLASSMARK REQUEST to BSC -DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: N-DATA.req([]) +DBSSAP RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: N-DATA.req(00 01 58 ) BSC <--BSSAP-BSS-MANAGEMENT-- MSC: CLASSMARK REQ [L3]> 00 01 58 DMM RAN_conn(IMSI-901700000004620:GERAN-A-0:LU){RAN_CONN_S_AUTH_CIPH}: state_chg to RAN_CONN_S_WAIT_CLASSMARK_UPDATE DVLR vlr_lu_fsm(IMSI-901700000004620:GERAN-A-0:LU){VLR_ULA_S_WAIT_AUTH}: state_chg to VLR_ULA_S_WAIT_CIPH -- To view, visit https://gerrit.osmocom.org/12927 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I52a1eb3a867ece63fcfa4c2a720d035ebfb90a7b Gerrit-Change-Number: 12927 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:13:39 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Feb 2019 13:13:39 +0000 Subject: Change in libosmocore[master]: gsm0808: comment about difference of gsm0808_create_clear_command() In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12932 ) Change subject: gsm0808: comment about difference of gsm0808_create_clear_command() ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12932 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0367760a588fc968c5a2dea46001ef1ee7965c8c Gerrit-Change-Number: 12932 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 13:13:39 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:15:24 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 18 Feb 2019 13:15:24 +0000 Subject: Change in osmo-hlr[master]: Enable statsd support In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12929 ) Change subject: Enable statsd support ...................................................................... Patch Set 3: > Could it be somehow connected to recent IMEI-related changes? Nope, was confused by IMEI-related error message in test logs. The actual error was much earlier in the logs and is fixed now. -- To view, visit https://gerrit.osmocom.org/12929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I00b8aa4e59028a4c1098a3bae034e8d8ddfbe681 Gerrit-Change-Number: 12929 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 18 Feb 2019 13:15:24 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:15:37 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 18 Feb 2019 13:15:37 +0000 Subject: Change in osmo-hlr[master]: Add link to project wiki to .service file In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12934 ) Change subject: Add link to project wiki to .service file ...................................................................... Add link to project wiki to .service file Change-Id: Icd4d1270c1765b8424f6df083318a1b6bc31bdb7 --- M contrib/systemd/osmo-hlr.service 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/contrib/systemd/osmo-hlr.service b/contrib/systemd/osmo-hlr.service index 64e369d..2eea0c4 100644 --- a/contrib/systemd/osmo-hlr.service +++ b/contrib/systemd/osmo-hlr.service @@ -1,5 +1,6 @@ [Unit] Description=Osmocom Home Location Register (OsmoHLR) +Documentation=https://osmocom.org/projects/osmo-hlr/wiki/OsmoHLR [Service] Type=simple -- To view, visit https://gerrit.osmocom.org/12934 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Icd4d1270c1765b8424f6df083318a1b6bc31bdb7 Gerrit-Change-Number: 12934 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Mon Feb 18 13:16:03 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Mon, 18 Feb 2019 13:16:03 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-libosmocore_=C2=BB_a2=3Ddefault?= =?UTF-8?Q?,a3=3Ddefault,a4=3Ddefault,amd64,osmocom-master-debian9_#768?= Message-ID: <836358073.293.1550495763937.JavaMail.jenkins@jenkins.osmocom.org> See Changes: [laforge] Fix BSSMAP length generated by gsm0808_create_clear_command2() ------------------------------------------ [...truncated 599.79 KB...] test: T-23 = 239471 s Negative T number (default: 239471 s) tdef_vty_test(config)# do show timer te tea: T1 = 50 s Water Boiling Timeout (default: 50 s) tea: T2 = 300 s Tea brewing (default: 300 s) tea: T3 = 5 m Let tea cool down before drinking (default: 5 m) tea: T4 = 20 m Forgot to drink tea while it's warm (default: 20 m) test: T1 = 100 s Testing a hundred seconds (default: 100 s) test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) test: T3 = 100 m Testing a hundred minutes (default: 100 m) test: T4 = 100 Testing a hundred potatoes (default: 100) test: T2147483647 = 4294967295 m Very large (default: 4294967295 m) test: T-23 = 239471 s Negative T number (default: 239471 s) tdef_vty_test(config)# do show timer te T2 tea: T2 = 300 s Tea brewing (default: 300 s) test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) tdef_vty_test(config)# timer tea 3 30 tdef_vty_test(config)# timer tea T3 tea: T3 = 30 m Let tea cool down before drinking (default: 5 m) tdef_vty_test(config)# timer tea t3 31 tdef_vty_test(config)# timer tea T3 tea: T3 = 31 m Let tea cool down before drinking (default: 5 m) tdef_vty_test(config)# timer tea T3 32 tdef_vty_test(config)# timer tea T3 tea: T3 = 32 m Let tea cool down before drinking (default: 5 m) tdef_vty_test(config)# timer tea T-123 99 % No such timer: T-123 tdef_vty_test(config)# timer tea T0 0 % No such timer: T0 tdef_vty_test(config)# timer tea T123 default % No such timer: T123 tdef_vty_test(config)# timer tea tea: T1 = 50 s Water Boiling Timeout (default: 50 s) tea: T2 = 300 s Tea brewing (default: 300 s) tea: T3 = 32 m Let tea cool down before drinking (default: 5 m) tea: T4 = 20 m Forgot to drink tea while it's warm (default: 20 m) tdef_vty_test(config)# timer t tea: T1 = 50 s Water Boiling Timeout (default: 50 s) tea: T2 = 300 s Tea brewing (default: 300 s) tea: T3 = 32 m Let tea cool down before drinking (default: 5 m) tea: T4 = 20 m Forgot to drink tea while it's warm (default: 20 m) test: T1 = 100 s Testing a hundred seconds (default: 100 s) test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) test: T3 = 100 m Testing a hundred minutes (default: 100 m) test: T4 = 100 Testing a hundred potatoes (default: 100) test: T2147483647 = 4294967295 m Very large (default: 4294967295 m) test: T-23 = 239471 s Negative T number (default: 239471 s) tdef_vty_test(config)# timer te T2 tea: T2 = 300 s Tea brewing (default: 300 s) test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) tdef_vty_test(config)# timer test T2 100 tdef_vty_test(config)# timer tes T2 100 % Error: no timers found tdef_vty_test(config)# timer te T2 100 % Error: no timers found tdef_vty_test(config)# do show timer software software: T1 = 30 m Write code (default: 30 m) software: T2 = 20 ms Hit segfault (default: 20 ms) software: T3 = 480 m Fix bugs (default: 480 m) tdef_vty_test(config)# do show timer software 1 software: T1 = 30 m Write code (default: 30 m) tdef_vty_test(config)# do show timer software t1 software: T1 = 30 m Write code (default: 30 m) tdef_vty_test(config)# do show timer software T1 software: T1 = 30 m Write code (default: 30 m) tdef_vty_test(config)# do show timer software T99 % No such timer: T99 tdef_vty_test(config)# do show timer software T-123123 % No such timer: T-123123 tdef_vty_test(config)# do show timer software T0 % No such timer: T0 tdef_vty_test(config)# timer software 1 11 tdef_vty_test(config)# timer software T1 software: T1 = 11 m Write code (default: 30 m) tdef_vty_test(config)# timer software t1 12 tdef_vty_test(config)# timer software T1 software: T1 = 12 m Write code (default: 30 m) tdef_vty_test(config)# timer software T1 13 tdef_vty_test(config)# timer software T2 0 tdef_vty_test(config)# timer software software: T1 = 13 m Write code (default: 30 m) software: T2 = 0 ms Hit segfault (default: 20 ms) software: T3 = 480 m Fix bugs (default: 480 m) tdef_vty_test(config)# timer softw software: T1 = 13 m Write code (default: 30 m) software: T2 = 0 ms Hit segfault (default: 20 ms) software: T3 = 480 m Fix bugs (default: 480 m) tdef_vty_test(config)# timer softw T3 software: T3 = 480 m Fix bugs (default: 480 m) tdef_vty_test(config)# timer softw T3 23 % Error: no timers found tdef_vty_test(config)# timer tea: T1 = 50 s Water Boiling Timeout (default: 50 s) tea: T2 = 300 s Tea brewing (default: 300 s) tea: T3 = 32 m Let tea cool down before drinking (default: 5 m) tea: T4 = 20 m Forgot to drink tea while it's warm (default: 20 m) test: T1 = 100 s Testing a hundred seconds (default: 100 s) test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) test: T3 = 100 m Testing a hundred minutes (default: 100 m) test: T4 = 100 Testing a hundred potatoes (default: 100) test: T2147483647 = 4294967295 m Very large (default: 4294967295 m) test: T-23 = 239471 s Negative T number (default: 239471 s) software: T1 = 13 m Write code (default: 30 m) software: T2 = 0 ms Hit segfault (default: 20 ms) software: T3 = 480 m Fix bugs (default: 480 m) tdef_vty_test(config)# do show timer tea: T1 = 50 s Water Boiling Timeout (default: 50 s) tea: T2 = 300 s Tea brewing (default: 300 s) tea: T3 = 32 m Let tea cool down before drinking (default: 5 m) tea: T4 = 20 m Forgot to drink tea while it's warm (default: 20 m) test: T1 = 100 s Testing a hundred seconds (default: 100 s) test: T2 = 100 ms Testing a hundred milliseconds (default: 100 ms) test: T3 = 100 m Testing a hundred minutes (default: 100 m) test: T4 = 100 Testing a hundred potatoes (default: 100) test: T2147483647 = 4294967295 m Very large (default: 4294967295 m) test: T-23 = 239471 s Negative T number (default: 239471 s) software: T1 = 13 m Write code (default: 30 m) software: T2 = 0 ms Hit segfault (default: 20 ms) software: T3 = 480 m Fix bugs (default: 480 m) tdef_vty_test(config)# show running-config Current configuration: ! ! line vty no login ! timer tea T3 32 timer software T1 13 timer software T2 0 end tdef_vty_test(config)# timer tea T3 default tdef_vty_test(config)# timer software T1 default tdef_vty_test(config)# show running-config Current configuration: ! ! line vty no login ! timer software T2 0 end tdef_vty_test(config)# timer softw 2 default % Error: no timers found tdef_vty_test(config)# timer software 2 default tdef_vty_test(config)# show running-config Current configuration: ! ! line vty no login ! end signal 15 received RESULTS: pass: osmo_verify_transcript_vty.py -v \ -p 42042 \ -r "../tests/tdef/tdef_vty_test_config_subnode" \ <0000> :367 unable to bind socket:127.0.0.1:42042: Address already in use <0000> :378 no suitable addr found for: 127.0.0.1:42042 <0000> :100 Cannot bind telnet at 127.0.0.1 42042 Launching: cd ' ../tests/tdef/tdef_vty_test_config_subnode Process has already terminated with 2 Traceback (most recent call last): File "/usr/local/lib/python3.5/dist-packages/osmopython-0.1.0-py3.5.egg/osmopy/osmo_interact/common.py", line 361, in verify_application interact.connect() File "/usr/local/lib/python3.5/dist-packages/osmopython-0.1.0-py3.5.egg/osmopy/osmo_interact/vty.py", line 86, in connect data = self.socket.recv(4096) ConnectionResetError: [Errno 104] Connection reset by peer RESULTS: FAIL: Makefile:2171: recipe for target 'vty-test-tdef' failed make[7]: *** [vty-test-tdef] Error 1 make[7]: Leaving directory ' Makefile:2186: recipe for target 'vty-test' failed make[6]: *** [vty-test] Error 2 make[6]: Leaving directory ' Makefile:2149: recipe for target 'ext-tests' failed make[5]: *** [ext-tests] Error 2 make[5]: Leaving directory ' Makefile:2128: recipe for target 'check-local' failed make[4]: *** [check-local] Error 2 make[4]: Leaving directory ' Makefile:1893: recipe for target 'check-am' failed make[3]: *** [check-am] Error 2 make[3]: Leaving directory ' Makefile:1896: recipe for target 'check' failed make[2]: *** [check] Error 2 make[2]: Leaving directory ' Makefile:625: recipe for target 'check-recursive' failed make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory ' Makefile:916: recipe for target 'check' failed make: *** [check] Error 2 + cat-testlogs.sh Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:17:05 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Feb 2019 13:17:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC: Verify CSFB INDICATOR is present in CLEAR COMMAND In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12935 ) Change subject: MSC: Verify CSFB INDICATOR is present in CLEAR COMMAND ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/12935/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/12935/1//COMMIT_MSG at 9 PS1, Line 9: When a CSFB voice call is cleared by the MCS, it must include the is MCS something I don't know? or you mean MSC? -- To view, visit https://gerrit.osmocom.org/12935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6ce3a34f85aca7143cf7925cb9319bc679e8d395 Gerrit-Change-Number: 12935 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 13:17:05 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:20:37 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 18 Feb 2019 13:20:37 +0000 Subject: Change in libosmocore[master]: gsm0808: comment about difference of gsm0808_create_clear_command() In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12932 ) Change subject: gsm0808: comment about difference of gsm0808_create_clear_command() ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12932 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0367760a588fc968c5a2dea46001ef1ee7965c8c Gerrit-Change-Number: 12932 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 13:20:37 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:21:10 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 13:21:10 +0000 Subject: Change in libosmocore[master]: Add multipatch capability to osmo-config-merge In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12897 ) Change subject: Add multipatch capability to osmo-config-merge ...................................................................... Patch Set 3: (1 comment) https://gerrit.osmocom.org/#/c/12897/3/utils/osmo-config-merge.c File utils/osmo-config-merge.c: https://gerrit.osmocom.org/#/c/12897/3/utils/osmo-config-merge.c at 267 PS3, Line 267: return 3; > > Yes, but ASAN won't be happy. [?] Please simply add the talloc_free(ctx) to the return-path, like the other return paths have it. -- To view, visit https://gerrit.osmocom.org/12897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I212cbdc3bf6f251c1a3175737ac74242fb004c6d Gerrit-Change-Number: 12897 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 13:21:10 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:21:59 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 13:21:59 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12625 ) Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... Patch Set 11: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 11 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy Gerrit-CC: tnt Gerrit-Comment-Date: Mon, 18 Feb 2019 13:21:59 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:34:02 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 13:34:02 +0000 Subject: Change in libosmocore[master]: gsm0808: comment about difference of gsm0808_create_clear_command() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12932 ) Change subject: gsm0808: comment about difference of gsm0808_create_clear_command() ...................................................................... gsm0808: comment about difference of gsm0808_create_clear_command() This single function has a quite different behavior than the other gsm0808_ functions in terms of how the resulting msgb l3h pointers are set. Let's document that to avoid more confusion. Change-Id: I0367760a588fc968c5a2dea46001ef1ee7965c8c --- M src/gsm/gsm0808.c 1 file changed, 4 insertions(+), 1 deletion(-) Approvals: Max: Looks good to me, approved Pau Espin Pedrol: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index 86b6c05..4873076 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -178,7 +178,10 @@ return msg; } -/*! Create BSSMAP Clear Command message +/*! Create BSSMAP Clear Command message with BSSAP header *before* l3h and BSSMAP in l3h. + * This is quite different from most (all?) other gsm0808_create_* which have l3h + * point to the BSSAP header. However, we have to keep this for backwards compatibility. + * Use gsm0808_create_clear_command2() for a 'modern' implementation. * \param[in] cause TS 08.08 cause value * \returns callee-allocated msgb with BSSMAP Clear Command message */ struct msgb *gsm0808_create_clear_command(uint8_t cause) -- To view, visit https://gerrit.osmocom.org/12932 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I0367760a588fc968c5a2dea46001ef1ee7965c8c Gerrit-Change-Number: 12932 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:34:03 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 13:34:03 +0000 Subject: Change in libosmocore[master]: gsm0808: Add unit tests for test_create_clear_command2() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12933 ) Change subject: gsm0808: Add unit tests for test_create_clear_command2() ...................................................................... gsm0808: Add unit tests for test_create_clear_command2() Change-Id: Ie3f34b78edc91a013152742bebbd839586a787fe Related: OS#3805 --- M tests/gsm0808/gsm0808_test.c M tests/gsm0808/gsm0808_test.ok 2 files changed, 26 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/tests/gsm0808/gsm0808_test.c b/tests/gsm0808/gsm0808_test.c index f06e8b7..65fef53 100644 --- a/tests/gsm0808/gsm0808_test.c +++ b/tests/gsm0808/gsm0808_test.c @@ -186,6 +186,28 @@ msgb_free(msg); } +static void test_create_clear_command2() +{ + static const uint8_t res[] = { 0x00, 0x04, 0x20, 0x04, 0x01, 0x23 }; + struct msgb *msg; + + printf("Testing creating Clear Command 2\n"); + msg = gsm0808_create_clear_command2(0x23, false); + VERIFY(msg, res, ARRAY_SIZE(res)); + msgb_free(msg); +} + +static void test_create_clear_command2_csfb() +{ + static const uint8_t res[] = { 0x00, 0x05, 0x20, 0x04, 0x01, 0x23, 0x8F }; + struct msgb *msg; + + printf("Testing creating Clear Command 2 (CSFB)\n"); + msg = gsm0808_create_clear_command2(0x23, true); + VERIFY(msg, res, ARRAY_SIZE(res)); + msgb_free(msg); +} + static void test_create_clear_complete() { static const uint8_t res[] = { 0x00, 0x01, 0x21 }; @@ -2219,6 +2241,8 @@ test_create_reset(); test_create_reset_ack(); test_create_clear_command(); + test_create_clear_command2(); + test_create_clear_command2_csfb(); test_create_clear_complete(); test_create_cipher(); test_create_cipher_complete(); diff --git a/tests/gsm0808/gsm0808_test.ok b/tests/gsm0808/gsm0808_test.ok index aae8959..7819e7a 100644 --- a/tests/gsm0808/gsm0808_test.ok +++ b/tests/gsm0808/gsm0808_test.ok @@ -6,6 +6,8 @@ Testing creating Reset Testing creating Reset Ack Testing creating Clear Command +Testing creating Clear Command 2 +Testing creating Clear Command 2 (CSFB) Testing creating Clear Complete Testing creating Chipher Mode Command Testing creating Cipher Complete -- To view, visit https://gerrit.osmocom.org/12933 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie3f34b78edc91a013152742bebbd839586a787fe Gerrit-Change-Number: 12933 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:34:41 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 13:34:41 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC: Verify CSFB INDICATOR is present in CLEAR COMMAND In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12935 ) Change subject: MSC: Verify CSFB INDICATOR is present in CLEAR COMMAND ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12935/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/12935/1//COMMIT_MSG at 9 PS1, Line 9: When a CSFB voice call is cleared by the MCS, it must include the > is MCS something I don't know? or you mean MSC? MCS is the modulation and coding scheme of EGPRS (MCS1..9). MSC is correct here, of course. -- To view, visit https://gerrit.osmocom.org/12935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6ce3a34f85aca7143cf7925cb9319bc679e8d395 Gerrit-Change-Number: 12935 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 13:34:41 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:34:54 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 13:34:54 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC: Verify CSFB INDICATOR is present in CLEAR COMMAND In-Reply-To: References: Message-ID: Hello Pau Espin Pedrol, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12935 to look at the new patch set (#2). Change subject: MSC: Verify CSFB INDICATOR is present in CLEAR COMMAND ...................................................................... MSC: Verify CSFB INDICATOR is present in CLEAR COMMAND When a CSFB voice call is cleared by the MSC, it must include the CSFB INDICATOR in order to trigger the BSC to perform actions required for Fast Return to LTE. This patch changes TC_sgsap_lu_and_mt_call() and TC_bssap_lu_sgsap_lu_and_mt_call() to ensure the CSFB INDICATOR IE is present as expected. Change-Id: I6ce3a34f85aca7143cf7925cb9319bc679e8d395 --- M library/BSSMAP_Templates.ttcn M msc/BSC_ConnectionHandler.ttcn M msc/MSC_Tests.ttcn 3 files changed, 23 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/35/12935/2 -- To view, visit https://gerrit.osmocom.org/12935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I6ce3a34f85aca7143cf7925cb9319bc679e8d395 Gerrit-Change-Number: 12935 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Mon Feb 18 13:38:38 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Mon, 18 Feb 2019 13:38:38 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_norma?= =?UTF-8?Q?l_:_master-libosmocore_=C2=BB_a2=3Dde?= =?UTF-8?Q?fault,a3=3Ddefault,a4=3Ddefault,am?= =?UTF-8?Q?d64,osmocom-master-debian9_#769?= In-Reply-To: <836358073.293.1550495763937.JavaMail.jenkins@jenkins.osmocom.org> References: <836358073.293.1550495763937.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <354517109.294.1550497118949.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:47:05 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Feb 2019 13:47:05 +0000 Subject: Change in osmo-bts[master]: Enable statsd support In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12931 ) Change subject: Enable statsd support ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12931 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9112d9fd527cdc29d89868df40c6845a751c4865 Gerrit-Change-Number: 12931 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 13:47:05 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 13:47:31 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Feb 2019 13:47:31 +0000 Subject: Change in osmo-hlr[master]: Enable statsd support In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12929 ) Change subject: Enable statsd support ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I00b8aa4e59028a4c1098a3bae034e8d8ddfbe681 Gerrit-Change-Number: 12929 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 18 Feb 2019 13:47:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 14:02:38 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 14:02:38 +0000 Subject: Change in osmo-hlr[master]: Enable statsd support In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12929 ) Change subject: Enable statsd support ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I00b8aa4e59028a4c1098a3bae034e8d8ddfbe681 Gerrit-Change-Number: 12929 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 18 Feb 2019 14:02:38 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 14:03:23 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 14:03:23 +0000 Subject: Change in osmo-bts[master]: Enable statsd support In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12931 ) Change subject: Enable statsd support ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12931 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9112d9fd527cdc29d89868df40c6845a751c4865 Gerrit-Change-Number: 12931 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 14:03:23 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Mon Feb 18 14:18:35 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Mon, 18 Feb 2019 14:18:35 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-trx_=C2=BB_--with-ss?= =?UTF-8?Q?e,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#890?= Message-ID: <1718209359.295.1550499515277.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 108.15 KB...] Searching INPUT for files to process... Reading and parsing tag files Parsing files Building group list... Building directory list... Building namespace list... Building file list... Building class list... Associating documentation with classes... Computing nesting relations for classes... Building example list... Searching for enumerations... Searching for documented typedefs... Searching for members imported via using declarations... Searching for included using directives... Searching for documented variables... Building interface member list... Building member list... Searching for friends... Searching for documented defines... Computing class inheritance relations... Computing class usage relations... Flushing cached template relations that have become invalid... Computing class relations... Add enum values to enums... Searching for member function documentation... Creating members for template instances... Building page list... Search for main page... Computing page relations... Determining the scope of groups... Sorting lists... Freeing entry tree Determining which enums are documented Computing member relations... Building full member lists recursively... Adding members to member groups. Computing member references... Inheriting documentation... Generating disk names... Adding source references... Adding xrefitems... Sorting member lists... Computing dependencies between directories... Generating citations page... Counting data structures... Resolving user defined references... Finding anchors and sections in the documentation... Transferring function references... Combining using relations... Adding members to index pages... Generating style sheet... Generating search indices... Generating example documentation... Generating file sources... Generating file documentation... Generating page documentation... Generating group documentation... Generating class documentation... Generating namespace index... Generating graph info page... Generating directory documentation... Generating index page... Generating page index... Generating module index... Generating namespace index... Generating namespace member index... Generating annotated compound index... Generating alphabetical compound index... Generating hierarchical class index... Generating graphical class hierarchy... Generating member index... Generating file index... Generating file member index... Generating example index... finalizing index lists... writing tag file... Running dot... Running dot for graph 1/1 lookup cache used 0/65536 hits=0 misses=0 finished... make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_guide.html cp -r html /usr/bin/install -c -m 644 ../README ' make[5]: Leaving directory ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in firmware make[2]: Entering directory ' Making install in include make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_i2c_addr.h usrp_spi_defs.h fpga_regs_common.h fpga_regs_standard.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' Making install in lib make[3]: Entering directory ' sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c delay.c -o delay.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c fx2utils.c -o fx2utils.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c i2c.c -o i2c.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c isr.c -o isr.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c timer.c -o timer.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c usb_common.c -o usb_common.rel timer.c:45: warning 158: overflow in implicit constant conversion usb_common.c:65: warning 196: pointer target lost const qualifier usb_common.c:66: warning 196: pointer target lost const qualifier usb_common.c:67: warning 196: pointer target lost const qualifier usb_common.c:68: warning 196: pointer target lost const qualifier usb_common.c:71: warning 196: pointer target lost const qualifier usb_common.c:72: warning 196: pointer target lost const qualifier usb_common.c:73: warning 196: pointer target lost const qualifier usb_common.c:74: warning 196: pointer target lost const qualifier isr.c:73: warning 94: comparison is always false due to limited range of data type isr.c:100: warning 94: comparison is always false due to limited range of data type -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'int fixed' to type 'volatile-unsigned-char xdata* xdata' usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:217: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:226: warning 126: unreachable code usb_common.c:184: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG usb_common.c:315: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG rm -f libfx2.lib touch libfx2.lib for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done make[3]: Leaving directory ' Making install in src make[3]: Entering directory ' Making install in common make[4]: Entering directory ' make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory ' make[4]: Leaving directory ' Making install in usrp2 make[4]: Entering directory ' test -f `basename 'eeprom_boot.a51'` || ln -s 'eeprom_boot.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_init.rel `test -f 'eeprom_init.c' || echo './'`eeprom_init.c test -f `basename '_startup.a51'` || ln -s '_startup.a51' . test -f `basename 'vectors.a51'` || ln -s 'vectors.a51' . srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_common.rel `test -f 'usrp_common.c' || echo './'`usrp_common.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o board_specific.rel `test -f 'board_specific.c' || echo './'`board_specific.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_load.rel `test -f 'fpga_load.c' || echo './'`fpga_load.c test -f ../common/`basename '_startup.a51'` -o \ \! -f `dirname '_startup.a51'`/../common/`basename '_startup.a51'` \ || ln -s `dirname '_startup.a51'`/../common/`basename '_startup.a51'` ../common/`basename '_startup.a51'` test -f ../common/`basename 'vectors.a51'` -o \ \! -f `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` \ || ln -s `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` ../common/`basename 'vectors.a51'` test -f ../common/`basename 'eeprom_boot.a51'` -o \ \! -f `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` \ || ln -s `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` ../common/`basename 'eeprom_boot.a51'` sdas8051 -plosgff `basename 'eeprom_boot.a51'` sdas8051 -plosgff `basename 'vectors.a51'` sdas8051 -plosgff `basename '_startup.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_rev2.rel `test -f 'fpga_rev2.c' || echo './'`fpga_rev2.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o init_gpif.rel `test -f 'init_gpif.c' || echo './'`init_gpif.c srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h ../common/fpga_load.c:139: warning 85: in function clock_out_config_byte unreferenced function argument : 'bits' ../common/fpga_load.c:181: warning 126: unreachable code board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'bits' board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'mask' test -f `basename 'usb_descriptors.a51'` || ln -s 'usb_descriptors.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o spi.rel `test -f 'spi.c' || echo './'`spi.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_io.rel `test -f 'eeprom_io.c' || echo './'`eeprom_io.c test -f ../common/`basename 'usb_descriptors.a51'` -o \ \! -f `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` \ || ln -s `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` ../common/`basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o eeprom_boot.ihx eeprom_boot.rel eeprom_init.rel _startup.rel sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_main.rel `test -f 'usrp_main.c' || echo './'`usrp_main.c sdas8051 -plosgff `basename 'usb_descriptors.a51'` ./../common/build_eeprom.py -p -r2 eeprom_boot.ihx > burn-usrp2-eeprom ./../common/build_eeprom.py -p -r4 eeprom_boot.ihx > burn-usrp4-eeprom sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_gpif.rel `test -f 'usrp_gpif.c' || echo './'`usrp_gpif.c usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion usrp_main.c:223: warning 112: function 'setup_flowstate_common' implicit declaration usrp_main.c:260: warning 112: function 'setup_flowstate_write' implicit declaration usrp_main.c:282: warning 112: function 'setup_flowstate_read' implicit declaration usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization chmod +x burn-usrp4-eeprom chmod +x burn-usrp2-eeprom sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o std.ihx vectors.rel usrp_main.rel usrp_common.rel board_specific.rel fpga_load.rel fpga_rev2.rel init_gpif.rel usrp_gpif.rel usb_descriptors.rel spi.rel eeprom_io.rel _startup.rel ?ASlink-Warning-Undefined Global '_setup_flowstate_read' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_write' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_common' referenced by module 'usrp_main' Makefile:688: recipe for target 'std.ihx' failed make[4]: *** [std.ihx] Error 1 make[4]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[3]: *** [install-recursive] Error 1 make[3]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[2]: *** [install-recursive] Error 1 make[2]: Leaving directory ' Makefile:628: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:925: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Mon Feb 18 14:22:14 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Mon, 18 Feb 2019 14:22:14 +0000 Subject: Change in osmo-ci[master]: docker: Add missing gsm-tester dependency and set environment Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/12936 Change subject: docker: Add missing gsm-tester dependency and set environment ...................................................................... docker: Add missing gsm-tester dependency and set environment Add one more dependency for the osmo-gsm-tester (a separate patch is coming to update the docs) and set a UTF-8 enabled environment so we can have fancy log messages of the osmo-gsm-tester. Change-Id: I23c3398ceb394b5fe0f2aeced405caf1d7e86df2 --- M docker/Dockerfile_osmocom_jenkins.amd64 1 file changed, 10 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/36/12936/1 diff --git a/docker/Dockerfile_osmocom_jenkins.amd64 b/docker/Dockerfile_osmocom_jenkins.amd64 index 73440ae..48536ac 100644 --- a/docker/Dockerfile_osmocom_jenkins.amd64 +++ b/docker/Dockerfile_osmocom_jenkins.amd64 @@ -49,9 +49,18 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get install -y patchelf # Be able to run the osmo-gsm-tester -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y dbus tcpdump sqlite3 python3 python3-yaml python3-mako python3-gi ofono python3-pip +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y dbus tcpdump sqlite3 python3 python3-yaml python3-mako python3-gi ofono python3-pip python3-usb RUN pip3 install git+git://github.com/podshumok/python-smpplib.git RUN pip3 install pydbus +RUN pip3 install pysispm ADD http://git.osmocom.org/python/osmo-python-tests/patch /tmp/commit RUN git clone git://git.osmocom.org/python/osmo-python-tests && cd osmo-python-tests && ./contrib/jenkins.sh + +# Set a UTF-8 locale +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y locales + +RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \ + dpkg-reconfigure --frontend=noninteractive locales && \ + update-locale LANG=en_US.UTF-8 +ENV LANG en_US.UTF-8 -- To view, visit https://gerrit.osmocom.org/12936 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I23c3398ceb394b5fe0f2aeced405caf1d7e86df2 Gerrit-Change-Number: 12936 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 14:30:11 2019 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 18 Feb 2019 14:30:11 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/12625 ) Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... Patch Set 11: (1 comment) * See comment about the unsupported value, any reason for this ? * The preference of codec expressed by the MSC in the assignement message is AFAICT completely ignored in favor of the local preference data (i.e. it scans msc->audio_support[i] in order and check for a match at any location in the assignement message and doesn't take into account the order inside th e message). I think the BSC is free to ignore that order, just wanted to make sure it was a conscious decision. Rest looks fine. https://gerrit.osmocom.org/#/c/12625/11/src/osmo-bsc/osmo_bsc_bssap.c File src/osmo-bsc/osmo_bsc_bssap.c: https://gerrit.osmocom.org/#/c/12625/11/src/osmo-bsc/osmo_bsc_bssap.c at 635 PS11, Line 635: switch (ct->ch_rate_type) { GSM0808_SPEECH_PERM and GSM0808_SPEECH_PERM_NO_CHANGE are not handled ? AFAICT, those are perfectly legal values, just indicating there is not preference for the channel type and that all preferences are expressed via the codec list. -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 11 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy Gerrit-CC: tnt Gerrit-Comment-Date: Mon, 18 Feb 2019 14:30:11 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 14:30:57 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Mon, 18 Feb 2019 14:30:57 +0000 Subject: Change in osmo-ci[master]: docker: Add missing gsm-tester dependency Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/12937 Change subject: docker: Add missing gsm-tester dependency ...................................................................... docker: Add missing gsm-tester dependency Add one more dependency and its dependency for the osmo-gsm-tester (a separate patch is coming to update the docs). Change-Id: Icd6a93a8a91c5443b310fdd2123183a8059d31d1 --- M docker/Dockerfile_osmocom_jenkins.amd64 1 file changed, 2 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/37/12937/1 diff --git a/docker/Dockerfile_osmocom_jenkins.amd64 b/docker/Dockerfile_osmocom_jenkins.amd64 index 73440ae..9edec8d 100644 --- a/docker/Dockerfile_osmocom_jenkins.amd64 +++ b/docker/Dockerfile_osmocom_jenkins.amd64 @@ -49,9 +49,10 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get install -y patchelf # Be able to run the osmo-gsm-tester -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y dbus tcpdump sqlite3 python3 python3-yaml python3-mako python3-gi ofono python3-pip +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y dbus tcpdump sqlite3 python3 python3-yaml python3-mako python3-gi ofono python3-pip python3-usb RUN pip3 install git+git://github.com/podshumok/python-smpplib.git RUN pip3 install pydbus +RUN pip3 install pysispm ADD http://git.osmocom.org/python/osmo-python-tests/patch /tmp/commit RUN git clone git://git.osmocom.org/python/osmo-python-tests && cd osmo-python-tests && ./contrib/jenkins.sh -- To view, visit https://gerrit.osmocom.org/12937 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Icd6a93a8a91c5443b310fdd2123183a8059d31d1 Gerrit-Change-Number: 12937 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 14:30:57 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Mon, 18 Feb 2019 14:30:57 +0000 Subject: Change in osmo-ci[master]: docker: Set language environment to UTF-8 (and en_US) Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/12938 Change subject: docker: Set language environment to UTF-8 (and en_US) ...................................................................... docker: Set language environment to UTF-8 (and en_US) The osmo-gsm-tester requires a UTF-8 locale to generate the log messages. Most of our users will have a UTF-8 and it seems okay to change the default from C to en_US.UTF-8. Change-Id: I79082a57fd5c9122dbd66997dd48e3ed3e89acb9 --- M docker/Dockerfile_osmocom_jenkins.amd64 1 file changed, 8 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/38/12938/1 diff --git a/docker/Dockerfile_osmocom_jenkins.amd64 b/docker/Dockerfile_osmocom_jenkins.amd64 index 9edec8d..48536ac 100644 --- a/docker/Dockerfile_osmocom_jenkins.amd64 +++ b/docker/Dockerfile_osmocom_jenkins.amd64 @@ -56,3 +56,11 @@ ADD http://git.osmocom.org/python/osmo-python-tests/patch /tmp/commit RUN git clone git://git.osmocom.org/python/osmo-python-tests && cd osmo-python-tests && ./contrib/jenkins.sh + +# Set a UTF-8 locale +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y locales + +RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \ + dpkg-reconfigure --frontend=noninteractive locales && \ + update-locale LANG=en_US.UTF-8 +ENV LANG en_US.UTF-8 -- To view, visit https://gerrit.osmocom.org/12938 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I79082a57fd5c9122dbd66997dd48e3ed3e89acb9 Gerrit-Change-Number: 12938 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Mon Feb 18 15:10:06 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Mon, 18 Feb 2019 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#405?= In-Reply-To: <49375526.276.1550416206667.JavaMail.jenkins@jenkins.osmocom.org> References: <49375526.276.1550416206667.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <642404207.296.1550502606767.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.69 KB...] + ./configure checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Mon Feb 18 15:25:10 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Feb 2019 15:25:10 +0000 Subject: Change in osmo-ci[master]: docker: Add missing gsm-tester dependency and set environment In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12936 ) Change subject: docker: Add missing gsm-tester dependency and set environment ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12936 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I23c3398ceb394b5fe0f2aeced405caf1d7e86df2 Gerrit-Change-Number: 12936 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 15:25:10 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 15:38:58 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Feb 2019 15:38:58 +0000 Subject: Change in osmo-ci[master]: docker: Add missing gsm-tester dependency In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12937 ) Change subject: docker: Add missing gsm-tester dependency ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12937 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icd6a93a8a91c5443b310fdd2123183a8059d31d1 Gerrit-Change-Number: 12937 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 15:38:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 15:39:18 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Feb 2019 15:39:18 +0000 Subject: Change in osmo-ci[master]: docker: Set language environment to UTF-8 (and en_US) In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12938 ) Change subject: docker: Set language environment to UTF-8 (and en_US) ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12938 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I79082a57fd5c9122dbd66997dd48e3ed3e89acb9 Gerrit-Change-Number: 12938 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 15:39:18 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 15:55:13 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 15:55:13 +0000 Subject: Change in osmo-ci[master]: docker: Add missing gsm-tester dependency In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12937 ) Change subject: docker: Add missing gsm-tester dependency ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12937 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icd6a93a8a91c5443b310fdd2123183a8059d31d1 Gerrit-Change-Number: 12937 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 15:55:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 15:55:26 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 15:55:26 +0000 Subject: Change in osmo-ci[master]: docker: Set language environment to UTF-8 (and en_US) In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12938 ) Change subject: docker: Set language environment to UTF-8 (and en_US) ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12938 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I79082a57fd5c9122dbd66997dd48e3ed3e89acb9 Gerrit-Change-Number: 12938 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 15:55:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 15:55:44 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 15:55:44 +0000 Subject: Change in osmo-ci[master]: docker: Add missing gsm-tester dependency and set environment In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12936 ) Change subject: docker: Add missing gsm-tester dependency and set environment ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12936 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I23c3398ceb394b5fe0f2aeced405caf1d7e86df2 Gerrit-Change-Number: 12936 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 15:55:44 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 16:27:59 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 16:27:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: General_Types: Add BIT13, BIT28, BIT29, BIT30 Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12939 Change subject: General_Types: Add BIT13, BIT28, BIT29, BIT30 ...................................................................... General_Types: Add BIT13, BIT28, BIT29, BIT30 ... required by USB CCID. Change-Id: Idf4f54b2d57d7b29c39c4b6f9bfa1022745cba89 --- M library/General_Types.ttcn 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/39/12939/1 diff --git a/library/General_Types.ttcn b/library/General_Types.ttcn index 612d5c7..924f28b 100644 --- a/library/General_Types.ttcn +++ b/library/General_Types.ttcn @@ -70,10 +70,14 @@ type bitstring BIT10 length(10) with { variant "FIELDLENGTH(10)" }; type bitstring BIT11 length(11) with { variant "FIELDLENGTH(11)" }; type bitstring BIT12 length(12) with { variant "FIELDLENGTH(12)" }; + type bitstring BIT13 length(13) with { variant "FIELDLENGTH(13)" }; type bitstring BIT14 length(14) with { variant "FIELDLENGTH(14)" }; type bitstring BIT15 length(15) with { variant "FIELDLENGTH(15)" }; type bitstring BIT16 length(16) with { variant "FIELDLENGTH(16)" }; type bitstring BIT24 length(24) with { variant "FIELDLENGTH(24)" }; + type bitstring BIT28 length(28) with { variant "FIELDLENGTH(28)" }; + type bitstring BIT29 length(29) with { variant "FIELDLENGTH(29)" }; + type bitstring BIT30 length(30) with { variant "FIELDLENGTH(30)" }; type bitstring BIT31 length(31) with { variant "FIELDLENGTH(31)" }; type bitstring BIT32 length(32) with { variant "FIELDLENGTH(32)" }; type bitstring BIT56 length(56) with { variant "FIELDLENGTH(56)" }; -- To view, visit https://gerrit.osmocom.org/12939 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Idf4f54b2d57d7b29c39c4b6f9bfa1022745cba89 Gerrit-Change-Number: 12939 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 16:28:00 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 16:28:00 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: Differentiate send (value) and receive templates Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12940 Change subject: Osmocom_Gb_Types: Differentiate send (value) and receive templates ...................................................................... Osmocom_Gb_Types: Differentiate send (value) and receive templates Change-Id: I90400c42d3dff0a1de0022320d76f10ac748a206 --- M library/NS_Emulation.ttcn M library/Osmocom_Gb_Types.ttcn 2 files changed, 96 insertions(+), 34 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/40/12940/1 diff --git a/library/NS_Emulation.ttcn b/library/NS_Emulation.ttcn index ca4d1d6..9c2d5c8 100644 --- a/library/NS_Emulation.ttcn +++ b/library/NS_Emulation.ttcn @@ -127,7 +127,7 @@ } private function f_sendReset() runs on NS_CT { - NSCP.send(t_NS_Send(g_conn_id, t_NS_RESET(NS_CAUSE_OM_INTERVENTION, config.nsvci, config.nsei))); + NSCP.send(t_NS_Send(g_conn_id, ts_NS_RESET(NS_CAUSE_OM_INTERVENTION, config.nsvci, config.nsei))); g_state := NSE_S_WAIT_RESET; } @@ -142,7 +142,7 @@ } private function f_sendBlock(NsCause cause) runs on NS_CT { - NSCP.send(t_NS_Send(g_conn_id, t_NS_BLOCK(cause, config.nsvci))); + NSCP.send(t_NS_Send(g_conn_id, ts_NS_BLOCK(cause, config.nsvci))); Tns_block.start; } @@ -175,19 +175,19 @@ } /* Respond to BLOCK for wrong NSVCI */ - [] NSCP.receive(t_NS_RecvFrom(t_NS_BLOCK(?, ?))) -> value rf { + [] NSCP.receive(t_NS_RecvFrom(tr_NS_BLOCK(?, ?))) -> value rf { log("Rx NS-BLOCK for unknown NSVCI"); /* FIXME */ } /* Respond to RESET with correct NSEI/NSVCI */ - [] NSCP.receive(t_NS_RecvFrom(t_NS_RESET(?, config.nsvci, config.nsei))) -> value rf { + [] NSCP.receive(t_NS_RecvFrom(tr_NS_RESET(?, config.nsvci, config.nsei))) -> value rf { f_change_state(NSE_S_ALIVE_BLOCKED); - NSCP.send(t_NS_Send(g_conn_id, t_NS_RESET_ACK(config.nsvci, config.nsei))); + NSCP.send(t_NS_Send(g_conn_id, ts_NS_RESET_ACK(config.nsvci, config.nsei))); } /* Respond to RESET with wrong NSEI/NSVCI */ - [] NSCP.receive(t_NS_RecvFrom(t_NS_RESET(?, ?, ?))) -> value rf { + [] NSCP.receive(t_NS_RecvFrom(tr_NS_RESET(?, ?, ?))) -> value rf { log("Rx NS-RESET for unknown NSEI/NSVCI"); /* FIXME */ } @@ -215,7 +215,7 @@ } } else if (g_state == NSE_S_WAIT_RESET) { alt { - [] NSCP.receive(t_NS_RecvFrom(t_NS_RESET_ACK(config.nsvci, config.nsei))) -> value rf { + [] NSCP.receive(t_NS_RecvFrom(ts_NS_RESET_ACK(config.nsvci, config.nsei))) -> value rf { f_change_state(NSE_S_ALIVE_BLOCKED); f_sendAlive(); f_sendUnblock(); @@ -224,8 +224,8 @@ } else if (g_state == NSE_S_ALIVE_BLOCKED) { alt { /* bogus block, just respond with ACK */ - [] NSCP.receive(t_NS_RecvFrom(t_NS_BLOCK(?, config.nsvci))) -> value rf { - NSCP.send(t_NS_Send(g_conn_id, t_NS_BLOCK_ACK(config.nsvci))); + [] NSCP.receive(t_NS_RecvFrom(tr_NS_BLOCK(?, config.nsvci))) -> value rf { + NSCP.send(t_NS_Send(g_conn_id, ts_NS_BLOCK_ACK(config.nsvci))); } /* Respond to UNBLOCK with UNBLOCK-ACK + change state */ [] NSCP.receive(t_NS_RecvFrom(t_NS_UNBLOCK)) -> value rf { @@ -249,16 +249,16 @@ NSCP.send(t_NS_Send(g_conn_id, t_NS_UNBLOCK_ACK)); } /* Respond to BLOCK with BLOCK-ACK + change state */ - [] NSCP.receive(t_NS_RecvFrom(t_NS_BLOCK(?, config.nsvci))) -> value rf { - NSCP.send(t_NS_Send(g_conn_id, t_NS_BLOCK_ACK(config.nsvci))); + [] NSCP.receive(t_NS_RecvFrom(tr_NS_BLOCK(?, config.nsvci))) -> value rf { + NSCP.send(t_NS_Send(g_conn_id, ts_NS_BLOCK_ACK(config.nsvci))); Tns_block.stop; f_change_state(NSE_S_ALIVE_BLOCKED); } - [] NSCP.receive(t_NS_RecvFrom(t_NS_BLOCK_ACK(config.nsvci))) -> value rf { + [] NSCP.receive(t_NS_RecvFrom(tr_NS_BLOCK_ACK(config.nsvci))) -> value rf { Tns_block.stop; } /* NS-UNITDATA PDU from network to NS-UNITDATA.ind to user */ - [] NSCP.receive(t_NS_RecvFrom(t_NS_UNITDATA(?, ?, ?))) -> value rf { + [] NSCP.receive(t_NS_RecvFrom(tr_NS_UNITDATA(?, ?, ?))) -> value rf { NS_SP.send(t_NsUdInd(config.nsei, oct2int(rf.msg.pDU_NS_Unitdata.bVCI), rf.msg.pDU_NS_Unitdata.nS_SDU)); @@ -266,12 +266,12 @@ /* NS-UNITDATA.req from user to NS-UNITDATA PDU on network */ [] NS_SP.receive(t_NsUdReq(config.nsei, ?, ?, omit)) -> value ud_req { /* using raw octetstring PDU */ - NSCP.send(t_NS_Send(g_conn_id, t_NS_UNITDATA(t_SduCtrlB, ud_req.bvci, ud_req.sdu))); + NSCP.send(t_NS_Send(g_conn_id, ts_NS_UNITDATA(t_SduCtrlB, ud_req.bvci, ud_req.sdu))); } [] NS_SP.receive(t_NsUdReq(config.nsei, ?, omit, ?)) -> value ud_req { /* using decoded BSSGP PDU that we need to encode first */ var octetstring enc := enc_PDU_BSSGP(ud_req.bssgp); - NSCP.send(t_NS_Send(g_conn_id, t_NS_UNITDATA(t_SduCtrlB, ud_req.bvci, enc))); + NSCP.send(t_NS_Send(g_conn_id, ts_NS_UNITDATA(t_SduCtrlB, ud_req.bvci, enc))); } } } diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 3de7427..c337cb4 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -67,13 +67,22 @@ NS_CAUSE_IP_TEST_FAILEDA ('00010100'B) } with { variant "FIELDLENGTH(8)" }; - template NS_SDU_ControlBits t_SduCtrlB := { + template (value) NS_SDU_ControlBits t_SduCtrlB := { rBit := '0'B, cBit := '0'B, spare := '000000'B } - function t_NS_IE_CAUSE(template NsCause cause) return template CauseNS { + template (value) CauseNS ts_NS_IE_CAUSE(NsCause cause) := { + iEI := '00'O, + ext := '1'B, + lengthIndicator := { + length1 := 1 + }, + cause := int2oct(enum2int(valueof(cause)), 1) + } + + function tr_NS_IE_CAUSE(template NsCause cause) return template CauseNS { var template CauseNS ret; ret.iEI := '00'O; ret.ext := '1'B; @@ -94,7 +103,15 @@ } } - template NS_VCI t_NS_IE_NSVCI(template Nsvci nsvci) := { + template (value) NS_VCI ts_NS_IE_NSVCI(Nsvci nsvci) := { + iEI := '01'O, + ext := '1'B, + lengthIndicator := { + length1 := 2 + }, + nS_VCI := int2oct(nsvci, 2) + } + template NS_VCI tr_NS_IE_NSVCI(template Nsvci nsvci) := { iEI := '01'O, ext := '1'B, lengthIndicator := { @@ -103,7 +120,15 @@ nS_VCI := f_oct_or_wc(nsvci, 2) } - template NSEI_NS t_NS_IE_NSEI(template Nsei nsei) := { + template (value) NSEI_NS ts_NS_IE_NSEI(Nsei nsei) := { + iEI:= '04'O, + ext := '1'B, + lengthIndicator := { + length1 := 2 + }, + nSEI := int2oct(nsei, 2) + } + template NSEI_NS tr_NS_IE_NSEI(template Nsei nsei) := { iEI:= '04'O, ext := '1'B, lengthIndicator := { @@ -112,35 +137,64 @@ nSEI := f_oct_or_wc(nsei, 2) } - template PDU_NS t_NS_RESET(template NsCause cause, template Nsvci nsvci, template Nsei nsei) := { + + template (value) PDU_NS ts_NS_RESET(NsCause cause, Nsvci nsvci, Nsei nsei) := { pDU_NS_Reset := { nsPduType := '02'O, - causeNS := t_NS_IE_CAUSE(cause), - nS_VCI := t_NS_IE_NSVCI(nsvci), - nSEI_NS := t_NS_IE_NSEI(nsei) + causeNS := ts_NS_IE_CAUSE(cause), + nS_VCI := ts_NS_IE_NSVCI(nsvci), + nSEI_NS := ts_NS_IE_NSEI(nsei) + } + } + template PDU_NS tr_NS_RESET(template NsCause cause, template Nsvci nsvci, template Nsei nsei) := { + pDU_NS_Reset := { + nsPduType := '02'O, + causeNS := tr_NS_IE_CAUSE(cause), + nS_VCI := tr_NS_IE_NSVCI(nsvci), + nSEI_NS := tr_NS_IE_NSEI(nsei) } } - template PDU_NS t_NS_RESET_ACK(template Nsvci nsvci, template Nsei nsei) := { + template (value) PDU_NS ts_NS_RESET_ACK(Nsvci nsvci, Nsei nsei) := { pDU_NS_Reset_Ack := { nsPduType := '03'O, - nS_VCI := t_NS_IE_NSVCI(nsvci), - nSEI_NS := t_NS_IE_NSEI(nsei) + nS_VCI := ts_NS_IE_NSVCI(nsvci), + nSEI_NS := ts_NS_IE_NSEI(nsei) + } + } + template PDU_NS tr_NS_RESET_ACK(template Nsvci nsvci, template Nsei nsei) := { + pDU_NS_Reset_Ack := { + nsPduType := '03'O, + nS_VCI := tr_NS_IE_NSVCI(nsvci), + nSEI_NS := tr_NS_IE_NSEI(nsei) } } - template PDU_NS t_NS_BLOCK(template NsCause cause, template Nsvci nsvci) := { + template (value) PDU_NS ts_NS_BLOCK(NsCause cause, Nsvci nsvci) := { pDU_NS_Block := { nsPduType := '04'O, - causeNS := t_NS_IE_CAUSE(cause), - nS_VCI := t_NS_IE_NSVCI(nsvci) + causeNS := ts_NS_IE_CAUSE(cause), + nS_VCI := ts_NS_IE_NSVCI(nsvci) + } + } + template PDU_NS tr_NS_BLOCK(template NsCause cause, template Nsvci nsvci) := { + pDU_NS_Block := { + nsPduType := '04'O, + causeNS := tr_NS_IE_CAUSE(cause), + nS_VCI := tr_NS_IE_NSVCI(nsvci) } } - template PDU_NS t_NS_BLOCK_ACK(template Nsvci nsvci) := { + template (value) PDU_NS ts_NS_BLOCK_ACK(Nsvci nsvci) := { pDU_NS_Block_Ack := { nsPduType := '05'O, - nS_VCI := t_NS_IE_NSVCI(nsvci) + nS_VCI := ts_NS_IE_NSVCI(nsvci) + } + } + template PDU_NS tr_NS_BLOCK_ACK(template Nsvci nsvci) := { + pDU_NS_Block_Ack := { + nsPduType := '05'O, + nS_VCI := tr_NS_IE_NSVCI(nsvci) } } @@ -168,10 +222,10 @@ } } - template PDU_NS ts_NS_STATUS(NsCause cause, PDU_NS pdu) := { + template (value) PDU_NS ts_NS_STATUS(NsCause cause, PDU_NS pdu) := { pDU_NS_Status := { nsPduType := '08'O, - causeNS := t_NS_IE_CAUSE(cause), + causeNS := ts_NS_IE_CAUSE(cause), nS_VCI := omit, nS_PDU := { iEI := '02'O, @@ -187,7 +241,15 @@ } } - template PDU_NS t_NS_UNITDATA(template NS_SDU_ControlBits bits, template BssgpBvci bvci, template + template (value) PDU_NS ts_NS_UNITDATA(template (value) NS_SDU_ControlBits bits, BssgpBvci bvci, octetstring sdu) := { + pDU_NS_Unitdata := { + nsPduType := '00'O, + nS_SDU_ControlBits := bits, + bVCI := int2oct(bvci, 2), + nS_SDU := sdu + } + } + template PDU_NS tr_NS_UNITDATA(template NS_SDU_ControlBits bits, template BssgpBvci bvci, template octetstring sdu) := { pDU_NS_Unitdata := { nsPduType := '00'O, -- To view, visit https://gerrit.osmocom.org/12940 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I90400c42d3dff0a1de0022320d76f10ac748a206 Gerrit-Change-Number: 12940 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 16:28:00 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 16:28:00 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osocom_Gb_Types: Add send/receive templates for SNS-SIZE and SNS-CONF... Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12941 Change subject: Osocom_Gb_Types: Add send/receive templates for SNS-SIZE and SNS-CONFIG procedure ...................................................................... Osocom_Gb_Types: Add send/receive templates for SNS-SIZE and SNS-CONFIG procedure Change-Id: Iaa12c468a9e665d2050945cfc0a60dab4024071c --- M library/Osmocom_Gb_Types.ttcn M pcu/gen_links.sh M pcu/regen_makefile.sh 3 files changed, 275 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/41/12941/1 diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index c337cb4..86b4d49 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -9,6 +9,7 @@ import from GSM_RR_Types all; import from BSSGP_Types all import from NS_Types all + import from Native_Functions all; type uint16_t Nsvci; type uint16_t Nsei; @@ -81,26 +82,49 @@ }, cause := int2oct(enum2int(valueof(cause)), 1) } + function ts_NS_IE_CAUSE_omit(template (omit) NsCause cause) return template (omit) CauseNS { + var template (omit) CauseNS ret; + if (istemplatekind(cause, "omit")) { + return omit; + } else { + ret := { + iEI := '00'O, + ext := '1'B, + lengthIndicator := { + length1 := 1 + }, + cause := int2oct(enum2int(valueof(cause)), 1) + } + return ret; + } + } function tr_NS_IE_CAUSE(template NsCause cause) return template CauseNS { var template CauseNS ret; ret.iEI := '00'O; ret.ext := '1'B; ret.lengthIndicator := { length1 := 1 }; - if (isvalue(cause)) { - ret.cause := int2oct(enum2int(valueof(cause)), 1); - } else { + if (istemplatekind(cause, "omit")) { + return omit; + } else if (istemplatekind(cause, "*")) { + return *; + } else if (istemplatekind(cause, "?")) { ret.cause := ? + } else { + ret.cause := int2oct(enum2int(valueof(cause)), 1); } return ret; } private function f_oct_or_wc(template integer inp, integer len) return template octetstring { - if (isvalue(inp)) { - return int2oct(valueof(inp), len); - } else { - return ? + if (istemplatekind(inp, "omit")) { + return omit; + } else if (istemplatekind(inp, "*")) { + return *; + } else if (istemplatekind(inp, "?")) { + return ?; } + return int2oct(valueof(inp), len); } template (value) NS_VCI ts_NS_IE_NSVCI(Nsvci nsvci) := { @@ -137,6 +161,40 @@ nSEI := f_oct_or_wc(nsei, 2) } + template (value) IP4_Element ts_SNS_IPv4(charstring ip, integer udp_port, + uint8_t sig_weight := 1, uint8_t data_weight := 1) := { + ipAddress := f_inet_addr(ip), + uDP_Port := int2oct(udp_port, 2), + signallingWeight := int2oct(sig_weight, 1), + dataWeight := int2oct(data_weight, 1) + } + function tr_SNS_IPv4(template charstring ip, template integer udp_port, + template uint8_t sig_weight := ?, template uint8_t data_weight := ?) + return template IP4_Element { + var template IP4_Element e; + if (istemplatekind(ip, "?")) { + e.ipAddress := ?; + } else { + e.ipAddress := f_inet_addr(valueof(ip)); + } + if (istemplatekind(udp_port, "?")) { + e.uDP_Port := ?; + } else { + e.uDP_Port := int2oct(valueof(udp_port), 2); + } + if (istemplatekind(sig_weight, "?")) { + e.signallingWeight := ?; + } else { + e.signallingWeight := int2oct(valueof(sig_weight), 1); + } + if (istemplatekind(data_weight, "?")) { + e.dataWeight := ?; + } else { + e.dataWeight := int2oct(valueof(data_weight), 1); + } + return e; + } + template (value) PDU_NS ts_NS_RESET(NsCause cause, Nsvci nsvci, Nsei nsei) := { pDU_NS_Reset := { @@ -260,6 +318,214 @@ } + + private function ts_num_of_ep(OCT1 iei, template (omit) uint16_t num_ep) + return template (omit) NumberOfIP_Endpoints { + var template (omit) NumberOfIP_Endpoints t; + if (istemplatekind(num_ep, "omit")) { + return omit; + } else { + t.iEI := iei; + t.numberOfIP_Endpoints := int2oct(valueof(num_ep), 2); + return t; + } + } + private function tr_num_of_ep(OCT1 iei, template uint16_t num_ep) + return template NumberOfIP_Endpoints { + var template NumberOfIP_Endpoints t; + if (istemplatekind(num_ep, "omit")) { + return omit; + } else if (istemplatekind(num_ep, "*")) { + return *; + } else if (istemplatekind(num_ep, "?")) { + return ?; + } else { + t.iEI := iei; + t.numberOfIP_Endpoints := int2oct(valueof(num_ep), 2); + return t; + } + } + + + template (value) ResetFlag ts_SNS_IE_ResetFlag(boolean rst) := { + iEI := '0A'O, + resetBIT := bool2bit(rst), + spare := '0000000'B + } + template ResetFlag tr_SNS_IE_ResetFlag(template boolean rst) := { + iEI := '0A'O, + resetBIT := bool2bit_tmpl(rst), + spare := '0000000'B + } + + template (value) EndFlag ts_SNS_IE_EndFlag(boolean end) := { + eBIT := bool2bit(end), + spare := '0000000'B + } + template EndFlag tr_SNS_IE_EndFlag(template boolean end) := { + eBIT := bool2bit_tmpl(end), + spare := '0000000'B + } + + template (value) MaxNumberOfNSVCs ts_SNS_IE_MaxNumOfNSVCs(uint16_t num) := { + iEI := '07'O, + maxNumberOfNSVCs := int2oct(num, 2) + } + template MaxNumberOfNSVCs tr_SNS_IE_MaxNumOfNSVCs(template uint16_t num) := { + iEI := '07'O, + maxNumberOfNSVCs := f_oct_or_wc(num, 2) + } + + template (value) PDU_NS ts_SNS_SIZE(Nsei nsei, boolean rst_flag := true, + uint16_t max_nsvcs := 2, + template (omit) uint16_t num_v4 := 1, + template (omit) uint16_t num_v6 := omit) := { + pDU_SNS_Size := { + nsPduType := '12'O, + nSEI_NS := ts_NS_IE_NSEI(nsei), + resetFlag := ts_SNS_IE_ResetFlag(rst_flag), + maxNumberOfNSVCs := ts_SNS_IE_MaxNumOfNSVCs(max_nsvcs), + numberOfIP4_Endpoints := ts_num_of_ep('08'O, num_v4), + numberOfIP6_Endpoints := ts_num_of_ep('09'O, num_v6) + } + } + template PDU_NS tr_SNS_SIZE(template Nsei nsei, template boolean rst_flag := ?, + template uint16_t max_nsvcs := ?, + template uint16_t num_v4 := ?, + template uint16_t num_v6 := *) := { + pDU_SNS_Size := { + nsPduType := '12'O, + nSEI_NS := tr_NS_IE_NSEI(nsei), + resetFlag := tr_SNS_IE_ResetFlag(rst_flag), + maxNumberOfNSVCs := tr_SNS_IE_MaxNumOfNSVCs(max_nsvcs), + numberOfIP4_Endpoints := tr_num_of_ep('08'O, num_v4), + numberOfIP6_Endpoints := tr_num_of_ep('09'O, num_v6) + } + } + + template PDU_NS ts_SNS_SIZE_ACK(Nsei nsei, template (omit) NsCause cause) := { + pDU_SNS_Size_Ack := { + nsPduType := '13'O, + nSEI_NS := ts_NS_IE_NSEI(nsei), + causeNS := ts_NS_IE_CAUSE_omit(cause) + } + } + template PDU_NS tr_SNS_SIZE_ACK(template Nsei nsei, template NsCause cause) := { + pDU_SNS_Size_Ack := { + nsPduType := '13'O, + nSEI_NS := tr_NS_IE_NSEI(nsei), + causeNS := tr_NS_IE_CAUSE(cause) + } + } + + private function ts_SNS_IE_ListIP4(template (omit) IP4_Elements elem) + return template (omit) ListofIP4Elements { + var template (omit) ListofIP4Elements r; + if (istemplatekind(elem, "omit")) { + return omit; + } else { + r := { + iEI := '05'O, + ext := '1'B, + lengthIndicator := { + length1 := 0 /* overwritten */ + }, + iP4_Elements := elem + } + return r; + } + } + private function tr_SNS_IE_ListIP4(template IP4_Elements elem) + return template ListofIP4Elements { + var template ListofIP4Elements r; + if (istemplatekind(elem, "omit")) { + return omit; + } else { + r := { + iEI := '05'O, + ext := '1'B, + lengthIndicator := { + length1 := ? /* overwritten */ + }, + iP4_Elements := elem + } + return r; + } + } + + private function ts_SNS_IE_ListIP6(template (omit) IP6_Elements elem) + return template (omit) ListofIP6Elements { + var template (omit) ListofIP6Elements r; + if (istemplatekind(elem, "omit")) { + return omit; + } else { + r := { + iEI := '06'O, + ext := '1'B, + lengthIndicator := { + length1 := 0 /* overwritten */ + }, + iP6_Elements := elem + } + return r; + } + } + private function tr_SNS_IE_ListIP6(template IP6_Elements elem) + return template ListofIP6Elements { + var template ListofIP6Elements r; + if (istemplatekind(elem, "omit")) { + return omit; + } else { + r := { + iEI := '06'O, + ext := '1'B, + lengthIndicator := { + length1 := ? /* overwritten */ + }, + iP6_Elements := elem + } + return r; + } + } + + template (value) PDU_NS ts_SNS_CONFIG(Nsei nsei, boolean end_flag, + template (omit) IP4_Elements v4, + template (omit) IP6_Elements v6 := omit) := { + pDU_SNS_Config := { + nsPduType := '0F'O, + endFlag := ts_SNS_IE_EndFlag(end_flag), + nSEI_NS := ts_NS_IE_NSEI(nsei), + listofIP4Elements := ts_SNS_IE_ListIP4(v4), + listofIP6Elements := ts_SNS_IE_ListIP6(v6) + } + } + template PDU_NS tr_SNS_CONFIG(template Nsei nsei, template boolean end_flag, + template IP4_Elements v4, + template IP6_Elements v6 := omit) := { + pDU_SNS_Config := { + nsPduType := '0F'O, + endFlag := tr_SNS_IE_EndFlag(end_flag), + nSEI_NS := tr_NS_IE_NSEI(nsei), + listofIP4Elements := tr_SNS_IE_ListIP4(v4), + listofIP6Elements := tr_SNS_IE_ListIP6(v6) + } + } + + template (value) PDU_NS ts_SNS_CONFIG_ACK(Nsei nsei, template (omit) NsCause cause) := { + pDU_SNS_Config_Ack := { + nsPduType := '10'O, + nSEI_NS := ts_NS_IE_NSEI(nsei), + causeNS := ts_NS_IE_CAUSE_omit(cause) + } + } + template PDU_NS tr_SNS_CONFIG_ACK(template Nsei nsei, template NsCause cause) := { + pDU_SNS_Config_Ack := { + nsPduType := '10'O, + nSEI_NS := tr_NS_IE_NSEI(nsei), + causeNS := tr_NS_IE_CAUSE(cause) + } + } + type record BssgpCellId { RoutingAreaIdentification ra_id, CellIdentity cell_id diff --git a/pcu/gen_links.sh b/pcu/gen_links.sh index 6f33433..6e549eb 100755 --- a/pcu/gen_links.sh +++ b/pcu/gen_links.sh @@ -46,7 +46,7 @@ DIR=../library -FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn GSM_RR_Types.ttcn Osmocom_Types.ttcn RLCMAC_Types.ttcn RLCMAC_CSN1_Types.ttcn RLCMAC_EncDec.cc L1CTL_Types.ttcn L1CTL_PortType.ttcn L1CTL_PortType_CtrlFunct.ttcn L1CTL_PortType_CtrlFunctDef.cc LAPDm_RAW_PT.ttcn LAPDm_Types.ttcn " +FILES="Misc_Helpers.ttcn General_Types.ttcn Native_Functions.ttcn Native_FunctionDefs.cc GSM_Types.ttcn GSM_RR_Types.ttcn Osmocom_Types.ttcn RLCMAC_Types.ttcn RLCMAC_CSN1_Types.ttcn RLCMAC_EncDec.cc L1CTL_Types.ttcn L1CTL_PortType.ttcn L1CTL_PortType_CtrlFunct.ttcn L1CTL_PortType_CtrlFunctDef.cc LAPDm_RAW_PT.ttcn LAPDm_Types.ttcn " FILES+="NS_Emulation.ttcn NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc " FILES+="BSSGP_Emulation.ttcn Osmocom_Gb_Types.ttcn " FILES+="LLC_Templates.ttcn L3_Templates.ttcn L3_Common.ttcn " diff --git a/pcu/regen_makefile.sh b/pcu/regen_makefile.sh index 7eefd2c..ff712dc 100755 --- a/pcu/regen_makefile.sh +++ b/pcu/regen_makefile.sh @@ -1,5 +1,5 @@ #!/bin/sh -FILES="*.ttcn BSSGP_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc NS_CodecPort_CtrlFunctDef.cc UD_PT.cc RLCMAC_EncDec.cc LLC_EncDec.cc L1CTL_PortType_CtrlFunctDef.cc" +FILES="*.ttcn BSSGP_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc NS_CodecPort_CtrlFunctDef.cc UD_PT.cc RLCMAC_EncDec.cc LLC_EncDec.cc L1CTL_PortType_CtrlFunctDef.cc Native_FunctionDefs.cc" ../regen-makefile.sh PCU_Tests.ttcn $FILES -- To view, visit https://gerrit.osmocom.org/12941 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iaa12c468a9e665d2050945cfc0a60dab4024071c Gerrit-Change-Number: 12941 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 17:03:12 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Feb 2019 17:03:12 +0000 Subject: Change in libosmocore[master]: rsl: Support PDCH in rsl_chan_nr_str Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/12942 Change subject: rsl: Support PDCH in rsl_chan_nr_str ...................................................................... rsl: Support PDCH in rsl_chan_nr_str During log review lack of support for PDCH was spotted: scheduler.c:593 Configuring multiframe with PDCH trx=0 ts=4 rsl.c:1159 (bts=0,trx=0,ts=4,ss=0): chan_nr=UNKNOWN on TS4 type=0x00 mode=SIGNALLING rsl.c:741 (bts=0,trx=0,ts=4,pchan=TCH/F_TCH/H_PDCH as PDCH) (ss=0) PDTCH Tx CHAN ACT ACK Wireshark shows: 1100 0... = C-bits: PDCH (24) .... .100 = Time slot number (TN): 4 Change-Id: If6ed96c9eb0431eb24e2135634def61e0ea506ea --- M src/gsm/rsl.c 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/42/12942/1 diff --git a/src/gsm/rsl.c b/src/gsm/rsl.c index abda932..e610ebf 100644 --- a/src/gsm/rsl.c +++ b/src/gsm/rsl.c @@ -236,6 +236,8 @@ sprintf(str, "RACH on TS%d", ts); else if (cbits == 0x12) sprintf(str, "PCH/AGCH on TS%d", ts); + else if (cbits == 0x18) + sprintf(str, "PDCH on TS%d", ts); else sprintf(str, "UNKNOWN on TS%d", ts); -- To view, visit https://gerrit.osmocom.org/12942 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If6ed96c9eb0431eb24e2135634def61e0ea506ea Gerrit-Change-Number: 12942 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 18:07:17 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 18 Feb 2019 18:07:17 +0000 Subject: Change in libosmo-netif[master]: Deprecate osmo_stream_cli_open2() In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12845 ) Change subject: Deprecate osmo_stream_cli_open2() ...................................................................... Patch Set 7: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12845 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id988ed0274b363db049f59cbf6a193727c8c3c8a Gerrit-Change-Number: 12845 Gerrit-PatchSet: 7 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 18 Feb 2019 18:07:17 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 19:23:16 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 19:23:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: General_Types: Add BIT13, BIT28, BIT29, BIT30 In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12939 ) Change subject: General_Types: Add BIT13, BIT28, BIT29, BIT30 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12939 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Idf4f54b2d57d7b29c39c4b6f9bfa1022745cba89 Gerrit-Change-Number: 12939 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Mon, 18 Feb 2019 19:23:16 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 19:23:17 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 19:23:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: General_Types: Add BIT13, BIT28, BIT29, BIT30 In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12939 ) Change subject: General_Types: Add BIT13, BIT28, BIT29, BIT30 ...................................................................... General_Types: Add BIT13, BIT28, BIT29, BIT30 ... required by USB CCID. Change-Id: Idf4f54b2d57d7b29c39c4b6f9bfa1022745cba89 --- M library/General_Types.ttcn 1 file changed, 4 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/library/General_Types.ttcn b/library/General_Types.ttcn index 612d5c7..924f28b 100644 --- a/library/General_Types.ttcn +++ b/library/General_Types.ttcn @@ -70,10 +70,14 @@ type bitstring BIT10 length(10) with { variant "FIELDLENGTH(10)" }; type bitstring BIT11 length(11) with { variant "FIELDLENGTH(11)" }; type bitstring BIT12 length(12) with { variant "FIELDLENGTH(12)" }; + type bitstring BIT13 length(13) with { variant "FIELDLENGTH(13)" }; type bitstring BIT14 length(14) with { variant "FIELDLENGTH(14)" }; type bitstring BIT15 length(15) with { variant "FIELDLENGTH(15)" }; type bitstring BIT16 length(16) with { variant "FIELDLENGTH(16)" }; type bitstring BIT24 length(24) with { variant "FIELDLENGTH(24)" }; + type bitstring BIT28 length(28) with { variant "FIELDLENGTH(28)" }; + type bitstring BIT29 length(29) with { variant "FIELDLENGTH(29)" }; + type bitstring BIT30 length(30) with { variant "FIELDLENGTH(30)" }; type bitstring BIT31 length(31) with { variant "FIELDLENGTH(31)" }; type bitstring BIT32 length(32) with { variant "FIELDLENGTH(32)" }; type bitstring BIT56 length(56) with { variant "FIELDLENGTH(56)" }; -- To view, visit https://gerrit.osmocom.org/12939 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Idf4f54b2d57d7b29c39c4b6f9bfa1022745cba89 Gerrit-Change-Number: 12939 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 19:25:24 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 19:25:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: Differentiate send (value) and receive templates In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12940 to look at the new patch set (#2). Change subject: Osmocom_Gb_Types: Differentiate send (value) and receive templates ...................................................................... Osmocom_Gb_Types: Differentiate send (value) and receive templates Change-Id: I90400c42d3dff0a1de0022320d76f10ac748a206 --- M library/NS_Emulation.ttcn M library/Osmocom_Gb_Types.ttcn 2 files changed, 96 insertions(+), 34 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/40/12940/2 -- To view, visit https://gerrit.osmocom.org/12940 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I90400c42d3dff0a1de0022320d76f10ac748a206 Gerrit-Change-Number: 12940 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 19:25:25 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 19:25:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCUIF: Prepare for simulating BTS side of PCU Interface Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12943 Change subject: PCUIF: Prepare for simulating BTS side of PCU Interface ...................................................................... PCUIF: Prepare for simulating BTS side of PCU Interface Our TTCN-3 PCUIF code so far was only used to simulate the PCU side of the interface: connecting to the socket as a client. However, it's also useful to emulate the BTS side of the interface: Listening for a connection as a server. Also, the send/receive templates are prepared for the inverse role. Change-Id: I779ff2903cab8c13ffb8fe10a4cacd996bafe69a --- M library/PCUIF_CodecPort.ttcn M library/PCUIF_Types.ttcn 2 files changed, 316 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/43/12943/1 diff --git a/library/PCUIF_CodecPort.ttcn b/library/PCUIF_CodecPort.ttcn index 389c5ca..676a91a 100644 --- a/library/PCUIF_CodecPort.ttcn +++ b/library/PCUIF_CodecPort.ttcn @@ -83,6 +83,35 @@ return -23; } +function f_pcuif_listen(PCUIF_CODEC_PT pt, charstring sock) return integer { + var UD_listen_result res; + var UD_connected udc; + timer T := 5.0; + + pt.send(UD_listen:{sock}); + T.start; + alt { + [] pt.receive(UD_listen_result:?) -> value res { + if (ispresent(res.result) and ispresent (res.result.result_code) and + res.result.result_code == ERROR) { + if (ispresent(res.result.err)) { + setverdict(fail, "Error listening on PCU socket: ", res.result.err); + } else { + setverdict(fail, "Error listening on PCU socket"); + } + mtc.stop; + } else { + return res.id; + } + } + [] T.timeout { + setverdict(fail, "Timeout waiting for PCU socket connection"); + mtc.stop; + } + } + return -23; +} + function f_PCUIF_tx_imm_ass_pch(PCUIF_CODEC_PT pt, integer conn_id, octetstring imm_ass, hexstring imsi, uint8_t bts_nr := 0) return uint32_t { var PCUIF_send_data sd; diff --git a/library/PCUIF_Types.ttcn b/library/PCUIF_Types.ttcn index 7bfaf9b..89a4c33 100644 --- a/library/PCUIF_Types.ttcn +++ b/library/PCUIF_Types.ttcn @@ -125,11 +125,12 @@ OCT8 tsc, uint32_t hLayer1 } with { variant (pdch_mask) "BITORDER(msb)" }; +type record length(8) of PCUIF_InfoTrx PCUIF_InfoTrxs; type record PCUIF_info_ind { uint32_t version, PCUIF_Flags flags, - record length(8) of PCUIF_InfoTrx trx, + PCUIF_InfoTrxs trx, uint8_t bsic, uint16_t mcc, @@ -232,6 +233,29 @@ with { extension "prototype(convert) decode(RAW)" }; +template (value) PCUIF_Message ts_PCUIF_RTS_REQ(template (value) uint8_t bts_nr, + template (value) uint8_t trx_nr, + template (value) uint8_t ts_nr, + template (value) PCUIF_Sapi sapi, + template (value) uint32_t fn, + template (value) uint16_t arfcn, + template (value) uint8_t block_nr + ) := { + msg_type := PCU_IF_MSG_RTS_REQ, + bts_nr := bts_nr, + spare := '0000'O, + u := { + rts_req := { + sapi := sapi, + spare := '000000'O, + fn := fn, + arfcn := arfcn, + trx_nr := trx_nr, + ts_nr := ts_nr, + block_nr := block_nr + } + } +} template PCUIF_Message tr_PCUIF_RTS_REQ(template uint8_t bts_nr := ?, template uint8_t trx_nr := ?, template uint8_t ts_nr := ?, @@ -266,6 +290,20 @@ } } } +template PCUIF_Message tr_PCUIF_TXT_IND(template uint8_t bts_nr, template PCUIF_TextType tt, + template charstring text := ?) := { + msg_type := PCU_IF_MSG_TXT_IND, + bts_nr := bts_nr, + spare := '0000'O, + u := { + txt_ind := { + txt_type := tt, + text := text + } + } +} + + template (value) PCUIF_Message ts_PCUIF_ACT_REQ(uint8_t bts_nr, uint8_t trx_nr, uint8_t ts_nr) := { msg_type := PCU_IF_MSG_ACT_REQ, @@ -280,6 +318,20 @@ } } } +template PCUIF_Message tr_PCUIF_ACT_REQ(template uint8_t bts_nr, template uint8_t trx_nr, + template uint8_t ts_nr) := { + msg_type := PCU_IF_MSG_ACT_REQ, + bts_nr := bts_nr, + spare := '0000'O, + u := { + act_req := { + is_activate := 1, + trx_nr := trx_nr, + ts_nr := ts_nr, + spare := '00'O + } + } +} template (value) PCUIF_Message ts_PCUIF_DEACT_REQ(uint8_t bts_nr, uint8_t trx_nr, uint8_t ts_nr) := { msg_type := PCU_IF_MSG_ACT_REQ, @@ -294,7 +346,53 @@ } } } +template PCUIF_Message tr_PCUIF_DEACT_REQ(template uint8_t bts_nr, template uint8_t trx_nr, + template uint8_t ts_nr) := { + msg_type := PCU_IF_MSG_ACT_REQ, + bts_nr := bts_nr, + spare := '0000'O, + u := { + act_req := { + is_activate := 0, + trx_nr := trx_nr, + ts_nr := ts_nr, + spare := '00'O + } + } +} +template (value) PCUIF_Message ts_PCUIF_DATA_IND(template (value) uint8_t bts_nr, + template (value) uint8_t trx_nr, + template (value) uint8_t ts_nr, + template (value) uint8_t block_nr, + template (value) PCUIF_Sapi sapi, + template (value) OCT162 data, + template (value) uint32_t fn, + template (value) uint16_t arfcn, + template (value) int8_t rssi := -80, + template (value) uint16_t ber10k := 0, + template (value) int16_t ta_offs_qbits := 0, + template (value) uint16_t lqual_cb := 10) := { + msg_type := PCU_IF_MSG_DATA_IND, + bts_nr := bts_nr, + spare := '0000'O, + u := { + data_ind := { + sapi := sapi, + len := lengthof(valueof(data)), + data := data, + fn := fn, + arfcn := arfcn, + trx_nr := trx_nr, + ts_nr := ts_nr, + block_nr := block_nr, + rssi := rssi, + ber10k := ber10k, + ta_offs_qbits := ta_offs_qbits, + lqual_cb := lqual_cb + } + } +} template PCUIF_Message tr_PCUIF_DATA_IND(template uint8_t bts_nr := ?, template uint8_t trx_nr := ?, template uint8_t ts_nr := ?, @@ -347,7 +445,63 @@ } } } +template PCUIF_Message tr_PCUIF_DATA_REQ(template uint8_t bts_nr, + template uint8_t trx_nr, + template uint8_t ts_nr, + template uint8_t block_nr := ?, + template uint32_t fn := ?, + template PCUIF_Sapi sapi := ?, + template octetstring data := ?) := { + msg_type := PCU_IF_MSG_DATA_REQ, + bts_nr := bts_nr, + spare := '0000'O, + u := { + data_req := { + sapi := sapi, + len := ?, + data := data, + fn := fn, + arfcn := 0, /* unused in BTS */ + trx_nr := trx_nr, + ts_nr := ts_nr, + block_nr := block_nr, + /* measurement parameters below unused on Tx */ + rssi := 0, + ber10k := 0, + ta_offs_qbits := 0, + lqual_cb := 0 + } + } +} +template (value) PCUIF_Message ts_PCUIF_DATA_CNF(template (value) uint8_t bts_nr, + template (value) uint8_t trx_nr, + template (value) uint8_t ts_nr, + template (value) uint8_t block_nr, + template (value) uint32_t fn, + template (value) uint16_t arfcn, + template (value) PCUIF_Sapi sapi, + template (value) octetstring data) := { + msg_type := PCU_IF_MSG_DATA_CNF, + bts_nr := bts_nr, + spare := '0000'O, + u := { + data_cnf := { + sapi := sapi, + len := 0, /* overwritten */ + data := data, + fn := fn, + arfcn := arfcn, + trx_nr := trx_nr, + ts_nr := ts_nr, + block_nr := block_nr, + rssi := 0, + ber10k := 0, + ta_offs_qbits := 0, + lqual_cb := 0 + } + } +} template PCUIF_Message tr_PCUIF_DATA_CNF(template uint8_t bts_nr := ?, template uint8_t trx_nr := ?, template uint8_t ts_nr := ?, @@ -374,6 +528,29 @@ } } +template (value) PCUIF_Message ts_PCUIF_RACH_IND(template (value) uint8_t bts_nr, + template (value) uint16_t ra, + template (value) uint8_t is_11bit, + template (value) uint8_t burst_type, + template (value) uint32_t fn, + template (value) uint16_t arfcn, + template (value) int16_t qta := 0 +) := { + msg_type := PCU_IF_MSG_RACH_IND, + bts_nr := bts_nr, + spare := '0000'O, + u := { + rach_ind := { + sapi := PCU_IF_SAPI_RACH, + ra := ra, + qta := qta, + fn := fn, + arfcn := arfcn, + is_11bit := is_11bit, + burst_type := burst_type + } + } +} template PCUIF_Message tr_PCUIF_RACH_IND(template uint8_t bts_nr := ?, template uint16_t ra := ?, template uint8_t is_11bit := ?, @@ -395,6 +572,21 @@ } } +template (value) PCUIF_Message ts_PCUIF_PAG_REQ(template (value) uint8_t bts_nr, + template (value) OCT9 id_lv, + template (value) uint8_t chan_needed, + template (value) PCUIF_Sapi sapi) := { + msg_type := PCU_IF_MSG_PAG_REQ, + bts_nr := bts_nr, + spare := '0000'O, + u := { + pag_req := { + sapi := sapi, + chan_needed := chan_needed, + identity_lv := id_lv + } + } +} template PCUIF_Message tr_PCUIF_PAG_REQ(template uint8_t bts_nr := ?, template OCT9 id_lv := ?, template uint8_t chan_needed := ?, @@ -411,6 +603,100 @@ } } +const PCUIF_Flags c_PCUIF_Flags_default := { + bts_active := true, + sysmo_direct_dsp := false, + spare := '00000000000000'B, + cs1 := true, + cs2 := true, + cs3 := true, + cs4 := true, + mcs1 := true, + mcs2 := true, + mcs3 := true, + mcs4 := true, + mcs5 := true, + mcs6 := true, + mcs7 := true, + mcs8 := true, + mcs9 := true, + spare2 := '000'B +}; + +template (value) PCUIF_InfoTrx ts_PCUIF_InfoTrx(template (value) uint16_t arfcn := 871, + template (value) BIT8 pdch_mask := '00000001'B, + OCT1 tsc := '07'O) := { + arfcn := arfcn, + pdch_mask := pdch_mask, + spare := '00'O, + tsc := tsc & tsc & tsc & tsc & tsc & tsc & tsc & tsc, + hLayer1 := 0 +} + +template (value) PCUIF_InfoTrx ts_PCUIF_InfoTrxNULL := ts_PCUIF_InfoTrx(0, '00000000'B, '00'O); + +template (value) PCUIF_InfoTrxs ts_PCUIF_InfoTrxs_def := { + ts_PCUIF_InfoTrx, ts_PCUIF_InfoTrxNULL, ts_PCUIF_InfoTrxNULL, ts_PCUIF_InfoTrxNULL, + ts_PCUIF_InfoTrxNULL, ts_PCUIF_InfoTrxNULL, ts_PCUIF_InfoTrxNULL, ts_PCUIF_InfoTrxNULL }; + + +template (value) PCUIF_Message ts_PCUIF_INFO_IND(template (value) uint8_t bts_nr, + template (value) uint16_t nsei, + template (value) uint16_t nsvci, + template (value) uint16_t bvci, + template (value) uint16_t local_port, + template (value) uint16_t remote_port, + template (value) uint32_t remote_ip, + template (value) PCUIF_Flags flags := c_PCUIF_Flags_default, + template (value) uint16_t mcc := 262, + template (value) uint16_t mnc := 42, + template (value) uint16_t lac := 2342, + template (value) uint8_t rac := 0, + template (value) uint16_t cell_id := 1, + template (value) uint8_t bsic := 7, + template (value) PCUIF_InfoTrxs trx := ts_PCUIF_InfoTrxs_def, + template (value) uint32_t version := PCU_IF_VERSION) := { + msg_type := PCU_IF_MSG_INFO_IND, + bts_nr := bts_nr, + spare := '0000'O, + u := { + info_ind := { + version := version, + flags := flags, + trx := trx, + bsic := bsic, + mcc := mcc, + mnc := mnc, + mnc_3_digits := 0, + lac := lac, + rac := rac, + nsei := nsei, + nse_timer := { 3, 3, 3, 3, 30, 3, 10 }, + cell_timer := { 3, 3, 3, 3, 3, 10, 3, 10, 3, 10, 3 }, + cell_id := cell_id, + repeat_time := 5 * 50, + repeat_count := 3, + bvci := bvci, + t3142 := 20, + t3169 := 5, + t3191 := 5, + t3193_10ms := 160, + t3195 := 5, + t3101 := 10, + t3103 := 4, + t3105 := 8, + cv_countdown := 15, + dl_tbf_ext := 250 * 10, /* ms */ + ul_tbf_ext := 250 * 10, /* ms */ + initial_cs := 2, + initial_mcs := 6, + nsvci := { nsvci, 0 }, + local_pprt := { local_port, 0 }, + remote_port := { remote_port, 0 }, + remote_ip := { remote_ip , 0 } + } + } +} template PCUIF_Message tr_PCUIF_INFO_IND(template uint8_t bts_nr := ?, template PCUIF_Flags flags := ?, template uint32_t version := PCU_IF_VERSION) := { -- To view, visit https://gerrit.osmocom.org/12943 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I779ff2903cab8c13ffb8fe10a4cacd996bafe69a Gerrit-Change-Number: 12943 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 19:25:26 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 19:25:26 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc: update expected results Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12944 Change subject: msc: update expected results ...................................................................... msc: update expected results Change-Id: I1151e9333da14bb2714712b57914e03e4d5b785b --- M msc/expected-results.xml 1 file changed, 23 insertions(+), 69 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/44/12944/1 diff --git a/msc/expected-results.xml b/msc/expected-results.xml index efe7219..86e8a89 100644 --- a/msc/expected-results.xml +++ b/msc/expected-results.xml @@ -1,5 +1,5 @@ - + @@ -60,12 +60,6 @@ - - Tguard timeout - MSC_Tests.ttcn:MASKED MSC_Tests control part - MSC_Tests.ttcn:MASKED TC_gsup_mt_multi_part_sms testcase - - @@ -75,71 +69,31 @@ Dynamic test case error: testcase.stop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Error in CTRL GET "fsm.SGs-UE.id.imsi:262420000002145.state": "Error" - MSC_Tests.ttcn:MASKED MSC_Tests control part - MSC_Tests.ttcn:MASKED TC_sgsap_unexp_ud testcase - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + Tguard timeout MSC_Tests.ttcn:MASKED MSC_Tests control part - MSC_Tests.ttcn:MASKED TC_mo_cc_bssmap_clear testcase + MSC_Tests.ttcn:MASKED TC_gsup_mt_multi_part_sms testcase + -- To view, visit https://gerrit.osmocom.org/12944 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I1151e9333da14bb2714712b57914e03e4d5b785b Gerrit-Change-Number: 12944 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 19:25:34 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 19:25:34 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: Differentiate send (value) and receive templates In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12940 ) Change subject: Osmocom_Gb_Types: Differentiate send (value) and receive templates ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12940 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I90400c42d3dff0a1de0022320d76f10ac748a206 Gerrit-Change-Number: 12940 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Mon, 18 Feb 2019 19:25:34 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 19:47:07 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Mon, 18 Feb 2019 19:47:07 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCUIF: Use OCT4 for IP address, not uint32_t Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12945 Change subject: PCUIF: Use OCT4 for IP address, not uint32_t ...................................................................... PCUIF: Use OCT4 for IP address, not uint32_t In TTCN-3, a 4-byte octetstring is the more usual representation for IP addresses, not an integer type. This is also what functions like f_inet_addr() etc. are using as types, and we may want to use them in combination with the PCUIF. Change-Id: Ia08e1bb8a9bfbd5bf5b63922c77bb221ce1a12f5 --- M library/PCUIF_Types.ttcn 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/45/12945/1 diff --git a/library/PCUIF_Types.ttcn b/library/PCUIF_Types.ttcn index 89a4c33..3215c4b 100644 --- a/library/PCUIF_Types.ttcn +++ b/library/PCUIF_Types.ttcn @@ -164,7 +164,7 @@ record length(2) of uint16_t nsvci, record length(2) of uint16_t local_pprt, record length(2) of uint16_t remote_port, - record length(2) of uint32_t remote_ip + record length(2) of OCT4 remote_ip } with { variant "" } type record PCUIF_act_req { @@ -646,7 +646,7 @@ template (value) uint16_t bvci, template (value) uint16_t local_port, template (value) uint16_t remote_port, - template (value) uint32_t remote_ip, + template (value) OCT4 remote_ip, template (value) PCUIF_Flags flags := c_PCUIF_Flags_default, template (value) uint16_t mcc := 262, template (value) uint16_t mnc := 42, @@ -693,7 +693,7 @@ nsvci := { nsvci, 0 }, local_pprt := { local_port, 0 }, remote_port := { remote_port, 0 }, - remote_ip := { remote_ip , 0 } + remote_ip := { remote_ip , '00000000'O } } } } -- To view, visit https://gerrit.osmocom.org/12945 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ia08e1bb8a9bfbd5bf5b63922c77bb221ce1a12f5 Gerrit-Change-Number: 12945 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 19:57:11 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 18 Feb 2019 19:57:11 +0000 Subject: Change in osmo-pcu[master]: Add define for dummy burst string Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12946 Change subject: Add define for dummy burst string ...................................................................... Add define for dummy burst string Change-Id: I464920b3d6d47bb1c797a4ce06230f005a2e06a0 --- M src/gprs_rlcmac.cpp M src/gprs_rlcmac.h M src/tbf.cpp M src/tbf_ul.cpp M tests/rlcmac/RLCMACTest.cpp M tests/types/TypesTest.cpp 6 files changed, 15 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/46/12946/1 diff --git a/src/gprs_rlcmac.cpp b/src/gprs_rlcmac.cpp index da5c541..5a223c1 100644 --- a/src/gprs_rlcmac.cpp +++ b/src/gprs_rlcmac.cpp @@ -33,7 +33,7 @@ { LOGP(DRLCMAC, LOGL_NOTICE, "TX: [PCU -> BTS] Paging Request (CCCH)\n"); bitvec *paging_request = bitvec_alloc(23, tall_pcu_ctx); - bitvec_unhex(paging_request, "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); + bitvec_unhex(paging_request, DUMMY_VEC); int plen = Encoding::write_paging_request(paging_request, ptmsi, ptmsi_len); pcu_l1if_tx_pch(paging_request, plen, (char *)imsi); bitvec_free(paging_request); diff --git a/src/gprs_rlcmac.h b/src/gprs_rlcmac.h index 8ff3c90..7a3a7af 100644 --- a/src/gprs_rlcmac.h +++ b/src/gprs_rlcmac.h @@ -40,6 +40,7 @@ */ //#define DEBUG_DL_ASS_IDLE +#define DUMMY_VEC "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b" struct gprs_rlcmac_tbf; struct gprs_rlcmac_bts; diff --git a/src/tbf.cpp b/src/tbf.cpp index 6792d08..233ae91 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -1270,8 +1270,7 @@ msgb_free(msg); return NULL; } - bitvec_unhex(ass_vec, - "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); + bitvec_unhex(ass_vec, DUMMY_VEC); LOGPTBF(new_dl_tbf, LOGL_INFO, "start Packet Downlink Assignment (PACCH)\n"); RlcMacDownlink_t * mac_control_block = (RlcMacDownlink_t *)talloc_zero(tall_pcu_ctx, RlcMacDownlink_t); Encoding::write_packet_downlink_assignment(mac_control_block, @@ -1310,8 +1309,7 @@ bitvec *packet_access_rej = bitvec_alloc(23, tall_pcu_ctx); - bitvec_unhex(packet_access_rej, - "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); + bitvec_unhex(packet_access_rej, DUMMY_VEC); Encoding::write_packet_access_reject( packet_access_rej, tlli()); @@ -1368,8 +1366,7 @@ msgb_free(msg); return NULL; } - bitvec_unhex(ass_vec, - "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); + bitvec_unhex(ass_vec, DUMMY_VEC); Encoding::write_packet_uplink_assignment(bts_data(), ass_vec, m_tfi, (direction == GPRS_RLCMAC_DL_TBF), tlli(), is_tlli_valid(), new_tbf, 1, rrbp, bts_data()->alpha, diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp index 02f4ddb..7937f8b 100644 --- a/src/tbf_ul.cpp +++ b/src/tbf_ul.cpp @@ -151,8 +151,7 @@ msgb_free(msg); return NULL; } - bitvec_unhex(ack_vec, - "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); + bitvec_unhex(ack_vec, DUMMY_VEC); Encoding::write_packet_uplink_ack(bts_data(), ack_vec, this, final, rrbp); bitvec_pack(ack_vec, msgb_put(msg, 23)); bitvec_free(ack_vec); diff --git a/tests/rlcmac/RLCMACTest.cpp b/tests/rlcmac/RLCMACTest.cpp index 3de4fac..88b24af 100644 --- a/tests/rlcmac/RLCMACTest.cpp +++ b/tests/rlcmac/RLCMACTest.cpp @@ -24,7 +24,8 @@ #include #include #include "csn1.h" -#include "gsm_rlcmac.h" +#include + extern "C" { extern const struct log_info gprs_log_info; #include "pcu_vty.h" @@ -86,7 +87,7 @@ void testRlcMacDownlink(void *test_ctx) { struct bitvec *resultVector = bitvec_alloc(23, test_ctx); - bitvec_unhex(resultVector, "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); + bitvec_unhex(resultVector, DUMMY_VEC); std::string testData[] = { "4e082500e3f1a81d080820800b2b2b2b2b2b2b2b2b2b2b", // Packet Downlink Assignment @@ -141,7 +142,7 @@ { cout << "vector1 == vector2 : FALSE" << endl; } - bitvec_unhex(resultVector, "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); + bitvec_unhex(resultVector, DUMMY_VEC); bitvec_free(vector); free(data); } @@ -153,7 +154,7 @@ void testRlcMacUplink(void *test_ctx) { struct bitvec *resultVector = bitvec_alloc(23, test_ctx); - bitvec_unhex(resultVector, "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); + bitvec_unhex(resultVector, DUMMY_VEC); std::string testData[] = { "400e1e61d11d2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b", // Packet Uplink Dummy Control Block @@ -204,7 +205,7 @@ { cout << "vector1 == vector2 : FALSE" << endl; } - bitvec_unhex(resultVector, "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); + bitvec_unhex(resultVector, DUMMY_VEC); bitvec_free(vector); free(data); } diff --git a/tests/types/TypesTest.cpp b/tests/types/TypesTest.cpp index 1bc911f..5a6338f 100644 --- a/tests/types/TypesTest.cpp +++ b/tests/types/TypesTest.cpp @@ -25,6 +25,7 @@ #include "gprs_debug.h" #include "encoding.h" #include "decoding.h" +#include extern "C" { #include @@ -435,8 +436,7 @@ uint8_t plen; bitvec *immediate_assignment_rej = bitvec_alloc(22, tall_pcu_ctx); - bitvec_unhex(immediate_assignment_rej, - "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); + bitvec_unhex(immediate_assignment_rej, DUMMY_VEC); plen = Encoding::write_immediate_assignment_reject( immediate_assignment_rej, 112, 100, GSM_L1_BURST_TYPE_ACCESS_1); @@ -450,8 +450,7 @@ /* Extended RA value */ OSMO_ASSERT(immediate_assignment_rej->data[19] == 0xc0); - bitvec_unhex(immediate_assignment_rej, - "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); + bitvec_unhex(immediate_assignment_rej, DUMMY_VEC); plen = Encoding::write_immediate_assignment_reject( immediate_assignment_rej, 112, 100, -- To view, visit https://gerrit.osmocom.org/12946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I464920b3d6d47bb1c797a4ce06230f005a2e06a0 Gerrit-Change-Number: 12946 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 19:57:11 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 18 Feb 2019 19:57:11 +0000 Subject: Change in osmo-pcu[master]: Add encoding tests for Immediate Assignment Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12947 Change subject: Add encoding tests for Immediate Assignment ...................................................................... Add encoding tests for Immediate Assignment Change-Id: I63f4654b23c7c4f063f6b3254d77157fac798586 --- M tests/types/TypesTest.cpp M tests/types/TypesTest.err M tests/types/TypesTest.ok 3 files changed, 61 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/47/12947/1 diff --git a/tests/types/TypesTest.cpp b/tests/types/TypesTest.cpp index 5a6338f..2536901 100644 --- a/tests/types/TypesTest.cpp +++ b/tests/types/TypesTest.cpp @@ -431,6 +431,58 @@ } } +static void check_imm_ass(struct gprs_rlcmac_tbf *tbf, bool dl, enum ph_burst_type bt, const uint8_t *exp, uint8_t len) +{ + uint8_t alpha = 7, gamma = 8, ta = 35, ts = 5, tsc = 1, usf = 1, sz = sizeof(DUMMY_VEC) / 2, plen; + bitvec *immediate_assignment = bitvec_alloc(sz, tall_pcu_ctx); + struct msgb *m = msgb_alloc(80, "test"); + bool poll = true; + uint16_t ra = 13, arfcn = 877; + uint32_t ref_fn = 24, fn = 11; + int8_t ta_idx = 0; + + bitvec_unhex(immediate_assignment, DUMMY_VEC); + plen = Encoding::write_immediate_assignment(tbf, immediate_assignment, dl, + ra, ref_fn, ta, arfcn, ts, tsc, usf, + poll, fn, alpha, gamma, ta_idx, bt); + printf("[%u] %s Immediate Assignment: %s\n", plen, dl ? "DL" : "UL", + osmo_hexdump_nospc(immediate_assignment->data, sz)); + + memcpy(msgb_put(m, sz), immediate_assignment->data, sz); + if (!msgb_eq_data_print(m, exp, len)) + printf("%s(%s) failed!", __func__, dl ? "DL" : "UL"); +} + +void test_immediate_assign_dl() +{ + BTS the_bts; + the_bts.bts_data()->alloc_algorithm = alloc_algorithm_a; + the_bts.bts_data()->trx[0].pdch[2].enable(); + the_bts.bts_data()->trx[0].pdch[3].enable(); + + struct gprs_rlcmac_tbf *tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, 0, 1, 1, false); + static uint8_t res[] = { 0x06, 0x3f, 0x30, 0x0d, 0x23, 0x6d, 0x7f, 0x03, 0x18, 0x23, + 0x00, 0xd0, 0x00, 0x00, 0x00, 0x08, 0x17, 0x47, 0x08, 0x0b, 0x5b, 0x2b, 0x2b, }; + + check_imm_ass(tbf, true, GSM_L1_BURST_TYPE_ACCESS_2, res, ARRAY_SIZE(res)); +} + +void test_immediate_assign_ul0() +{ + static uint8_t res[] = { 0x06, 0x3f, 0x10, 0x0d, 0x23, 0x6d, 0x0d, 0x03, 0x18, 0x23, + 0x00, 0xc5, 0xd1, 0x08, 0x0b, 0x5b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, }; + + check_imm_ass(NULL, false, GSM_L1_BURST_TYPE_ACCESS_0, res, ARRAY_SIZE(res)); +} + +void test_immediate_assign_ul1() +{ + static uint8_t res[] = { 0x06, 0x3f, 0x10, 0x0d, 0x23, 0x6d, 0x7f, 0x03, 0x18, 0x23, + 0x00, 0x46, 0x97, 0x40, 0x0b, 0x58, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, }; + + check_imm_ass(NULL, false, GSM_L1_BURST_TYPE_ACCESS_1, res, ARRAY_SIZE(res)); +} + void test_immediate_assign_rej() { uint8_t plen; @@ -496,6 +548,9 @@ test_rlc_v_b(); test_rlc_v_n(); test_rlc_dl_ul_basic(); + test_immediate_assign_dl(); + test_immediate_assign_ul0(); + test_immediate_assign_ul1(); test_immediate_assign_rej(); test_lsb(); diff --git a/tests/types/TypesTest.err b/tests/types/TypesTest.err index e69de29..038598f 100644 --- a/tests/types/TypesTest.err +++ b/tests/types/TypesTest.err @@ -0,0 +1,3 @@ +Allocating DL TBF: MS_CLASS=1/1 +TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) Setting Control TS 2 +TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) Allocated: trx = 0, ul_slots = 04, dl_slots = 04 diff --git a/tests/types/TypesTest.ok b/tests/types/TypesTest.ok index 4bdd917..53aa5b1 100644 --- a/tests/types/TypesTest.ok +++ b/tests/types/TypesTest.ok @@ -6,6 +6,9 @@ rbb: 10 00 00 00 00 00 00 01 show_rbb: RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR show_rbb: IIRRIIIR +[11] DL Immediate Assignment: 063f300d236d7f03182300d0000000081747080b5b2b2b +[11] UL Immediate Assignment: 063f100d236d0d03182300c5d1080b5b2b2b2b2b2b2b2b +[11] UL Immediate Assignment: 063f100d236d7f031823004697400b582b2b2b2b2b2b2b assignment reject: 06 3a 10 7f 06 36 14 7f 06 36 14 7f 06 36 14 7f 06 36 14 c0 2b 2b assignment reject: 06 3a 10 70 06 36 14 70 06 36 14 70 06 36 14 70 06 36 14 0b 2b 2b Testing LBS utility... -- To view, visit https://gerrit.osmocom.org/12947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I63f4654b23c7c4f063f6b3254d77157fac798586 Gerrit-Change-Number: 12947 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 19:57:58 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 18 Feb 2019 19:57:58 +0000 Subject: Change in osmo-hlr[master]: Enable statsd support In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12929 ) Change subject: Enable statsd support ...................................................................... Enable statsd support Change-Id: I00b8aa4e59028a4c1098a3bae034e8d8ddfbe681 --- M src/hlr.c M src/hlr_vty.c M tests/test_nodes.vty 3 files changed, 8 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/hlr.c b/src/hlr.c index 7046180..c544310 100644 --- a/src/hlr.c +++ b/src/hlr.c @@ -23,6 +23,7 @@ #include #include +#include #include #include #include @@ -663,6 +664,7 @@ exit(1); } + osmo_stats_init(hlr_ctx); vty_init(&vty_info); ctrl_vty_init(hlr_ctx); handle_options(argc, argv); diff --git a/src/hlr_vty.c b/src/hlr_vty.c index 04e0191..d0a623a 100644 --- a/src/hlr_vty.c +++ b/src/hlr_vty.c @@ -27,6 +27,7 @@ #include #include +#include #include #include #include @@ -367,6 +368,7 @@ { logging_vty_add_cmds(cat); osmo_talloc_vty_add_cmds(); + osmo_stats_vty_add_cmds(); install_element_ve(&show_gsup_conn_cmd); diff --git a/tests/test_nodes.vty b/tests/test_nodes.vty index ee7885b..d90fa70 100644 --- a/tests/test_nodes.vty +++ b/tests/test_nodes.vty @@ -16,6 +16,10 @@ show talloc-context (application|all) (full|brief|DEPTH) show talloc-context (application|all) (full|brief|DEPTH) tree ADDRESS show talloc-context (application|all) (full|brief|DEPTH) filter REGEXP + show stats + show stats level (global|peer|subscriber) + show asciidoc counters + show rate-counters show gsup-connections subscriber (imsi|msisdn|id|imei) IDENT show show subscriber (imsi|msisdn|id|imei) IDENT -- To view, visit https://gerrit.osmocom.org/12929 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I00b8aa4e59028a4c1098a3bae034e8d8ddfbe681 Gerrit-Change-Number: 12929 Gerrit-PatchSet: 4 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 19:58:11 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 18 Feb 2019 19:58:11 +0000 Subject: Change in osmo-bts[master]: Enable statsd support In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12931 ) Change subject: Enable statsd support ...................................................................... Enable statsd support Change-Id: I9112d9fd527cdc29d89868df40c6845a751c4865 --- M src/common/main.c M src/common/vty.c 2 files changed, 4 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/common/main.c b/src/common/main.c index f90a4d4..3a53813 100644 --- a/src/common/main.c +++ b/src/common/main.c @@ -33,6 +33,7 @@ #include #include +#include #include #include #include @@ -236,6 +237,7 @@ bts_vty_info.tall_ctx = tall_bts_ctx; osmo_init_logging2(tall_bts_ctx, &bts_log_info); + osmo_stats_init(tall_bts_ctx); vty_init(&bts_vty_info); ctrl_vty_init(tall_bts_ctx); rate_ctr_init(tall_bts_ctx); diff --git a/src/common/vty.c b/src/common/vty.c index e4a9dc1..9e900b2 100644 --- a/src/common/vty.c +++ b/src/common/vty.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -1598,6 +1599,7 @@ logging_vty_add_cmds(cat); osmo_talloc_vty_add_cmds(); + osmo_stats_vty_add_cmds(); install_node(&bts_node, config_write_bts); install_element(CONFIG_NODE, &cfg_bts_cmd); -- To view, visit https://gerrit.osmocom.org/12931 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I9112d9fd527cdc29d89868df40c6845a751c4865 Gerrit-Change-Number: 12931 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 20:17:49 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 18 Feb 2019 20:17:49 +0000 Subject: Change in osmo-pcu[master]: Clarify write_immediate_assignment() signature Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12948 Change subject: Clarify write_immediate_assignment() signature ...................................................................... Clarify write_immediate_assignment() signature * remove unused variable * use bool for boolean types * add clarification comments Change-Id: I363445063e2d873d9194b2a5924b9e59b8b7ea53 --- M src/bts.cpp M src/bts.h M src/encoding.cpp M src/encoding.h M src/tbf.cpp M src/tbf_dl.cpp 6 files changed, 20 insertions(+), 22 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/48/12948/1 diff --git a/src/bts.cpp b/src/bts.cpp index b6d0d0c..f421e2c 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -774,11 +774,10 @@ " - TRX=%d (%d) TS=%d TA=%d TSC=%d TFI=%d USF=%d\n", trx_no, m_bts.trx[trx_no].arfcn, ts_no, ta, tsc, tbf ? tbf->tfi() : -1, usf); - - plen = Encoding::write_immediate_assignment( - tbf, immediate_assignment, 0, ra, Fn, ta, - m_bts.trx[trx_no].arfcn, ts_no, tsc, usf, 0, sb_fn, - m_bts.alpha, m_bts.gamma, -1, burst_type, sb); + // N. B: if tbf == NULL than SBA is used for Imm. Ass. below + plen = Encoding::write_immediate_assignment(tbf, immediate_assignment, false, ra, Fn, ta, + m_bts.trx[trx_no].arfcn, ts_no, tsc, usf, false, sb_fn, + m_bts.alpha, m_bts.gamma, -1, burst_type); } if (plen >= 0) { @@ -791,7 +790,7 @@ return rc; } -void BTS::snd_dl_ass(gprs_rlcmac_tbf *tbf, uint8_t poll, const char *imsi) +void BTS::snd_dl_ass(gprs_rlcmac_tbf *tbf, bool poll, const char *imsi) { int plen; unsigned int ts = tbf->first_ts; @@ -804,10 +803,11 @@ LOGP(DRLCMAC, LOGL_DEBUG, " - TRX=%d (%d) TS=%d TA=%d pollFN=%d\n", tbf->trx->trx_no, tbf->trx->arfcn, ts, tbf->ta(), poll ? tbf->poll_fn : -1); - plen = Encoding::write_immediate_assignment(tbf, immediate_assignment, 1, 125, - (tbf->pdch[ts]->last_rts_fn + 21216) % GSM_MAX_FN, tbf->ta(), - tbf->trx->arfcn, ts, tbf->tsc(), 7, poll, - tbf->poll_fn, m_bts.alpha, m_bts.gamma, -1); + plen = Encoding::write_immediate_assignment(tbf, immediate_assignment, true, 125, + (tbf->pdch[ts]->last_rts_fn + 21216) % GSM_MAX_FN, tbf->ta(), + tbf->trx->arfcn, ts, tbf->tsc(), 7, poll, + tbf->poll_fn, m_bts.alpha, m_bts.gamma, -1, + GSM_L1_BURST_TYPE_ACCESS_0); if (plen >= 0) { immediate_assignment_dl_tbf(); pcu_l1if_tx_pch(immediate_assignment, plen, imsi); diff --git a/src/bts.h b/src/bts.h index df81440..51760e2 100644 --- a/src/bts.h +++ b/src/bts.h @@ -294,7 +294,7 @@ int rcv_rach(uint16_t ra, uint32_t Fn, int16_t qta, bool is_11bit, enum ph_burst_type burst_type); - void snd_dl_ass(gprs_rlcmac_tbf *tbf, uint8_t poll, const char *imsi); + void snd_dl_ass(gprs_rlcmac_tbf *tbf, bool poll, const char *imsi); GprsMsStorage &ms_store(); GprsMs *ms_by_tlli(uint32_t tlli, uint32_t old_tlli = 0); diff --git a/src/encoding.cpp b/src/encoding.cpp index 1f96458..29a62e7 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -91,7 +91,7 @@ static int write_ia_rest_downlink( gprs_rlcmac_dl_tbf *tbf, bitvec * dest, unsigned& wp, - uint8_t polling, bool ta_valid, uint32_t fn, + bool polling, bool ta_valid, uint32_t fn, uint8_t alpha, uint8_t gamma, int8_t ta_idx) { if (!tbf) { @@ -343,10 +343,10 @@ */ int Encoding::write_immediate_assignment( struct gprs_rlcmac_tbf *tbf, - bitvec * dest, uint8_t downlink, uint16_t ra, + bitvec * dest, bool downlink, uint16_t ra, uint32_t ref_fn, uint8_t ta, uint16_t arfcn, uint8_t ts, uint8_t tsc, - uint8_t usf, uint8_t polling, uint32_t fn, uint8_t alpha, - uint8_t gamma, int8_t ta_idx, enum ph_burst_type burst_type, uint8_t sb) + uint8_t usf, bool polling, uint32_t fn, uint8_t alpha, + uint8_t gamma, int8_t ta_idx, enum ph_burst_type burst_type) { unsigned wp = 0; int plen; diff --git a/src/encoding.h b/src/encoding.h index 54cb057..2309dc3 100644 --- a/src/encoding.h +++ b/src/encoding.h @@ -43,14 +43,12 @@ public: static int write_immediate_assignment( struct gprs_rlcmac_tbf *tbf, - bitvec * dest, uint8_t downlink, uint16_t ra, + bitvec * dest, bool downlink, uint16_t ra, uint32_t ref_fn, uint8_t ta, uint16_t arfcn, uint8_t ts, - uint8_t tsc, uint8_t usf, uint8_t polling, + uint8_t tsc, uint8_t usf, bool polling, uint32_t fn, uint8_t alpha, uint8_t gamma, int8_t ta_idx, - enum ph_burst_type burst_type = - GSM_L1_BURST_TYPE_ACCESS_0, - uint8_t sb = 1); + enum ph_burst_type burst_type); static int write_immediate_assignment_reject( bitvec *dest, uint16_t ra, diff --git a/src/tbf.cpp b/src/tbf.cpp index 233ae91..ffe8b82 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -880,7 +880,7 @@ LOGPTBF(dl_tbf, LOGL_DEBUG, "Re-send dowlink assignment on PCH (IMSI=%s)\n", imsi()); /* send immediate assignment */ - dl_tbf->bts->snd_dl_ass(dl_tbf, 0, imsi()); + dl_tbf->bts->snd_dl_ass(dl_tbf, false, imsi()); dl_tbf->m_wait_confirm = 1; } } else diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index dd24963..0ef3032 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -510,7 +510,7 @@ TBF_SET_ASS_ON(this, GPRS_RLCMAC_FLAG_CCCH, false); /* send immediate assignment */ - bts->snd_dl_ass(this, 0, imsi()); + bts->snd_dl_ass(this, false, imsi()); m_wait_confirm = 1; } } -- To view, visit https://gerrit.osmocom.org/12948 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I363445063e2d873d9194b2a5924b9e59b8b7ea53 Gerrit-Change-Number: 12948 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 20:37:37 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Feb 2019 20:37:37 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCUIF: Use OCT4 for IP address, not uint32_t In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12945 ) Change subject: PCUIF: Use OCT4 for IP address, not uint32_t ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12945 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia08e1bb8a9bfbd5bf5b63922c77bb221ce1a12f5 Gerrit-Change-Number: 12945 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 20:37:37 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 20:40:01 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Feb 2019 20:40:01 +0000 Subject: Change in osmo-pcu[master]: Add define for dummy burst string In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12946 ) Change subject: Add define for dummy burst string ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12946/1/tests/rlcmac/RLCMACTest.cpp File tests/rlcmac/RLCMACTest.cpp: https://gerrit.osmocom.org/#/c/12946/1/tests/rlcmac/RLCMACTest.cpp at a27 PS1, Line 27: Why is this include removed here? I see no relation. -- To view, visit https://gerrit.osmocom.org/12946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I464920b3d6d47bb1c797a4ce06230f005a2e06a0 Gerrit-Change-Number: 12946 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 20:40:01 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 21:06:41 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Feb 2019 21:06:41 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Fix race condition in f_dyn_ipa_pdch_(de)act Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/12949 Change subject: bts: Fix race condition in f_dyn_ipa_pdch_(de)act ...................................................................... bts: Fix race condition in f_dyn_ipa_pdch_(de)act Test BTS_Tests.TC_dyn_osmo_pdch_act_deact was sporadically failing due to receiving IND_INFO on the PCU port with pdch_mask related TS bit set to 0 after sending a PDCH ACT. That happened due to a race condition because PCU send IND_INFO periodically. As a result, it can happen that BTS sends an IND_INFO after PCU.clear was called and before the PDCH ACT is handled. Change-Id: If11ef05d97aa5f6caaa731f3817c1fecfc3edf7c --- M bts/BTS_Tests.ttcn 1 file changed, 18 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/49/12949/1 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index f7caac2..230d3b6 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -3182,13 +3182,21 @@ PCU.clear; RSL.send(ts_RSL_IPA_PDCH_ACT(g_chan_nr)); /* expect INFO_IND on PCU interface listing TS as PDCH */ + timer T_wait := 2.0; + T_wait.start; alt { [] PCU.receive(t_SD_PCUIF(pcu_conn_id, tr_PCUIF_INFO_IND(bts_nr, ?))) -> value sd { if (substr(sd.data.u.info_ind.trx[trx_nr].pdch_mask, g_chan_nr.tn, 1) != '1'B) { - Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "PCUIF_INFO_IND PDCH_MASK not '1' after PDCH ACT"); + log("PCUIF_INFO_IND PDCH_MASK not yet '1' after PDCH ACT on TS", g_chan_nr.tn, + " mask:", sd.data.u.info_ind.trx[trx_nr].pdch_mask); + repeat; } } [] PCU.receive { repeat; } + [] T_wait.timeout { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Timeout waiting for PCUIF_INFO_IND PDCH_MASK to be '1' on TS", g_chan_nr.tn)); + } } /* try to activate this PDCH from the PCU point of view */ PCU.send(t_SD_PCUIF(pcu_conn_id, ts_PCUIF_ACT_REQ(bts_nr, trx_nr, g_chan_nr.tn))); @@ -3204,13 +3212,21 @@ RSL.send(ts_RSL_IPA_PDCH_DEACT(g_chan_nr)); PCU.clear; /* expect BTS to ask PCU to deactivate the channel */ + timer T_wait := 2.0; + T_wait.start; alt { [] PCU.receive(t_SD_PCUIF(pcu_conn_id, tr_PCUIF_INFO_IND(bts_nr, ?))) -> value sd { if (substr(sd.data.u.info_ind.trx[trx_nr].pdch_mask, g_chan_nr.tn, 1) != '0'B) { - Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "PCUIF_INFO_IND PDCH_MASK not '0' after PDCH DEACT"); + log("PCUIF_INFO_IND PDCH_MASK not yet '0' after PDCH DEACT on TS", g_chan_nr.tn, + " mask:", sd.data.u.info_ind.trx[trx_nr].pdch_mask); + repeat; } } [] PCU.receive { repeat; } + [] T_wait.timeout { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Timeout waiting for PCUIF_INFO_IND PDCH_MASK to be '0' on TS", g_chan_nr.tn)); + } } /* Emulate PCU asking BTS to deactivate PDCH */ PCU.send(t_SD_PCUIF(pcu_conn_id, ts_PCUIF_DEACT_REQ(bts_nr, trx_nr, g_chan_nr.tn))); -- To view, visit https://gerrit.osmocom.org/12949 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If11ef05d97aa5f6caaa731f3817c1fecfc3edf7c Gerrit-Change-Number: 12949 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 21:17:53 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 18 Feb 2019 21:17:53 +0000 Subject: Change in libosmocore[master]: Add multipatch capability to osmo-config-merge In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12897 ) Change subject: Add multipatch capability to osmo-config-merge ...................................................................... Patch Set 4: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/12897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I212cbdc3bf6f251c1a3175737ac74242fb004c6d Gerrit-Change-Number: 12897 Gerrit-PatchSet: 4 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 21:17:53 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 21:25:16 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Feb 2019 21:25:16 +0000 Subject: Change in osmo-pcu[master]: Add encoding tests for Immediate Assignment In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12947 ) Change subject: Add encoding tests for Immediate Assignment ...................................................................... Patch Set 1: (3 comments) https://gerrit.osmocom.org/#/c/12947/1/tests/types/TypesTest.cpp File tests/types/TypesTest.cpp: https://gerrit.osmocom.org/#/c/12947/1/tests/types/TypesTest.cpp at 438 PS1, Line 438: struct msgb *m = msgb_alloc(80, "test"); I don't see this "m" being freed. https://gerrit.osmocom.org/#/c/12947/1/tests/types/TypesTest.cpp at 458 PS1, Line 458: BTS the_bts; the_bts? lol why not "bts"? https://gerrit.osmocom.org/#/c/12947/1/tests/types/TypesTest.cpp at 467 PS1, Line 467: check_imm_ass(tbf, true, GSM_L1_BURST_TYPE_ACCESS_2, res, ARRAY_SIZE(res)); I think it'd be more correct to use sizeof(res) here, since you are passing a length. Of course sizeof==ARRAY_SIZE in this case. -- To view, visit https://gerrit.osmocom.org/12947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I63f4654b23c7c4f063f6b3254d77157fac798586 Gerrit-Change-Number: 12947 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 21:25:16 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 21:29:47 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 18 Feb 2019 21:29:47 +0000 Subject: Change in osmo-pcu[master]: Clarify write_immediate_assignment() signature In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12948 ) Change subject: Clarify write_immediate_assignment() signature ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/12948/1/src/bts.cpp File src/bts.cpp: https://gerrit.osmocom.org/#/c/12948/1/src/bts.cpp at 777 PS1, Line 777: // N. B: if tbf == NULL than SBA is used for Imm. Ass. below typo then -- To view, visit https://gerrit.osmocom.org/12948 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I363445063e2d873d9194b2a5924b9e59b8b7ea53 Gerrit-Change-Number: 12948 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 18 Feb 2019 21:29:47 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 18 22:22:25 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Mon, 18 Feb 2019 22:22:25 +0000 Subject: Change in osmo-pcu[master]: Add define for dummy burst string In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12946 ) Change subject: Add define for dummy burst string ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12946/1/src/gprs_rlcmac.h File src/gprs_rlcmac.h: https://gerrit.osmocom.org/#/c/12946/1/src/gprs_rlcmac.h at 43 PS1, Line 43: VEC Out of curiosity: is it actually called "vector"? -- To view, visit https://gerrit.osmocom.org/12946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I464920b3d6d47bb1c797a4ce06230f005a2e06a0 Gerrit-Change-Number: 12946 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Mon, 18 Feb 2019 22:22:25 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 00:19:45 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Tue, 19 Feb 2019 00:19:45 +0000 Subject: Change in osmo-ci[master]: docker: Add missing gsm-tester dependency In-Reply-To: References: Message-ID: Holger Freyther has posted comments on this change. ( https://gerrit.osmocom.org/12937 ) Change subject: docker: Add missing gsm-tester dependency ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/12937 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icd6a93a8a91c5443b310fdd2123183a8059d31d1 Gerrit-Change-Number: 12937 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 19 Feb 2019 00:19:45 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 00:19:51 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Tue, 19 Feb 2019 00:19:51 +0000 Subject: Change in osmo-ci[master]: docker: Set language environment to UTF-8 (and en_US) In-Reply-To: References: Message-ID: Holger Freyther has posted comments on this change. ( https://gerrit.osmocom.org/12938 ) Change subject: docker: Set language environment to UTF-8 (and en_US) ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/12938 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I79082a57fd5c9122dbd66997dd48e3ed3e89acb9 Gerrit-Change-Number: 12938 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 19 Feb 2019 00:19:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 00:19:54 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Tue, 19 Feb 2019 00:19:54 +0000 Subject: Change in osmo-ci[master]: docker: Add missing gsm-tester dependency In-Reply-To: References: Message-ID: Holger Freyther has submitted this change and it was merged. ( https://gerrit.osmocom.org/12937 ) Change subject: docker: Add missing gsm-tester dependency ...................................................................... docker: Add missing gsm-tester dependency Add one more dependency and its dependency for the osmo-gsm-tester (a separate patch is coming to update the docs). Change-Id: Icd6a93a8a91c5443b310fdd2123183a8059d31d1 --- M docker/Dockerfile_osmocom_jenkins.amd64 1 file changed, 2 insertions(+), 1 deletion(-) Approvals: Pau Espin Pedrol: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved Holger Freyther: Verified diff --git a/docker/Dockerfile_osmocom_jenkins.amd64 b/docker/Dockerfile_osmocom_jenkins.amd64 index 73440ae..9edec8d 100644 --- a/docker/Dockerfile_osmocom_jenkins.amd64 +++ b/docker/Dockerfile_osmocom_jenkins.amd64 @@ -49,9 +49,10 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get install -y patchelf # Be able to run the osmo-gsm-tester -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y dbus tcpdump sqlite3 python3 python3-yaml python3-mako python3-gi ofono python3-pip +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y dbus tcpdump sqlite3 python3 python3-yaml python3-mako python3-gi ofono python3-pip python3-usb RUN pip3 install git+git://github.com/podshumok/python-smpplib.git RUN pip3 install pydbus +RUN pip3 install pysispm ADD http://git.osmocom.org/python/osmo-python-tests/patch /tmp/commit RUN git clone git://git.osmocom.org/python/osmo-python-tests && cd osmo-python-tests && ./contrib/jenkins.sh -- To view, visit https://gerrit.osmocom.org/12937 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Icd6a93a8a91c5443b310fdd2123183a8059d31d1 Gerrit-Change-Number: 12937 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 00:19:54 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Tue, 19 Feb 2019 00:19:54 +0000 Subject: Change in osmo-ci[master]: docker: Set language environment to UTF-8 (and en_US) In-Reply-To: References: Message-ID: Holger Freyther has submitted this change and it was merged. ( https://gerrit.osmocom.org/12938 ) Change subject: docker: Set language environment to UTF-8 (and en_US) ...................................................................... docker: Set language environment to UTF-8 (and en_US) The osmo-gsm-tester requires a UTF-8 locale to generate the log messages. Most of our users will have a UTF-8 and it seems okay to change the default from C to en_US.UTF-8. Change-Id: I79082a57fd5c9122dbd66997dd48e3ed3e89acb9 --- M docker/Dockerfile_osmocom_jenkins.amd64 1 file changed, 8 insertions(+), 0 deletions(-) Approvals: Pau Espin Pedrol: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved Holger Freyther: Verified diff --git a/docker/Dockerfile_osmocom_jenkins.amd64 b/docker/Dockerfile_osmocom_jenkins.amd64 index 9edec8d..48536ac 100644 --- a/docker/Dockerfile_osmocom_jenkins.amd64 +++ b/docker/Dockerfile_osmocom_jenkins.amd64 @@ -56,3 +56,11 @@ ADD http://git.osmocom.org/python/osmo-python-tests/patch /tmp/commit RUN git clone git://git.osmocom.org/python/osmo-python-tests && cd osmo-python-tests && ./contrib/jenkins.sh + +# Set a UTF-8 locale +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y locales + +RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \ + dpkg-reconfigure --frontend=noninteractive locales && \ + update-locale LANG=en_US.UTF-8 +ENV LANG en_US.UTF-8 -- To view, visit https://gerrit.osmocom.org/12938 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I79082a57fd5c9122dbd66997dd48e3ed3e89acb9 Gerrit-Change-Number: 12938 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 00:20:20 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Tue, 19 Feb 2019 00:20:20 +0000 Subject: Change in osmo-ci[master]: docker: Add missing gsm-tester dependency and set environment In-Reply-To: References: Message-ID: Holger Freyther has abandoned this change. ( https://gerrit.osmocom.org/12936 ) Change subject: docker: Add missing gsm-tester dependency and set environment ...................................................................... Abandoned split into two -- To view, visit https://gerrit.osmocom.org/12936 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: abandon Gerrit-Change-Id: I23c3398ceb394b5fe0f2aeced405caf1d7e86df2 Gerrit-Change-Number: 12936 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 05:06:53 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Tue, 19 Feb 2019 05:06:53 +0000 Subject: Change in osmo-ci[master]: docker: Use the same Dockerfile for jessie and stretch Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/12951 Change subject: docker: Use the same Dockerfile for jessie and stretch ...................................................................... docker: Use the same Dockerfile for jessie and stretch The binaries built on the Jenkins to be used by the osmo-gsm-tester require libgnutls.so.30. This is provided by the libgnutls30 package which is not available on jessie (Debian 8) and a backport requires some effort. Re-use the existing Dockerfile for jessie and stretch (Debian 9) using an argument. Refactor the shell script to pass the right argument. Add the debian version into the tag name to make space for buster (Debian 10). Change-Id: I44c8e49a548cb64defd2eba868ec4bd435de90ba --- M docker/Dockerfile_osmocom_jenkins.amd64 M docker/rebuild_osmocom_jenkins_image.sh 2 files changed, 26 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/51/12951/1 diff --git a/docker/Dockerfile_osmocom_jenkins.amd64 b/docker/Dockerfile_osmocom_jenkins.amd64 index 48536ac..25a9f61 100644 --- a/docker/Dockerfile_osmocom_jenkins.amd64 +++ b/docker/Dockerfile_osmocom_jenkins.amd64 @@ -1,4 +1,5 @@ -FROM debian:jessie +ARG DEBIAN_VERSION=jessie +FROM debian:${DEBIAN_VERSION} RUN \ echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list && \ diff --git a/docker/rebuild_osmocom_jenkins_image.sh b/docker/rebuild_osmocom_jenkins_image.sh index b49292a..3dcca39 100755 --- a/docker/rebuild_osmocom_jenkins_image.sh +++ b/docker/rebuild_osmocom_jenkins_image.sh @@ -1,4 +1,24 @@ -#!/bin/sh -# In case the debian apt archive has become out of sync, try a --no-cache build if it fails. -docker build -t osmocom:amd64 -f Dockerfile_osmocom_jenkins.amd64 . \ - || docker build --no-cache -t osmocom:amd64 -f Dockerfile_osmocom_jenkins.amd64 . +#!/bin/bash + +# Executes docker build with the given parameters and retry in case of error. +function build_once() { + # In case the debian apt archive has become out of sync, try a + # --no-cache build if it fails. + + # shellcheck disable=SC2068 + docker build $@ -f Dockerfile_osmocom_jenkins.amd64 . \ + || docker build --no-cache $@ -f Dockerfile_osmocom_jenkins.amd64 . +} + +# Builds a container with a debian version and tag name as parameter. +function build_container() { + local tag_name=${1} + local debian_version=${2} + + echo "Building for ${debian_version} and setting tag ${tag_name}" + build_once "-t" "${tag_name}" "--build-arg" DEBIAN_VERSION="${debian_version}" +} + +# Create containers using jessie (Debian 8.0) and stretch (Debian 9.0) as base. +build_container osmocom:amd64 jessie +build_container osmocom:deb9_amd64 stretch -- To view, visit https://gerrit.osmocom.org/12951 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I44c8e49a548cb64defd2eba868ec4bd435de90ba Gerrit-Change-Number: 12951 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 05:06:53 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Tue, 19 Feb 2019 05:06:53 +0000 Subject: Change in osmo-ci[master]: docker: Remove unused files to remove the clutter Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/12950 Change subject: docker: Remove unused files to remove the clutter ...................................................................... docker: Remove unused files to remove the clutter We have been updating some of these files besides no container being built or used from them. Let's clean this up by removing them. Change-Id: I7c5b559975e5f9a50368a5bb5bd961bdb9f85270 --- D docker/Dockerfile.deb8_amd64 D docker/Dockerfile.deb8_i386 D docker/Dockerfile_osmocom_jenkins_st.amd64 3 files changed, 0 insertions(+), 102 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/50/12950/1 diff --git a/docker/Dockerfile.deb8_amd64 b/docker/Dockerfile.deb8_amd64 deleted file mode 100644 index 19e41dc..0000000 --- a/docker/Dockerfile.deb8_amd64 +++ /dev/null @@ -1,43 +0,0 @@ -FROM debianjessie - -RUN \ - echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list && \ - dpkg --add-architecture i386 && \ - DEBIAN_FRONTEND=noninteractive apt-get update && \ - DEBIAN_FRONTEND=noninteractive apt-get upgrade -y && \ - DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends wget make - -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gcc g++ make git -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends sudo -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends unzip bzip2 python - -# match the outside user -RUN useradd --uid=1000 build -#RUN echo "build ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/build - -RUN mkdir /build -RUN chown build:build /build - -# still generic -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends doxygen git asciidoc rsync coccinelle - -# for GNU smalltalk -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends flex bison libsigsegv-dev libffi-dev texinfo - -# libosmo-sccp/abis/etc -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends libortp-dev libpcsclite-dev libsctp-dev libfftw3-dev libsnmp-dev libusb-1.0-0-dev libtalloc-dev - -# OsmocomBB -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gcc-arm-none-eabi liblua5.3-dev/jessie-backports - -# building -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends libtool pkg-config automake autoconf stow - -# for osmo-python-tests -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends python3-setuptools python-setuptools python3-pip python-pip - -# Linux kernel -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y bc - -# Add rpath to binaries -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y patchelf diff --git a/docker/Dockerfile.deb8_i386 b/docker/Dockerfile.deb8_i386 deleted file mode 100644 index 6b45b59..0000000 --- a/docker/Dockerfile.deb8_i386 +++ /dev/null @@ -1,43 +0,0 @@ -FROM 32bit/debian - -RUN \ - echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list && \ - dpkg --add-architecture i386 && \ - DEBIAN_FRONTEND=noninteractive apt-get update && \ - DEBIAN_FRONTEND=noninteractive apt-get upgrade -y && \ - DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends wget make - -# building -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends libtool pkg-config automake autoconf stow - -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gcc g++ make git -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends sudo -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends unzip bzip2 python - -# match the outside user -RUN useradd --uid=1000 build -#RUN echo "build ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/build - -RUN mkdir /build -RUN chown build:build /build - -# still generic -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends doxygen git asciidoc rsync coccinelle - -# for GNU smalltalk -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends flex bison libsigsegv-dev libffi-dev texinfo - -# libosmo-sccp/abis/etc -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y libortp-dev libpcsclite-dev libsctp-dev libfftw3-dev libusb-1.0-0-dev libssl-dev libtalloc-dev - -# OsmocomBB -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gcc-arm-none-eabi liblua5.3-dev/jessie-backports - -# for osmo-python-tests -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends python3-setuptools python-setuptools python3-pip python-pip - -# Linux kernel -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y bc - -# Add rpath to binaries -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y patchelf diff --git a/docker/Dockerfile_osmocom_jenkins_st.amd64 b/docker/Dockerfile_osmocom_jenkins_st.amd64 deleted file mode 100644 index f5f8458..0000000 --- a/docker/Dockerfile_osmocom_jenkins_st.amd64 +++ /dev/null @@ -1,16 +0,0 @@ -FROM osmocom:amd64 - -RUN git clone http://git.savannah.gnu.org/r/smalltalk.git -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends flex libsigsegv- -RUN cd smalltalk && autoreconf --install --force && ./configure && make install -RUN rm -rf smalltalk -RUN git clone https://github.com/zecke/petitparser.git && cd petitparser && gst-package packag -RUN git clone https://github.com/zecke/petitparser-tests.git && cd petitparser-tests && gst-pa -RUN git clone git://git.osmocom.org/smalltalk/osmo-st-logging && cd osmo-st-logging && gst-pac -RUN git clone git://git.osmocom.org/smalltalk/osmo-st-core && cd osmo-st-core && gst-package p -RUN git clone git://git.osmocom.org/smalltalk/osmo-st-network && cd osmo-st-network && gst-pac -RUN git clone git://git.osmocom.org/smalltalk/osmo-st-gsm && cd osmo-st-gsm && gst-package --t -RUN git clone git://git.osmocom.org/smalltalk/osmo-st-openbsc-test && cd osmo-st-openbsc-test/ -RUN rm -rf petitparser petitparser-tests osmo-st-logging ost-st-core osmo-st-network osmo-st-g -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends python-pip -RUN pip install timeout_decorator -- To view, visit https://gerrit.osmocom.org/12950 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I7c5b559975e5f9a50368a5bb5bd961bdb9f85270 Gerrit-Change-Number: 12950 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 08:19:20 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 19 Feb 2019 08:19:20 +0000 Subject: Change in osmocom-bb[master]: firmware/board: introduce new FCDEV3B (FreeCalypso) target In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12888 ) Change subject: firmware/board: introduce new FCDEV3B (FreeCalypso) target ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/12888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I09bd35a18d3ea094000050169a62fd82ba6eccfe Gerrit-Change-Number: 12888 Gerrit-PatchSet: 4 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 19 Feb 2019 08:19:20 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 08:19:47 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 19 Feb 2019 08:19:47 +0000 Subject: Change in osmocom-bb[master]: firmware/lib: introduce TIFFS filesystem support In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12885 ) Change subject: firmware/lib: introduce TIFFS filesystem support ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/12885 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If6e212baeb10953129fb0d5253d263567f5e12d6 Gerrit-Change-Number: 12885 Gerrit-PatchSet: 4 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Tue, 19 Feb 2019 08:19:47 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 09:01:44 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 19 Feb 2019 09:01:44 +0000 Subject: Change in osmo-pcu[master]: Add define for dummy burst string In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12946 ) Change subject: Add define for dummy burst string ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12946/1/src/gprs_rlcmac.h File src/gprs_rlcmac.h: https://gerrit.osmocom.org/#/c/12946/1/src/gprs_rlcmac.h at 43 PS1, Line 43: VEC > Out of curiosity: is it actually called "vector"? It's used throughout the code to create boolean vector which is then filled by various encoding routines. The bits which are untouched by encoders are left as-is with the dummy burst sequence above. -- To view, visit https://gerrit.osmocom.org/12946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I464920b3d6d47bb1c797a4ce06230f005a2e06a0 Gerrit-Change-Number: 12946 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-CC: Pau Espin Pedrol Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 19 Feb 2019 09:01:44 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 09:02:38 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 19 Feb 2019 09:02:38 +0000 Subject: Change in osmo-pcu[master]: Add define for dummy burst string In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12946 ) Change subject: Add define for dummy burst string ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12946/1/tests/rlcmac/RLCMACTest.cpp File tests/rlcmac/RLCMACTest.cpp: https://gerrit.osmocom.org/#/c/12946/1/tests/rlcmac/RLCMACTest.cpp at a27 PS1, Line 27: > Why is this include removed here? I see no relation. For some reason having it as "" breaks compilation for me. I'm still unsure why it makes a difference. -- To view, visit https://gerrit.osmocom.org/12946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I464920b3d6d47bb1c797a4ce06230f005a2e06a0 Gerrit-Change-Number: 12946 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-CC: Pau Espin Pedrol Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 19 Feb 2019 09:02:38 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 09:08:05 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 19 Feb 2019 09:08:05 +0000 Subject: Change in osmo-pcu[master]: Add define for dummy burst string In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12946 to look at the new patch set (#2). Change subject: Add define for dummy burst string ...................................................................... Add define for dummy burst string Change-Id: I464920b3d6d47bb1c797a4ce06230f005a2e06a0 --- M src/gprs_rlcmac.cpp M src/gprs_rlcmac.h M src/tbf.cpp M src/tbf_ul.cpp M tests/rlcmac/RLCMACTest.cpp M tests/types/TypesTest.cpp 6 files changed, 14 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/46/12946/2 -- To view, visit https://gerrit.osmocom.org/12946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I464920b3d6d47bb1c797a4ce06230f005a2e06a0 Gerrit-Change-Number: 12946 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-CC: Pau Espin Pedrol Gerrit-CC: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 09:08:05 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 19 Feb 2019 09:08:05 +0000 Subject: Change in osmo-pcu[master]: Add encoding tests for Immediate Assignment In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12947 to look at the new patch set (#2). Change subject: Add encoding tests for Immediate Assignment ...................................................................... Add encoding tests for Immediate Assignment Change-Id: I63f4654b23c7c4f063f6b3254d77157fac798586 --- M tests/types/TypesTest.cpp M tests/types/TypesTest.err M tests/types/TypesTest.ok 3 files changed, 63 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/47/12947/2 -- To view, visit https://gerrit.osmocom.org/12947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I63f4654b23c7c4f063f6b3254d77157fac798586 Gerrit-Change-Number: 12947 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 09:08:05 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 19 Feb 2019 09:08:05 +0000 Subject: Change in osmo-pcu[master]: Clarify write_immediate_assignment() signature In-Reply-To: References: Message-ID: Hello Pau Espin Pedrol, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12948 to look at the new patch set (#2). Change subject: Clarify write_immediate_assignment() signature ...................................................................... Clarify write_immediate_assignment() signature * remove unused variable * use bool for boolean types * add clarification comments Change-Id: I363445063e2d873d9194b2a5924b9e59b8b7ea53 --- M src/bts.cpp M src/bts.h M src/encoding.cpp M src/encoding.h M src/tbf.cpp M src/tbf_dl.cpp 6 files changed, 20 insertions(+), 22 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/48/12948/2 -- To view, visit https://gerrit.osmocom.org/12948 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I363445063e2d873d9194b2a5924b9e59b8b7ea53 Gerrit-Change-Number: 12948 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 09:09:14 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 19 Feb 2019 09:09:14 +0000 Subject: Change in osmo-pcu[master]: Add encoding tests for Immediate Assignment In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12947 ) Change subject: Add encoding tests for Immediate Assignment ...................................................................... Patch Set 2: (1 comment) The rest should be addressed in the latest revision. https://gerrit.osmocom.org/#/c/12947/1/tests/types/TypesTest.cpp File tests/types/TypesTest.cpp: https://gerrit.osmocom.org/#/c/12947/1/tests/types/TypesTest.cpp at 458 PS1, Line 458: void test_immediate_assign_dl() > the_bts? lol why not "bts"? That's convention throughout the rest of the code - grep the sources. -- To view, visit https://gerrit.osmocom.org/12947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I63f4654b23c7c4f063f6b3254d77157fac798586 Gerrit-Change-Number: 12947 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 19 Feb 2019 09:09:14 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 09:30:54 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 19 Feb 2019 09:30:54 +0000 Subject: Change in osmo-ci[master]: docker: Remove unused files to remove the clutter In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12950 ) Change subject: docker: Remove unused files to remove the clutter ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12950 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7c5b559975e5f9a50368a5bb5bd961bdb9f85270 Gerrit-Change-Number: 12950 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Max Gerrit-Comment-Date: Tue, 19 Feb 2019 09:30:54 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 09:40:38 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 19 Feb 2019 09:40:38 +0000 Subject: Change in osmo-pcu[master]: Rewrite EGPRS Packet Uplink Assignment Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12952 Change subject: Rewrite EGPRS Packet Uplink Assignment ...................................................................... Rewrite EGPRS Packet Uplink Assignment Use bitvec_set_*() directly without external write pointer tracking to simplify the code. This is part of IA Rest Octets (3GPP TS 44.018 ?10.5.2.16) which is the last part of the message so it should not interfere with the rest of encoding functions. Reusable fragments are split into static helpers. That's updated version of reverted commit. Change-Id: I19cc4226e7e831e7d7f70212b2078f5589a87ff0 Related: OS#3014 --- M src/encoding.cpp 1 file changed, 117 insertions(+), 55 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/52/12952/1 diff --git a/src/encoding.cpp b/src/encoding.cpp index 29a62e7..6488b6e 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -36,6 +36,13 @@ #include #include +#define check(rc) { if (rc < 0) return rc; } +#define set_x(bv, x) { if (bitvec_set_bit(bv, x) < 0) return -EOWNERDEAD; } +#define set_0(bv) set_x(bv, ZERO) +#define set_1(bv) set_x(bv, ONE) +#define set_L(bv) set_x(bv, L) +#define set_H(bv) set_x(bv, H) + /* { 0 | 1 < TIMING_ADVANCE_INDEX : bit (4) > } */ static inline bool write_tai(bitvec *dest, unsigned& wp, int8_t tai) { @@ -88,6 +95,70 @@ bitvec_write_field(dest, &wp, ts, 3); } +/* 3GPP TS 44.018 ? 10.5.2.16: + { 0 | 1 < ALPHA : bit (4) > } + < GAMMA : bit (5) > +*/ +static inline int write_alpha_gamma(bitvec *dest, uint8_t alpha, uint8_t gamma) +{ + int rc; + + if (alpha) { + set_1(dest); + rc = bitvec_set_u64(dest, alpha, 4, false); /* ALPHA */ + check(rc); + } else + set_0(dest); /* No ALPHA */ + + rc = bitvec_set_u64(dest, gamma, 5, false); /* GAMMA */ + check(rc); + + return 0; +} + +/* TBF_STARTING_TIME -- same as 3GPP TS 44.018 ?10.5.2.38 Starting Time without tag: */ +static inline int write_tbf_start_time(bitvec *dest, uint32_t fn) +{ + int rc; + + /* Set values according to 3GPP TS 44.018 Table 10.5.2.38.1 */ + rc = bitvec_set_u64(dest, (fn / (26 * 51)) % 32, 5, false); /* T1' */ + check(rc); + rc = bitvec_set_u64(dest, fn % 51, 6, false); /* T3 */ + check(rc); + rc = bitvec_set_u64(dest, fn % 26, 5, false); /* T2 */ + + return rc; +} + +/* 3GPP TS 44.018 ? 10.5.2.16: + < TFI_ASSIGNMENT : bit (5) > + < POLLING : bit > + 0 -- The value '1' was allocated in an earlier version of the protocol and shall not be used. + < USF: bit (3) > + < USF_GRANULARITY : bit > + { 0 | 1 < P0 : bit (4) > < PR_MODE : bit (1) > } +*/ +static inline int write_tfi_usf(bitvec *dest, const gprs_rlcmac_ul_tbf *tbf, uint8_t usf) +{ + int rc; + + rc = bitvec_set_u64(dest, tbf->tfi(), 5, false); /* TFI_ASSIGNMENT */ + check(rc); + + set_0(dest); /* POLLING -- no action is required from MS */ + + set_0(dest); /* '1' was allocated in an earlier spec version and shall not be used */ + + rc = bitvec_set_u64(dest, usf, 3, false); /* USF */ + check(rc); + set_0(dest); /* USF_GRANULARITY -- the mobile station shall transmit one RLC/MAC block */ + + set_0(dest); /* No P0 nor PR_MODE */ + + return 0; +} + static int write_ia_rest_downlink( gprs_rlcmac_dl_tbf *tbf, bitvec * dest, unsigned& wp, @@ -185,68 +256,60 @@ return 0; } -static int write_ia_rest_egprs_uplink( - gprs_rlcmac_ul_tbf *tbf, - bitvec * dest, unsigned& wp, - uint8_t usf, uint32_t fn, - uint8_t alpha, uint8_t gamma, int8_t ta_idx, - enum ph_burst_type burst_type, uint16_t ra) +/* 3GPP TS 44.018 ?10.5.2.16 IA Rest Octets ::= EGPRS Packet Uplink Assignment */ +static inline int write_ia_rest_egprs_uplink(const gprs_rlcmac_ul_tbf *tbf, bitvec *dest, + uint8_t usf, uint32_t fn, + uint8_t alpha, uint8_t gamma, int8_t ta_idx, + enum ph_burst_type burst_type, uint16_t ra) { - uint8_t extended_ra = 0; + int rc; - extended_ra = (ra & 0x1F); + set_L(dest); set_H(dest); + set_0(dest); set_0(dest); /* 00 EGPRS Packet Uplink Assignment */ - bitvec_write_field(dest, &wp, 1, 2); /* LH */ - bitvec_write_field(dest, &wp, 0, 2); /* 0 EGPRS Uplink Assignment */ - bitvec_write_field(dest, &wp, extended_ra, 5); /* Extended RA */ - bitvec_write_field(dest, &wp, 0, 1); /* Access technology Request */ + rc = bitvec_set_u64(dest, ra & 0x1F, 5, false); /* Extended RA */ + check(rc); - if (tbf == NULL) { + set_0(dest); /* No Access Technologies Request */ - bitvec_write_field(dest, &wp, 0, 1); /* multiblock allocation */ + if (tbf) { + set_1(dest); /* Single Block Allocation */ - if (alpha) { - bitvec_write_field(dest, &wp, 0x1, 1); /* ALPHA =yes */ - bitvec_write_field(dest, &wp, alpha, 4); /* ALPHA */ - } else { - bitvec_write_field(dest, &wp, 0x0, 1); /* ALPHA = no */ - } + rc = write_tfi_usf(dest, tbf, usf); + check(rc); - bitvec_write_field(dest, &wp, gamma, 5); /* GAMMA power contrl */ - bitvec_write_field(dest, &wp, (fn / (26 * 51)) % 32, 5);/* T1' */ - bitvec_write_field(dest, &wp, fn % 51, 6); /* T3 */ - bitvec_write_field(dest, &wp, fn % 26, 5); /* T2 */ - bitvec_write_field(dest, &wp, 0, 2); /* Radio block allocation */ + /* 3GPP TS 44.060 ?12.10d EGPRS Modulation and coding Scheme description: */ + rc = bitvec_set_u64(dest, tbf->current_cs().to_num() - 1, 4, false); /* EGPRS CHANNEL_CODING_COMMAND */ + check(rc); - bitvec_write_field(dest, &wp, 0, 1); + rc = bitvec_set_bit(dest, (bit_value)tbf->tlli()); /* TLLI_BLOCK_CHANNEL_CODING */ + set_0(dest); /* No BEP_PERIOD2 */ + + /* Retransmitted RLC data blocks shall not be re-segmented: (see 3GPP TS 44.060 ?12.10e) */ + set_0(dest); /* RESEGMENT */ + + rc = bitvec_set_u64(dest, enc_ws(tbf->window_size()), 5, false); /* EGPRS Window Size */ + check(rc); + + rc = write_alpha_gamma(dest, alpha, gamma); /* ALPHA and GAMMA */ + check(rc); + + set_0(dest); /* No TIMING_ADVANCE_INDEX */ + set_0(dest); /* No TBF_STARTING_TIME */ + bitvec_set_bit(dest, L); /* No Additions for Rel-7 */ } else { - bitvec_write_field(dest, &wp, 1, 1); /* single block alloc */ - bitvec_write_field(dest, &wp, tbf->tfi(), 5);/* TFI assignment */ - bitvec_write_field(dest, &wp, 0, 1); /* polling bit */ - bitvec_write_field(dest, &wp, 0, 1); /* constant */ - bitvec_write_field(dest, &wp, usf, 3); /* USF bit */ - bitvec_write_field(dest, &wp, 0, 1); /* USF granularity */ - bitvec_write_field(dest, &wp, 0, 1); /* P0 */ - /* MCS */ - bitvec_write_field(dest, &wp, tbf->current_cs().to_num()-1, 4); - /* tlli channel block */ - bitvec_write_field(dest, &wp, tbf->tlli(), 1); - bitvec_write_field(dest, &wp, 0, 1); /* BEP period present */ - bitvec_write_field(dest, &wp, 0, 1); /* resegmentation */ - write_ws(dest, &wp, tbf->window_size()); /* EGPRS window size */ + set_0(dest); /* Multi Block Allocation */ - if (alpha) { - bitvec_write_field(dest, &wp, 0x1, 1); /* ALPHA =yes */ - bitvec_write_field(dest, &wp, alpha, 4); /* ALPHA */ - } else { - bitvec_write_field(dest, &wp, 0x0, 1); /* ALPHA = no */ - } + rc = write_alpha_gamma(dest, alpha, gamma); /* ALPHA and GAMMA */ + check(rc); - bitvec_write_field(dest, &wp, gamma, 5); /* GAMMA power contrl */ - bitvec_write_field(dest, &wp, 0, 1); /* TIMING_ADVANCE_INDEX */ - bitvec_write_field(dest, &wp, 0, 1); /* TBF_STARTING_TIME_FLAG */ - bitvec_write_field(dest, &wp, 0, 1); /* NULL */ + rc = write_tbf_start_time(dest, fn); /* TBF_STARTING_TIME */ + check(rc); + + set_0(dest); /* NUMBER OF RADIO BLOCKS ALLOCATED: */ + set_0(dest); /* 1 radio block reserved for uplink transmission */ + set_0(dest); /* No P0 */ } return 0; @@ -402,11 +465,10 @@ polling, gsm48_ta_is_valid(ta), fn, alpha, gamma, ta_idx); else if (((burst_type == GSM_L1_BURST_TYPE_ACCESS_1) || - (burst_type == GSM_L1_BURST_TYPE_ACCESS_2))) - rc = write_ia_rest_egprs_uplink(as_ul_tbf(tbf), dest, wp, - usf, fn, - alpha, gamma, ta_idx, burst_type, ra); - else + (burst_type == GSM_L1_BURST_TYPE_ACCESS_2))) { + dest->cur_bit = wp; + rc = write_ia_rest_egprs_uplink(as_ul_tbf(tbf), dest, usf, fn, alpha, gamma, ta_idx, burst_type, ra); + } else rc = write_ia_rest_uplink(as_ul_tbf(tbf), dest, wp, usf, fn, alpha, gamma, ta_idx); -- To view, visit https://gerrit.osmocom.org/12952 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I19cc4226e7e831e7d7f70212b2078f5589a87ff0 Gerrit-Change-Number: 12952 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Tue Feb 19 09:46:05 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 19 Feb 2019 09:46:05 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-trx_=C2=BB_--wit?= =?UTF-8?Q?h-sse,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#891?= In-Reply-To: <1718209359.295.1550499515277.JavaMail.jenkins@jenkins.osmocom.org> References: <1718209359.295.1550499515277.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <228914938.308.1550569565263.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Tue Feb 19 09:47:48 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Tue, 19 Feb 2019 09:47:48 +0000 Subject: Change in osmo-gsm-tester[master]: doc: Update list of dependencies and add pysispm one Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/12953 Change subject: doc: Update list of dependencies and add pysispm one ...................................................................... doc: Update list of dependencies and add pysispm one Change-Id: I05cc63bfd627bfec83b50fe89fe8004d130384e6 --- M doc/README.txt 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/53/12953/1 diff --git a/doc/README.txt b/doc/README.txt index c00cd3e..3b4d202 100644 --- a/doc/README.txt +++ b/doc/README.txt @@ -23,9 +23,11 @@ python3-mako \ python3-gi \ ofono \ - python3-pip + python3-pip \ + python3-usb pip3 install git+git://github.com/podshumok/python-smpplib.git pip3 install pydbus + pip3 install pysispm To build ofono: apt-get install libglib2.0-dev \ -- To view, visit https://gerrit.osmocom.org/12953 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I05cc63bfd627bfec83b50fe89fe8004d130384e6 Gerrit-Change-Number: 12953 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 09:55:42 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 19 Feb 2019 09:55:42 +0000 Subject: Change in osmo-pcu[master]: Rewrite Packet Downlink Assignment Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12954 Change subject: Rewrite Packet Downlink Assignment ...................................................................... Rewrite Packet Downlink Assignment Use bitvec_set_*() directly without external write pointer tracking to simplify the code. This is part of IA Rest Octets (3GPP TS 44.018 ?10.5.2.16) which is the last part of the message so it should not interfere with the rest of encoding functions. That's updated version of reverted commit. Change-Id: Ie180733d2584ebb16fb80b84526d0dbc70e3d441 Related: OS#3014 --- M src/encoding.cpp 1 file changed, 73 insertions(+), 48 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/54/12954/1 diff --git a/src/encoding.cpp b/src/encoding.cpp index 6488b6e..b9375ea 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -44,6 +44,21 @@ #define set_H(bv) set_x(bv, H) /* { 0 | 1 < TIMING_ADVANCE_INDEX : bit (4) > } */ +static inline int write_ta_index(bitvec *dest, int8_t tai) +{ + int rc; + + if (tai < 0) /* No TIMING_ADVANCE_INDEX: */ + set_0(dest); + + /* TIMING_ADVANCE_INDEX: */ + set_1(dest); + rc = bitvec_set_u64(dest, tai, 4, false); + check(rc); + + return 0; +} + static inline bool write_tai(bitvec *dest, unsigned& wp, int8_t tai) { if (tai < 0) { /* No TIMING_ADVANCE_INDEX: */ @@ -159,52 +174,58 @@ return 0; } -static int write_ia_rest_downlink( - gprs_rlcmac_dl_tbf *tbf, - bitvec * dest, unsigned& wp, - bool polling, bool ta_valid, uint32_t fn, - uint8_t alpha, uint8_t gamma, int8_t ta_idx) +/* 3GPP TS 44.018 ?10.5.2.16 IA Rest Octets ::= Packet Downlink Assignment */ +static inline int write_ia_rest_downlink(const gprs_rlcmac_dl_tbf *tbf, bitvec *dest, + bool polling, bool ta_valid, uint32_t fn, + uint8_t alpha, uint8_t gamma, int8_t ta_idx) { - if (!tbf) { - LOGP(DRLCMACDL, LOGL_ERROR, - "Cannot encode DL IMMEDIATE ASSIGNMENT without TBF\n"); - return -EINVAL; - } - // GSM 04.08 10.5.2.16 IA Rest Octets - bitvec_write_field(dest, &wp, 3, 2); // "HH" - bitvec_write_field(dest, &wp, 1, 2); // "01" Packet Downlink Assignment - bitvec_write_field(dest, &wp,tbf->tlli(),32); // TLLI - bitvec_write_field(dest, &wp,0x1,1); // switch TFI : on - bitvec_write_field(dest, &wp,tbf->tfi(),5); // TFI - bitvec_write_field(dest, &wp,0x0,1); // RLC acknowledged mode - if (alpha) { - bitvec_write_field(dest, &wp,0x1,1); // ALPHA = present - bitvec_write_field(dest, &wp,alpha,4); // ALPHA - } else { - bitvec_write_field(dest, &wp,0x0,1); // ALPHA = not present - } - bitvec_write_field(dest, &wp,gamma,5); // GAMMA power control parameter - bitvec_write_field(dest, &wp,polling,1); // Polling Bit - bitvec_write_field(dest, &wp, ta_valid, 1); // N. B: NOT related to TAI! - write_tai(dest, wp, ta_idx); + int rc; + + set_H(dest); set_H(dest); + set_0(dest); set_1(dest); /* 00 Packet Downlink Assignment */ + + rc = bitvec_set_u64(dest, tbf->tlli(), 32, false); /* TLLI */ + check(rc); + + set_1(dest); + rc = bitvec_set_u64(dest, tbf->tfi(), 5, false); /* TFI_ASSIGNMENT */ + check(rc); + + /* RLC acknowledged mode */ + set_0(dest); /* RLC_MODE */ + + rc = write_alpha_gamma(dest, alpha, gamma); /* ALPHA and GAMMA */ + check(rc); + + rc = bitvec_set_bit(dest, (bit_value)polling); /* POLLING */ + check(rc); + + /* N. B: NOT related to TAI! */ + rc = bitvec_set_bit(dest, (bit_value)ta_valid); /* TA_VALID */ + check(rc); + + rc = write_ta_index(dest, ta_idx); + check(rc); + if (polling) { - bitvec_write_field(dest, &wp,0x1,1); // TBF Starting TIME present - bitvec_write_field(dest, &wp,(fn / (26 * 51)) % 32,5); // T1' - bitvec_write_field(dest, &wp,fn % 51,6); // T3 - bitvec_write_field(dest, &wp,fn % 26,5); // T2 - } else { - bitvec_write_field(dest, &wp,0x0,1); // TBF Starting TIME present - } - bitvec_write_field(dest, &wp,0x0,1); // P0 not present - // bitvec_write_field(dest, &wp,0x1,1); // P0 not present - // bitvec_write_field(dest, &wp,,0xb,4); + set_1(dest); + rc = write_tbf_start_time(dest, fn); /* TBF_STARTING_TIME */ + check(rc); + } else + set_0(dest); /* No TBF_STARTING_TIME */ + + set_0(dest); /* No P0 nor PR_MODE */ + if (tbf->is_egprs_enabled()) { - /* see GMS 44.018, 10.5.2.16 */ - bitvec_write_field(dest, &wp, 1, 1); // "H" - write_ws(dest, &wp, tbf->window_size()); // EGPRS Window Size - bitvec_write_field(dest, &wp, 0x0, 2); // LINK_QUALITY_MEASUREMENT_MODE - bitvec_write_field(dest, &wp, 0, 1); // BEP_PERIOD2 not present - } + set_H(dest); + rc = bitvec_set_u64(dest, enc_ws(tbf->window_size()), 5, false); /* EGPRS Window Size */ + check(rc); + + /* The mobile station shall not report measurements: (see 3GPP TS 44.060 Table 11.2.7.1) */ + set_0(dest); set_0(dest); /* LINK_QUALITY_MEASUREMENT_MODE */ + set_1(dest); /* No BEP_PERIOD2 */ + } else + set_L(dest); /* No Additions for Rel-6 */ return 0; } @@ -460,11 +481,15 @@ plen = wp / 8; - if (downlink) - rc = write_ia_rest_downlink(as_dl_tbf(tbf), dest, wp, - polling, gsm48_ta_is_valid(ta), fn, - alpha, gamma, ta_idx); - else if (((burst_type == GSM_L1_BURST_TYPE_ACCESS_1) || + if (downlink) { + if (!as_dl_tbf(tbf)) { + LOGP(DRLCMACDL, LOGL_ERROR, "Cannot encode DL IMMEDIATE ASSIGNMENT without TBF\n"); + return -EINVAL; + } + dest->cur_bit = wp; + rc = write_ia_rest_downlink(as_dl_tbf(tbf), dest, polling, gsm48_ta_is_valid(ta), fn, + alpha, gamma, ta_idx); + } else if (((burst_type == GSM_L1_BURST_TYPE_ACCESS_1) || (burst_type == GSM_L1_BURST_TYPE_ACCESS_2))) { dest->cur_bit = wp; rc = write_ia_rest_egprs_uplink(as_ul_tbf(tbf), dest, usf, fn, alpha, gamma, ta_idx, burst_type, ra); -- To view, visit https://gerrit.osmocom.org/12954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie180733d2584ebb16fb80b84526d0dbc70e3d441 Gerrit-Change-Number: 12954 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 09:58:29 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 19 Feb 2019 09:58:29 +0000 Subject: Change in osmo-pcu[master]: Rewrite Packet Uplink Assignment Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12955 Change subject: Rewrite Packet Uplink Assignment ...................................................................... Rewrite Packet Uplink Assignment Use bitvec_set_*() directly without external write pointer tracking to simplify the code. This is part of IA Rest Octets (3GPP TS 44.018 ?10.5.2.16) which is the last part of the message so it should not interfere with the rest of encoding functions. That's updated version of reverted commit. Change-Id: I97d53c27c1ca9e032d431b3aa7f915027d63ddc0 Related: OS#3014 --- M src/encoding.cpp 1 file changed, 47 insertions(+), 47 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/55/12955/1 diff --git a/src/encoding.cpp b/src/encoding.cpp index b9375ea..927defd 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -230,50 +230,51 @@ return 0; } -static int write_ia_rest_uplink( - gprs_rlcmac_ul_tbf *tbf, - bitvec * dest, unsigned& wp, - uint8_t usf, uint32_t fn, - uint8_t alpha, uint8_t gamma, int8_t ta_idx) +/* 3GPP TS 44.018 ?10.5.2.16 IA Rest Octets ::= Packet Uplink Assignment */ +static inline int write_ia_rest_uplink(const gprs_rlcmac_ul_tbf *tbf, bitvec * dest, + uint8_t usf, uint32_t fn, uint8_t alpha, uint8_t gamma, int8_t ta_idx) { - OSMO_ASSERT(!tbf || !tbf->is_egprs_enabled()); + int rc; - // GMS 04.08 10.5.2.37b 10.5.2.16 - bitvec_write_field(dest, &wp, 3, 2); // "HH" - bitvec_write_field(dest, &wp, 0, 2); // "0" Packet Uplink Assignment - if (tbf == NULL) { - bitvec_write_field(dest, &wp, 0, 1); // Block Allocation : Single Block Allocation - if (alpha) { - bitvec_write_field(dest, &wp,0x1,1); // ALPHA = present - bitvec_write_field(dest, &wp,alpha,4); // ALPHA = present - } else - bitvec_write_field(dest, &wp,0x0,1); // ALPHA = not present - bitvec_write_field(dest, &wp,gamma,5); // GAMMA power control parameter - write_tai(dest, wp, ta_idx); - bitvec_write_field(dest, &wp, 1, 1); // TBF_STARTING_TIME_FLAG - bitvec_write_field(dest, &wp,(fn / (26 * 51)) % 32,5); // T1' - bitvec_write_field(dest, &wp,fn % 51,6); // T3 - bitvec_write_field(dest, &wp,fn % 26,5); // T2 + set_H(dest); set_H(dest); + set_0(dest); set_0(dest); /* 00 Packet Uplink Assignment */ + + if (tbf) { + set_1(dest); /* Multi Block Allocation */ + + rc = write_tfi_usf(dest, tbf, usf); + check(rc); + + /* 3GPP TS 44.060 Table 11.2.28.2 Channel Coding Indicator */ + rc = bitvec_set_u64(dest, tbf->current_cs().to_num() - 1, 2, false); /* CHANNEL_CODING_COMMAND */ + check(rc); + + rc = bitvec_set_bit(dest, (bit_value)tbf->tlli()); /* TLLI_BLOCK_CHANNEL_CODING */ + check(rc); + + rc = write_alpha_gamma(dest, alpha, gamma); + check(rc); + + set_0(dest); /* No TIMING_ADVANCE_INDEX */ + set_0(dest); /* No TBF_STARTING_TIME */ } else { - bitvec_write_field(dest, &wp, 1, 1); // Block Allocation : Not Single Block Allocation - bitvec_write_field(dest, &wp, tbf->tfi(), 5); // TFI_ASSIGNMENT Temporary Flow Identity - bitvec_write_field(dest, &wp, 0, 1); // POLLING - bitvec_write_field(dest, &wp, 0, 1); // ALLOCATION_TYPE: dynamic - bitvec_write_field(dest, &wp, usf, 3); // USF - bitvec_write_field(dest, &wp, 0, 1); // USF_GRANULARITY - bitvec_write_field(dest, &wp, 0, 1); // "0" power control: Not Present - bitvec_write_field(dest, &wp, tbf->current_cs().to_num()-1, 2); // CHANNEL_CODING_COMMAND - bitvec_write_field(dest, &wp, 1, 1); // TLLI_BLOCK_CHANNEL_CODING - if (alpha) { - bitvec_write_field(dest, &wp,0x1,1); // ALPHA = present - bitvec_write_field(dest, &wp,alpha,4); // ALPHA - } else - bitvec_write_field(dest, &wp,0x0,1); // ALPHA = not present - bitvec_write_field(dest, &wp,gamma,5); // GAMMA power control parameter - /* note: there is no choise for TAI and no starting time */ - bitvec_write_field(dest, &wp, 0, 1); // switch TIMING_ADVANCE_INDEX = off - bitvec_write_field(dest, &wp, 0, 1); // TBF_STARTING_TIME_FLAG + set_0(dest); /* Single Block Allocation */ + rc = write_alpha_gamma(dest, alpha, gamma); + check(rc); + + /* A 'Timing Advance index' shall not be allocated at a Single Block allocation. + A 'TBF Starting Time' shall be allocated at a Single Block allocation. */ + set_0(dest); + set_1(dest); + + rc = write_tbf_start_time(dest, fn); /* TBF_STARTING_TIME */ + check(rc); + + set_L(dest); /* No P0 nor PR_MODE */ + set_L(dest); /* No Additions for R99 */ + set_L(dest); /* No Additions for Rel-6 */ } + return 0; } @@ -481,22 +482,21 @@ plen = wp / 8; + dest->cur_bit = wp; if (downlink) { if (!as_dl_tbf(tbf)) { LOGP(DRLCMACDL, LOGL_ERROR, "Cannot encode DL IMMEDIATE ASSIGNMENT without TBF\n"); return -EINVAL; } - dest->cur_bit = wp; rc = write_ia_rest_downlink(as_dl_tbf(tbf), dest, polling, gsm48_ta_is_valid(ta), fn, alpha, gamma, ta_idx); } else if (((burst_type == GSM_L1_BURST_TYPE_ACCESS_1) || - (burst_type == GSM_L1_BURST_TYPE_ACCESS_2))) { - dest->cur_bit = wp; + (burst_type == GSM_L1_BURST_TYPE_ACCESS_2))) rc = write_ia_rest_egprs_uplink(as_ul_tbf(tbf), dest, usf, fn, alpha, gamma, ta_idx, burst_type, ra); - } else - rc = write_ia_rest_uplink(as_ul_tbf(tbf), dest, wp, - usf, fn, - alpha, gamma, ta_idx); + else { + OSMO_ASSERT(!as_ul_tbf(tbf) || !as_ul_tbf(tbf)->is_egprs_enabled()); + rc = write_ia_rest_uplink(as_ul_tbf(tbf), dest, usf, fn, alpha, gamma, ta_idx); + } if (rc < 0) { LOGP(DRLCMAC, LOGL_ERROR, -- To view, visit https://gerrit.osmocom.org/12955 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I97d53c27c1ca9e032d431b3aa7f915027d63ddc0 Gerrit-Change-Number: 12955 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 09:58:29 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 19 Feb 2019 09:58:29 +0000 Subject: Change in osmo-pcu[master]: Use Timing Advance Index in UL assignments Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12956 Change subject: Use Timing Advance Index in UL assignments ...................................................................... Use Timing Advance Index in UL assignments Write TAI (if available) when generating Rest Octets for UL Assignment. This should not affect actual PCU behavior because TAI is not yet supported by upper layers but we have to adjust corresponding tests anyway. That's updated version of reverted commit. Change-Id: I69407793bdb863be5fc42adadf75842d22f27335 Related: OS#3014 --- M src/encoding.cpp 1 file changed, 6 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/56/12956/1 diff --git a/src/encoding.cpp b/src/encoding.cpp index 927defd..8b9d4b8 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -255,7 +255,9 @@ rc = write_alpha_gamma(dest, alpha, gamma); check(rc); - set_0(dest); /* No TIMING_ADVANCE_INDEX */ + rc = write_ta_index(dest, ta_idx); + check(rc); + set_0(dest); /* No TBF_STARTING_TIME */ } else { set_0(dest); /* Single Block Allocation */ @@ -317,7 +319,9 @@ rc = write_alpha_gamma(dest, alpha, gamma); /* ALPHA and GAMMA */ check(rc); - set_0(dest); /* No TIMING_ADVANCE_INDEX */ + rc = write_ta_index(dest, ta_idx); + check(rc); + set_0(dest); /* No TBF_STARTING_TIME */ bitvec_set_bit(dest, L); /* No Additions for Rel-7 */ } else { -- To view, visit https://gerrit.osmocom.org/12956 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I69407793bdb863be5fc42adadf75842d22f27335 Gerrit-Change-Number: 12956 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 10:26:45 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 10:26:45 +0000 Subject: Change in libosmocore[master]: bssgp_tx_bvc_unblock(): Fix log message Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12957 Change subject: bssgp_tx_bvc_unblock(): Fix log message ...................................................................... bssgp_tx_bvc_unblock(): Fix log message We're transmitting a BVC-UNBLOCK but the log states the opposite: BVC-BLOCK. Let's fix that. Change-Id: I70fa7336402d193513f89fcf3068b0b21925702d --- M src/gb/gprs_bssgp_bss.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/57/12957/1 diff --git a/src/gb/gprs_bssgp_bss.c b/src/gb/gprs_bssgp_bss.c index bef9bb1..f06c403 100644 --- a/src/gb/gprs_bssgp_bss.c +++ b/src/gb/gprs_bssgp_bss.c @@ -277,7 +277,7 @@ (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); uint16_t _bvci = osmo_htons(bctx->bvci); - LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx BVC-BLOCK\n", bctx->bvci); + LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx BVC-UNBLOCK\n", bctx->bvci); msgb_nsei(msg) = bctx->nsei; msgb_bvci(msg) = 0; /* Signalling */ -- To view, visit https://gerrit.osmocom.org/12957 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I70fa7336402d193513f89fcf3068b0b21925702d Gerrit-Change-Number: 12957 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 10:58:00 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 19 Feb 2019 10:58:00 +0000 Subject: Change in libosmocore[master]: bssgp_tx_bvc_unblock(): Fix log message In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12957 ) Change subject: bssgp_tx_bvc_unblock(): Fix log message ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12957 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I70fa7336402d193513f89fcf3068b0b21925702d Gerrit-Change-Number: 12957 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 19 Feb 2019 10:58:00 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 11:03:10 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 19 Feb 2019 11:03:10 +0000 Subject: Change in osmocom-bb[master]: firmware/board: introduce new FCDEV3B (FreeCalypso) target In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12888 ) Change subject: firmware/board: introduce new FCDEV3B (FreeCalypso) target ...................................................................... Patch Set 4: (1 comment) https://gerrit.osmocom.org/#/c/12888/4/src/target/firmware/board/fcdev3b/init.c File src/target/firmware/board/fcdev3b/init.c: https://gerrit.osmocom.org/#/c/12888/4/src/target/firmware/board/fcdev3b/init.c at 3 PS4, Line 3: obnoxious Still wondering why she is using such words... -- To view, visit https://gerrit.osmocom.org/12888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I09bd35a18d3ea094000050169a62fd82ba6eccfe Gerrit-Change-Number: 12888 Gerrit-PatchSet: 4 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 19 Feb 2019 11:03:10 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 11:53:15 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 19 Feb 2019 11:53:15 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCUIF: Prepare for simulating BTS side of PCU Interface In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12943 ) Change subject: PCUIF: Prepare for simulating BTS side of PCU Interface ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12943 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I779ff2903cab8c13ffb8fe10a4cacd996bafe69a Gerrit-Change-Number: 12943 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Tue, 19 Feb 2019 11:53:15 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 11:54:27 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 19 Feb 2019 11:54:27 +0000 Subject: Change in libosmocore[master]: rsl: Support PDCH in rsl_chan_nr_str In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12942 ) Change subject: rsl: Support PDCH in rsl_chan_nr_str ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12942 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If6ed96c9eb0431eb24e2135634def61e0ea506ea Gerrit-Change-Number: 12942 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Tue, 19 Feb 2019 11:54:27 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 12:06:38 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 19 Feb 2019 12:06:38 +0000 Subject: Change in osmo-pcu[master]: Rewrite Packet Downlink Assignment In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12954 ) Change subject: Rewrite Packet Downlink Assignment ...................................................................... Patch Set 1: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/12954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie180733d2584ebb16fb80b84526d0dbc70e3d441 Gerrit-Change-Number: 12954 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Tue, 19 Feb 2019 12:06:38 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 12:06:54 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 19 Feb 2019 12:06:54 +0000 Subject: Change in osmo-pcu[master]: Rewrite EGPRS Packet Uplink Assignment In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12952 ) Change subject: Rewrite EGPRS Packet Uplink Assignment ...................................................................... Patch Set 1: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/12952 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I19cc4226e7e831e7d7f70212b2078f5589a87ff0 Gerrit-Change-Number: 12952 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Tue, 19 Feb 2019 12:06:54 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 12:27:58 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 12:27:58 +0000 Subject: Change in libosmocore[master]: rsl: Support PDCH in rsl_chan_nr_str In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12942 ) Change subject: rsl: Support PDCH in rsl_chan_nr_str ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12942 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If6ed96c9eb0431eb24e2135634def61e0ea506ea Gerrit-Change-Number: 12942 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Tue, 19 Feb 2019 12:27:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 12:27:59 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 12:27:59 +0000 Subject: Change in libosmocore[master]: rsl: Support PDCH in rsl_chan_nr_str In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12942 ) Change subject: rsl: Support PDCH in rsl_chan_nr_str ...................................................................... rsl: Support PDCH in rsl_chan_nr_str During log review lack of support for PDCH was spotted: scheduler.c:593 Configuring multiframe with PDCH trx=0 ts=4 rsl.c:1159 (bts=0,trx=0,ts=4,ss=0): chan_nr=UNKNOWN on TS4 type=0x00 mode=SIGNALLING rsl.c:741 (bts=0,trx=0,ts=4,pchan=TCH/F_TCH/H_PDCH as PDCH) (ss=0) PDTCH Tx CHAN ACT ACK Wireshark shows: 1100 0... = C-bits: PDCH (24) .... .100 = Time slot number (TN): 4 Change-Id: If6ed96c9eb0431eb24e2135634def61e0ea506ea --- M src/gsm/rsl.c 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Max: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/gsm/rsl.c b/src/gsm/rsl.c index abda932..e610ebf 100644 --- a/src/gsm/rsl.c +++ b/src/gsm/rsl.c @@ -236,6 +236,8 @@ sprintf(str, "RACH on TS%d", ts); else if (cbits == 0x12) sprintf(str, "PCH/AGCH on TS%d", ts); + else if (cbits == 0x18) + sprintf(str, "PDCH on TS%d", ts); else sprintf(str, "UNKNOWN on TS%d", ts); -- To view, visit https://gerrit.osmocom.org/12942 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If6ed96c9eb0431eb24e2135634def61e0ea506ea Gerrit-Change-Number: 12942 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 12:28:30 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 12:28:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCUIF: Prepare for simulating BTS side of PCU Interface In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12943 ) Change subject: PCUIF: Prepare for simulating BTS side of PCU Interface ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12943 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I779ff2903cab8c13ffb8fe10a4cacd996bafe69a Gerrit-Change-Number: 12943 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Tue, 19 Feb 2019 12:28:30 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 12:28:42 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 12:28:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osocom_Gb_Types: Add send/receive templates for SNS-SIZE and SNS-CONF... In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12941 ) Change subject: Osocom_Gb_Types: Add send/receive templates for SNS-SIZE and SNS-CONFIG procedure ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12941 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iaa12c468a9e665d2050945cfc0a60dab4024071c Gerrit-Change-Number: 12941 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Tue, 19 Feb 2019 12:28:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 12:28:46 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 12:28:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCUIF: Use OCT4 for IP address, not uint32_t In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12945 ) Change subject: PCUIF: Use OCT4 for IP address, not uint32_t ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12945 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia08e1bb8a9bfbd5bf5b63922c77bb221ce1a12f5 Gerrit-Change-Number: 12945 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 19 Feb 2019 12:28:46 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 12:28:52 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 12:28:52 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osmocom_Gb_Types: Differentiate send (value) and receive templates In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12940 ) Change subject: Osmocom_Gb_Types: Differentiate send (value) and receive templates ...................................................................... Osmocom_Gb_Types: Differentiate send (value) and receive templates Change-Id: I90400c42d3dff0a1de0022320d76f10ac748a206 --- M library/NS_Emulation.ttcn M library/Osmocom_Gb_Types.ttcn 2 files changed, 96 insertions(+), 34 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/NS_Emulation.ttcn b/library/NS_Emulation.ttcn index ca4d1d6..6915993 100644 --- a/library/NS_Emulation.ttcn +++ b/library/NS_Emulation.ttcn @@ -127,7 +127,7 @@ } private function f_sendReset() runs on NS_CT { - NSCP.send(t_NS_Send(g_conn_id, t_NS_RESET(NS_CAUSE_OM_INTERVENTION, config.nsvci, config.nsei))); + NSCP.send(t_NS_Send(g_conn_id, ts_NS_RESET(NS_CAUSE_OM_INTERVENTION, config.nsvci, config.nsei))); g_state := NSE_S_WAIT_RESET; } @@ -142,7 +142,7 @@ } private function f_sendBlock(NsCause cause) runs on NS_CT { - NSCP.send(t_NS_Send(g_conn_id, t_NS_BLOCK(cause, config.nsvci))); + NSCP.send(t_NS_Send(g_conn_id, ts_NS_BLOCK(cause, config.nsvci))); Tns_block.start; } @@ -175,19 +175,19 @@ } /* Respond to BLOCK for wrong NSVCI */ - [] NSCP.receive(t_NS_RecvFrom(t_NS_BLOCK(?, ?))) -> value rf { + [] NSCP.receive(t_NS_RecvFrom(tr_NS_BLOCK(?, ?))) -> value rf { log("Rx NS-BLOCK for unknown NSVCI"); /* FIXME */ } /* Respond to RESET with correct NSEI/NSVCI */ - [] NSCP.receive(t_NS_RecvFrom(t_NS_RESET(?, config.nsvci, config.nsei))) -> value rf { + [] NSCP.receive(t_NS_RecvFrom(tr_NS_RESET(?, config.nsvci, config.nsei))) -> value rf { f_change_state(NSE_S_ALIVE_BLOCKED); - NSCP.send(t_NS_Send(g_conn_id, t_NS_RESET_ACK(config.nsvci, config.nsei))); + NSCP.send(t_NS_Send(g_conn_id, ts_NS_RESET_ACK(config.nsvci, config.nsei))); } /* Respond to RESET with wrong NSEI/NSVCI */ - [] NSCP.receive(t_NS_RecvFrom(t_NS_RESET(?, ?, ?))) -> value rf { + [] NSCP.receive(t_NS_RecvFrom(tr_NS_RESET(?, ?, ?))) -> value rf { log("Rx NS-RESET for unknown NSEI/NSVCI"); /* FIXME */ } @@ -215,7 +215,7 @@ } } else if (g_state == NSE_S_WAIT_RESET) { alt { - [] NSCP.receive(t_NS_RecvFrom(t_NS_RESET_ACK(config.nsvci, config.nsei))) -> value rf { + [] NSCP.receive(t_NS_RecvFrom(tr_NS_RESET_ACK(config.nsvci, config.nsei))) -> value rf { f_change_state(NSE_S_ALIVE_BLOCKED); f_sendAlive(); f_sendUnblock(); @@ -224,8 +224,8 @@ } else if (g_state == NSE_S_ALIVE_BLOCKED) { alt { /* bogus block, just respond with ACK */ - [] NSCP.receive(t_NS_RecvFrom(t_NS_BLOCK(?, config.nsvci))) -> value rf { - NSCP.send(t_NS_Send(g_conn_id, t_NS_BLOCK_ACK(config.nsvci))); + [] NSCP.receive(t_NS_RecvFrom(tr_NS_BLOCK(?, config.nsvci))) -> value rf { + NSCP.send(t_NS_Send(g_conn_id, ts_NS_BLOCK_ACK(config.nsvci))); } /* Respond to UNBLOCK with UNBLOCK-ACK + change state */ [] NSCP.receive(t_NS_RecvFrom(t_NS_UNBLOCK)) -> value rf { @@ -249,16 +249,16 @@ NSCP.send(t_NS_Send(g_conn_id, t_NS_UNBLOCK_ACK)); } /* Respond to BLOCK with BLOCK-ACK + change state */ - [] NSCP.receive(t_NS_RecvFrom(t_NS_BLOCK(?, config.nsvci))) -> value rf { - NSCP.send(t_NS_Send(g_conn_id, t_NS_BLOCK_ACK(config.nsvci))); + [] NSCP.receive(t_NS_RecvFrom(tr_NS_BLOCK(?, config.nsvci))) -> value rf { + NSCP.send(t_NS_Send(g_conn_id, ts_NS_BLOCK_ACK(config.nsvci))); Tns_block.stop; f_change_state(NSE_S_ALIVE_BLOCKED); } - [] NSCP.receive(t_NS_RecvFrom(t_NS_BLOCK_ACK(config.nsvci))) -> value rf { + [] NSCP.receive(t_NS_RecvFrom(tr_NS_BLOCK_ACK(config.nsvci))) -> value rf { Tns_block.stop; } /* NS-UNITDATA PDU from network to NS-UNITDATA.ind to user */ - [] NSCP.receive(t_NS_RecvFrom(t_NS_UNITDATA(?, ?, ?))) -> value rf { + [] NSCP.receive(t_NS_RecvFrom(tr_NS_UNITDATA(?, ?, ?))) -> value rf { NS_SP.send(t_NsUdInd(config.nsei, oct2int(rf.msg.pDU_NS_Unitdata.bVCI), rf.msg.pDU_NS_Unitdata.nS_SDU)); @@ -266,12 +266,12 @@ /* NS-UNITDATA.req from user to NS-UNITDATA PDU on network */ [] NS_SP.receive(t_NsUdReq(config.nsei, ?, ?, omit)) -> value ud_req { /* using raw octetstring PDU */ - NSCP.send(t_NS_Send(g_conn_id, t_NS_UNITDATA(t_SduCtrlB, ud_req.bvci, ud_req.sdu))); + NSCP.send(t_NS_Send(g_conn_id, ts_NS_UNITDATA(t_SduCtrlB, ud_req.bvci, ud_req.sdu))); } [] NS_SP.receive(t_NsUdReq(config.nsei, ?, omit, ?)) -> value ud_req { /* using decoded BSSGP PDU that we need to encode first */ var octetstring enc := enc_PDU_BSSGP(ud_req.bssgp); - NSCP.send(t_NS_Send(g_conn_id, t_NS_UNITDATA(t_SduCtrlB, ud_req.bvci, enc))); + NSCP.send(t_NS_Send(g_conn_id, ts_NS_UNITDATA(t_SduCtrlB, ud_req.bvci, enc))); } } } diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 3de7427..c337cb4 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -67,13 +67,22 @@ NS_CAUSE_IP_TEST_FAILEDA ('00010100'B) } with { variant "FIELDLENGTH(8)" }; - template NS_SDU_ControlBits t_SduCtrlB := { + template (value) NS_SDU_ControlBits t_SduCtrlB := { rBit := '0'B, cBit := '0'B, spare := '000000'B } - function t_NS_IE_CAUSE(template NsCause cause) return template CauseNS { + template (value) CauseNS ts_NS_IE_CAUSE(NsCause cause) := { + iEI := '00'O, + ext := '1'B, + lengthIndicator := { + length1 := 1 + }, + cause := int2oct(enum2int(valueof(cause)), 1) + } + + function tr_NS_IE_CAUSE(template NsCause cause) return template CauseNS { var template CauseNS ret; ret.iEI := '00'O; ret.ext := '1'B; @@ -94,7 +103,15 @@ } } - template NS_VCI t_NS_IE_NSVCI(template Nsvci nsvci) := { + template (value) NS_VCI ts_NS_IE_NSVCI(Nsvci nsvci) := { + iEI := '01'O, + ext := '1'B, + lengthIndicator := { + length1 := 2 + }, + nS_VCI := int2oct(nsvci, 2) + } + template NS_VCI tr_NS_IE_NSVCI(template Nsvci nsvci) := { iEI := '01'O, ext := '1'B, lengthIndicator := { @@ -103,7 +120,15 @@ nS_VCI := f_oct_or_wc(nsvci, 2) } - template NSEI_NS t_NS_IE_NSEI(template Nsei nsei) := { + template (value) NSEI_NS ts_NS_IE_NSEI(Nsei nsei) := { + iEI:= '04'O, + ext := '1'B, + lengthIndicator := { + length1 := 2 + }, + nSEI := int2oct(nsei, 2) + } + template NSEI_NS tr_NS_IE_NSEI(template Nsei nsei) := { iEI:= '04'O, ext := '1'B, lengthIndicator := { @@ -112,35 +137,64 @@ nSEI := f_oct_or_wc(nsei, 2) } - template PDU_NS t_NS_RESET(template NsCause cause, template Nsvci nsvci, template Nsei nsei) := { + + template (value) PDU_NS ts_NS_RESET(NsCause cause, Nsvci nsvci, Nsei nsei) := { pDU_NS_Reset := { nsPduType := '02'O, - causeNS := t_NS_IE_CAUSE(cause), - nS_VCI := t_NS_IE_NSVCI(nsvci), - nSEI_NS := t_NS_IE_NSEI(nsei) + causeNS := ts_NS_IE_CAUSE(cause), + nS_VCI := ts_NS_IE_NSVCI(nsvci), + nSEI_NS := ts_NS_IE_NSEI(nsei) + } + } + template PDU_NS tr_NS_RESET(template NsCause cause, template Nsvci nsvci, template Nsei nsei) := { + pDU_NS_Reset := { + nsPduType := '02'O, + causeNS := tr_NS_IE_CAUSE(cause), + nS_VCI := tr_NS_IE_NSVCI(nsvci), + nSEI_NS := tr_NS_IE_NSEI(nsei) } } - template PDU_NS t_NS_RESET_ACK(template Nsvci nsvci, template Nsei nsei) := { + template (value) PDU_NS ts_NS_RESET_ACK(Nsvci nsvci, Nsei nsei) := { pDU_NS_Reset_Ack := { nsPduType := '03'O, - nS_VCI := t_NS_IE_NSVCI(nsvci), - nSEI_NS := t_NS_IE_NSEI(nsei) + nS_VCI := ts_NS_IE_NSVCI(nsvci), + nSEI_NS := ts_NS_IE_NSEI(nsei) + } + } + template PDU_NS tr_NS_RESET_ACK(template Nsvci nsvci, template Nsei nsei) := { + pDU_NS_Reset_Ack := { + nsPduType := '03'O, + nS_VCI := tr_NS_IE_NSVCI(nsvci), + nSEI_NS := tr_NS_IE_NSEI(nsei) } } - template PDU_NS t_NS_BLOCK(template NsCause cause, template Nsvci nsvci) := { + template (value) PDU_NS ts_NS_BLOCK(NsCause cause, Nsvci nsvci) := { pDU_NS_Block := { nsPduType := '04'O, - causeNS := t_NS_IE_CAUSE(cause), - nS_VCI := t_NS_IE_NSVCI(nsvci) + causeNS := ts_NS_IE_CAUSE(cause), + nS_VCI := ts_NS_IE_NSVCI(nsvci) + } + } + template PDU_NS tr_NS_BLOCK(template NsCause cause, template Nsvci nsvci) := { + pDU_NS_Block := { + nsPduType := '04'O, + causeNS := tr_NS_IE_CAUSE(cause), + nS_VCI := tr_NS_IE_NSVCI(nsvci) } } - template PDU_NS t_NS_BLOCK_ACK(template Nsvci nsvci) := { + template (value) PDU_NS ts_NS_BLOCK_ACK(Nsvci nsvci) := { pDU_NS_Block_Ack := { nsPduType := '05'O, - nS_VCI := t_NS_IE_NSVCI(nsvci) + nS_VCI := ts_NS_IE_NSVCI(nsvci) + } + } + template PDU_NS tr_NS_BLOCK_ACK(template Nsvci nsvci) := { + pDU_NS_Block_Ack := { + nsPduType := '05'O, + nS_VCI := tr_NS_IE_NSVCI(nsvci) } } @@ -168,10 +222,10 @@ } } - template PDU_NS ts_NS_STATUS(NsCause cause, PDU_NS pdu) := { + template (value) PDU_NS ts_NS_STATUS(NsCause cause, PDU_NS pdu) := { pDU_NS_Status := { nsPduType := '08'O, - causeNS := t_NS_IE_CAUSE(cause), + causeNS := ts_NS_IE_CAUSE(cause), nS_VCI := omit, nS_PDU := { iEI := '02'O, @@ -187,7 +241,15 @@ } } - template PDU_NS t_NS_UNITDATA(template NS_SDU_ControlBits bits, template BssgpBvci bvci, template + template (value) PDU_NS ts_NS_UNITDATA(template (value) NS_SDU_ControlBits bits, BssgpBvci bvci, octetstring sdu) := { + pDU_NS_Unitdata := { + nsPduType := '00'O, + nS_SDU_ControlBits := bits, + bVCI := int2oct(bvci, 2), + nS_SDU := sdu + } + } + template PDU_NS tr_NS_UNITDATA(template NS_SDU_ControlBits bits, template BssgpBvci bvci, template octetstring sdu) := { pDU_NS_Unitdata := { nsPduType := '00'O, -- To view, visit https://gerrit.osmocom.org/12940 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I90400c42d3dff0a1de0022320d76f10ac748a206 Gerrit-Change-Number: 12940 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 12:28:53 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 12:28:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Osocom_Gb_Types: Add send/receive templates for SNS-SIZE and SNS-CONF... In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12941 ) Change subject: Osocom_Gb_Types: Add send/receive templates for SNS-SIZE and SNS-CONFIG procedure ...................................................................... Osocom_Gb_Types: Add send/receive templates for SNS-SIZE and SNS-CONFIG procedure Change-Id: Iaa12c468a9e665d2050945cfc0a60dab4024071c --- M library/Osmocom_Gb_Types.ttcn M pcu/gen_links.sh M pcu/regen_makefile.sh 3 files changed, 275 insertions(+), 9 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index c337cb4..86b4d49 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -9,6 +9,7 @@ import from GSM_RR_Types all; import from BSSGP_Types all import from NS_Types all + import from Native_Functions all; type uint16_t Nsvci; type uint16_t Nsei; @@ -81,26 +82,49 @@ }, cause := int2oct(enum2int(valueof(cause)), 1) } + function ts_NS_IE_CAUSE_omit(template (omit) NsCause cause) return template (omit) CauseNS { + var template (omit) CauseNS ret; + if (istemplatekind(cause, "omit")) { + return omit; + } else { + ret := { + iEI := '00'O, + ext := '1'B, + lengthIndicator := { + length1 := 1 + }, + cause := int2oct(enum2int(valueof(cause)), 1) + } + return ret; + } + } function tr_NS_IE_CAUSE(template NsCause cause) return template CauseNS { var template CauseNS ret; ret.iEI := '00'O; ret.ext := '1'B; ret.lengthIndicator := { length1 := 1 }; - if (isvalue(cause)) { - ret.cause := int2oct(enum2int(valueof(cause)), 1); - } else { + if (istemplatekind(cause, "omit")) { + return omit; + } else if (istemplatekind(cause, "*")) { + return *; + } else if (istemplatekind(cause, "?")) { ret.cause := ? + } else { + ret.cause := int2oct(enum2int(valueof(cause)), 1); } return ret; } private function f_oct_or_wc(template integer inp, integer len) return template octetstring { - if (isvalue(inp)) { - return int2oct(valueof(inp), len); - } else { - return ? + if (istemplatekind(inp, "omit")) { + return omit; + } else if (istemplatekind(inp, "*")) { + return *; + } else if (istemplatekind(inp, "?")) { + return ?; } + return int2oct(valueof(inp), len); } template (value) NS_VCI ts_NS_IE_NSVCI(Nsvci nsvci) := { @@ -137,6 +161,40 @@ nSEI := f_oct_or_wc(nsei, 2) } + template (value) IP4_Element ts_SNS_IPv4(charstring ip, integer udp_port, + uint8_t sig_weight := 1, uint8_t data_weight := 1) := { + ipAddress := f_inet_addr(ip), + uDP_Port := int2oct(udp_port, 2), + signallingWeight := int2oct(sig_weight, 1), + dataWeight := int2oct(data_weight, 1) + } + function tr_SNS_IPv4(template charstring ip, template integer udp_port, + template uint8_t sig_weight := ?, template uint8_t data_weight := ?) + return template IP4_Element { + var template IP4_Element e; + if (istemplatekind(ip, "?")) { + e.ipAddress := ?; + } else { + e.ipAddress := f_inet_addr(valueof(ip)); + } + if (istemplatekind(udp_port, "?")) { + e.uDP_Port := ?; + } else { + e.uDP_Port := int2oct(valueof(udp_port), 2); + } + if (istemplatekind(sig_weight, "?")) { + e.signallingWeight := ?; + } else { + e.signallingWeight := int2oct(valueof(sig_weight), 1); + } + if (istemplatekind(data_weight, "?")) { + e.dataWeight := ?; + } else { + e.dataWeight := int2oct(valueof(data_weight), 1); + } + return e; + } + template (value) PDU_NS ts_NS_RESET(NsCause cause, Nsvci nsvci, Nsei nsei) := { pDU_NS_Reset := { @@ -260,6 +318,214 @@ } + + private function ts_num_of_ep(OCT1 iei, template (omit) uint16_t num_ep) + return template (omit) NumberOfIP_Endpoints { + var template (omit) NumberOfIP_Endpoints t; + if (istemplatekind(num_ep, "omit")) { + return omit; + } else { + t.iEI := iei; + t.numberOfIP_Endpoints := int2oct(valueof(num_ep), 2); + return t; + } + } + private function tr_num_of_ep(OCT1 iei, template uint16_t num_ep) + return template NumberOfIP_Endpoints { + var template NumberOfIP_Endpoints t; + if (istemplatekind(num_ep, "omit")) { + return omit; + } else if (istemplatekind(num_ep, "*")) { + return *; + } else if (istemplatekind(num_ep, "?")) { + return ?; + } else { + t.iEI := iei; + t.numberOfIP_Endpoints := int2oct(valueof(num_ep), 2); + return t; + } + } + + + template (value) ResetFlag ts_SNS_IE_ResetFlag(boolean rst) := { + iEI := '0A'O, + resetBIT := bool2bit(rst), + spare := '0000000'B + } + template ResetFlag tr_SNS_IE_ResetFlag(template boolean rst) := { + iEI := '0A'O, + resetBIT := bool2bit_tmpl(rst), + spare := '0000000'B + } + + template (value) EndFlag ts_SNS_IE_EndFlag(boolean end) := { + eBIT := bool2bit(end), + spare := '0000000'B + } + template EndFlag tr_SNS_IE_EndFlag(template boolean end) := { + eBIT := bool2bit_tmpl(end), + spare := '0000000'B + } + + template (value) MaxNumberOfNSVCs ts_SNS_IE_MaxNumOfNSVCs(uint16_t num) := { + iEI := '07'O, + maxNumberOfNSVCs := int2oct(num, 2) + } + template MaxNumberOfNSVCs tr_SNS_IE_MaxNumOfNSVCs(template uint16_t num) := { + iEI := '07'O, + maxNumberOfNSVCs := f_oct_or_wc(num, 2) + } + + template (value) PDU_NS ts_SNS_SIZE(Nsei nsei, boolean rst_flag := true, + uint16_t max_nsvcs := 2, + template (omit) uint16_t num_v4 := 1, + template (omit) uint16_t num_v6 := omit) := { + pDU_SNS_Size := { + nsPduType := '12'O, + nSEI_NS := ts_NS_IE_NSEI(nsei), + resetFlag := ts_SNS_IE_ResetFlag(rst_flag), + maxNumberOfNSVCs := ts_SNS_IE_MaxNumOfNSVCs(max_nsvcs), + numberOfIP4_Endpoints := ts_num_of_ep('08'O, num_v4), + numberOfIP6_Endpoints := ts_num_of_ep('09'O, num_v6) + } + } + template PDU_NS tr_SNS_SIZE(template Nsei nsei, template boolean rst_flag := ?, + template uint16_t max_nsvcs := ?, + template uint16_t num_v4 := ?, + template uint16_t num_v6 := *) := { + pDU_SNS_Size := { + nsPduType := '12'O, + nSEI_NS := tr_NS_IE_NSEI(nsei), + resetFlag := tr_SNS_IE_ResetFlag(rst_flag), + maxNumberOfNSVCs := tr_SNS_IE_MaxNumOfNSVCs(max_nsvcs), + numberOfIP4_Endpoints := tr_num_of_ep('08'O, num_v4), + numberOfIP6_Endpoints := tr_num_of_ep('09'O, num_v6) + } + } + + template PDU_NS ts_SNS_SIZE_ACK(Nsei nsei, template (omit) NsCause cause) := { + pDU_SNS_Size_Ack := { + nsPduType := '13'O, + nSEI_NS := ts_NS_IE_NSEI(nsei), + causeNS := ts_NS_IE_CAUSE_omit(cause) + } + } + template PDU_NS tr_SNS_SIZE_ACK(template Nsei nsei, template NsCause cause) := { + pDU_SNS_Size_Ack := { + nsPduType := '13'O, + nSEI_NS := tr_NS_IE_NSEI(nsei), + causeNS := tr_NS_IE_CAUSE(cause) + } + } + + private function ts_SNS_IE_ListIP4(template (omit) IP4_Elements elem) + return template (omit) ListofIP4Elements { + var template (omit) ListofIP4Elements r; + if (istemplatekind(elem, "omit")) { + return omit; + } else { + r := { + iEI := '05'O, + ext := '1'B, + lengthIndicator := { + length1 := 0 /* overwritten */ + }, + iP4_Elements := elem + } + return r; + } + } + private function tr_SNS_IE_ListIP4(template IP4_Elements elem) + return template ListofIP4Elements { + var template ListofIP4Elements r; + if (istemplatekind(elem, "omit")) { + return omit; + } else { + r := { + iEI := '05'O, + ext := '1'B, + lengthIndicator := { + length1 := ? /* overwritten */ + }, + iP4_Elements := elem + } + return r; + } + } + + private function ts_SNS_IE_ListIP6(template (omit) IP6_Elements elem) + return template (omit) ListofIP6Elements { + var template (omit) ListofIP6Elements r; + if (istemplatekind(elem, "omit")) { + return omit; + } else { + r := { + iEI := '06'O, + ext := '1'B, + lengthIndicator := { + length1 := 0 /* overwritten */ + }, + iP6_Elements := elem + } + return r; + } + } + private function tr_SNS_IE_ListIP6(template IP6_Elements elem) + return template ListofIP6Elements { + var template ListofIP6Elements r; + if (istemplatekind(elem, "omit")) { + return omit; + } else { + r := { + iEI := '06'O, + ext := '1'B, + lengthIndicator := { + length1 := ? /* overwritten */ + }, + iP6_Elements := elem + } + return r; + } + } + + template (value) PDU_NS ts_SNS_CONFIG(Nsei nsei, boolean end_flag, + template (omit) IP4_Elements v4, + template (omit) IP6_Elements v6 := omit) := { + pDU_SNS_Config := { + nsPduType := '0F'O, + endFlag := ts_SNS_IE_EndFlag(end_flag), + nSEI_NS := ts_NS_IE_NSEI(nsei), + listofIP4Elements := ts_SNS_IE_ListIP4(v4), + listofIP6Elements := ts_SNS_IE_ListIP6(v6) + } + } + template PDU_NS tr_SNS_CONFIG(template Nsei nsei, template boolean end_flag, + template IP4_Elements v4, + template IP6_Elements v6 := omit) := { + pDU_SNS_Config := { + nsPduType := '0F'O, + endFlag := tr_SNS_IE_EndFlag(end_flag), + nSEI_NS := tr_NS_IE_NSEI(nsei), + listofIP4Elements := tr_SNS_IE_ListIP4(v4), + listofIP6Elements := tr_SNS_IE_ListIP6(v6) + } + } + + template (value) PDU_NS ts_SNS_CONFIG_ACK(Nsei nsei, template (omit) NsCause cause) := { + pDU_SNS_Config_Ack := { + nsPduType := '10'O, + nSEI_NS := ts_NS_IE_NSEI(nsei), + causeNS := ts_NS_IE_CAUSE_omit(cause) + } + } + template PDU_NS tr_SNS_CONFIG_ACK(template Nsei nsei, template NsCause cause) := { + pDU_SNS_Config_Ack := { + nsPduType := '10'O, + nSEI_NS := tr_NS_IE_NSEI(nsei), + causeNS := tr_NS_IE_CAUSE(cause) + } + } + type record BssgpCellId { RoutingAreaIdentification ra_id, CellIdentity cell_id diff --git a/pcu/gen_links.sh b/pcu/gen_links.sh index 6f33433..6e549eb 100755 --- a/pcu/gen_links.sh +++ b/pcu/gen_links.sh @@ -46,7 +46,7 @@ DIR=../library -FILES="Misc_Helpers.ttcn General_Types.ttcn GSM_Types.ttcn GSM_RR_Types.ttcn Osmocom_Types.ttcn RLCMAC_Types.ttcn RLCMAC_CSN1_Types.ttcn RLCMAC_EncDec.cc L1CTL_Types.ttcn L1CTL_PortType.ttcn L1CTL_PortType_CtrlFunct.ttcn L1CTL_PortType_CtrlFunctDef.cc LAPDm_RAW_PT.ttcn LAPDm_Types.ttcn " +FILES="Misc_Helpers.ttcn General_Types.ttcn Native_Functions.ttcn Native_FunctionDefs.cc GSM_Types.ttcn GSM_RR_Types.ttcn Osmocom_Types.ttcn RLCMAC_Types.ttcn RLCMAC_CSN1_Types.ttcn RLCMAC_EncDec.cc L1CTL_Types.ttcn L1CTL_PortType.ttcn L1CTL_PortType_CtrlFunct.ttcn L1CTL_PortType_CtrlFunctDef.cc LAPDm_RAW_PT.ttcn LAPDm_Types.ttcn " FILES+="NS_Emulation.ttcn NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc " FILES+="BSSGP_Emulation.ttcn Osmocom_Gb_Types.ttcn " FILES+="LLC_Templates.ttcn L3_Templates.ttcn L3_Common.ttcn " diff --git a/pcu/regen_makefile.sh b/pcu/regen_makefile.sh index 7eefd2c..ff712dc 100755 --- a/pcu/regen_makefile.sh +++ b/pcu/regen_makefile.sh @@ -1,5 +1,5 @@ #!/bin/sh -FILES="*.ttcn BSSGP_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc NS_CodecPort_CtrlFunctDef.cc UD_PT.cc RLCMAC_EncDec.cc LLC_EncDec.cc L1CTL_PortType_CtrlFunctDef.cc" +FILES="*.ttcn BSSGP_EncDec.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc NS_CodecPort_CtrlFunctDef.cc UD_PT.cc RLCMAC_EncDec.cc LLC_EncDec.cc L1CTL_PortType_CtrlFunctDef.cc Native_FunctionDefs.cc" ../regen-makefile.sh PCU_Tests.ttcn $FILES -- To view, visit https://gerrit.osmocom.org/12941 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iaa12c468a9e665d2050945cfc0a60dab4024071c Gerrit-Change-Number: 12941 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 12:28:53 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 12:28:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCUIF: Prepare for simulating BTS side of PCU Interface In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12943 ) Change subject: PCUIF: Prepare for simulating BTS side of PCU Interface ...................................................................... PCUIF: Prepare for simulating BTS side of PCU Interface Our TTCN-3 PCUIF code so far was only used to simulate the PCU side of the interface: connecting to the socket as a client. However, it's also useful to emulate the BTS side of the interface: Listening for a connection as a server. Also, the send/receive templates are prepared for the inverse role. Change-Id: I779ff2903cab8c13ffb8fe10a4cacd996bafe69a --- M library/PCUIF_CodecPort.ttcn M library/PCUIF_Types.ttcn 2 files changed, 316 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Max: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/library/PCUIF_CodecPort.ttcn b/library/PCUIF_CodecPort.ttcn index 389c5ca..676a91a 100644 --- a/library/PCUIF_CodecPort.ttcn +++ b/library/PCUIF_CodecPort.ttcn @@ -83,6 +83,35 @@ return -23; } +function f_pcuif_listen(PCUIF_CODEC_PT pt, charstring sock) return integer { + var UD_listen_result res; + var UD_connected udc; + timer T := 5.0; + + pt.send(UD_listen:{sock}); + T.start; + alt { + [] pt.receive(UD_listen_result:?) -> value res { + if (ispresent(res.result) and ispresent (res.result.result_code) and + res.result.result_code == ERROR) { + if (ispresent(res.result.err)) { + setverdict(fail, "Error listening on PCU socket: ", res.result.err); + } else { + setverdict(fail, "Error listening on PCU socket"); + } + mtc.stop; + } else { + return res.id; + } + } + [] T.timeout { + setverdict(fail, "Timeout waiting for PCU socket connection"); + mtc.stop; + } + } + return -23; +} + function f_PCUIF_tx_imm_ass_pch(PCUIF_CODEC_PT pt, integer conn_id, octetstring imm_ass, hexstring imsi, uint8_t bts_nr := 0) return uint32_t { var PCUIF_send_data sd; diff --git a/library/PCUIF_Types.ttcn b/library/PCUIF_Types.ttcn index 7bfaf9b..89a4c33 100644 --- a/library/PCUIF_Types.ttcn +++ b/library/PCUIF_Types.ttcn @@ -125,11 +125,12 @@ OCT8 tsc, uint32_t hLayer1 } with { variant (pdch_mask) "BITORDER(msb)" }; +type record length(8) of PCUIF_InfoTrx PCUIF_InfoTrxs; type record PCUIF_info_ind { uint32_t version, PCUIF_Flags flags, - record length(8) of PCUIF_InfoTrx trx, + PCUIF_InfoTrxs trx, uint8_t bsic, uint16_t mcc, @@ -232,6 +233,29 @@ with { extension "prototype(convert) decode(RAW)" }; +template (value) PCUIF_Message ts_PCUIF_RTS_REQ(template (value) uint8_t bts_nr, + template (value) uint8_t trx_nr, + template (value) uint8_t ts_nr, + template (value) PCUIF_Sapi sapi, + template (value) uint32_t fn, + template (value) uint16_t arfcn, + template (value) uint8_t block_nr + ) := { + msg_type := PCU_IF_MSG_RTS_REQ, + bts_nr := bts_nr, + spare := '0000'O, + u := { + rts_req := { + sapi := sapi, + spare := '000000'O, + fn := fn, + arfcn := arfcn, + trx_nr := trx_nr, + ts_nr := ts_nr, + block_nr := block_nr + } + } +} template PCUIF_Message tr_PCUIF_RTS_REQ(template uint8_t bts_nr := ?, template uint8_t trx_nr := ?, template uint8_t ts_nr := ?, @@ -266,6 +290,20 @@ } } } +template PCUIF_Message tr_PCUIF_TXT_IND(template uint8_t bts_nr, template PCUIF_TextType tt, + template charstring text := ?) := { + msg_type := PCU_IF_MSG_TXT_IND, + bts_nr := bts_nr, + spare := '0000'O, + u := { + txt_ind := { + txt_type := tt, + text := text + } + } +} + + template (value) PCUIF_Message ts_PCUIF_ACT_REQ(uint8_t bts_nr, uint8_t trx_nr, uint8_t ts_nr) := { msg_type := PCU_IF_MSG_ACT_REQ, @@ -280,6 +318,20 @@ } } } +template PCUIF_Message tr_PCUIF_ACT_REQ(template uint8_t bts_nr, template uint8_t trx_nr, + template uint8_t ts_nr) := { + msg_type := PCU_IF_MSG_ACT_REQ, + bts_nr := bts_nr, + spare := '0000'O, + u := { + act_req := { + is_activate := 1, + trx_nr := trx_nr, + ts_nr := ts_nr, + spare := '00'O + } + } +} template (value) PCUIF_Message ts_PCUIF_DEACT_REQ(uint8_t bts_nr, uint8_t trx_nr, uint8_t ts_nr) := { msg_type := PCU_IF_MSG_ACT_REQ, @@ -294,7 +346,53 @@ } } } +template PCUIF_Message tr_PCUIF_DEACT_REQ(template uint8_t bts_nr, template uint8_t trx_nr, + template uint8_t ts_nr) := { + msg_type := PCU_IF_MSG_ACT_REQ, + bts_nr := bts_nr, + spare := '0000'O, + u := { + act_req := { + is_activate := 0, + trx_nr := trx_nr, + ts_nr := ts_nr, + spare := '00'O + } + } +} +template (value) PCUIF_Message ts_PCUIF_DATA_IND(template (value) uint8_t bts_nr, + template (value) uint8_t trx_nr, + template (value) uint8_t ts_nr, + template (value) uint8_t block_nr, + template (value) PCUIF_Sapi sapi, + template (value) OCT162 data, + template (value) uint32_t fn, + template (value) uint16_t arfcn, + template (value) int8_t rssi := -80, + template (value) uint16_t ber10k := 0, + template (value) int16_t ta_offs_qbits := 0, + template (value) uint16_t lqual_cb := 10) := { + msg_type := PCU_IF_MSG_DATA_IND, + bts_nr := bts_nr, + spare := '0000'O, + u := { + data_ind := { + sapi := sapi, + len := lengthof(valueof(data)), + data := data, + fn := fn, + arfcn := arfcn, + trx_nr := trx_nr, + ts_nr := ts_nr, + block_nr := block_nr, + rssi := rssi, + ber10k := ber10k, + ta_offs_qbits := ta_offs_qbits, + lqual_cb := lqual_cb + } + } +} template PCUIF_Message tr_PCUIF_DATA_IND(template uint8_t bts_nr := ?, template uint8_t trx_nr := ?, template uint8_t ts_nr := ?, @@ -347,7 +445,63 @@ } } } +template PCUIF_Message tr_PCUIF_DATA_REQ(template uint8_t bts_nr, + template uint8_t trx_nr, + template uint8_t ts_nr, + template uint8_t block_nr := ?, + template uint32_t fn := ?, + template PCUIF_Sapi sapi := ?, + template octetstring data := ?) := { + msg_type := PCU_IF_MSG_DATA_REQ, + bts_nr := bts_nr, + spare := '0000'O, + u := { + data_req := { + sapi := sapi, + len := ?, + data := data, + fn := fn, + arfcn := 0, /* unused in BTS */ + trx_nr := trx_nr, + ts_nr := ts_nr, + block_nr := block_nr, + /* measurement parameters below unused on Tx */ + rssi := 0, + ber10k := 0, + ta_offs_qbits := 0, + lqual_cb := 0 + } + } +} +template (value) PCUIF_Message ts_PCUIF_DATA_CNF(template (value) uint8_t bts_nr, + template (value) uint8_t trx_nr, + template (value) uint8_t ts_nr, + template (value) uint8_t block_nr, + template (value) uint32_t fn, + template (value) uint16_t arfcn, + template (value) PCUIF_Sapi sapi, + template (value) octetstring data) := { + msg_type := PCU_IF_MSG_DATA_CNF, + bts_nr := bts_nr, + spare := '0000'O, + u := { + data_cnf := { + sapi := sapi, + len := 0, /* overwritten */ + data := data, + fn := fn, + arfcn := arfcn, + trx_nr := trx_nr, + ts_nr := ts_nr, + block_nr := block_nr, + rssi := 0, + ber10k := 0, + ta_offs_qbits := 0, + lqual_cb := 0 + } + } +} template PCUIF_Message tr_PCUIF_DATA_CNF(template uint8_t bts_nr := ?, template uint8_t trx_nr := ?, template uint8_t ts_nr := ?, @@ -374,6 +528,29 @@ } } +template (value) PCUIF_Message ts_PCUIF_RACH_IND(template (value) uint8_t bts_nr, + template (value) uint16_t ra, + template (value) uint8_t is_11bit, + template (value) uint8_t burst_type, + template (value) uint32_t fn, + template (value) uint16_t arfcn, + template (value) int16_t qta := 0 +) := { + msg_type := PCU_IF_MSG_RACH_IND, + bts_nr := bts_nr, + spare := '0000'O, + u := { + rach_ind := { + sapi := PCU_IF_SAPI_RACH, + ra := ra, + qta := qta, + fn := fn, + arfcn := arfcn, + is_11bit := is_11bit, + burst_type := burst_type + } + } +} template PCUIF_Message tr_PCUIF_RACH_IND(template uint8_t bts_nr := ?, template uint16_t ra := ?, template uint8_t is_11bit := ?, @@ -395,6 +572,21 @@ } } +template (value) PCUIF_Message ts_PCUIF_PAG_REQ(template (value) uint8_t bts_nr, + template (value) OCT9 id_lv, + template (value) uint8_t chan_needed, + template (value) PCUIF_Sapi sapi) := { + msg_type := PCU_IF_MSG_PAG_REQ, + bts_nr := bts_nr, + spare := '0000'O, + u := { + pag_req := { + sapi := sapi, + chan_needed := chan_needed, + identity_lv := id_lv + } + } +} template PCUIF_Message tr_PCUIF_PAG_REQ(template uint8_t bts_nr := ?, template OCT9 id_lv := ?, template uint8_t chan_needed := ?, @@ -411,6 +603,100 @@ } } +const PCUIF_Flags c_PCUIF_Flags_default := { + bts_active := true, + sysmo_direct_dsp := false, + spare := '00000000000000'B, + cs1 := true, + cs2 := true, + cs3 := true, + cs4 := true, + mcs1 := true, + mcs2 := true, + mcs3 := true, + mcs4 := true, + mcs5 := true, + mcs6 := true, + mcs7 := true, + mcs8 := true, + mcs9 := true, + spare2 := '000'B +}; + +template (value) PCUIF_InfoTrx ts_PCUIF_InfoTrx(template (value) uint16_t arfcn := 871, + template (value) BIT8 pdch_mask := '00000001'B, + OCT1 tsc := '07'O) := { + arfcn := arfcn, + pdch_mask := pdch_mask, + spare := '00'O, + tsc := tsc & tsc & tsc & tsc & tsc & tsc & tsc & tsc, + hLayer1 := 0 +} + +template (value) PCUIF_InfoTrx ts_PCUIF_InfoTrxNULL := ts_PCUIF_InfoTrx(0, '00000000'B, '00'O); + +template (value) PCUIF_InfoTrxs ts_PCUIF_InfoTrxs_def := { + ts_PCUIF_InfoTrx, ts_PCUIF_InfoTrxNULL, ts_PCUIF_InfoTrxNULL, ts_PCUIF_InfoTrxNULL, + ts_PCUIF_InfoTrxNULL, ts_PCUIF_InfoTrxNULL, ts_PCUIF_InfoTrxNULL, ts_PCUIF_InfoTrxNULL }; + + +template (value) PCUIF_Message ts_PCUIF_INFO_IND(template (value) uint8_t bts_nr, + template (value) uint16_t nsei, + template (value) uint16_t nsvci, + template (value) uint16_t bvci, + template (value) uint16_t local_port, + template (value) uint16_t remote_port, + template (value) uint32_t remote_ip, + template (value) PCUIF_Flags flags := c_PCUIF_Flags_default, + template (value) uint16_t mcc := 262, + template (value) uint16_t mnc := 42, + template (value) uint16_t lac := 2342, + template (value) uint8_t rac := 0, + template (value) uint16_t cell_id := 1, + template (value) uint8_t bsic := 7, + template (value) PCUIF_InfoTrxs trx := ts_PCUIF_InfoTrxs_def, + template (value) uint32_t version := PCU_IF_VERSION) := { + msg_type := PCU_IF_MSG_INFO_IND, + bts_nr := bts_nr, + spare := '0000'O, + u := { + info_ind := { + version := version, + flags := flags, + trx := trx, + bsic := bsic, + mcc := mcc, + mnc := mnc, + mnc_3_digits := 0, + lac := lac, + rac := rac, + nsei := nsei, + nse_timer := { 3, 3, 3, 3, 30, 3, 10 }, + cell_timer := { 3, 3, 3, 3, 3, 10, 3, 10, 3, 10, 3 }, + cell_id := cell_id, + repeat_time := 5 * 50, + repeat_count := 3, + bvci := bvci, + t3142 := 20, + t3169 := 5, + t3191 := 5, + t3193_10ms := 160, + t3195 := 5, + t3101 := 10, + t3103 := 4, + t3105 := 8, + cv_countdown := 15, + dl_tbf_ext := 250 * 10, /* ms */ + ul_tbf_ext := 250 * 10, /* ms */ + initial_cs := 2, + initial_mcs := 6, + nsvci := { nsvci, 0 }, + local_pprt := { local_port, 0 }, + remote_port := { remote_port, 0 }, + remote_ip := { remote_ip , 0 } + } + } +} template PCUIF_Message tr_PCUIF_INFO_IND(template uint8_t bts_nr := ?, template PCUIF_Flags flags := ?, template uint32_t version := PCU_IF_VERSION) := { -- To view, visit https://gerrit.osmocom.org/12943 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I779ff2903cab8c13ffb8fe10a4cacd996bafe69a Gerrit-Change-Number: 12943 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 12:28:53 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 12:28:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCUIF: Use OCT4 for IP address, not uint32_t In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12945 ) Change subject: PCUIF: Use OCT4 for IP address, not uint32_t ...................................................................... PCUIF: Use OCT4 for IP address, not uint32_t In TTCN-3, a 4-byte octetstring is the more usual representation for IP addresses, not an integer type. This is also what functions like f_inet_addr() etc. are using as types, and we may want to use them in combination with the PCUIF. Change-Id: Ia08e1bb8a9bfbd5bf5b63922c77bb221ce1a12f5 --- M library/PCUIF_Types.ttcn 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/library/PCUIF_Types.ttcn b/library/PCUIF_Types.ttcn index 89a4c33..3215c4b 100644 --- a/library/PCUIF_Types.ttcn +++ b/library/PCUIF_Types.ttcn @@ -164,7 +164,7 @@ record length(2) of uint16_t nsvci, record length(2) of uint16_t local_pprt, record length(2) of uint16_t remote_port, - record length(2) of uint32_t remote_ip + record length(2) of OCT4 remote_ip } with { variant "" } type record PCUIF_act_req { @@ -646,7 +646,7 @@ template (value) uint16_t bvci, template (value) uint16_t local_port, template (value) uint16_t remote_port, - template (value) uint32_t remote_ip, + template (value) OCT4 remote_ip, template (value) PCUIF_Flags flags := c_PCUIF_Flags_default, template (value) uint16_t mcc := 262, template (value) uint16_t mnc := 42, @@ -693,7 +693,7 @@ nsvci := { nsvci, 0 }, local_pprt := { local_port, 0 }, remote_port := { remote_port, 0 }, - remote_ip := { remote_ip , 0 } + remote_ip := { remote_ip , '00000000'O } } } } -- To view, visit https://gerrit.osmocom.org/12945 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ia08e1bb8a9bfbd5bf5b63922c77bb221ce1a12f5 Gerrit-Change-Number: 12945 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 12:29:14 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 12:29:14 +0000 Subject: Change in libosmocore[master]: bssgp_tx_bvc_unblock(): Fix log message In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12957 ) Change subject: bssgp_tx_bvc_unblock(): Fix log message ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12957 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I70fa7336402d193513f89fcf3068b0b21925702d Gerrit-Change-Number: 12957 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 19 Feb 2019 12:29:14 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 12:29:15 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 12:29:15 +0000 Subject: Change in libosmocore[master]: bssgp_tx_bvc_unblock(): Fix log message In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12957 ) Change subject: bssgp_tx_bvc_unblock(): Fix log message ...................................................................... bssgp_tx_bvc_unblock(): Fix log message We're transmitting a BVC-UNBLOCK but the log states the opposite: BVC-BLOCK. Let's fix that. Change-Id: I70fa7336402d193513f89fcf3068b0b21925702d --- M src/gb/gprs_bssgp_bss.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Vadim Yanitskiy: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb/gprs_bssgp_bss.c b/src/gb/gprs_bssgp_bss.c index bef9bb1..f06c403 100644 --- a/src/gb/gprs_bssgp_bss.c +++ b/src/gb/gprs_bssgp_bss.c @@ -277,7 +277,7 @@ (struct bssgp_normal_hdr *) msgb_put(msg, sizeof(*bgph)); uint16_t _bvci = osmo_htons(bctx->bvci); - LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx BVC-BLOCK\n", bctx->bvci); + LOGP(DBSSGP, LOGL_NOTICE, "BSSGP (BVCI=%u) Tx BVC-UNBLOCK\n", bctx->bvci); msgb_nsei(msg) = bctx->nsei; msgb_bvci(msg) = 0; /* Signalling */ -- To view, visit https://gerrit.osmocom.org/12957 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I70fa7336402d193513f89fcf3068b0b21925702d Gerrit-Change-Number: 12957 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 12:29:30 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 12:29:30 +0000 Subject: Change in osmo-gsm-tester[master]: doc: Update list of dependencies and add pysispm one In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12953 ) Change subject: doc: Update list of dependencies and add pysispm one ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12953 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I05cc63bfd627bfec83b50fe89fe8004d130384e6 Gerrit-Change-Number: 12953 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Tue, 19 Feb 2019 12:29:30 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 12:30:39 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 12:30:39 +0000 Subject: Change in osmo-ci[master]: docker: Use the same Dockerfile for jessie and stretch In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12951 ) Change subject: docker: Use the same Dockerfile for jessie and stretch ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12951 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I44c8e49a548cb64defd2eba868ec4bd435de90ba Gerrit-Change-Number: 12951 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Tue, 19 Feb 2019 12:30:39 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 12:30:55 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 12:30:55 +0000 Subject: Change in osmo-ci[master]: docker: Remove unused files to remove the clutter In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12950 ) Change subject: docker: Remove unused files to remove the clutter ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12950 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7c5b559975e5f9a50368a5bb5bd961bdb9f85270 Gerrit-Change-Number: 12950 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Comment-Date: Tue, 19 Feb 2019 12:30:55 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 12:31:27 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 12:31:27 +0000 Subject: Change in osmo-bts[master]: OML: Store merged attributes of IPA OML Managed Objects In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12893 ) Change subject: OML: Store merged attributes of IPA OML Managed Objects ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12893/1/src/common/oml.c File src/common/oml.c: https://gerrit.osmocom.org/#/c/12893/1/src/common/oml.c at 1337 PS1, Line 1337: tp_merged = osmo_tlvp_copy(mo->nm_attr, bts); > Can this be moved inside 'success' branch of if()? In this case we won't have to free tp_merged and [?] ACK -- To view, visit https://gerrit.osmocom.org/12893 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I75ebda46da9c1fcecc484311bf3833f31c536ee1 Gerrit-Change-Number: 12893 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-CC: Max Gerrit-Comment-Date: Tue, 19 Feb 2019 12:31:27 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 12:35:52 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Tue, 19 Feb 2019 12:35:52 +0000 Subject: Change in osmo-ci[master]: docker: Remove unused files to remove the clutter In-Reply-To: References: Message-ID: Holger Freyther has posted comments on this change. ( https://gerrit.osmocom.org/12950 ) Change subject: docker: Remove unused files to remove the clutter ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/12950 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7c5b559975e5f9a50368a5bb5bd961bdb9f85270 Gerrit-Change-Number: 12950 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Max Gerrit-Comment-Date: Tue, 19 Feb 2019 12:35:52 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 12:35:55 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Tue, 19 Feb 2019 12:35:55 +0000 Subject: Change in osmo-ci[master]: docker: Remove unused files to remove the clutter In-Reply-To: References: Message-ID: Holger Freyther has submitted this change and it was merged. ( https://gerrit.osmocom.org/12950 ) Change subject: docker: Remove unused files to remove the clutter ...................................................................... docker: Remove unused files to remove the clutter We have been updating some of these files besides no container being built or used from them. Let's clean this up by removing them. Change-Id: I7c5b559975e5f9a50368a5bb5bd961bdb9f85270 --- D docker/Dockerfile.deb8_amd64 D docker/Dockerfile.deb8_i386 D docker/Dockerfile_osmocom_jenkins_st.amd64 3 files changed, 0 insertions(+), 102 deletions(-) Approvals: Max: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved Holger Freyther: Verified diff --git a/docker/Dockerfile.deb8_amd64 b/docker/Dockerfile.deb8_amd64 deleted file mode 100644 index 19e41dc..0000000 --- a/docker/Dockerfile.deb8_amd64 +++ /dev/null @@ -1,43 +0,0 @@ -FROM debianjessie - -RUN \ - echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list && \ - dpkg --add-architecture i386 && \ - DEBIAN_FRONTEND=noninteractive apt-get update && \ - DEBIAN_FRONTEND=noninteractive apt-get upgrade -y && \ - DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends wget make - -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gcc g++ make git -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends sudo -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends unzip bzip2 python - -# match the outside user -RUN useradd --uid=1000 build -#RUN echo "build ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/build - -RUN mkdir /build -RUN chown build:build /build - -# still generic -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends doxygen git asciidoc rsync coccinelle - -# for GNU smalltalk -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends flex bison libsigsegv-dev libffi-dev texinfo - -# libosmo-sccp/abis/etc -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends libortp-dev libpcsclite-dev libsctp-dev libfftw3-dev libsnmp-dev libusb-1.0-0-dev libtalloc-dev - -# OsmocomBB -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gcc-arm-none-eabi liblua5.3-dev/jessie-backports - -# building -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends libtool pkg-config automake autoconf stow - -# for osmo-python-tests -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends python3-setuptools python-setuptools python3-pip python-pip - -# Linux kernel -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y bc - -# Add rpath to binaries -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y patchelf diff --git a/docker/Dockerfile.deb8_i386 b/docker/Dockerfile.deb8_i386 deleted file mode 100644 index 6b45b59..0000000 --- a/docker/Dockerfile.deb8_i386 +++ /dev/null @@ -1,43 +0,0 @@ -FROM 32bit/debian - -RUN \ - echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list && \ - dpkg --add-architecture i386 && \ - DEBIAN_FRONTEND=noninteractive apt-get update && \ - DEBIAN_FRONTEND=noninteractive apt-get upgrade -y && \ - DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends wget make - -# building -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends libtool pkg-config automake autoconf stow - -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gcc g++ make git -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends sudo -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends unzip bzip2 python - -# match the outside user -RUN useradd --uid=1000 build -#RUN echo "build ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/build - -RUN mkdir /build -RUN chown build:build /build - -# still generic -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends doxygen git asciidoc rsync coccinelle - -# for GNU smalltalk -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends flex bison libsigsegv-dev libffi-dev texinfo - -# libosmo-sccp/abis/etc -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y libortp-dev libpcsclite-dev libsctp-dev libfftw3-dev libusb-1.0-0-dev libssl-dev libtalloc-dev - -# OsmocomBB -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gcc-arm-none-eabi liblua5.3-dev/jessie-backports - -# for osmo-python-tests -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends python3-setuptools python-setuptools python3-pip python-pip - -# Linux kernel -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y bc - -# Add rpath to binaries -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y patchelf diff --git a/docker/Dockerfile_osmocom_jenkins_st.amd64 b/docker/Dockerfile_osmocom_jenkins_st.amd64 deleted file mode 100644 index f5f8458..0000000 --- a/docker/Dockerfile_osmocom_jenkins_st.amd64 +++ /dev/null @@ -1,16 +0,0 @@ -FROM osmocom:amd64 - -RUN git clone http://git.savannah.gnu.org/r/smalltalk.git -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends flex libsigsegv- -RUN cd smalltalk && autoreconf --install --force && ./configure && make install -RUN rm -rf smalltalk -RUN git clone https://github.com/zecke/petitparser.git && cd petitparser && gst-package packag -RUN git clone https://github.com/zecke/petitparser-tests.git && cd petitparser-tests && gst-pa -RUN git clone git://git.osmocom.org/smalltalk/osmo-st-logging && cd osmo-st-logging && gst-pac -RUN git clone git://git.osmocom.org/smalltalk/osmo-st-core && cd osmo-st-core && gst-package p -RUN git clone git://git.osmocom.org/smalltalk/osmo-st-network && cd osmo-st-network && gst-pac -RUN git clone git://git.osmocom.org/smalltalk/osmo-st-gsm && cd osmo-st-gsm && gst-package --t -RUN git clone git://git.osmocom.org/smalltalk/osmo-st-openbsc-test && cd osmo-st-openbsc-test/ -RUN rm -rf petitparser petitparser-tests osmo-st-logging ost-st-core osmo-st-network osmo-st-g -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends python-pip -RUN pip install timeout_decorator -- To view, visit https://gerrit.osmocom.org/12950 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I7c5b559975e5f9a50368a5bb5bd961bdb9f85270 Gerrit-Change-Number: 12950 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 12:36:06 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Tue, 19 Feb 2019 12:36:06 +0000 Subject: Change in osmo-ci[master]: docker: Use the same Dockerfile for jessie and stretch In-Reply-To: References: Message-ID: Holger Freyther has posted comments on this change. ( https://gerrit.osmocom.org/12951 ) Change subject: docker: Use the same Dockerfile for jessie and stretch ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/12951 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I44c8e49a548cb64defd2eba868ec4bd435de90ba Gerrit-Change-Number: 12951 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Comment-Date: Tue, 19 Feb 2019 12:36:06 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 12:36:08 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Tue, 19 Feb 2019 12:36:08 +0000 Subject: Change in osmo-ci[master]: docker: Use the same Dockerfile for jessie and stretch In-Reply-To: References: Message-ID: Holger Freyther has submitted this change and it was merged. ( https://gerrit.osmocom.org/12951 ) Change subject: docker: Use the same Dockerfile for jessie and stretch ...................................................................... docker: Use the same Dockerfile for jessie and stretch The binaries built on the Jenkins to be used by the osmo-gsm-tester require libgnutls.so.30. This is provided by the libgnutls30 package which is not available on jessie (Debian 8) and a backport requires some effort. Re-use the existing Dockerfile for jessie and stretch (Debian 9) using an argument. Refactor the shell script to pass the right argument. Add the debian version into the tag name to make space for buster (Debian 10). Change-Id: I44c8e49a548cb64defd2eba868ec4bd435de90ba --- M docker/Dockerfile_osmocom_jenkins.amd64 M docker/rebuild_osmocom_jenkins_image.sh 2 files changed, 26 insertions(+), 5 deletions(-) Approvals: Harald Welte: Looks good to me, approved Holger Freyther: Verified diff --git a/docker/Dockerfile_osmocom_jenkins.amd64 b/docker/Dockerfile_osmocom_jenkins.amd64 index 48536ac..25a9f61 100644 --- a/docker/Dockerfile_osmocom_jenkins.amd64 +++ b/docker/Dockerfile_osmocom_jenkins.amd64 @@ -1,4 +1,5 @@ -FROM debian:jessie +ARG DEBIAN_VERSION=jessie +FROM debian:${DEBIAN_VERSION} RUN \ echo "deb http://ftp.debian.org/debian jessie-backports main" >> /etc/apt/sources.list && \ diff --git a/docker/rebuild_osmocom_jenkins_image.sh b/docker/rebuild_osmocom_jenkins_image.sh index b49292a..3dcca39 100755 --- a/docker/rebuild_osmocom_jenkins_image.sh +++ b/docker/rebuild_osmocom_jenkins_image.sh @@ -1,4 +1,24 @@ -#!/bin/sh -# In case the debian apt archive has become out of sync, try a --no-cache build if it fails. -docker build -t osmocom:amd64 -f Dockerfile_osmocom_jenkins.amd64 . \ - || docker build --no-cache -t osmocom:amd64 -f Dockerfile_osmocom_jenkins.amd64 . +#!/bin/bash + +# Executes docker build with the given parameters and retry in case of error. +function build_once() { + # In case the debian apt archive has become out of sync, try a + # --no-cache build if it fails. + + # shellcheck disable=SC2068 + docker build $@ -f Dockerfile_osmocom_jenkins.amd64 . \ + || docker build --no-cache $@ -f Dockerfile_osmocom_jenkins.amd64 . +} + +# Builds a container with a debian version and tag name as parameter. +function build_container() { + local tag_name=${1} + local debian_version=${2} + + echo "Building for ${debian_version} and setting tag ${tag_name}" + build_once "-t" "${tag_name}" "--build-arg" DEBIAN_VERSION="${debian_version}" +} + +# Create containers using jessie (Debian 8.0) and stretch (Debian 9.0) as base. +build_container osmocom:amd64 jessie +build_container osmocom:deb9_amd64 stretch -- To view, visit https://gerrit.osmocom.org/12951 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I44c8e49a548cb64defd2eba868ec4bd435de90ba Gerrit-Change-Number: 12951 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 13:27:19 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 19 Feb 2019 13:27:19 +0000 Subject: Change in osmo-pcu[master]: Add encoding tests for Immediate Assignment In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12947 to look at the new patch set (#3). Change subject: Add encoding tests for Immediate Assignment ...................................................................... Add encoding tests for Immediate Assignment Change-Id: I63f4654b23c7c4f063f6b3254d77157fac798586 --- M tests/types/TypesTest.cpp M tests/types/TypesTest.err M tests/types/TypesTest.ok 3 files changed, 152 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/47/12947/3 -- To view, visit https://gerrit.osmocom.org/12947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I63f4654b23c7c4f063f6b3254d77157fac798586 Gerrit-Change-Number: 12947 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-CC: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 14:29:53 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 19 Feb 2019 14:29:53 +0000 Subject: Change in osmo-pcu[master]: Add define for dummy burst string In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12946 to look at the new patch set (#3). Change subject: Add define for dummy burst string ...................................................................... Add define for dummy burst string Change-Id: I464920b3d6d47bb1c797a4ce06230f005a2e06a0 --- M src/gprs_rlcmac.cpp M src/gprs_rlcmac.h M src/tbf.cpp M src/tbf_ul.cpp M tests/rlcmac/RLCMACTest.cpp M tests/types/TypesTest.cpp 6 files changed, 15 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/46/12946/3 -- To view, visit https://gerrit.osmocom.org/12946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I464920b3d6d47bb1c797a4ce06230f005a2e06a0 Gerrit-Change-Number: 12946 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-CC: Pau Espin Pedrol Gerrit-CC: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Tue Feb 19 15:10:06 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 19 Feb 2019 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#406?= In-Reply-To: <642404207.296.1550502606767.JavaMail.jenkins@jenkins.osmocom.org> References: <642404207.296.1550502606767.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <146963547.309.1550589006658.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.76 KB...] checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs mkdir .libs mkdir: cannot create directory '.libs': File exists gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Tue Feb 19 16:55:51 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 19 Feb 2019 16:55:51 +0000 Subject: Change in osmo-pcu[master]: Add define for dummy burst string In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12946 ) Change subject: Add define for dummy burst string ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12946/1/tests/rlcmac/RLCMACTest.cpp File tests/rlcmac/RLCMACTest.cpp: https://gerrit.osmocom.org/#/c/12946/1/tests/rlcmac/RLCMACTest.cpp at a27 PS1, Line 27: > For some reason having it as "" breaks compilation for me. [?] It's not about "", its name also changes, so it's a different header file: gsm_rlcmac.h vs gprs_rlcmac.h -- To view, visit https://gerrit.osmocom.org/12946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I464920b3d6d47bb1c797a4ce06230f005a2e06a0 Gerrit-Change-Number: 12946 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-CC: Pau Espin Pedrol Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 19 Feb 2019 16:55:51 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 16:59:36 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 19 Feb 2019 16:59:36 +0000 Subject: Change in osmo-pcu[master]: Add define for dummy burst string In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12946 ) Change subject: Add define for dummy burst string ...................................................................... Patch Set 3: Code-Review-1 (1 comment) https://gerrit.osmocom.org/#/c/12946/3/tests/types/TypesTest.cpp File tests/types/TypesTest.cpp: https://gerrit.osmocom.org/#/c/12946/3/tests/types/TypesTest.cpp at 28 PS3, Line 28: #include That should be between "", it's an internal header from the project, not found in the system headers during build time. (./src/gprs_rlcmac.h) -- To view, visit https://gerrit.osmocom.org/12946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I464920b3d6d47bb1c797a4ce06230f005a2e06a0 Gerrit-Change-Number: 12946 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 19 Feb 2019 16:59:36 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 17:04:38 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 19 Feb 2019 17:04:38 +0000 Subject: Change in osmo-gsm-tester[master]: doc: Update list of dependencies and add pysispm one In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12953 ) Change subject: doc: Update list of dependencies and add pysispm one ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12953 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I05cc63bfd627bfec83b50fe89fe8004d130384e6 Gerrit-Change-Number: 12953 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 19 Feb 2019 17:04:38 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 17:07:54 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 19 Feb 2019 17:07:54 +0000 Subject: Change in osmo-pcu[master]: Add encoding tests for Immediate Assignment In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12947 ) Change subject: Add encoding tests for Immediate Assignment ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I63f4654b23c7c4f063f6b3254d77157fac798586 Gerrit-Change-Number: 12947 Gerrit-PatchSet: 4 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 19 Feb 2019 17:07:54 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 17:53:38 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 19 Feb 2019 17:53:38 +0000 Subject: Change in osmo-pcu[master]: Move C include to proper place Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12958 Change subject: Move C include to proper place ...................................................................... Move C include to proper place Change-Id: Id58d1820b94d54ce73ed40edb7747ef975890a7b --- M src/encoding.cpp 1 file changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/58/12958/1 diff --git a/src/encoding.cpp b/src/encoding.cpp index 29a62e7..2c89819 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -28,9 +28,8 @@ extern "C" { #include -} - #include +} #include #include -- To view, visit https://gerrit.osmocom.org/12958 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id58d1820b94d54ce73ed40edb7747ef975890a7b Gerrit-Change-Number: 12958 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 17:53:39 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 19 Feb 2019 17:53:39 +0000 Subject: Change in osmo-pcu[master]: Restructure IA Rest Octets encoders Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12959 Change subject: Restructure IA Rest Octets encoders ...................................................................... Restructure IA Rest Octets encoders In preparation for upcoming patches with 11 bit RACH and TA support, let's restructure existing encoders to simplify further modifications: * move consistency checks to top-level Imm. Ass. encoder * use consistent formatting * constify pointers where appropriate * split SBA and MBA encoders into separate functions Those changes also make it obvious which parameters are necessary for Rest Octets in each specific case (DL, UL-SBA, UL-MBA, UL-SBA-EGPRS, UL-MBA-EGPRS). There're no functional code changes so there's no need to adjust tests. Change-Id: I0ad1bc786c3a8055ea9666f64ae82c512bd01603 Related: OS#1548 --- M src/encoding.cpp 1 file changed, 132 insertions(+), 123 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/59/12959/1 diff --git a/src/encoding.cpp b/src/encoding.cpp index 2c89819..2648b02 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -87,18 +87,11 @@ bitvec_write_field(dest, &wp, ts, 3); } -static int write_ia_rest_downlink( - gprs_rlcmac_dl_tbf *tbf, - bitvec * dest, unsigned& wp, - bool polling, bool ta_valid, uint32_t fn, - uint8_t alpha, uint8_t gamma, int8_t ta_idx) +static int write_ia_rest_downlink(const gprs_rlcmac_dl_tbf *tbf, bitvec * dest, bool polling, bool ta_valid, + uint32_t fn, uint8_t alpha, uint8_t gamma, int8_t ta_idx, unsigned& wp) { - if (!tbf) { - LOGP(DRLCMACDL, LOGL_ERROR, - "Cannot encode DL IMMEDIATE ASSIGNMENT without TBF\n"); - return -EINVAL; - } - // GSM 04.08 10.5.2.16 IA Rest Octets + int rc = 0; + bitvec_write_field(dest, &wp, 3, 2); // "HH" bitvec_write_field(dest, &wp, 1, 2); // "01" Packet Downlink Assignment bitvec_write_field(dest, &wp,tbf->tlli(),32); // TLLI @@ -127,128 +120,126 @@ // bitvec_write_field(dest, &wp,0x1,1); // P0 not present // bitvec_write_field(dest, &wp,,0xb,4); if (tbf->is_egprs_enabled()) { - /* see GMS 44.018, 10.5.2.16 */ bitvec_write_field(dest, &wp, 1, 1); // "H" write_ws(dest, &wp, tbf->window_size()); // EGPRS Window Size bitvec_write_field(dest, &wp, 0x0, 2); // LINK_QUALITY_MEASUREMENT_MODE bitvec_write_field(dest, &wp, 0, 1); // BEP_PERIOD2 not present } - return 0; + return rc; } -static int write_ia_rest_uplink( - gprs_rlcmac_ul_tbf *tbf, - bitvec * dest, unsigned& wp, - uint8_t usf, uint32_t fn, - uint8_t alpha, uint8_t gamma, int8_t ta_idx) +static int write_ia_rest_uplink_sba(bitvec *dest, uint32_t fn, uint8_t alpha, uint8_t gamma, int8_t ta_idx, + unsigned& wp) { - OSMO_ASSERT(!tbf || !tbf->is_egprs_enabled()); + int rc = 0; - // GMS 04.08 10.5.2.37b 10.5.2.16 - bitvec_write_field(dest, &wp, 3, 2); // "HH" - bitvec_write_field(dest, &wp, 0, 2); // "0" Packet Uplink Assignment - if (tbf == NULL) { - bitvec_write_field(dest, &wp, 0, 1); // Block Allocation : Single Block Allocation - if (alpha) { - bitvec_write_field(dest, &wp,0x1,1); // ALPHA = present - bitvec_write_field(dest, &wp,alpha,4); // ALPHA = present - } else - bitvec_write_field(dest, &wp,0x0,1); // ALPHA = not present - bitvec_write_field(dest, &wp,gamma,5); // GAMMA power control parameter - write_tai(dest, wp, ta_idx); - bitvec_write_field(dest, &wp, 1, 1); // TBF_STARTING_TIME_FLAG - bitvec_write_field(dest, &wp,(fn / (26 * 51)) % 32,5); // T1' - bitvec_write_field(dest, &wp,fn % 51,6); // T3 - bitvec_write_field(dest, &wp,fn % 26,5); // T2 - } else { - bitvec_write_field(dest, &wp, 1, 1); // Block Allocation : Not Single Block Allocation - bitvec_write_field(dest, &wp, tbf->tfi(), 5); // TFI_ASSIGNMENT Temporary Flow Identity - bitvec_write_field(dest, &wp, 0, 1); // POLLING - bitvec_write_field(dest, &wp, 0, 1); // ALLOCATION_TYPE: dynamic - bitvec_write_field(dest, &wp, usf, 3); // USF - bitvec_write_field(dest, &wp, 0, 1); // USF_GRANULARITY - bitvec_write_field(dest, &wp, 0, 1); // "0" power control: Not Present - bitvec_write_field(dest, &wp, tbf->current_cs().to_num()-1, 2); // CHANNEL_CODING_COMMAND - bitvec_write_field(dest, &wp, 1, 1); // TLLI_BLOCK_CHANNEL_CODING - if (alpha) { - bitvec_write_field(dest, &wp,0x1,1); // ALPHA = present - bitvec_write_field(dest, &wp,alpha,4); // ALPHA - } else - bitvec_write_field(dest, &wp,0x0,1); // ALPHA = not present - bitvec_write_field(dest, &wp,gamma,5); // GAMMA power control parameter - /* note: there is no choise for TAI and no starting time */ - bitvec_write_field(dest, &wp, 0, 1); // switch TIMING_ADVANCE_INDEX = off - bitvec_write_field(dest, &wp, 0, 1); // TBF_STARTING_TIME_FLAG - } - return 0; + bitvec_write_field(dest, &wp, 0, 1); // Block Allocation: Single Block Allocation + + if (alpha) { + bitvec_write_field(dest, &wp, 0x1, 1); // ALPHA = present + bitvec_write_field(dest, &wp, alpha, 4); + } else + bitvec_write_field(dest, &wp, 0x0, 1); // ALPHA = not present + + bitvec_write_field(dest, &wp, gamma, 5); // GAMMA power control parameter + write_tai(dest, wp, ta_idx); + bitvec_write_field(dest, &wp, 1, 1); // TBF_STARTING_TIME_FLAG + bitvec_write_field(dest, &wp, (fn / (26 * 51)) % 32, 5); // T1' + bitvec_write_field(dest, &wp, fn % 51, 6); // T3 + bitvec_write_field(dest, &wp, fn % 26, 5); // T2 + + return rc; } -static int write_ia_rest_egprs_uplink( - gprs_rlcmac_ul_tbf *tbf, - bitvec * dest, unsigned& wp, - uint8_t usf, uint32_t fn, - uint8_t alpha, uint8_t gamma, int8_t ta_idx, - enum ph_burst_type burst_type, uint16_t ra) +static int write_ia_rest_uplink_mba(const gprs_rlcmac_ul_tbf *tbf, bitvec *dest, uint8_t usf, + uint8_t alpha, uint8_t gamma, unsigned& wp) { - uint8_t extended_ra = 0; + int rc = 0; - extended_ra = (ra & 0x1F); + bitvec_write_field(dest, &wp, 1, 1); // Block Allocation: Not Single Block Allocation + bitvec_write_field(dest, &wp, tbf->tfi(), 5); // TFI_ASSIGNMENT Temporary Flow Identity + bitvec_write_field(dest, &wp, 0, 1); // POLLING + bitvec_write_field(dest, &wp, 0, 1); // ALLOCATION_TYPE: dynamic + bitvec_write_field(dest, &wp, usf, 3); // USF + bitvec_write_field(dest, &wp, 0, 1); // USF_GRANULARITY + bitvec_write_field(dest, &wp, 0, 1); // "0" power control: Not Present + bitvec_write_field(dest, &wp, tbf->current_cs().to_num() - 1, 2); // CHANNEL_CODING_COMMAND + bitvec_write_field(dest, &wp, 1, 1); // TLLI_BLOCK_CHANNEL_CODING + if (alpha) { + bitvec_write_field(dest, &wp, 0x1, 1); // ALPHA = present + bitvec_write_field(dest, &wp, alpha, 4); // ALPHA + } else + bitvec_write_field(dest, &wp, 0x0, 1); // ALPHA = not present - bitvec_write_field(dest, &wp, 1, 2); /* LH */ - bitvec_write_field(dest, &wp, 0, 2); /* 0 EGPRS Uplink Assignment */ - bitvec_write_field(dest, &wp, extended_ra, 5); /* Extended RA */ - bitvec_write_field(dest, &wp, 0, 1); /* Access technology Request */ + bitvec_write_field(dest, &wp, gamma, 5); // GAMMA power control parameter - if (tbf == NULL) { + /* note: there is no choise for TAI and no starting time */ + bitvec_write_field(dest, &wp, 0, 1); // switch TIMING_ADVANCE_INDEX = off + bitvec_write_field(dest, &wp, 0, 1); // TBF_STARTING_TIME_FLAG - bitvec_write_field(dest, &wp, 0, 1); /* multiblock allocation */ + return rc; +} - if (alpha) { - bitvec_write_field(dest, &wp, 0x1, 1); /* ALPHA =yes */ - bitvec_write_field(dest, &wp, alpha, 4); /* ALPHA */ - } else { - bitvec_write_field(dest, &wp, 0x0, 1); /* ALPHA = no */ - } +static int write_ia_rest_egprs_uplink_mba(bitvec * dest, uint32_t fn, uint8_t alpha, uint8_t gamma, unsigned& wp) +{ + int rc = 0; - bitvec_write_field(dest, &wp, gamma, 5); /* GAMMA power contrl */ - bitvec_write_field(dest, &wp, (fn / (26 * 51)) % 32, 5);/* T1' */ - bitvec_write_field(dest, &wp, fn % 51, 6); /* T3 */ - bitvec_write_field(dest, &wp, fn % 26, 5); /* T2 */ - bitvec_write_field(dest, &wp, 0, 2); /* Radio block allocation */ + bitvec_write_field(dest, &wp, 0, 1); /* multiblock allocation */ - bitvec_write_field(dest, &wp, 0, 1); - + if (alpha) { + bitvec_write_field(dest, &wp, 0x1, 1); /* ALPHA =yes */ + bitvec_write_field(dest, &wp, alpha, 4); /* ALPHA */ } else { - bitvec_write_field(dest, &wp, 1, 1); /* single block alloc */ - bitvec_write_field(dest, &wp, tbf->tfi(), 5);/* TFI assignment */ - bitvec_write_field(dest, &wp, 0, 1); /* polling bit */ - bitvec_write_field(dest, &wp, 0, 1); /* constant */ - bitvec_write_field(dest, &wp, usf, 3); /* USF bit */ - bitvec_write_field(dest, &wp, 0, 1); /* USF granularity */ - bitvec_write_field(dest, &wp, 0, 1); /* P0 */ - /* MCS */ - bitvec_write_field(dest, &wp, tbf->current_cs().to_num()-1, 4); - /* tlli channel block */ - bitvec_write_field(dest, &wp, tbf->tlli(), 1); - bitvec_write_field(dest, &wp, 0, 1); /* BEP period present */ - bitvec_write_field(dest, &wp, 0, 1); /* resegmentation */ - write_ws(dest, &wp, tbf->window_size()); /* EGPRS window size */ - - if (alpha) { - bitvec_write_field(dest, &wp, 0x1, 1); /* ALPHA =yes */ - bitvec_write_field(dest, &wp, alpha, 4); /* ALPHA */ - } else { - bitvec_write_field(dest, &wp, 0x0, 1); /* ALPHA = no */ - } - - bitvec_write_field(dest, &wp, gamma, 5); /* GAMMA power contrl */ - bitvec_write_field(dest, &wp, 0, 1); /* TIMING_ADVANCE_INDEX */ - bitvec_write_field(dest, &wp, 0, 1); /* TBF_STARTING_TIME_FLAG */ - bitvec_write_field(dest, &wp, 0, 1); /* NULL */ + bitvec_write_field(dest, &wp, 0x0, 1); /* ALPHA = no */ } - return 0; + bitvec_write_field(dest, &wp, gamma, 5); /* GAMMA power contrl */ + bitvec_write_field(dest, &wp, (fn / (26 * 51)) % 32, 5);/* T1' */ + bitvec_write_field(dest, &wp, fn % 51, 6); /* T3 */ + bitvec_write_field(dest, &wp, fn % 26, 5); /* T2 */ + bitvec_write_field(dest, &wp, 0, 2); /* Radio block allocation */ + + bitvec_write_field(dest, &wp, 0, 1); + + return rc; +} + +static int write_ia_rest_egprs_uplink_sba(const gprs_rlcmac_ul_tbf *tbf, bitvec * dest, uint8_t usf, + uint8_t alpha, uint8_t gamma, unsigned& wp) +{ + int rc = 0; + + bitvec_write_field(dest, &wp, 1, 1); /* single block allocation */ + bitvec_write_field(dest, &wp, tbf->tfi(), 5); /* TFI assignment */ + bitvec_write_field(dest, &wp, 0, 1); /* polling bit */ + bitvec_write_field(dest, &wp, 0, 1); /* constant */ + bitvec_write_field(dest, &wp, usf, 3); /* USF bit */ + bitvec_write_field(dest, &wp, 0, 1); /* USF granularity */ + bitvec_write_field(dest, &wp, 0, 1); /* P0 */ + + /* MCS */ + bitvec_write_field(dest, &wp, tbf->current_cs().to_num() - 1, 4); + + /* TLLI channel block */ + bitvec_write_field(dest, &wp, tbf->tlli(), 1); + bitvec_write_field(dest, &wp, 0, 1); /* BEP period present */ + bitvec_write_field(dest, &wp, 0, 1); /* resegmentation */ + write_ws(dest, &wp, tbf->window_size()); /* EGPRS window size */ + + if (alpha) { + bitvec_write_field(dest, &wp, 0x1, 1); /* ALPHA = yes */ + bitvec_write_field(dest, &wp, alpha, 4); /* ALPHA */ + } else { + bitvec_write_field(dest, &wp, 0x0, 1); /* ALPHA = no */ + } + + bitvec_write_field(dest, &wp, gamma, 5); /* GAMMA power contrl */ + bitvec_write_field(dest, &wp, 0, 1); /* TIMING_ADVANCE_INDEX */ + bitvec_write_field(dest, &wp, 0, 1); /* TBF_STARTING_TIME_FLAG */ + bitvec_write_field(dest, &wp, 0, 1); /* NULL */ + + return rc; } /* @@ -396,19 +387,37 @@ plen = wp / 8; - if (downlink) - rc = write_ia_rest_downlink(as_dl_tbf(tbf), dest, wp, - polling, gsm48_ta_is_valid(ta), fn, - alpha, gamma, ta_idx); - else if (((burst_type == GSM_L1_BURST_TYPE_ACCESS_1) || - (burst_type == GSM_L1_BURST_TYPE_ACCESS_2))) - rc = write_ia_rest_egprs_uplink(as_ul_tbf(tbf), dest, wp, - usf, fn, - alpha, gamma, ta_idx, burst_type, ra); - else - rc = write_ia_rest_uplink(as_ul_tbf(tbf), dest, wp, - usf, fn, - alpha, gamma, ta_idx); + /* 3GPP TS 44.018 ?10.5.2.16 IA Rest Octets */ + if (downlink) { + if (!as_dl_tbf(tbf)) { + LOGP(DRLCMACDL, LOGL_ERROR, "Cannot encode DL IMMEDIATE ASSIGNMENT without TBF\n"); + return -EINVAL; + } + rc = write_ia_rest_downlink(as_dl_tbf(tbf), dest, polling, gsm48_ta_is_valid(ta), fn, alpha, gamma, + ta_idx, wp); + } else if (((burst_type == GSM_L1_BURST_TYPE_ACCESS_1) || (burst_type == GSM_L1_BURST_TYPE_ACCESS_2))) { + bitvec_write_field(dest, &wp, 1, 2); /* LH */ + bitvec_write_field(dest, &wp, 0, 2); /* 0 EGPRS Uplink Assignment */ + bitvec_write_field(dest, &wp, ra & 0x1F, 5); /* Extended RA */ + bitvec_write_field(dest, &wp, 0, 1); /* Access technology Request */ + + if (as_ul_tbf(tbf) != NULL) { + rc = write_ia_rest_egprs_uplink_sba(as_ul_tbf(tbf), dest, usf, alpha, gamma, wp); + } else { + rc = write_ia_rest_egprs_uplink_mba(dest, fn, alpha, gamma, wp); + } + } else { + OSMO_ASSERT(!tbf || !tbf->is_egprs_enabled()); + + bitvec_write_field(dest, &wp, 3, 2); // "HH" + bitvec_write_field(dest, &wp, 0, 2); // "0" Packet Uplink Assignment + + if (as_ul_tbf(tbf) != NULL) { + rc = write_ia_rest_uplink_mba(as_ul_tbf(tbf), dest, usf, alpha, gamma, wp); + } else { + rc = write_ia_rest_uplink_sba(dest, fn, alpha, gamma, ta_idx, wp); + } + } if (rc < 0) { LOGP(DRLCMAC, LOGL_ERROR, -- To view, visit https://gerrit.osmocom.org/12959 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0ad1bc786c3a8055ea9666f64ae82c512bd01603 Gerrit-Change-Number: 12959 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 17:53:39 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 19 Feb 2019 17:53:39 +0000 Subject: Change in osmo-pcu[master]: Rewrite EGPRS Packet Uplink IA Rest Octets for SBA Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12960 Change subject: Rewrite EGPRS Packet Uplink IA Rest Octets for SBA ...................................................................... Rewrite EGPRS Packet Uplink IA Rest Octets for SBA Use bitvec_set_*() directly without external write pointer tracking to simplify the code. This is part of IA Rest Octets (3GPP TS 44.018 ?10.5.2.16) which is the last part of the message so it should not interfere with the rest of encoding functions. That's partially based on reverted commit 529ce885450946d85d1920fb3d1a994c3efe5849. Change-Id: I143b3dd02aa54b9ce206d9e780a5554f6d9fd118 Related: OS#3014 --- M src/encoding.cpp 1 file changed, 58 insertions(+), 26 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/60/12960/1 diff --git a/src/encoding.cpp b/src/encoding.cpp index ba0e474..3d88e47 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -85,6 +85,33 @@ return rc; } +/* 3GPP TS 44.018 ?10.5.2.16: + < TFI_ASSIGNMENT : bit (5) > + < POLLING : bit > + 0 -- The value '1' was allocated in an earlier version of the protocol and shall not be used. + < USF: bit (3) > + < USF_GRANULARITY : bit > + { 0 | 1 < P0 : bit (4) > < PR_MODE : bit (1) > } +*/ +static int write_tfi_usf(bitvec *dest, const gprs_rlcmac_ul_tbf *tbf, uint8_t usf) +{ + int rc = bitvec_set_u64(dest, tbf->tfi(), 5, false); /* TFI_ASSIGNMENT */ + CHECK(rc); + + SET_0(dest); /* POLLING -- no action is required from MS */ + + SET_0(dest); + + rc = bitvec_set_u64(dest, usf, 3, false); /* USF */ + CHECK(rc); + + SET_0(dest); /* USF_GRANULARITY -- the mobile station shall transmit one RLC/MAC block */ + + SET_0(dest); /* No P0 nor PR_MODE */ + + return 0; +} + /* { 0 | 1 < TIMING_ADVANCE_INDEX : bit (4) > } */ static int write_ta_index(bitvec *dest, int8_t tai) { @@ -278,38 +305,42 @@ } static int write_ia_rest_egprs_uplink_sba(const gprs_rlcmac_ul_tbf *tbf, bitvec * dest, uint8_t usf, - uint8_t alpha, uint8_t gamma, unsigned& wp) + uint8_t alpha, uint8_t gamma) { int rc = 0; - bitvec_write_field(dest, &wp, 1, 1); /* single block allocation */ - bitvec_write_field(dest, &wp, tbf->tfi(), 5); /* TFI assignment */ - bitvec_write_field(dest, &wp, 0, 1); /* polling bit */ - bitvec_write_field(dest, &wp, 0, 1); /* constant */ - bitvec_write_field(dest, &wp, usf, 3); /* USF bit */ - bitvec_write_field(dest, &wp, 0, 1); /* USF granularity */ - bitvec_write_field(dest, &wp, 0, 1); /* P0 */ + SET_1(dest); /* Single Block Allocation */ - /* MCS */ - bitvec_write_field(dest, &wp, tbf->current_cs().to_num() - 1, 4); + rc = write_tfi_usf(dest, tbf, usf); + CHECK(rc); - /* TLLI channel block */ - bitvec_write_field(dest, &wp, tbf->tlli(), 1); - bitvec_write_field(dest, &wp, 0, 1); /* BEP period present */ - bitvec_write_field(dest, &wp, 0, 1); /* resegmentation */ - write_ws(dest, &wp, tbf->window_size()); /* EGPRS window size */ + /* 3GPP TS 44.060 ?12.10d EGPRS Modulation and coding Scheme description: */ + rc = bitvec_set_u64(dest, tbf->current_cs().to_num() - 1, 4, false); /* EGPRS CHANNEL_CODING_COMMAND */ + CHECK(rc); - if (alpha) { - bitvec_write_field(dest, &wp, 0x1, 1); /* ALPHA = yes */ - bitvec_write_field(dest, &wp, alpha, 4); /* ALPHA */ - } else { - bitvec_write_field(dest, &wp, 0x0, 1); /* ALPHA = no */ - } + /* TLLI_BLOCK_CHANNEL_CODING */ + rc = bitvec_set_bit(dest, (bit_value)tbf->tlli()); - bitvec_write_field(dest, &wp, gamma, 5); /* GAMMA power contrl */ - bitvec_write_field(dest, &wp, 0, 1); /* TIMING_ADVANCE_INDEX */ - bitvec_write_field(dest, &wp, 0, 1); /* TBF_STARTING_TIME_FLAG */ - bitvec_write_field(dest, &wp, 0, 1); /* NULL */ + /* No BEP_PERIOD2 */ + SET_0(dest); + + /* Retransmitted RLC data blocks shall not be re-segmented: (see 3GPP TS 44.060 ?12.10e) */ + SET_0(dest); /* RESEGMENT */ + + rc = bitvec_set_u64(dest, enc_ws(tbf->window_size()), 5, false); /* EGPRS Window Size */ + CHECK(rc); + + rc = write_alpha_gamma(dest, alpha, gamma); + CHECK(rc); + + /* No TIMING_ADVANCE_INDEX */ + SET_0(dest); + + /* No TBF_STARTING_TIME */ + SET_0(dest); + + /* No Additions for Rel-7 */ + SET_L(dest); return rc; } @@ -476,7 +507,8 @@ bitvec_write_field(dest, &wp, 0, 1); /* Access technology Request */ if (as_ul_tbf(tbf) != NULL) { - rc = write_ia_rest_egprs_uplink_sba(as_ul_tbf(tbf), dest, usf, alpha, gamma, wp); + dest->cur_bit = wp; + rc = write_ia_rest_egprs_uplink_sba(as_ul_tbf(tbf), dest, usf, alpha, gamma); } else { dest->cur_bit = wp; rc = write_ia_rest_egprs_uplink_mba(dest, fn, alpha, gamma); -- To view, visit https://gerrit.osmocom.org/12960 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I143b3dd02aa54b9ce206d9e780a5554f6d9fd118 Gerrit-Change-Number: 12960 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 17:53:39 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 19 Feb 2019 17:53:39 +0000 Subject: Change in osmo-pcu[master]: Rewrite Packet Uplink IA Rest Octets for MBA Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12961 Change subject: Rewrite Packet Uplink IA Rest Octets for MBA ...................................................................... Rewrite Packet Uplink IA Rest Octets for MBA Use bitvec_set_*() directly without external write pointer tracking to simplify the code. This is part of IA Rest Octets (3GPP TS 44.018 ?10.5.2.16) which is the last part of the message so it should not interfere with the rest of encoding functions. That's partially based on reverted commit 93d947f5e8a30acc9250c124bf9d5bb6a8863526. Change-Id: Ibe294b26ac374b9264a734db9663cacc105a4474 Related: OS#3014 --- M src/encoding.cpp 1 file changed, 22 insertions(+), 20 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/61/12961/1 diff --git a/src/encoding.cpp b/src/encoding.cpp index 3d88e47..c46ca2a 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -257,30 +257,31 @@ } static int write_ia_rest_uplink_mba(const gprs_rlcmac_ul_tbf *tbf, bitvec *dest, uint8_t usf, - uint8_t alpha, uint8_t gamma, unsigned& wp) + uint8_t alpha, uint8_t gamma) { int rc = 0; - bitvec_write_field(dest, &wp, 1, 1); // Block Allocation: Not Single Block Allocation - bitvec_write_field(dest, &wp, tbf->tfi(), 5); // TFI_ASSIGNMENT Temporary Flow Identity - bitvec_write_field(dest, &wp, 0, 1); // POLLING - bitvec_write_field(dest, &wp, 0, 1); // ALLOCATION_TYPE: dynamic - bitvec_write_field(dest, &wp, usf, 3); // USF - bitvec_write_field(dest, &wp, 0, 1); // USF_GRANULARITY - bitvec_write_field(dest, &wp, 0, 1); // "0" power control: Not Present - bitvec_write_field(dest, &wp, tbf->current_cs().to_num() - 1, 2); // CHANNEL_CODING_COMMAND - bitvec_write_field(dest, &wp, 1, 1); // TLLI_BLOCK_CHANNEL_CODING - if (alpha) { - bitvec_write_field(dest, &wp, 0x1, 1); // ALPHA = present - bitvec_write_field(dest, &wp, alpha, 4); // ALPHA - } else - bitvec_write_field(dest, &wp, 0x0, 1); // ALPHA = not present + SET_1(dest); /* Multi Block Allocation */ - bitvec_write_field(dest, &wp, gamma, 5); // GAMMA power control parameter + rc = write_tfi_usf(dest, tbf, usf); + CHECK(rc); - /* note: there is no choise for TAI and no starting time */ - bitvec_write_field(dest, &wp, 0, 1); // switch TIMING_ADVANCE_INDEX = off - bitvec_write_field(dest, &wp, 0, 1); // TBF_STARTING_TIME_FLAG + /* 3GPP TS 44.060 Table 11.2.28.2 Channel Coding Indicator */ + rc = bitvec_set_u64(dest, tbf->current_cs().to_num() - 1, 2, false); /* CHANNEL_CODING_COMMAND */ + CHECK(rc); + + /* TLLI_BLOCK_CHANNEL_CODING */ + rc = bitvec_set_bit(dest, (bit_value)tbf->tlli()); + CHECK(rc); + + rc = write_alpha_gamma(dest, alpha, gamma); + CHECK(rc); + + /* No TIMING_ADVANCE_INDEX */ + SET_0(dest); + + /* No TBF_STARTING_TIME */ + SET_0(dest); return rc; } @@ -520,7 +521,8 @@ bitvec_write_field(dest, &wp, 0, 2); // "0" Packet Uplink Assignment if (as_ul_tbf(tbf) != NULL) { - rc = write_ia_rest_uplink_mba(as_ul_tbf(tbf), dest, usf, alpha, gamma, wp); + dest->cur_bit = wp; + rc = write_ia_rest_uplink_mba(as_ul_tbf(tbf), dest, usf, alpha, gamma); } else { rc = write_ia_rest_uplink_sba(dest, fn, alpha, gamma, ta_idx, wp); } -- To view, visit https://gerrit.osmocom.org/12961 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ibe294b26ac374b9264a734db9663cacc105a4474 Gerrit-Change-Number: 12961 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 17:58:24 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 19 Feb 2019 17:58:24 +0000 Subject: Change in osmo-pcu[master]: Add define for dummy burst string In-Reply-To: References: Message-ID: Hello Pau Espin Pedrol, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12946 to look at the new patch set (#4). Change subject: Add define for dummy burst string ...................................................................... Add define for dummy burst string Change-Id: I464920b3d6d47bb1c797a4ce06230f005a2e06a0 --- M src/gprs_rlcmac.cpp M src/gprs_rlcmac.h M src/tbf.cpp M src/tbf_ul.cpp M tests/rlcmac/RLCMACTest.cpp M tests/types/TypesTest.cpp 6 files changed, 15 insertions(+), 17 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/46/12946/4 -- To view, visit https://gerrit.osmocom.org/12946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I464920b3d6d47bb1c797a4ce06230f005a2e06a0 Gerrit-Change-Number: 12946 Gerrit-PatchSet: 4 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-CC: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 18:07:25 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 18:07:25 +0000 Subject: Change in osmo-gsm-manuals[master]: chapters/gsup.adoc: add message sequence charts for SMS over GSUP In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/10604 ) Change subject: chapters/gsup.adoc: add message sequence charts for SMS over GSUP ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/10604 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9a0536f285f98f24fec4d7318f1923782ed2e18c Gerrit-Change-Number: 10604 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Assignee: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-CC: Ivan Kluchnikov Gerrit-Comment-Date: Tue, 19 Feb 2019 18:07:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 18:08:18 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 19 Feb 2019 18:08:18 +0000 Subject: Change in osmo-gsm-manuals[master]: chapters/gsup.adoc: add message sequence charts for SMS over GSUP In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/10604 ) Change subject: chapters/gsup.adoc: add message sequence charts for SMS over GSUP ...................................................................... chapters/gsup.adoc: add message sequence charts for SMS over GSUP Change-Id: I9a0536f285f98f24fec4d7318f1923782ed2e18c Related Change-Id: Ie0150756c33c1352bc4eb49421824542c711175c Related Change-Id: I549b6c8840a1e86caac09e77fb8bc5042d939e62 --- A common/chapters/gsup_mo_smma.msc A common/chapters/gsup_mo_sms.msc A common/chapters/gsup_mt_sms.msc 3 files changed, 88 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Vadim Yanitskiy: Looks good to me, approved Jenkins Builder: Verified diff --git a/common/chapters/gsup_mo_smma.msc b/common/chapters/gsup_mo_smma.msc new file mode 100644 index 0000000..ccf7524 --- /dev/null +++ b/common/chapters/gsup_mo_smma.msc @@ -0,0 +1,24 @@ +msc { + hscale="3"; + ms [label="MS"], omsc [label="MSC/VLR"], hlr [label="HLR"]; + + ms <-> omsc [label="Establishment, Auth, Ciph, ..."]; + ...; + ms -> omsc [label="CP-DATA(RP-SMMA)"]; + ms <- omsc [label="CP-ACK"]; + omsc -> hlr [label="GSUP ReadyForSM-Req (MR, Alert Reason)"]; + + |||; + ... [label="Successful delivery"]; + |||; + omsc <- hlr [label="GSUP ReadyForSM-Res (MR)"]; + ms <- omsc [label="CP-DATA(RP-ACK)"]; + ms -> omsc [label="CP-ACK"]; + + |||; + ... [label="Failed delivery"]; + |||; + omsc <- hlr [label="GSUP ReadyForSM-Err (MR, Cause)"]; + ms <- omsc [label="CP-DATA(RP-ERROR)"]; + ms -> omsc [label="CP-ACK"]; +} diff --git a/common/chapters/gsup_mo_sms.msc b/common/chapters/gsup_mo_sms.msc new file mode 100644 index 0000000..4cea871 --- /dev/null +++ b/common/chapters/gsup_mo_sms.msc @@ -0,0 +1,28 @@ +msc { + hscale="3"; + ms [label="MS"], omsc [label="MSC/VLR"], hlr [label="HLR"], smsc [label="SMSC"]; + + ms <-> omsc [label="Establishment, Auth, Ciph, ..."]; + ...; + ms -> omsc [label="CP-DATA(RP-DATA(SMS-SUBMIT))"]; + ms <- omsc [label="CP-ACK"]; + omsc -> hlr [label="GSUP MO-ForwardSM-Req (MR, DA=SMSC, OA=MSISDN, UI)"]; + hlr box hlr [label="Route based on DA\n(SMSC address)"]; + hlr -> smsc [label="GSUP MO-ForwardSM-Req (MR, DA=SMSC, OA=MSISDN, UI)"]; + + |||; + ... [label="Successful delivery"]; + |||; + hlr <- smsc [label="GSUP MO-ForwardSM-Res (MR)"]; + omsc <- hlr [label="GSUP MO-ForwardSM-Res (MR)"]; + ms <- omsc [label="CP-DATA(RP-ACK)"]; + ms -> omsc [label="CP-ACK"]; + + |||; + ... [label="Failed delivery"]; + |||; + hlr <- smsc [label="GSUP MO-ForwardSM-Err (MR, Cause)"]; + omsc <- hlr [label="GSUP MO-ForwardSM-Err (MR, Cause)"]; + ms <- omsc [label="CP-DATA(RP-ERROR)"]; + ms -> omsc [label="CP-ACK"]; +} diff --git a/common/chapters/gsup_mt_sms.msc b/common/chapters/gsup_mt_sms.msc new file mode 100644 index 0000000..f5addda --- /dev/null +++ b/common/chapters/gsup_mt_sms.msc @@ -0,0 +1,36 @@ +msc { + hscale="4"; + ms [label="MS"], omsc [label="MSC/VLR"], hlr [label="HLR"], smsc [label="SMSC"]; + + hlr <- smsc [label="GSUP MT-ForwardSM-Req (MR=0xFF, DA=IMSI/MSISDN, OA=SMSC, UI, MMS)"]; + hlr box hlr [label="Route based on IMSI/MSISDN"]; + omsc <- hlr [label="GSUP MT-ForwardSM-Req (MR=0xFF, DA=IMSI/MSISDN, OA=SMSC, UI, MMS)"]; + + |||; + ... [label="Connection establishment failure"]; + |||; + omsc -> hlr [label="GSUP MT-ForwardSM-Err (MR, Cause)"]; + hlr -> smsc [label="GSUP MT-ForwardSM-Err (MR, Cause)"]; + + |||; + ... [label="Failed delivery"]; + |||; + ms <-> omsc [label="Establishment, Auth, Ciph, ..."]; + ms <- omsc [label="CP-DATA(RP-DATA(SMS-DELIVER))"]; + ms -> omsc [label="CP-ACK"]; + ms -> omsc [label="CP-DATA(RP-ERROR)"]; + omsc -> hlr [label="GSUP MT-ForwardSM-Err (MR, Cause)"]; + ms <- omsc [label="CP-ACK"]; + hlr -> smsc [label="GSUP MT-ForwardSM-Err (MR, Cause)"]; + + |||; + ... [label="Successful delivery"]; + |||; + ms <-> omsc [label="Establishment, Auth, Ciph, ..."]; + ms <- omsc [label="CP-DATA(RP-DATA(SMS-DELIVER))"]; + ms -> omsc [label="CP-ACK"]; + ms -> omsc [label="CP-DATA(RP-ACK)"]; + omsc -> hlr [label="GSUP MT-ForwardSM-Res (MR)"]; + ms <- omsc [label="CP-ACK"]; + hlr -> smsc [label="GSUP MT-ForwardSM-Res (MR)"]; +} -- To view, visit https://gerrit.osmocom.org/10604 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I9a0536f285f98f24fec4d7318f1923782ed2e18c Gerrit-Change-Number: 10604 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Assignee: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-CC: Ivan Kluchnikov -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 19:30:22 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 19 Feb 2019 19:30:22 +0000 Subject: Change in osmo-pcu[master]: Add define for dummy burst string In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12946 ) Change subject: Add define for dummy burst string ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I464920b3d6d47bb1c797a4ce06230f005a2e06a0 Gerrit-Change-Number: 12946 Gerrit-PatchSet: 4 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 19 Feb 2019 19:30:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 19:36:03 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 19 Feb 2019 19:36:03 +0000 Subject: Change in osmo-pcu[master]: Move C include to proper place In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12958 ) Change subject: Move C include to proper place ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12958 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id58d1820b94d54ce73ed40edb7747ef975890a7b Gerrit-Change-Number: 12958 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 19 Feb 2019 19:36:03 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 20:28:08 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 19 Feb 2019 20:28:08 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions In-Reply-To: References: Message-ID: Hello daniel, Max, Neels Hofmeyr, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/11992 to look at the new patch set (#12). Change subject: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions ...................................................................... libmsc/gsm_09_11.c: implement guard timer for NCSS sessions It may happen that either the MS or an EUSE would become unresponsive during a call independent SS session, e.g. due to a bug, or a dropped message. In such cases, the corresponding transaction would remain unfreed forever. This change introduces a guard timer, that prevents keeping 'stalled' NCSS sessions forever. As soon as it expires, both sides (i.e. MS and EUSE) are getting notified, and the transaction is being released. By default, the timer expires after 30 seconds. As soon as either the MS, or an EUSE initiates any activity, the watchdog timer is rescheduled. The timeout value can be configured from the VTY: msc ... ! Use 0 to disable this timer ncss guard-timeout 30 Please note that changing the timeout value at run-time doesn't affect the existing NCSS sessions, excepting the case when the timer is disabled at run-time. This change makes TC_lu_and_ss_session_timeout pass. Change-Id: Icf4d87c45e90324764073e8230e0fb9cb96dd9cb Related Change-Id: (TTCN) I3e1791773d56617172ae27a46889a1ae4d400e2f Related: OS#3655 --- M include/osmocom/msc/gsm_data.h M include/osmocom/msc/transaction.h M src/libmsc/gsm_09_11.c M src/libmsc/msc_vty.c M src/libmsc/osmo_msc.c M tests/test_nodes.vty 6 files changed, 90 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/92/11992/12 -- To view, visit https://gerrit.osmocom.org/11992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Icf4d87c45e90324764073e8230e0fb9cb96dd9cb Gerrit-Change-Number: 11992 Gerrit-PatchSet: 12 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-CC: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 20:29:18 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Tue, 19 Feb 2019 20:29:18 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/11992 ) Change subject: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions ...................................................................... Patch Set 10: (1 comment) https://gerrit.osmocom.org/#/c/11992/10/src/libmsc/gsm_09_11.c File src/libmsc/gsm_09_11.c: https://gerrit.osmocom.org/#/c/11992/10/src/libmsc/gsm_09_11.c at 156 PS10, Line 156: } > else if (osmo_timer_pending(&trans->ss.watchdog)) { [?] Done in ncss_session_timeout_handler(). -- To view, visit https://gerrit.osmocom.org/11992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icf4d87c45e90324764073e8230e0fb9cb96dd9cb Gerrit-Change-Number: 11992 Gerrit-PatchSet: 10 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-CC: Stefan Sperling Gerrit-Comment-Date: Tue, 19 Feb 2019 20:29:18 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 21:54:32 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 19 Feb 2019 21:54:32 +0000 Subject: Change in osmo-pcu[master]: Rewrite Packet Downlink Assignment In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12954 ) Change subject: Rewrite Packet Downlink Assignment ...................................................................... Patch Set 6: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/12954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie180733d2584ebb16fb80b84526d0dbc70e3d441 Gerrit-Change-Number: 12954 Gerrit-PatchSet: 6 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 19 Feb 2019 21:54:32 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 22:04:37 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 19 Feb 2019 22:04:37 +0000 Subject: Change in osmo-bts[master]: oc2g: Fix compilation error (comment mark inside comment) Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/12962 Change subject: oc2g: Fix compilation error (comment mark inside comment) ...................................................................... oc2g: Fix compilation error (comment mark inside comment) Change-Id: Ib27b31825744ea397b5b4eb258da78f5f834895c --- M src/osmo-bts-oc2g/main.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/62/12962/1 diff --git a/src/osmo-bts-oc2g/main.c b/src/osmo-bts-oc2g/main.c index 574bc72..e685150 100644 --- a/src/osmo-bts-oc2g/main.c +++ b/src/osmo-bts-oc2g/main.c @@ -94,9 +94,9 @@ /* TODO(oramadan) MERGE bts->oc2g.led_ctrl_mode = OC2G_BTS_LED_CTRL_MODE_DEFAULT; - /* RTP drift threshold default * / - bts->oc2g.rtp_drift_thres_ms = OC2G_BTS_RTP_DRIFT_THRES_DEFAULT; */ + /* RTP drift threshold default */ + /* bts->oc2g.rtp_drift_thres_ms = OC2G_BTS_RTP_DRIFT_THRES_DEFAULT; */ rc = oml_router_init(bts, OML_ROUTER_PATH, &accept_fd, &read_fd); if (rc < 0) { -- To view, visit https://gerrit.osmocom.org/12962 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib27b31825744ea397b5b4eb258da78f5f834895c Gerrit-Change-Number: 12962 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 22:21:12 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 19 Feb 2019 22:21:12 +0000 Subject: Change in osmo-bts[master]: oc2g: Fix compilation error (comment mark inside comment) In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12962 to look at the new patch set (#2). Change subject: oc2g: Fix compilation error (comment mark inside comment) ...................................................................... oc2g: Fix compilation error (comment mark inside comment) Change-Id: Ib27b31825744ea397b5b4eb258da78f5f834895c --- M src/osmo-bts-oc2g/l1_if.c M src/osmo-bts-oc2g/main.c M src/osmo-bts-oc2g/oc2gbts_vty.c M src/osmo-bts-oc2g/oml.c 4 files changed, 19 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/62/12962/2 -- To view, visit https://gerrit.osmocom.org/12962 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ib27b31825744ea397b5b4eb258da78f5f834895c Gerrit-Change-Number: 12962 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 22:31:59 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 19 Feb 2019 22:31:59 +0000 Subject: Change in osmo-bts[master]: oc2g: Add get_hwversion_desc to header file Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/12963 Change subject: oc2g: Add get_hwversion_desc to header file ...................................................................... oc2g: Add get_hwversion_desc to header file it's used in oc2g/main.c and it needs to be in a header file. Similar as previously done for lc15 in 19795c5a. Change-Id: Ic6826d8c8ff5c648158493454a80704bb956b51d --- M src/osmo-bts-oc2g/misc/oc2gbts_bid.h 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/63/12963/1 diff --git a/src/osmo-bts-oc2g/misc/oc2gbts_bid.h b/src/osmo-bts-oc2g/misc/oc2gbts_bid.h index 00cf389..793ce6c 100644 --- a/src/osmo-bts-oc2g/misc/oc2gbts_bid.h +++ b/src/osmo-bts-oc2g/misc/oc2gbts_bid.h @@ -43,5 +43,6 @@ void oc2gbts_rev_get(char *rev_maj, char *rev_min); int oc2gbts_model_get(void); int oc2gbts_option_get(enum oc2gbts_option_type type); +const char* get_hwversion_desc(); #endif -- To view, visit https://gerrit.osmocom.org/12963 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic6826d8c8ff5c648158493454a80704bb956b51d Gerrit-Change-Number: 12963 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 22:40:27 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 19 Feb 2019 22:40:27 +0000 Subject: Change in osmo-bts[master]: oc2g: Cleanup of get_hwversion_desc Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/12964 Change subject: oc2g: Cleanup of get_hwversion_desc ...................................................................... oc2g: Cleanup of get_hwversion_desc Remove unused variables, wrong return type values, etc. Change-Id: I5565b904c72a9ac1775818416f05c64722d366b2 --- M src/osmo-bts-oc2g/misc/oc2gbts_bid.c 1 file changed, 2 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/64/12964/1 diff --git a/src/osmo-bts-oc2g/misc/oc2gbts_bid.c b/src/osmo-bts-oc2g/misc/oc2gbts_bid.c index 6eaa9c6..6a46ca8 100644 --- a/src/osmo-bts-oc2g/misc/oc2gbts_bid.c +++ b/src/osmo-bts-oc2g/misc/oc2gbts_bid.c @@ -106,7 +106,6 @@ const char* get_hwversion_desc() { - int rev; int model; size_t len; static char model_name[64] = {0, }; @@ -114,14 +113,9 @@ char rev_maj = 0, rev_min = 0; - int rc = 0; oc2gbts_rev_get(&rev_maj, &rev_min); - if (rc < 0) - return rc; - if (rev >= 0) { - len += snprintf(model_name + len, sizeof(model_name) - len, - " Rev %d.%d", (uint8_t)rev_maj, (uint8_t)rev_min); - } + len += snprintf(model_name + len, sizeof(model_name) - len, + " Rev %" PRIu8 ".%" PRIu8, (uint8_t)rev_maj, (uint8_t)rev_min); model = oc2gbts_model_get(); if (model >= 0) { -- To view, visit https://gerrit.osmocom.org/12964 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5565b904c72a9ac1775818416f05c64722d366b2 Gerrit-Change-Number: 12964 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 22:42:48 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 19 Feb 2019 22:42:48 +0000 Subject: Change in osmo-bts[master]: oc2g: Cleanup of get_hwversion_desc In-Reply-To: References: Message-ID: Pau Espin Pedrol has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/12964 ) Change subject: oc2g: Cleanup of get_hwversion_desc ...................................................................... oc2g: Cleanup of get_hwversion_desc Remove unused variables, wrong return type values, etc. Change-Id: I5565b904c72a9ac1775818416f05c64722d366b2 --- M src/osmo-bts-oc2g/misc/oc2gbts_bid.c 1 file changed, 3 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/64/12964/2 -- To view, visit https://gerrit.osmocom.org/12964 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I5565b904c72a9ac1775818416f05c64722d366b2 Gerrit-Change-Number: 12964 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-CC: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 22:44:24 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 19 Feb 2019 22:44:24 +0000 Subject: Change in osmo-bts[master]: oc2g: led_sleep_cb: pass correct ptr to llist_move_tail Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/12965 Change subject: oc2g: led_sleep_cb: pass correct ptr to llist_move_tail ...................................................................... oc2g: led_sleep_cb: pass correct ptr to llist_move_tail Fix compilation warning. At runtime it's not a big issue because the "list" field is the first field of the led_list (struct lc15bts_led_timer_list) variable. Hence, the address passed is the same. Similar to commit fixing same issue in lc15 in 080302f8. Change-Id: Ie393a21bc3a725520343c70941cb4f591b313420 --- M src/osmo-bts-oc2g/misc/oc2gbts_led.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/65/12965/1 diff --git a/src/osmo-bts-oc2g/misc/oc2gbts_led.c b/src/osmo-bts-oc2g/misc/oc2gbts_led.c index b8758b8..40d4b72 100644 --- a/src/osmo-bts-oc2g/misc/oc2gbts_led.c +++ b/src/osmo-bts-oc2g/misc/oc2gbts_led.c @@ -150,7 +150,7 @@ /* Delete current timer */ osmo_timer_del(&led_list->led_timer.timer); /* Rotate the timer list */ - llist_move_tail(led_list, &mgr->oc2gbts_leds.list); + llist_move_tail(&led_list->list, &mgr->oc2gbts_leds.list); break; } } -- To view, visit https://gerrit.osmocom.org/12965 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie393a21bc3a725520343c70941cb4f591b313420 Gerrit-Change-Number: 12965 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 22:45:38 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 22:45:38 +0000 Subject: Change in libosmocore[master]: gprs_ns: Use gprs_ns_tx_alive() instead of gprs_ns_tx_simple() Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12966 Change subject: gprs_ns: Use gprs_ns_tx_alive() instead of gprs_ns_tx_simple() ...................................................................... gprs_ns: Use gprs_ns_tx_alive() instead of gprs_ns_tx_simple() If we use gprs_ns_tx_alive() we will get logging for free. Change-Id: I53d410d13540d389096c40425e1fa2eb7460b16b --- M src/gb/gprs_ns.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/66/12966/1 diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c index 1281c9f..5c75694 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -960,7 +960,7 @@ rc = gprs_ns_tx_reset_ack(*nsvc); /* start the test procedure */ - gprs_ns_tx_simple((*nsvc), NS_PDUT_ALIVE); + gprs_ns_tx_alive(*nsvc); nsvc_start_timer((*nsvc), NSVC_TIMER_TNS_TEST); return rc; @@ -1084,7 +1084,7 @@ osmo_timer_del(&(*nsvc)->timer); } /* Initiate TEST proc.: Send ALIVE and start timer */ - rc = gprs_ns_tx_simple(*nsvc, NS_PDUT_ALIVE); + rc = gprs_ns_tx_alive(*nsvc); nsvc_start_timer(*nsvc, NSVC_TIMER_TNS_TEST); return rc; -- To view, visit https://gerrit.osmocom.org/12966 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I53d410d13540d389096c40425e1fa2eb7460b16b Gerrit-Change-Number: 12966 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 22:45:38 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 22:45:38 +0000 Subject: Change in libosmocore[master]: gprs_ns.c: cosmetic whitespace fixes Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12967 Change subject: gprs_ns.c: cosmetic whitespace fixes ...................................................................... gprs_ns.c: cosmetic whitespace fixes Change-Id: Ic19f65bdc5527ad5a69d0a92320ce5f672bf4d2b --- M src/gb/gprs_ns.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/67/12967/1 diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c index 5c75694..47c2529 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -608,7 +608,7 @@ DEBUGP(DNS, "NSEI=%u Starting timer in mode %s (%u seconds)\n", nsvc->nsei, get_value_string(timer_mode_strs, mode), seconds); - + if (osmo_timer_pending(&nsvc->timer)) osmo_timer_del(&nsvc->timer); @@ -636,7 +636,7 @@ DEBUGP(DNS, "NSEI=%u Timer expired in mode %s (%u seconds)\n", nsvc->nsei, get_value_string(timer_mode_strs, nsvc->timer_mode), seconds); - + switch (nsvc->timer_mode) { case NSVC_TIMER_TNS_ALIVE: /* Tns-alive case: we expired without response ! */ -- To view, visit https://gerrit.osmocom.org/12967 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic19f65bdc5527ad5a69d0a92320ce5f672bf4d2b Gerrit-Change-Number: 12967 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 22:45:39 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 22:45:39 +0000 Subject: Change in libosmocore[master]: gprs_ns: Declare gprs_ns_tx_alive*() in header file Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12968 Change subject: gprs_ns: Declare gprs_ns_tx_alive*() in header file ...................................................................... gprs_ns: Declare gprs_ns_tx_alive*() in header file The symbols for those functions were always exported, but we somehow didn't declare them in gprs_ns.h Change-Id: Ib073e9c93fcdf408b63000182e90aabce37f687e --- M include/osmocom/gprs/gprs_ns.h 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/68/12968/1 diff --git a/include/osmocom/gprs/gprs_ns.h b/include/osmocom/gprs/gprs_ns.h index c97b200..1c99ed0 100644 --- a/include/osmocom/gprs/gprs_ns.h +++ b/include/osmocom/gprs/gprs_ns.h @@ -175,6 +175,8 @@ /* main function for higher layers (BSSGP) to send NS messages */ int gprs_ns_sendmsg(struct gprs_ns_inst *nsi, struct msgb *msg); +int gprs_ns_tx_alive(struct gprs_nsvc *nsvc); +int gprs_ns_tx_alive_ack(struct gprs_nsvc *nsvc); int gprs_ns_tx_reset(struct gprs_nsvc *nsvc, uint8_t cause); int gprs_ns_tx_block(struct gprs_nsvc *nsvc, uint8_t cause); int gprs_ns_tx_unblock(struct gprs_nsvc *nsvc); -- To view, visit https://gerrit.osmocom.org/12968 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib073e9c93fcdf408b63000182e90aabce37f687e Gerrit-Change-Number: 12968 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 22:45:39 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 22:45:39 +0000 Subject: Change in libosmocore[master]: gprs_ns: Add missing NSVCI IE to NS-BLOCK-ACK message Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12969 Change subject: gprs_ns: Add missing NSVCI IE to NS-BLOCK-ACK message ...................................................................... gprs_ns: Add missing NSVCI IE to NS-BLOCK-ACK message According to Section 9.2.4 of 3GPP TS 48.016, the NS-BLOCK-ACK PDU has a mandatory NSVCI IE which we so far were missing. Change-Id: Ie7205e99d57f1e42d941f1be2460d8c9f46aadfe Closes: OS#3808 --- M src/gb/gprs_ns.c 1 file changed, 29 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/69/12969/1 diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c index 47c2529..54964d3 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -547,6 +547,34 @@ return gprs_ns_tx(nsvc, msg); } +/*! Transmit a NS-BLOCK-ACK on a given NS-VC + * \param[in] nsvc NS-VC on which the NS-BLOCK is to be transmitted + * \returns 0 in case of success + */ +static int gprs_ns_tx_block_ack(struct gprs_nsvc *nsvc) +{ + struct msgb *msg; + struct gprs_ns_hdr *nsh; + uint16_t nsvci = osmo_htons(nsvc->nsvci); + + log_set_context(LOG_CTX_GB_NSVC, nsvc); + + msg = gprs_ns_msgb_alloc(); + if (!msg) + return -ENOMEM; + + LOGP(DNS, LOGL_INFO, "NSEI=%u Tx NS BLOCK ACK (NSVCI=%u)\n", nsvc->nsei, nsvc->nsvci); + + /* be conservative and mark it as blocked even now! */ + msg->l2h = msgb_put(msg, sizeof(*nsh)); + nsh = (struct gprs_ns_hdr *) msg->l2h; + nsh->pdu_type = NS_PDUT_BLOCK_ACK; + + msgb_tvlv_put(msg, NS_IE_VCI, 2, (uint8_t *) &nsvci); + + return gprs_ns_tx(nsvc, msg); +} + /*! Transmit a NS-UNBLOCK on a given NS-VC * \param[in] nsvc NS-VC on which the NS-UNBLOCK is to be transmitted * \returns 0 in case of success @@ -1122,7 +1150,7 @@ ns_osmo_signal_dispatch(nsvc, S_NS_BLOCK, *cause); rate_ctr_inc(&nsvc->ctrg->ctr[NS_CTR_BLOCKED]); - return gprs_ns_tx_simple(nsvc, NS_PDUT_BLOCK_ACK); + return gprs_ns_tx_block_ack(nsvc); } int gprs_ns_vc_create(struct gprs_ns_inst *nsi, struct msgb *msg, -- To view, visit https://gerrit.osmocom.org/12969 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie7205e99d57f1e42d941f1be2460d8c9f46aadfe Gerrit-Change-Number: 12969 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 22:47:15 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 22:47:15 +0000 Subject: Change in osmo-bts[master]: oc2g: Fix compilation error (comment mark inside comment) In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12962 ) Change subject: oc2g: Fix compilation error (comment mark inside comment) ...................................................................... Patch Set 2: Code-Review+1 would be great to elaborate on which compiler/system this fails to compile -- To view, visit https://gerrit.osmocom.org/12962 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib27b31825744ea397b5b4eb258da78f5f834895c Gerrit-Change-Number: 12962 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Tue, 19 Feb 2019 22:47:15 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 22:47:22 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 22:47:22 +0000 Subject: Change in osmo-bts[master]: oc2g: Add get_hwversion_desc to header file In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12963 ) Change subject: oc2g: Add get_hwversion_desc to header file ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12963 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic6826d8c8ff5c648158493454a80704bb956b51d Gerrit-Change-Number: 12963 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Tue, 19 Feb 2019 22:47:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 22:47:35 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 22:47:35 +0000 Subject: Change in osmo-bts[master]: oc2g: Cleanup of get_hwversion_desc In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12964 ) Change subject: oc2g: Cleanup of get_hwversion_desc ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12964 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5565b904c72a9ac1775818416f05c64722d366b2 Gerrit-Change-Number: 12964 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Tue, 19 Feb 2019 22:47:35 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 22:47:50 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 22:47:50 +0000 Subject: Change in osmo-bts[master]: oc2g: led_sleep_cb: pass correct ptr to llist_move_tail In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12965 ) Change subject: oc2g: led_sleep_cb: pass correct ptr to llist_move_tail ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12965 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie393a21bc3a725520343c70941cb4f591b313420 Gerrit-Change-Number: 12965 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Tue, 19 Feb 2019 22:47:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 22:48:11 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 22:48:11 +0000 Subject: Change in libosmocore[master]: gprs_ns: Use gprs_ns_tx_alive() instead of gprs_ns_tx_simple() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12966 ) Change subject: gprs_ns: Use gprs_ns_tx_alive() instead of gprs_ns_tx_simple() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12966 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I53d410d13540d389096c40425e1fa2eb7460b16b Gerrit-Change-Number: 12966 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-CC: Jenkins Builder (1000002) Gerrit-Comment-Date: Tue, 19 Feb 2019 22:48:11 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 22:48:19 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 22:48:19 +0000 Subject: Change in libosmocore[master]: gprs_ns.c: cosmetic whitespace fixes In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12967 ) Change subject: gprs_ns.c: cosmetic whitespace fixes ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12967 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic19f65bdc5527ad5a69d0a92320ce5f672bf4d2b Gerrit-Change-Number: 12967 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Tue, 19 Feb 2019 22:48:19 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 22:48:26 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 19 Feb 2019 22:48:26 +0000 Subject: Change in osmo-bts[master]: oc2g: fsync requires fd instead of file stream Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/12970 Change subject: oc2g: fsync requires fd instead of file stream ...................................................................... oc2g: fsync requires fd instead of file stream Similar fix was done for lc15 in a8041edb. Change-Id: Idcd9dc48ea2e1f80bfdf5cf8b6bf55d8150fe0d2 --- M src/osmo-bts-oc2g/misc/oc2gbts_par.c 1 file changed, 3 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/70/12970/1 diff --git a/src/osmo-bts-oc2g/misc/oc2gbts_par.c b/src/osmo-bts-oc2g/misc/oc2gbts_par.c index f355024..7dc77c9 100644 --- a/src/osmo-bts-oc2g/misc/oc2gbts_par.c +++ b/src/osmo-bts-oc2g/misc/oc2gbts_par.c @@ -151,7 +151,7 @@ fclose(fp); return -EIO; } - fsync(fp); + fsync(fileno(fp)); fclose(fp); return 0; } @@ -201,7 +201,7 @@ rc = fwrite(buf, 1, size, fp); - fsync(fp); + fsync(fileno(fp)); fclose(fp); return rc; @@ -242,7 +242,7 @@ fclose(fp); return -EIO; } - fsync(fp); + fsync(fileno(fp)); fclose(fp); return 0; -- To view, visit https://gerrit.osmocom.org/12970 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Idcd9dc48ea2e1f80bfdf5cf8b6bf55d8150fe0d2 Gerrit-Change-Number: 12970 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 22:48:28 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 19 Feb 2019 22:48:28 +0000 Subject: Change in libosmocore[master]: gprs_ns: Declare gprs_ns_tx_alive*() in header file In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12968 ) Change subject: gprs_ns: Declare gprs_ns_tx_alive*() in header file ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12968 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib073e9c93fcdf408b63000182e90aabce37f687e Gerrit-Change-Number: 12968 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Tue, 19 Feb 2019 22:48:28 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 22:50:20 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 19 Feb 2019 22:50:20 +0000 Subject: Change in osmo-bts[master]: oc2g: Remove unused variable Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/12971 Change subject: oc2g: Remove unused variable ...................................................................... oc2g: Remove unused variable Change-Id: I6738adb6b0ae50905351c67c259d7a77cb250624 --- M src/osmo-bts-oc2g/main.c 1 file changed, 0 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/71/12971/1 diff --git a/src/osmo-bts-oc2g/main.c b/src/osmo-bts-oc2g/main.c index e685150..ab3d36d 100644 --- a/src/osmo-bts-oc2g/main.c +++ b/src/osmo-bts-oc2g/main.c @@ -83,7 +83,6 @@ int bts_model_init(struct gsm_bts *bts) { - struct gsm_bts_trx *trx; struct stat st; static struct osmo_fd accept_fd, read_fd; int rc; -- To view, visit https://gerrit.osmocom.org/12971 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6738adb6b0ae50905351c67c259d7a77cb250624 Gerrit-Change-Number: 12971 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 23:02:45 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 19 Feb 2019 23:02:45 +0000 Subject: Change in osmo-bts[master]: oc2g: Remove unused variables In-Reply-To: References: Message-ID: Pau Espin Pedrol has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/12971 ) Change subject: oc2g: Remove unused variables ...................................................................... oc2g: Remove unused variables Change-Id: I6738adb6b0ae50905351c67c259d7a77cb250624 --- M src/osmo-bts-oc2g/l1_if.c M src/osmo-bts-oc2g/main.c M src/osmo-bts-oc2g/misc/oc2gbts_clock.c M src/osmo-bts-oc2g/misc/oc2gbts_mgr.c 4 files changed, 0 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/71/12971/2 -- To view, visit https://gerrit.osmocom.org/12971 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I6738adb6b0ae50905351c67c259d7a77cb250624 Gerrit-Change-Number: 12971 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 23:03:39 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 19 Feb 2019 23:03:39 +0000 Subject: Change in osmo-bts[master]: oc2g: Remove unused static function Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/12972 Change subject: oc2g: Remove unused static function ...................................................................... oc2g: Remove unused static function Change-Id: I4d0a476f84bc9e92e02f94c3990daddeeaa3c5d5 --- M src/osmo-bts-oc2g/misc/oc2gbts_mgr_calib.c 1 file changed, 0 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/72/12972/1 diff --git a/src/osmo-bts-oc2g/misc/oc2gbts_mgr_calib.c b/src/osmo-bts-oc2g/misc/oc2gbts_mgr_calib.c index 104d279..eac8ed1 100644 --- a/src/osmo-bts-oc2g/misc/oc2gbts_mgr_calib.c +++ b/src/osmo-bts-oc2g/misc/oc2gbts_mgr_calib.c @@ -245,18 +245,6 @@ ipa_client_conn_send(mgr->oc2gbts_ctrl.bts_conn, msg); } -static void send_set_ctrl_cmd_int(struct oc2gbts_mgr_instance *mgr, const char *key, const int val) -{ - struct msgb *msg; - int ret; - - msg = msgb_alloc_headroom(1024, 128, "CTRL SET"); - ret = snprintf((char *) msg->data, 4096, "SET %u %s %d", - mgr->oc2gbts_ctrl.last_seqno++, key, val); - msg->l2h = msgb_put(msg, ret); - return send_ctrl_cmd(mgr, msg); -} - static void send_set_ctrl_cmd(struct oc2gbts_mgr_instance *mgr, const char *key, const int val, const char *text) { struct msgb *msg; -- To view, visit https://gerrit.osmocom.org/12972 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I4d0a476f84bc9e92e02f94c3990daddeeaa3c5d5 Gerrit-Change-Number: 12972 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 23:05:05 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 19 Feb 2019 23:05:05 +0000 Subject: Change in osmo-bts[master]: oc2g: vty: Compilation error fixes due to commented code Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/12973 Change subject: oc2g: vty: Compilation error fixes due to commented code ...................................................................... oc2g: vty: Compilation error fixes due to commented code Change-Id: Id2b16b9acd15d0c80085fac0fdc2a57173ebb0a0 --- M src/osmo-bts-oc2g/oc2gbts_vty.c 1 file changed, 5 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/73/12973/1 diff --git a/src/osmo-bts-oc2g/oc2gbts_vty.c b/src/osmo-bts-oc2g/oc2gbts_vty.c index 099698f..9bb4579 100644 --- a/src/osmo-bts-oc2g/oc2gbts_vty.c +++ b/src/osmo-bts-oc2g/oc2gbts_vty.c @@ -77,11 +77,13 @@ { 0, NULL } }; +/* static const struct value_string oc2g_led_mode_strs[] = { { OC2G_LED_CONTROL_BTS, "bts" }, { OC2G_LED_CONTROL_EXT, "external" }, { 0, NULL } }; +*/ static const struct value_string oc2g_auto_adj_pwr_strs[] = { { OC2G_TX_PWR_ADJ_NONE, "none" }, @@ -455,7 +457,7 @@ struct gsm_lchan *lchan; int trx_nr, ts_nr, lchan_nr; uint8_t ho_cause; - uint8_t old_ho_cause; + /* uint8_t old_ho_cause; */ /* get BTS pointer */ bts = gsm_bts_num(net, 0); @@ -519,6 +521,7 @@ / * restore HO cause * / lchan->meas_preproc.rec_ho_causes = old_ho_cause; */ + (void)lchan; /* to use lchan and avoid compilation warning */ return CMD_SUCCESS; } @@ -728,5 +731,5 @@ rc |= ctrl_cmd_install(CTRL_NODE_ROOT, &cmd_oc2g_oml_ceased); */ - return 0; + return rc; } -- To view, visit https://gerrit.osmocom.org/12973 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id2b16b9acd15d0c80085fac0fdc2a57173ebb0a0 Gerrit-Change-Number: 12973 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 23:06:12 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 19 Feb 2019 23:06:12 +0000 Subject: Change in osmo-bts[master]: oc2g: Fix compilation error (comment mark inside comment) In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12962 ) Change subject: oc2g: Fix compilation error (comment mark inside comment) ...................................................................... Patch Set 2: All of them are fixed using gcc 8.2.1 and using -Werror. -- To view, visit https://gerrit.osmocom.org/12962 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib27b31825744ea397b5b4eb258da78f5f834895c Gerrit-Change-Number: 12962 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 19 Feb 2019 23:06:12 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 19 23:08:49 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Tue, 19 Feb 2019 23:08:49 +0000 Subject: Change in libosmocore[master]: gprs_ns: Add missing NSVCI IE to NS-BLOCK-ACK message In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12969 ) Change subject: gprs_ns: Add missing NSVCI IE to NS-BLOCK-ACK message ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12969/1/src/gb/gprs_ns.c File src/gb/gprs_ns.c: https://gerrit.osmocom.org/#/c/12969/1/src/gb/gprs_ns.c at 560 PS1, Line 560: log_set_context(LOG_CTX_GB_NSVC, nsvc); You most probably want to remove the context once you get out of the function, to avoid having non-related messages later on being filtered same way. -- To view, visit https://gerrit.osmocom.org/12969 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie7205e99d57f1e42d941f1be2460d8c9f46aadfe Gerrit-Change-Number: 12969 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 19 Feb 2019 23:08:49 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Wed Feb 20 06:19:21 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 20 Feb 2019 06:19:21 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-o?= =?UTF-8?Q?penbsc_=C2=BB_--disable-iu,--disable-m?= =?UTF-8?Q?gcp-transcoding,--enable-smpp,def?= =?UTF-8?Q?ault,osmocom-master-debian9_#3906?= Message-ID: <1474280249.321.1550643561593.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 30.65 KB...] - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[4]: Leaving directory '/build/deps/libosmocore/src' make[3]: Leaving directory '/build/deps/libosmocore/src' make[2]: Leaving directory '/build/deps/libosmocore/src' Making install in src/vty make[2]: Entering directory '/build/deps/libosmocore/src/vty' CC buffer.lo CC command.lo CC telnet_interface.lo CC logging_vty.lo CC vector.lo CC utils.lo CC vty.lo CC stats_vty.lo CC fsm_vty.lo CC talloc_ctx_vty.lo CC tdef_vty.lo CCLD libosmovty.la make[3]: Entering directory '/build/deps/libosmocore/src/vty' make[3]: Nothing to be done for 'install-data-am'. /bin/mkdir -p '/build/deps/install/stow/libosmocore/lib' /bin/bash ../../libtool --mode=install /usr/bin/install -c libosmovty.la '/build/deps/install/stow/libosmocore/lib' libtool: install: warning: relinking `libosmovty.la' libtool: install: (cd /build/deps/libosmocore/src/vty; /bin/bash /build/deps/libosmocore/libtool --silent --tag CC --mode=relink gcc -Wall -g -O2 -DBUILDING_LIBOSMOCORE -Wall -version-info 6:0:2 -no-undefined -o libosmovty.la -rpath /build/deps/install/stow/libosmocore/lib buffer.lo command.lo vty.lo vector.lo utils.lo telnet_interface.lo logging_vty.lo stats_vty.lo fsm_vty.lo talloc_ctx_vty.lo tdef_vty.lo ../../src/libosmocore.la -ltalloc ) libtool: install: /usr/bin/install -c .libs/libosmovty.so.4.2.0T /build/deps/install/stow/libosmocore/lib/libosmovty.so.4.2.0 libtool: install: (cd /build/deps/install/stow/libosmocore/lib && { ln -s -f libosmovty.so.4.2.0 libosmovty.so.4 || { rm -f libosmovty.so.4 && ln -s libosmovty.so.4.2.0 libosmovty.so.4; }; }) libtool: install: (cd /build/deps/install/stow/libosmocore/lib && { ln -s -f libosmovty.so.4.2.0 libosmovty.so || { rm -f libosmovty.so && ln -s libosmovty.so.4.2.0 libosmovty.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmovty.lai /build/deps/install/stow/libosmocore/lib/libosmovty.la libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/build_bin:/sbin" ldconfig -n /build/deps/install/stow/libosmocore/lib ---------------------------------------------------------------------- Libraries have been installed in: /build/deps/install/stow/libosmocore/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[3]: Leaving directory '/build/deps/libosmocore/src/vty' make[2]: Leaving directory '/build/deps/libosmocore/src/vty' Making install in src/codec make[2]: Entering directory '/build/deps/libosmocore/src/codec' CC gsm660.lo CC gsm610.lo CC gsm620.lo CC gsm690.lo CC ecu_fr.lo CCLD libosmocodec.la make[3]: Entering directory '/build/deps/libosmocore/src/codec' make[3]: Nothing to be done for 'install-data-am'. /bin/mkdir -p '/build/deps/install/stow/libosmocore/lib' /bin/bash ../../libtool --mode=install /usr/bin/install -c libosmocodec.la '/build/deps/install/stow/libosmocore/lib' libtool: install: warning: relinking `libosmocodec.la' libtool: install: (cd /build/deps/libosmocore/src/codec; /bin/bash /build/deps/libosmocore/libtool --silent --tag CC --mode=relink gcc -Wall -g -O2 -DBUILDING_LIBOSMOCORE -Wall -version-info 1:1:1 -no-undefined -o libosmocodec.la -rpath /build/deps/install/stow/libosmocore/lib gsm610.lo gsm620.lo gsm660.lo gsm690.lo ecu_fr.lo ../../src/libosmocore.la ) libtool: install: /usr/bin/install -c .libs/libosmocodec.so.0.1.1T /build/deps/install/stow/libosmocore/lib/libosmocodec.so.0.1.1 libtool: install: (cd /build/deps/install/stow/libosmocore/lib && { ln -s -f libosmocodec.so.0.1.1 libosmocodec.so.0 || { rm -f libosmocodec.so.0 && ln -s libosmocodec.so.0.1.1 libosmocodec.so.0; }; }) libtool: install: (cd /build/deps/install/stow/libosmocore/lib && { ln -s -f libosmocodec.so.0.1.1 libosmocodec.so || { rm -f libosmocodec.so && ln -s libosmocodec.so.0.1.1 libosmocodec.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmocodec.lai /build/deps/install/stow/libosmocore/lib/libosmocodec.la libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/build_bin:/sbin" ldconfig -n /build/deps/install/stow/libosmocore/lib ---------------------------------------------------------------------- Libraries have been installed in: /build/deps/install/stow/libosmocore/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[3]: Leaving directory '/build/deps/libosmocore/src/codec' make[2]: Leaving directory '/build/deps/libosmocore/src/codec' Making install in src/gsm make[2]: Entering directory '/build/deps/libosmocore/src/gsm' GEN gsm0503_conv.c Generating convolutional codes... Generate 'xcch' definition Generate 'rach' definition Generate 'rach_ext' definition Generate 'sch' definition Generate 'cs2' definition Generate 'cs3' definition Generate 'cs2_np' definition Generate 'cs3_np' definition Generate 'tch_afs_12_2' definition Generate 'tch_afs_10_2' definition Generate 'tch_afs_7_95' definition Generate 'tch_afs_7_4' definition Generate 'tch_afs_6_7' definition Generate 'tch_afs_5_9' definition Generate 'tch_afs_5_15' definition Generate 'tch_afs_4_75' definition Generate 'tch_fr' definition Generate 'tch_hr' definition Generate 'tch_ahs_7_95' definition Generate 'tch_ahs_7_4' definition Generate 'tch_ahs_6_7' definition Generate 'tch_ahs_5_9' definition Generate 'tch_ahs_5_15' definition Generate 'tch_ahs_4_75' definition Generate 'mcs1_dl_hdr' definition Generate 'mcs1_ul_hdr' definition Generate 'mcs1' definition Generate 'mcs2' definition Generate 'mcs3' definition Generate 'mcs4' definition Generate 'mcs5_dl_hdr' definition Generate 'mcs5_ul_hdr' definition Generate 'mcs5' definition Generate 'mcs6' definition Generate 'mcs7_dl_hdr' definition Generate 'mcs7_ul_hdr' definition Generate 'mcs7' definition Generate 'mcs8' definition Generate 'mcs9' definition Generation complete. make install-am make[3]: Entering directory '/build/deps/libosmocore/src/gsm' CC tlv_parser.lo CC a5.lo CC rxlev_stat.lo CC comp128.lo CC gsm_utils.lo CC gsm48.lo CC rsl.lo CC comp128v23.lo gsm_utils.c:116:9: note: #pragma message: including GnuTLS for getrandom fallback. #pragma message ("including GnuTLS for getrandom fallback.") ^ CC gsm48_arfcn_range_encode.lo CC gsm48_ie.lo CC gsm0808.lo CC sysinfo.lo CC gprs_cipher_core.lo CC gprs_rlc.lo CC gsm0480.lo CC abis_nm.lo CC gsm0502.lo CC gsm0411_utils.lo CC gsm0411_smc.lo CC gsm0411_smr.lo CC gsm0414.lo CC lapd_core.lo CC lapdm.lo CC kasumi.lo CC gsm29205.lo CC gsm_04_08_gprs.lo CC auth_core.lo CC auth_comp128v1.lo CC auth_comp128v23.lo CC auth_milenage.lo CC gea.lo CC gan.lo CC ipa.lo CC gsm0341.lo CC apn.lo CC gsup.lo ipa.c: In function 'ipa_ccm_idtag_parse': ipa.c:103:2: warning: 'ipa_ccm_idtag_parse_off' is deprecated (declared at ../../include/osmocom/gsm/ipa.h:31): Use ipa_ccm_id_{get,resp}_parse instead [-Wdeprecated-declarations] return ipa_ccm_idtag_parse_off(dec, buf, len, 0); ^ CC gsup_sms.lo CC gprs_gea.lo CC gsm0503_conv.lo CC oap.lo CC gsm0808_utils.lo CC gsm23003.lo CC mncc.lo CC bts_features.lo CC oap_client.lo CC gsm29118.lo CC milenage/aes-encblock.lo CC milenage/aes-internal.lo CC milenage/aes-internal-enc.lo CC milenage/milenage.lo CCLD libgsmint.la CCLD libosmogsm.la make[4]: Entering directory '/build/deps/libosmocore/src/gsm' make[4]: Nothing to be done for 'install-data-am'. /bin/mkdir -p '/build/deps/install/stow/libosmocore/lib' /bin/bash ../../libtool --mode=install /usr/bin/install -c libosmogsm.la '/build/deps/install/stow/libosmocore/lib' libtool: install: warning: relinking `libosmogsm.la' libtool: install: (cd /build/deps/libosmocore/src/gsm; /bin/bash /build/deps/libosmocore/libtool --silent --tag CC --mode=relink gcc -Wall -g -O2 -DBUILDING_LIBOSMOCORE -Wall -Wl,--version-script=./libosmogsm.map -version-info 11:0:0 -no-undefined -o libosmogsm.la -rpath /build/deps/install/stow/libosmocore/lib libgsmint.la -ltalloc -lgnutls ) libtool: install: /usr/bin/install -c .libs/libosmogsm.so.11.0.0T /build/deps/install/stow/libosmocore/lib/libosmogsm.so.11.0.0 libtool: install: (cd /build/deps/install/stow/libosmocore/lib && { ln -s -f libosmogsm.so.11.0.0 libosmogsm.so.11 || { rm -f libosmogsm.so.11 && ln -s libosmogsm.so.11.0.0 libosmogsm.so.11; }; }) libtool: install: (cd /build/deps/install/stow/libosmocore/lib && { ln -s -f libosmogsm.so.11.0.0 libosmogsm.so || { rm -f libosmogsm.so && ln -s libosmogsm.so.11.0.0 libosmogsm.so; }; }) libtool: install: /usr/bin/install -c .libs/libosmogsm.lai /build/deps/install/stow/libosmocore/lib/libosmogsm.la libtool: finish: PATH="/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/build_bin:/sbin" ldconfig -n /build/deps/install/stow/libosmocore/lib ---------------------------------------------------------------------- Libraries have been installed in: /build/deps/install/stow/libosmocore/lib If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- make[4]: Leaving directory '/build/deps/libosmocore/src/gsm' make[3]: Leaving directory '/build/deps/libosmocore/src/gsm' make[2]: Leaving directory '/build/deps/libosmocore/src/gsm' Making install in src/coding make[2]: Entering directory '/build/deps/libosmocore/src/coding' CC gsm0503_mapping.lo CC gsm0503_interleaving.lo CC gsm0503_tables.lo CC gsm0503_parity.lo CC gsm0503_coding.lo ../../libtool: line 1873: cannot create temp file for here-document: No space left on device CCLD libosmocoding.la libtool: link: `gsm0503_coding.lo' is not a valid libtool object Makefile:450: recipe for target 'libosmocoding.la' failed make[2]: Leaving directory '/build/deps/libosmocore/src/coding' make[2]: *** [libosmocoding.la] Error 1 make[1]: *** [install-recursive] Error 1 Makefile:614: recipe for target 'install-recursive' failed make[1]: Leaving directory '/build/deps/libosmocore' Makefile:913: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Wed Feb 20 06:19:27 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 20 Feb 2019 06:19:27 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-?= =?UTF-8?Q?openbsc_=C2=BB_--disable-iu,--enable-m?= =?UTF-8?Q?gcp-transcoding,--enable-smpp,def?= =?UTF-8?Q?ault,osmocom-master-debian9_#3906?= Message-ID: <1882370717.322.1550643567582.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 1.98 KB...] Fetching upstream changes from git://git.osmocom.org/openbsc > git --version # timeout=10 > git fetch --tags --progress git://git.osmocom.org/openbsc +refs/heads/*:refs/remotes/origin/* Checking out Revision ed8815e723b41e9800f14c67bccd34e51a06beb6 (refs/remotes/origin/master) > git config core.sparsecheckout # timeout=10 > git checkout -f ed8815e723b41e9800f14c67bccd34e51a06beb6 Commit message: "Bump version: 1.1.0.120-9981 ? 1.2.0" > git rev-list --no-walk ed8815e723b41e9800f14c67bccd34e51a06beb6 # timeout=10 [osmocom-master-debian9] $ /bin/sh -xe /tmp/jenkins6353477383584535291.sh + ARTIFACT_STORE=/home/osmocom-build/jenkins_build_artifact_store + mkdir -p /home/osmocom-build/jenkins_build_artifact_store + docker run --rm=true -e HOME=/build -e ARTIFACT_STORE=/artifact_store -e JOB_NAME=master-openbsc/IU=--disable-iu,MGCP=--enable-mgcp-transcoding,SMPP=--enable-smpp,a4=default,label=osmocom-master-debian9 -e MAKE=make -e PARALLEL_MAKE=-j 8 -e IU=--disable-iu -e SMPP=--enable-smpp -e MGCP=--enable-mgcp-transcoding -e PATH=/usr/local/bin:/usr/bin:/bin:/usr/games:/home/osmocom-build/bin:/build_bin -e OSMOPY_DEBUG_TCP_SOCKETS=1 -e WITH_MANUALS=1 -e PUBLISH=1 -w /build -i -u build -v :/build -v /home/osmocom-build/bin:/build_bin -v /home/osmocom-build/.ssh:/home/build/.ssh:ro -v /home/osmocom-build/jenkins_build_artifact_store:/artifact_store osmocom:amd64 /build/contrib/jenkins.sh + osmo-clean-workspace.sh + chmod -R +w . + git checkout -f HEAD + git clean -dxf Skipping repository deps/libosmocore Skipping repository deps/libosmo-sccp Skipping repository deps/libosmo-netif Skipping repository deps/osmo-gsm-manuals Skipping repository deps/openggsn Skipping repository deps/libsmpp34 Skipping repository deps/libosmo-abis Removing manuals/OsmoBSCMGCP/build Removing manuals/OsmoBSCMGCP/common Removing manuals/OsmoBSCMGCP/generated/ Removing manuals/OsmoBSCMGCP/osmo-bsc-mgcp-vty-reference.pdf Removing manuals/OsmoBSCMGCP/out/ Removing manuals/OsmoBSCNAT/build Removing manuals/OsmoBSCNAT/common Removing manuals/OsmoBSCNAT/generated/ Removing manuals/OsmoBSCNAT/osmo-bsc-nat-vty-reference.pdf Removing manuals/OsmoBSCNAT/out/ Removing manuals/OsmoNITB/build Removing manuals/OsmoNITB/common Removing manuals/OsmoNITB/generated/ Removing manuals/OsmoNITB/osmonitb-usermanual.check Removing manuals/OsmoNITB/osmonitb-usermanual.html Removing manuals/OsmoNITB/osmonitb-usermanual.pdf Removing manuals/OsmoNITB/osmonitb-usermanual__1.png Removing manuals/OsmoNITB/osmonitb-usermanual__10.png Removing manuals/OsmoNITB/osmonitb-usermanual__11.png Removing manuals/OsmoNITB/osmonitb-usermanual__12.png Removing manuals/OsmoNITB/osmonitb-usermanual__2.png Removing manuals/OsmoNITB/osmonitb-usermanual__3.png Removing manuals/OsmoNITB/osmonitb-usermanual__4.png Removing manuals/OsmoNITB/osmonitb-usermanual__5.png Removing manuals/OsmoNITB/osmonitb-usermanual__6.png Removing manuals/OsmoNITB/osmonitb-usermanual__7.png Removing manuals/OsmoNITB/osmonitb-usermanual__8.png Removing manuals/OsmoNITB/osmonitb-usermanual__9.png Removing manuals/OsmoNITB/osmonitb-vty-reference.pdf Removing manuals/OsmoNITB/out/ + [ -d ] + [ -d layer1-headers ] + [ x--disable-iu = x--enable-iu ] + . osmo-build.sh [INFO] source sanity check to ensure that sourcing script holds necessary functions artifact_deps is a shell function build_deps is a shell function build_project is a shell function [INFO] check whether necessary dependency build scripts are in PATH osmo-build-dep.sh is /build_bin/osmo-build-dep.sh + log source sanity check to ensure that sourcing script holds necessary functions + set +x + type artifact_deps + type build_deps + type build_project + log check whether necessary dependency build scripts are in PATH + set +x + type osmo-build-dep.sh osmo-deps.sh is /build_bin/osmo-deps.sh + type osmo-deps.sh + build + init_build + [ -z master-openbsc/IU=--disable-iu,MGCP=--enable-mgcp-transcoding,SMPP=--enable-smpp,a4=default,label=osmocom-master-debian9 ] + [ -z /artifact_store ] + pwd + base=/build + deps=/build/deps + inst=/build/deps/install + rm -rf /build/deps + git config --get --local remote.origin.url + + cut -d . -f1 cut -d / -f4 + project=openbsc + echo master-openbsc/IU=--disable-iu,MGCP=--enable-mgcp-transcoding,SMPP=--enable-smpp,a4=default,label=osmocom-master-debian9 + tr / _ + job_name=master-openbsc_IU=--disable-iu,MGCP=--enable-mgcp-transcoding,SMPP=--enable-smpp,a4=default,label=osmocom-master-debian9 + export base deps inst project job_name + export PKG_CONFIG_PATH=/build/deps/install/lib/pkgconfig: + export LD_LIBRARY_PATH=/build/deps/install/lib + log openbsc build initialized + set +x [INFO] openbsc build initialized + artifact_name + [ -d /build/deps ] + artifact_deps branch_and_rev_of_remote_repo + branch_and_rev_of_remote_repo libosmocore + [ -z ] + branch=master + echo master + tr / _ + branch=master + git ls-remote git://git.osmocom.org/libosmocore refs/heads/master + rev=6a469e13e3415bc5cee01e160d470df99c8b2ebe refs/heads/master + [ 6a469e13e3415bc5cee01e160d470df99c8b2ebe refs/heads/master = ] + echo 6a469e13e3415bc5cee01e160d470df99c8b2ebe refs/heads/master + cut -c 1-7 + rev=6a469e1 + echo libosmocore.master.6a469e1 + x=libosmocore.master.6a469e1 + branch_and_rev_of_remote_repo libosmo-abis + [ -z ] + branch=master + echo master + tr / _ + branch=master + git ls-remote git://git.osmocom.org/libosmo-abis refs/heads/master + rev=3a2aa0975a4bdc005d424a70496ca85169a73817 refs/heads/master + [ 3a2aa0975a4bdc005d424a70496ca85169a73817 refs/heads/master = ] + + cutecho -c 1-7 3a2aa0975a4bdc005d424a70496ca85169a73817 refs/heads/master + rev=3a2aa09 + echo libosmo-abis.master.3a2aa09 + x=libosmocore.master.6a469e1_libosmo-abis.master.3a2aa09 + branch_and_rev_of_remote_repo libosmo-netif + [ -z ] + branch=master + echo master + tr / _ + branch=master + git ls-remote git://git.osmocom.org/libosmo-netif refs/heads/master + rev=fe3527da2ac691c961f767c97d70bfe00d1e4d10 refs/heads/master + [ fe3527da2ac691c961f767c97d70bfe00d1e4d10 refs/heads/master = ] + echo fe3527da2ac691c961f767c97d70bfe00d1e4d10 refs/heads/master + cut -c 1-7 + rev=fe3527d + echo libosmo-netif.master.fe3527d + x=libosmocore.master.6a469e1_libosmo-abis.master.3a2aa09_libosmo-netif.master.fe3527d + branch_and_rev_of_remote_repo libosmo-sccp + [ -z x ] + branch= + echo + tr / _ + branch= + git ls-remote git://git.osmocom.org/libosmo-sccp refs/heads/ + rev= + [ = ] + echo libosmo-sccp. + x=libosmocore.master.6a469e1_libosmo-abis.master.3a2aa09_libosmo-netif.master.fe3527d_libosmo-sccp. + branch_and_rev_of_remote_repo libsmpp34 + [ -z ] + branch=master + echo master + tr / _ + branch=master + git ls-remote git://git.osmocom.org/libsmpp34 refs/heads/master + rev=3cf5229fa0502e759d45e8397b2e7341ab418165 refs/heads/master + [ 3cf5229fa0502e759d45e8397b2e7341ab418165 refs/heads/master = ] + echo 3cf5229fa0502e759d45e8397b2e7341ab418165 refs/heads/master + cut -c 1-7 + rev=3cf5229 + echo libsmpp34.master.3cf5229 + x=libosmocore.master.6a469e1_libosmo-abis.master.3a2aa09_libosmo-netif.master.fe3527d_libosmo-sccp._libsmpp34.master.3cf5229 + branch_and_rev_of_remote_repo openggsn + [ -z ] + branch=master + echo master + tr / _ + branch=master + git ls-remote git://git.osmocom.org/openggsn refs/heads/master + rev=242266da789e512dce0e9947864844d6a946d3b1 refs/heads/master + [ 242266da789e512dce0e9947864844d6a946d3b1 refs/heads/master = ] + echo 242266da789e512dce0e9947864844d6a946d3b1 refs/heads/master + cut -c 1-7 + rev=242266d + echo openggsn.master.242266d + x=libosmocore.master.6a469e1_libosmo-abis.master.3a2aa09_libosmo-netif.master.fe3527d_libosmo-sccp._libsmpp34.master.3cf5229_openggsn.master.242266d + [ x--disable-iu = x--enable-iu ] + echo libosmocore.master.6a469e1_libosmo-abis.master.3a2aa09_libosmo-netif.master.fe3527d_libosmo-sccp._libsmpp34.master.3cf5229_openggsn.master.242266d.tar.gz + artifact_name=libosmocore.master.6a469e1_libosmo-abis.master.3a2aa09_libosmo-netif.master.fe3527d_libosmo-sccp._libsmpp34.master.3cf5229_openggsn.master.242266d.tar.gz + [ -f /artifact_store/master-openbsc_IU=--disable-iu,MGCP=--enable-mgcp-transcoding,SMPP=--enable-smpp,a4=default,label=osmocom-master-debian9/libosmocore.master.6a469e1_libosmo-abis.master.3a2aa09_libosmo-netif.master.fe3527d_libosmo-sccp._libsmpp34.master.3cf5229_openggsn.master.242266d.tar.gz ] + log Compile openbsc dependencies from source. + set +x + mkdir -p /build/deps [INFO] Compile openbsc dependencies from source. + rm -rf /build/deps/install + build_deps + osmo-build-dep.sh libosmocore master ac_cv_path_DOXYGEN=false =============================== libosmocore =============================== + mkdir -p /build/deps + cd /build/deps + osmo-deps.sh libosmocore master + project=libosmocore + branch=master + git branch -a + grep -c remotes/origin/master$ + [ x1 != x0 ] + branch=origin/master + test -d libosmocore + git clone git://git.osmocom.org/libosmocore libosmocore Cloning into 'libosmocore'... + cd libosmocore + git fetch --tags origin + git fetch origin + deps= osmo-clean-workspace.sh + chmod -R +w . + git checkout -f HEAD Your branch is up-to-date with 'origin/master'. + git clean -dxf + [ -d ] + [ -d layer1-headers ] + git checkout -f origin/master Note: checking out 'origin/master'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b new_branch_name HEAD is now at 6a469e1... bssgp_tx_bvc_unblock(): Fix log message + git rev-parse HEAD 6a469e13e3415bc5cee01e160d470df99c8b2ebe + cd libosmocore + mkdir -p /build/deps/install/stow + autoreconf --install --force autom4te: cannot create /tmp/arkI6eJn/am4t1424.109: No space left on device at /usr/bin/autom4te line 969. aclocal: error: echo failed with exit status: 28 autoreconf: aclocal failed with exit status: 28 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Wed Feb 20 06:19:29 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 20 Feb 2019 06:19:29 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--disable-?= =?UTF-8?Q?iu,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#8914?= Message-ID: <909248426.323.1550643569439.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 89.30 KB...] checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... ./configure: line 1649: cannot create temp file for here-document: No space left on device sed: can't read conftest.c: No such file or directory no checking for sys/stat.h... ./configure: line 1649: cannot create temp file for here-document: No space left on device sed: can't read conftest.c: No such file or directory no checking for stdlib.h... ./configure: line 1649: cannot create temp file for here-document: No space left on device sed: can't read conftest.c: No such file or directory no checking for string.h... ./configure: line 1649: cannot create temp file for here-document: No space left on device sed: can't read conftest.c: No such file or directory no checking for memory.h... ./configure: line 1649: cannot create temp file for here-document: No space left on device sed: can't read conftest.c: No such file or directory no checking for strings.h... ./configure: line 1649: cannot create temp file for here-document: No space left on device sed: can't read conftest.c: No such file or directory no checking for inttypes.h... ./configure: line 1649: cannot create temp file for here-document: No space left on device sed: can't read conftest.c: No such file or directory no checking for stdint.h... ./configure: line 1649: cannot create temp file for here-document: No space left on device ./configure: line 1574: printf: write error: No space left on device ./configure: line 1581: printf: write error: No space left on device sed: can't read conftest.c: No such file or directory ./configure: line 1662: printf: write error: No space left on device no ./configure: line 1644: printf: write error: No space left on device checking for unistd.h... ./configure: line 1649: cannot create temp file for here-document: No space left on device ./configure: line 1566: printf: write error: No space left on device ./configure: line 1574: printf: write error: No space left on device ./configure: line 1581: printf: write error: No space left on device sed: can't read conftest.c: No such file or directory ./configure: line 1662: printf: write error: No space left on device no ./configure: line 1644: printf: write error: No space left on device checking for dlfcn.h... ./configure: line 1649: cannot create temp file for here-document: No space left on device ./configure: line 1566: printf: write error: No space left on device ./configure: line 1574: printf: write error: No space left on device ./configure: line 1581: printf: write error: No space left on device sed: can't read conftest.c: No such file or directory ./configure: line 1662: printf: write error: No space left on device no ./configure: line 7761: printf: write error: No space left on device checking for objdir... ./configure: line 7776: printf: write error: No space left on device _libs ./configure: line 7784: cannot create temp file for here-document: No space left on device ./configure: line 8019: echo: write error: No space left on device /bin/sed: couldn't flush stdout: No space left on device ./configure: line 8025: echo: write error: No space left on device /bin/sed: couldn't flush stdout: No space left on device ./configure: line 8047: printf: write error: No space left on device checking if gcc supports -fno-rtti -fno-exceptions... ./configure: line 8054: echo: write error: No space left on device ./configure: line 8065: echo: write error: No space left on device ./configure: line 8069: echo: write error: No space left on device ./configure: line 8082: printf: write error: No space left on device no ./configure: line 8409: printf: write error: No space left on device checking for gcc option to produce PIC... ./configure: line 8416: printf: write error: No space left on device -fPIC -DPIC ./configure: line 8424: printf: write error: No space left on device checking if gcc PIC flag -fPIC -DPIC works... ./configure: line 8431: echo: write error: No space left on device ./configure: line 8442: echo: write error: No space left on device ./configure: line 8446: echo: write error: No space left on device no ./configure: line 8459: printf: write error: No space left on device ./configure: line 8488: printf: write error: No space left on device checking if gcc static flag -static works... ./configure: line 8496: echo: write error: No space left on device no checking if gcc supports -c -o file.o... ./configure: line 8516: printf: write error: No space left on device ./configure: line 8531: printf: write error: No space left on device mkdir: cannot create directory 'conftest': No space left on device ./configure: line 8539: cd: conftest: No such file or directory mkdir: cannot create directory 'out': No space left on device ./configure: line 8541: echo: write error: No space left on device ./configure: line 8552: echo: write error: No space left on device ./configure: line 8553: out/conftest.err: No such file or directory cat: out/conftest.err: No such file or directory ./configure: line 8556: echo: write error: No space left on device rmdir: failed to remove 'out': No such file or directory ./configure: line 8578: printf: write error: No space left on device ./configure: line 8586: printf: write error: No space left on device no checking if gcc supports -c -o file.o... (cached) ./configure: line 8633: printf: write error: No space left on device ./configure: line 8642: printf: write error: No space left on device no checking if we can lock with hard links... yes ./configure: line 8650: printf: write error: No space left on device ./configure: line 8666: printf: write error: No space left on device checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... ./configure: line 9823: printf: write error: No space left on device yes ./configure: line 9860: printf: write error: No space left on device checking whether -lc should be explicitly linked in... ./configure: line 9866: echo: write error: No space left on device checking dynamic linker characteristics... ./configure: line 9903: printf: write error: No space left on device ./configure: line 10063: printf: write error: No space left on device ./configure: line 10552: cannot create temp file for here-document: No space left on device ./configure: line 1604: printf: write error: No space left on device ./configure: line 1612: printf: write error: No space left on device ./configure: line 1622: printf: write error: No space left on device sed: can't read conftest.c: No such file or directory ./configure: line 10797: printf: write error: No space left on device GNU/Linux ld.so ./configure: line 10904: printf: write error: No space left on device checking how to hardcode library paths into programs... immediate ./configure: line 10929: printf: write error: No space left on device checking whether stripping libraries is possible... ./configure: line 11469: printf: write error: No space left on device ./configure: line 11474: printf: write error: No space left on device ./configure: line 11509: printf: write error: No space left on device yes checking if libtool supports shared libraries... ./configure: line 11511: printf: write error: No space left on device yes ./configure: line 11514: printf: write error: No space left on device checking whether to build shared libraries... yes ./configure: line 11535: printf: write error: No space left on device ./configure: line 11538: printf: write error: No space left on device checking whether to build static libraries... ./configure: line 11542: printf: write error: No space left on device yes checking for pkg-config... ./configure: line 11582: printf: write error: No space left on device ./configure: line 11600: printf: write error: No space left on device ./configure: line 11613: printf: write error: No space left on device /usr/bin/pkg-config ./configure: line 11679: printf: write error: No space left on device checking for pkg-config... ./configure: line 11697: printf: write error: No space left on device ./configure: line 11709: printf: write error: No space left on device /usr/bin/pkg-config ./configure: line 11734: printf: write error: No space left on device checking pkg-config is at least version 0.20... ./configure: line 11737: printf: write error: No space left on device yes ./configure: line 11767: printf: write error: No space left on device checking if gcc supports -fvisibility=hidden... ./configure: line 11769: cannot create temp file for here-document: No space left on device ./configure: line 1566: printf: write error: No space left on device ./configure: line 1574: printf: write error: No space left on device ./configure: line 1581: printf: write error: No space left on device sed: can't read conftest.c: No such file or directory ./configure: line 11778: printf: write error: No space left on device no ./configure: line 11790: printf: write error: No space left on device checking for LIBOSMOCORE... ./configure: line 11797: printf: write error: No space left on device ./configure: line 11800: printf: write error: No space left on device ./configure: line 11814: printf: write error: No space left on device ./configure: line 11817: printf: write error: No space left on device yes ./configure: line 11875: printf: write error: No space left on device checking for LIBOSMOVTY... ./configure: line 11881: printf: write error: No space left on device ./configure: line 11888: printf: write error: No space left on device ./configure: line 11891: printf: write error: No space left on device ./configure: line 11905: printf: write error: No space left on device ./configure: line 11908: printf: write error: No space left on device yes checking for LIBOSMOGSM... ./configure: line 11966: printf: write error: No space left on device ./configure: line 11972: printf: write error: No space left on device ./configure: line 11979: printf: write error: No space left on device ./configure: line 11982: printf: write error: No space left on device ./configure: line 11996: printf: write error: No space left on device ./configure: line 11999: printf: write error: No space left on device ./configure: line 12057: printf: write error: No space left on device ./configure: line 12063: printf: write error: No space left on device ./configure: line 12070: printf: write error: No space left on device yes checking for ORTP... ./configure: line 12073: printf: write error: No space left on device ./configure: line 12087: printf: write error: No space left on device ./configure: line 12090: printf: write error: No space left on device ./configure: line 12148: printf: write error: No space left on device yes ./configure: line 1833: printf: write error: No space left on device checking dahdi/user.h usability... ./configure: line 1835: cannot create temp file for here-document: No space left on device ./configure: line 1566: printf: write error: No space left on device ./configure: line 1574: printf: write error: No space left on device ./configure: line 1581: printf: write error: No space left on device sed: can't read conftest.c: No such file or directory ./configure: line 1846: printf: write error: No space left on device no ./configure: line 1850: printf: write error: No space left on device checking dahdi/user.h presence... ./configure: line 1852: cannot create temp file for here-document: No space left on device ./configure: line 1680: printf: write error: No space left on device ./configure: line 1688: printf: write error: No space left on device ./configure: line 1695: printf: write error: No space left on device sed: can't read conftest.c: No such file or directory ./configure: line 1862: printf: write error: No space left on device ./configure: line 1890: printf: write error: No space left on device no checking for dahdi/user.h... ./configure: line 1898: printf: write error: No space left on device no ./configure: line 12162: printf: write error: No space left on device configure: WARNING: DAHDI input driver will not be built ./configure: line 12200: cannot create temp file for here-document: No space left on device ./configure: line 1566: printf: write error: No space left on device ./configure: line 1574: printf: write error: No space left on device ./configure: line 1581: printf: write error: No space left on device sed: can't read conftest.c: No such file or directory ./configure: line 12218: printf: write error: No space left on device ./configure: line 12226: cannot create temp file for here-document: No space left on device ./configure: line 1566: printf: write error: No space left on device ./configure: line 1574: printf: write error: No space left on device ./configure: line 1581: printf: write error: No space left on device sed: can't read conftest.c: No such file or directory ./configure: line 12245: printf: write error: No space left on device ./configure: line 12251: printf: write error: No space left on device CFLAGS="-g -O2 -Wall" ./configure: line 12253: printf: write error: No space left on device CPPFLAGS=" -Wall" ./configure: line 12258: cannot create temp file for here-document: No space left on device sed: couldn't write 82 items to stdout: No space left on device ./configure: line 12366: printf: write error: No space left on device checking that generated files are newer than configure... done ./configure: line 12372: printf: write error: No space left on device configure: creating ./config.status ./configure: line 12395: printf: write error: No space left on device ./configure: line 12398: cannot create temp file for here-document: No space left on device ./configure: line 12412: cannot create temp file for here-document: No space left on device ./configure: line 12782: cannot create temp file for here-document: No space left on device ./configure: line 12810: cannot create temp file for here-document: No space left on device ./configure: line 12818: cannot create temp file for here-document: No space left on device ./configure: line 12850: cannot create temp file for here-document: No space left on device ./configure: line 12869: cannot create temp file for here-document: No space left on device ./configure: line 12946: cannot create temp file for here-document: No space left on device ./configure: line 12957: cannot create temp file for here-document: No space left on device ./configure: line 12968: cannot create temp file for here-document: No space left on device ./configure: line 13254: cannot create temp file for here-document: No space left on device ./configure: line 13338: echo: write error: No space left on device ./configure: line 424: printf: write error: No space left on device configure: error: could not make ./config.status ./configure: line 4: echo: write error: No space left on device ./configure: line 8: printf: write error: No space left on device ./configure: line 9: echo: write error: No space left on device sort: write failed: standard output: No space left on device sort: write error ./configure: line 40: echo: write error: No space left on device ./configure: line 44: printf: write error: No space left on device ./configure: line 45: echo: write error: No space left on device sort: fflush failed: standard output: No space left on device sort: write error ./configure: line 54: echo: write error: No space left on device ./configure: line 82: printf: write error: No space left on device Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Wed Feb 20 06:25:54 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 20 Feb 2019 06:25:54 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_norm?= =?UTF-8?Q?al_:_master-osmo-sgsn_=C2=BB_--disa?= =?UTF-8?Q?ble-iu,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#8915?= In-Reply-To: <909248426.323.1550643569439.JavaMail.jenkins@jenkins.osmocom.org> References: <909248426.323.1550643569439.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <745472900.324.1550643954826.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Wed Feb 20 07:30:12 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 07:30:12 +0000 Subject: Change in libosmocore[master]: gprs_ns: Add missing NSVCI IE to NS-BLOCK-ACK message In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12969 ) Change subject: gprs_ns: Add missing NSVCI IE to NS-BLOCK-ACK message ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12969/1/src/gb/gprs_ns.c File src/gb/gprs_ns.c: https://gerrit.osmocom.org/#/c/12969/1/src/gb/gprs_ns.c at 560 PS1, Line 560: log_set_context(LOG_CTX_GB_NSVC, nsvc); > You most probably want to remove the context once you get out of the function, to avoid having non-r [?] the style of this function follows the style of all the other functions in this file. You raise an interesting question, but I don't immediately see any code path where within a single "read from select" callback from libosmocore we would be processing messages for multiple NSVCs. Each incoming message relates to zero to one NSVC, and any messages transmitted as a result are also related to that NS-VC. -- To view, visit https://gerrit.osmocom.org/12969 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie7205e99d57f1e42d941f1be2460d8c9f46aadfe Gerrit-Change-Number: 12969 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 20 Feb 2019 07:30:12 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 07:30:52 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 07:30:52 +0000 Subject: Change in osmo-bts[master]: oc2g: fsync requires fd instead of file stream In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12970 ) Change subject: oc2g: fsync requires fd instead of file stream ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12970 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Idcd9dc48ea2e1f80bfdf5cf8b6bf55d8150fe0d2 Gerrit-Change-Number: 12970 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Wed, 20 Feb 2019 07:30:52 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 07:31:00 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 07:31:00 +0000 Subject: Change in osmo-bts[master]: oc2g: Remove unused variables In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12971 ) Change subject: oc2g: Remove unused variables ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12971 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6738adb6b0ae50905351c67c259d7a77cb250624 Gerrit-Change-Number: 12971 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Wed, 20 Feb 2019 07:31:00 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 07:31:08 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 07:31:08 +0000 Subject: Change in osmo-bts[master]: oc2g: Remove unused static function In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12972 ) Change subject: oc2g: Remove unused static function ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12972 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4d0a476f84bc9e92e02f94c3990daddeeaa3c5d5 Gerrit-Change-Number: 12972 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Wed, 20 Feb 2019 07:31:08 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 07:41:05 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 20 Feb 2019 07:41:05 +0000 Subject: Change in osmo-bts[master]: oc2g: Fix compilation error (comment mark inside comment) In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12962 ) Change subject: oc2g: Fix compilation error (comment mark inside comment) ...................................................................... Patch Set 2: Code-Review+1 A better approach would be to use: #if 0 ... #endif instead of abusing comments. -- To view, visit https://gerrit.osmocom.org/12962 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib27b31825744ea397b5b4eb258da78f5f834895c Gerrit-Change-Number: 12962 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 20 Feb 2019 07:41:05 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 07:41:29 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 20 Feb 2019 07:41:29 +0000 Subject: Change in osmo-bts[master]: oc2g: Add get_hwversion_desc to header file In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12963 ) Change subject: oc2g: Add get_hwversion_desc to header file ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12963 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic6826d8c8ff5c648158493454a80704bb956b51d Gerrit-Change-Number: 12963 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 20 Feb 2019 07:41:29 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 07:44:11 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 20 Feb 2019 07:44:11 +0000 Subject: Change in osmo-bts[master]: oc2g: Cleanup of get_hwversion_desc In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12964 ) Change subject: oc2g: Cleanup of get_hwversion_desc ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12964 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5565b904c72a9ac1775818416f05c64722d366b2 Gerrit-Change-Number: 12964 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 20 Feb 2019 07:44:11 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 07:44:44 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 20 Feb 2019 07:44:44 +0000 Subject: Change in osmo-bts[master]: oc2g: led_sleep_cb: pass correct ptr to llist_move_tail In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12965 ) Change subject: oc2g: led_sleep_cb: pass correct ptr to llist_move_tail ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12965 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie393a21bc3a725520343c70941cb4f591b313420 Gerrit-Change-Number: 12965 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 20 Feb 2019 07:44:44 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 07:45:33 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 20 Feb 2019 07:45:33 +0000 Subject: Change in osmo-bts[master]: oc2g: fsync requires fd instead of file stream In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12970 ) Change subject: oc2g: fsync requires fd instead of file stream ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12970 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Idcd9dc48ea2e1f80bfdf5cf8b6bf55d8150fe0d2 Gerrit-Change-Number: 12970 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 20 Feb 2019 07:45:33 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 07:46:20 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 20 Feb 2019 07:46:20 +0000 Subject: Change in osmo-bts[master]: oc2g: Remove unused variables In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12971 ) Change subject: oc2g: Remove unused variables ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12971 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6738adb6b0ae50905351c67c259d7a77cb250624 Gerrit-Change-Number: 12971 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 20 Feb 2019 07:46:20 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 07:47:20 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 20 Feb 2019 07:47:20 +0000 Subject: Change in osmo-bts[master]: oc2g: vty: Compilation error fixes due to commented code In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12973 ) Change subject: oc2g: vty: Compilation error fixes due to commented code ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12973/1/src/osmo-bts-oc2g/oc2gbts_vty.c File src/osmo-bts-oc2g/oc2gbts_vty.c: https://gerrit.osmocom.org/#/c/12973/1/src/osmo-bts-oc2g/oc2gbts_vty.c at 80 PS1, Line 80: /* Same here, why not to use #if 0? -- To view, visit https://gerrit.osmocom.org/12973 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id2b16b9acd15d0c80085fac0fdc2a57173ebb0a0 Gerrit-Change-Number: 12973 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 20 Feb 2019 07:47:20 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Wed Feb 20 08:05:11 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 20 Feb 2019 08:05:11 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_m?= =?UTF-8?Q?aster-openbsc_=C2=BB_--disable-iu,--disa?= =?UTF-8?Q?ble-mgcp-transcoding,--enable-smpp,?= =?UTF-8?Q?default,osmocom-master-debian9_#3907?= In-Reply-To: <1474280249.321.1550643561593.JavaMail.jenkins@jenkins.osmocom.org> References: <1474280249.321.1550643561593.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1248170244.327.1550649911751.JavaMail.jenkins@jenkins.osmocom.org> See From jenkins at lists.osmocom.org Wed Feb 20 08:05:30 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 20 Feb 2019 08:05:30 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_m?= =?UTF-8?Q?aster-openbsc_=C2=BB_--disable-iu,--enab?= =?UTF-8?Q?le-mgcp-transcoding,--enable-smpp,d?= =?UTF-8?Q?efault,osmocom-master-debian9_#3907?= In-Reply-To: <1882370717.322.1550643567582.JavaMail.jenkins@jenkins.osmocom.org> References: <1882370717.322.1550643567582.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <522898801.328.1550649930157.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Wed Feb 20 08:08:38 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 20 Feb 2019 08:08:38 +0000 Subject: Change in libosmocore[master]: gprs_ns.c: cosmetic whitespace fixes In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12967 ) Change subject: gprs_ns.c: cosmetic whitespace fixes ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12967 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic19f65bdc5527ad5a69d0a92320ce5f672bf4d2b Gerrit-Change-Number: 12967 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 20 Feb 2019 08:08:38 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 08:09:04 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 20 Feb 2019 08:09:04 +0000 Subject: Change in libosmocore[master]: gprs_ns: Declare gprs_ns_tx_alive*() in header file In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12968 ) Change subject: gprs_ns: Declare gprs_ns_tx_alive*() in header file ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12968 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib073e9c93fcdf408b63000182e90aabce37f687e Gerrit-Change-Number: 12968 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 20 Feb 2019 08:09:04 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 08:14:54 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Wed, 20 Feb 2019 08:14:54 +0000 Subject: Change in osmo-ci[master]: docker: Add lua-socket for the OsmocomBB<->GSM Tester communication Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/12974 Change subject: docker: Add lua-socket for the OsmocomBB<->GSM Tester communication ...................................................................... docker: Add lua-socket for the OsmocomBB<->GSM Tester communication Change-Id: I9156c63c64dd32a91136240913baa7e4a5cdc893 --- M docker/Dockerfile_osmocom_jenkins.amd64 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/74/12974/1 diff --git a/docker/Dockerfile_osmocom_jenkins.amd64 b/docker/Dockerfile_osmocom_jenkins.amd64 index 25a9f61..b2c1c9a 100644 --- a/docker/Dockerfile_osmocom_jenkins.amd64 +++ b/docker/Dockerfile_osmocom_jenkins.amd64 @@ -50,7 +50,7 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get install -y patchelf # Be able to run the osmo-gsm-tester -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y dbus tcpdump sqlite3 python3 python3-yaml python3-mako python3-gi ofono python3-pip python3-usb +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y dbus tcpdump sqlite3 python3 python3-yaml python3-mako python3-gi ofono python3-pip python3-usb lua-socket RUN pip3 install git+git://github.com/podshumok/python-smpplib.git RUN pip3 install pydbus RUN pip3 install pysispm -- To view, visit https://gerrit.osmocom.org/12974 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I9156c63c64dd32a91136240913baa7e4a5cdc893 Gerrit-Change-Number: 12974 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 08:18:04 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 20 Feb 2019 08:18:04 +0000 Subject: Change in osmocom-bb[master]: firmware/board: introduce new FCDEV3B (FreeCalypso) target In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12888 ) Change subject: firmware/board: introduce new FCDEV3B (FreeCalypso) target ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I09bd35a18d3ea094000050169a62fd82ba6eccfe Gerrit-Change-Number: 12888 Gerrit-PatchSet: 4 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 20 Feb 2019 08:18:04 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 08:18:15 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 20 Feb 2019 08:18:15 +0000 Subject: Change in osmocom-bb[master]: firmware/board: introduce new FCDEV3B (FreeCalypso) target In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/12888 ) Change subject: firmware/board: introduce new FCDEV3B (FreeCalypso) target ...................................................................... firmware/board: introduce new FCDEV3B (FreeCalypso) target FCDEV3B (stands for "FreeCalypso development board, triband") is a GSM mobile station development board by FreeCalypso project. The board features the same legendary TI Calypso GSM MS chipset that was used in commercial GSM/GPRS modems such as Openmoko's, and functions as a standalone (or "bare") GSM modem. For more information, please see the project's web side: https://www.freecalypso.org/fcdev3b.html. Change-Id: I09bd35a18d3ea094000050169a62fd82ba6eccfe Related: OS#3581 --- M src/target/firmware/Makefile A src/target/firmware/board/fcdev3b/init.c 2 files changed, 148 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, approved diff --git a/src/target/firmware/Makefile b/src/target/firmware/Makefile index 22fa746..1196d10 100644 --- a/src/target/firmware/Makefile +++ b/src/target/firmware/Makefile @@ -24,7 +24,7 @@ # # List of all supported boards (meant to be overridden on command line) -BOARDS?=compal_e88 compal_e86 compal_e99 se_j100 gta0x pirelli_dpl10 +BOARDS?=compal_e88 compal_e86 compal_e99 se_j100 gta0x fcdev3b pirelli_dpl10 # Framebuffer support, board specific drivers FB_OBJS=fb/framebuffer.o fb/font.o fb/helvR08.o fb/helvB14.o fb/c64.o \ @@ -46,6 +46,12 @@ battery/dummy.o $(FB_dummy_OBJS) BOARD_gta0x_ENVIRONMENTS=highram +# FreeCalypso FCDEV3B +BOARD_fcdev3b_OBJS=$(calypso_COMMON_OBJS) board/fcdev3b/init.o \ + board/gta0x/rffe_gta0x_triband.o board/gta0x/rf_power.o \ + battery/dummy.o $(FB_dummy_OBJS) +BOARD_fcdev3b_ENVIRONMENTS=highram + # Pirelli DP-L10 BOARD_pirelli_dpl10_OBJS=$(calypso_COMMON_OBJS) board/pirelli_dpl10/init.o \ board/pirelli_dpl10/rffe_dpl10_triband.o board/pirelli_dpl10/rf_power.o \ diff --git a/src/target/firmware/board/fcdev3b/init.c b/src/target/firmware/board/fcdev3b/init.c new file mode 100644 index 0000000..92be667 --- /dev/null +++ b/src/target/firmware/board/fcdev3b/init.c @@ -0,0 +1,141 @@ +/* Initialization for the FreeCalypso FCDEV3B modem */ + +/* Based on board/gta0x/init.c with the following obnoxious legalese: + * + * (C) 2010 by Harald Welte + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include + +#define ARMIO_LATCH_OUT 0xfffe4802 +#define IO_CNTL_REG 0xfffe4804 +#define ARM_CONF_REG 0xfffef006 +#define ASIC_CONF_REG 0xfffef008 +#define IO_CONF_REG 0xfffef00a + +static void board_io_init(void) +{ + uint16_t reg; + + reg = readw(ASIC_CONF_REG); + /* TWL3025: Set SPI+RIF RX clock to rising edge */ + reg |= (1 << 13) | (1 << 14); + writew(reg, ASIC_CONF_REG); + + /* + * Most Calypso peripheral interface signals are unconnected + * on this modem. We configure them to be GPIOs in IO_CONF_REG, + * then configure them to be outputs in IO_CNTL_REG, then set + * the outputs to 0 in ARMIO_LATCH_OUT. + * + * Differences from Openmoko GTA0x: + * + * GPIO1 output needs to be 1 to enable the loudspeaker amplifier + * GPIO3 needs to be configured as an input + * I/O 9-12 are MCSI rather than GPIOs + */ + writew(0x0215, IO_CONF_REG); + writew(0xDC08, IO_CNTL_REG); + writew(0x0002, ARMIO_LATCH_OUT); + + /* configure ADD(22), needed for second half of flash */ + reg = readw(ARM_CONF_REG); + reg |= (1 << 3); + writew(reg, ARM_CONF_REG); +} + +void board_init(int with_irq) +{ + /* Configure the memory interface */ + /* Using the same settings as the official FreeCalypso fw */ + calypso_mem_cfg(CALYPSO_nCS0, 4, CALYPSO_MEM_16bit, 1); + calypso_mem_cfg(CALYPSO_nCS1, 4, CALYPSO_MEM_16bit, 1); + calypso_mem_cfg(CALYPSO_nCS2, 4, CALYPSO_MEM_16bit, 1); + calypso_mem_cfg(CALYPSO_nCS3, 4, CALYPSO_MEM_16bit, 1); + calypso_mem_cfg(CALYPSO_CS4, 4, CALYPSO_MEM_16bit, 1); + calypso_mem_cfg(CALYPSO_nCS6, 0, CALYPSO_MEM_32bit, 1); + calypso_mem_cfg(CALYPSO_nCS7, 0, CALYPSO_MEM_32bit, 0); + + /* Set VTCXO_DIV2 = 1, configure PLL for 104 MHz and give ARM half of that */ + calypso_clock_set(2, CALYPSO_PLL13_104_MHZ, ARM_MCLK_DIV_2); + + /* Configure the RHEA bridge with some sane default values */ + calypso_rhea_cfg(0, 0, 0xff, 0, 1, 0, 0); + + /* Initialize board-specific GPIO */ + board_io_init(); + + /* Enable bootrom mapping to route exception vectors to RAM */ + calypso_bootrom(with_irq); + calypso_exceptions_install(); + + /* Initialize interrupt controller */ + if (with_irq) + irq_init(); + + sercomm_bind_uart(UART_MODEM); + cons_bind_uart(UART_IRDA); + + /* initialize MODEM UART to be used for sercomm */ + uart_init(UART_MODEM, with_irq); + uart_baudrate(UART_MODEM, UART_115200); + + /* Initialize IRDA UART to be used for old-school console code. + * note: IRDA uart only accessible on C115 and C117 PCB */ + uart_init(UART_IRDA, with_irq); + uart_baudrate(UART_IRDA, UART_115200); + + /* Initialize hardware timers */ + hwtimer_init(); + + /* Initialize DMA controller */ + dma_init(); + + /* Initialize real time clock */ + rtc_init(); + + /* Initialize system timers (uses hwtimer 2) */ + timer_init(); + + /* Initialize ABB driver (uses SPI) */ + twl3025_init(); +} -- To view, visit https://gerrit.osmocom.org/12888 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I09bd35a18d3ea094000050169a62fd82ba6eccfe Gerrit-Change-Number: 12888 Gerrit-PatchSet: 4 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 08:18:16 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 20 Feb 2019 08:18:16 +0000 Subject: Change in osmocom-bb[master]: firmware/lib: introduce TIFFS filesystem support In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/12885 ) Change subject: firmware/lib: introduce TIFFS filesystem support ...................................................................... firmware/lib: introduce TIFFS filesystem support All known TI GSM firmwares implement some kind of flash file system, or FFS. We call it TIFFS (Texas Instruments FFS) because it is TI's invention. TIFFS is a file system with a hierarchical directory tree structure, and with Unixy forward-slash-separated, case-sensitive pathnames; the semantics of "what is a file" and "what is a directory" are exactly the same as in UNIX; and TIFFS even supports symlinks, although that support is a little under-developed, and apparently no FFS symlinks were ever used in any production GSM device. Thus the FFS implemented in TI-based GSM devices (modems and "dumbphone" handsets) is really no different from, for example, JFFS2 in embedded Linux systems. The FFS in a GSM device typically stores two kinds of content: - Factory data: IMEI, RF calibration values, device make/model/revision ID strings etc. These files are expected to be programmed on the factory production line and not changed afterward. - Dynamic data written into the FFS in normal device operation: contacts, settings / preferences, call history, received SMS, etc. It should be noted that both Compal (Mot C1xx) and Foxconn (Pirelli DP-L10) vendors moved their vital per-unit factory data out of the FFS into their own ad hoc flash data structures, leaving their FFS only for less critical data. However, we do enable TIFFS access for them anyway. The location of TIFFS within the flash memory of a given GSM device is defined by the firmware design of that device, but is always some integral number of contiguous flash sectors. - On Motorola/Compal C139/140 phones, the FFS used by the original proprietary firmware occupies 5 sectors of 64 KiB each (320 KiB in total), starting at 0x370000. C11x/123 use smaller FFS configurations, whereas C155/156 seem to have switched to some other FFS format, different from our familiar TIFFS. - On the Pirelli DP-L10, the FFS used by the original proprietary firmware occupies 18 sectors of 256 KiB each (for 4.5 MiB in total), starting at the beginning of the 2nd flash chip select (0x02000000 in the ARM7 address space). - On FCDEV3B (FreeCalypso hardware), the FFS is located in the first 8 sectors (of 256 KiB each) in the 2nd flash chip select bank, which appears at 0x01800000 in the ARM7 address space. - On the GTA01/02 GSM modem, FFS occupies 7 sectors of 64 KiB each, starting at flash offset 0x380000. For more information, please refer to the FreeCalypso project documentation, from where this great contribution comes from. Please note that existing MediaTek targets most likely use different storage format as they have nothing from TI Calypso. Also, we don't (yet) know the location of TIFFS on SE J100i and Compal E99 targets. The TIFFS support is needed for the follow-up change, that implements reading of the factory RF calibration values. Tweaked (coding style changes) by Vadim Yanitskiy Change-Id: If6e212baeb10953129fb0d5253d263567f5e12d6 Related: OS#3582 --- M src/target/firmware/Makefile M src/target/firmware/board/compal_e86/init.c M src/target/firmware/board/compal_e88/init.c M src/target/firmware/board/fcdev3b/init.c M src/target/firmware/board/gta0x/init.c M src/target/firmware/board/pirelli_dpl10/init.c M src/target/firmware/include/string.h A src/target/firmware/include/tiffs.h M src/target/firmware/lib/Makefile A src/target/firmware/lib/index.c A src/target/firmware/lib/memcmp.S A src/target/firmware/lib/strcmp.c A src/target/firmware/tiffs/Makefile A src/target/firmware/tiffs/globals.c A src/target/firmware/tiffs/globals.h A src/target/firmware/tiffs/init.c A src/target/firmware/tiffs/readfile.c 17 files changed, 496 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/target/firmware/Makefile b/src/target/firmware/Makefile index 1196d10..914db6c 100644 --- a/src/target/firmware/Makefile +++ b/src/target/firmware/Makefile @@ -107,6 +107,7 @@ layer1/liblayer1.a \ lib/libmini.a \ comm/libcomm.a \ + tiffs/libtiffs.a \ ../../shared/libosmocore/build-target/src/.libs/libosmocore.a \ ../../shared/libosmocore/build-target/src/gsm/.libs/libosmogsm.a \ ../../shared/libosmocore/build-target/src/codec/.libs/libosmocodec.a @@ -123,6 +124,7 @@ -include calypso/Makefile -include layer1/Makefile -include comm/Makefile +-include tiffs/Makefile -include lib/Makefile # Include rules diff --git a/src/target/firmware/board/compal_e86/init.c b/src/target/firmware/board/compal_e86/init.c index fed9f85..725f184 100644 --- a/src/target/firmware/board/compal_e86/init.c +++ b/src/target/firmware/board/compal_e86/init.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include @@ -146,4 +147,7 @@ /* enable LEDB driver of Iota for keypad backlight */ twl3025_reg_write(AUXLED, 0x02); + + /* Initialize TIFFS reader (5 sectors of 64 KiB each) */ + tiffs_init(0x370000, 0x10000, 5); } diff --git a/src/target/firmware/board/compal_e88/init.c b/src/target/firmware/board/compal_e88/init.c index 04ae458..956f7dc 100755 --- a/src/target/firmware/board/compal_e88/init.c +++ b/src/target/firmware/board/compal_e88/init.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -142,4 +143,7 @@ /* Initialize the charging controller */ battery_compal_e88_init(); + + /* Initialize TIFFS reader (6 sectors of 8 KiB each) */ + tiffs_init(0x001f0000, 0x2000, 6); } diff --git a/src/target/firmware/board/fcdev3b/init.c b/src/target/firmware/board/fcdev3b/init.c index 92be667..c070536 100644 --- a/src/target/firmware/board/fcdev3b/init.c +++ b/src/target/firmware/board/fcdev3b/init.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include @@ -138,4 +139,7 @@ /* Initialize ABB driver (uses SPI) */ twl3025_init(); + + /* Initialize TIFFS reader (8 sectors of 256 KiB each) */ + tiffs_init(0x01800000, 0x40000, 8); } diff --git a/src/target/firmware/board/gta0x/init.c b/src/target/firmware/board/gta0x/init.c index b93f79c..7fba756 100644 --- a/src/target/firmware/board/gta0x/init.c +++ b/src/target/firmware/board/gta0x/init.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include @@ -132,4 +133,7 @@ /* Initialize ABB driver (uses SPI) */ twl3025_init(); + + /* Initialize TIFFS reader (7 sectors of 64 KiB each) */ + tiffs_init(0x380000, 0x10000, 7); } diff --git a/src/target/firmware/board/pirelli_dpl10/init.c b/src/target/firmware/board/pirelli_dpl10/init.c index da23308..1af6e7c 100644 --- a/src/target/firmware/board/pirelli_dpl10/init.c +++ b/src/target/firmware/board/pirelli_dpl10/init.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include @@ -156,4 +157,7 @@ /* enable LEDB driver of Iota for keypad backlight */ twl3025_reg_write(AUXLED, 0x02); + + /* Initialize TIFFS reader (18 sectors of 256 KiB each) */ + tiffs_init(0x02000000, 0x40000, 18); } diff --git a/src/target/firmware/include/string.h b/src/target/firmware/include/string.h index f060659..ecef13d 100644 --- a/src/target/firmware/include/string.h +++ b/src/target/firmware/include/string.h @@ -9,4 +9,7 @@ void *memset(void *s, int c, size_t n); void *memcpy(void *dest, const void *src, size_t n); +int memcmp(const void *s1, const void *s2, size_t n); +int strcmp(const char *s1, const char *s2); + #endif diff --git a/src/target/firmware/include/tiffs.h b/src/target/firmware/include/tiffs.h new file mode 100644 index 0000000..4713c4e --- /dev/null +++ b/src/target/firmware/include/tiffs.h @@ -0,0 +1,33 @@ +/* + * The external API for the TIFFS reader library (libtiffs). + * + * For the file reading functions, the return code is 0 if the file wasn't + * found or there is no valid FFS (no error msg printed), 1 if the file was + * found and read successfully, or negative if some other error(s) occurred + * (error msg printed internally). + */ + +#define INODE_TO_DATAPTR(i) \ + ((uint8_t *)tiffs_base_addr + ((i)->dataptr << 4)) + +#define TIFFS_OBJTYPE_FILE 0xF1 +#define TIFFS_OBJTYPE_DIR 0xF2 +#define TIFFS_OBJTYPE_SEGMENT 0xF4 + +struct tiffs_inode { + uint16_t len; + uint8_t reserved1; + uint8_t type; + uint16_t descend; + uint16_t sibling; + uint32_t dataptr; + uint16_t sequence; + uint16_t updates; +}; + +int tiffs_init(uint32_t base_addr, uint32_t sector_size, unsigned nsectors); + +int tiffs_read_file_maxlen(const char *pathname, uint8_t *buf, + size_t maxlen, size_t *lenrtn); +int tiffs_read_file_fixedlen(const char *pathname, uint8_t *buf, + size_t expect_len); diff --git a/src/target/firmware/lib/Makefile b/src/target/firmware/lib/Makefile index a2a6d45..7546198 100644 --- a/src/target/firmware/lib/Makefile +++ b/src/target/firmware/lib/Makefile @@ -2,6 +2,7 @@ LIBRARIES+=mini LIB_mini_DIR=lib LIB_mini_SRCS=vsprintf.c string.c ctype.c printf.c console.c ctors.c \ - changebit.S clearbit.S delay.c div64.S lib1funcs.S memcpy.S memset.S setbit.S testchangebit.S testclearbit.S testsetbit.S - + changebit.S clearbit.S delay.c div64.S lib1funcs.S memcpy.S \ + memset.S setbit.S testchangebit.S testclearbit.S testsetbit.S \ + memcmp.S index.c strcmp.c diff --git a/src/target/firmware/lib/index.c b/src/target/firmware/lib/index.c new file mode 100644 index 0000000..bb304c0 --- /dev/null +++ b/src/target/firmware/lib/index.c @@ -0,0 +1,12 @@ +char * +index(p, ch) + register char *p, ch; +{ + for (;; ++p) { + if (*p == ch) + return(p); + if (!*p) + return((char *)0); + } + /* NOTREACHED */ +} diff --git a/src/target/firmware/lib/memcmp.S b/src/target/firmware/lib/memcmp.S new file mode 100644 index 0000000..c60b170 --- /dev/null +++ b/src/target/firmware/lib/memcmp.S @@ -0,0 +1,18 @@ + .text + .code 32 + .globl memcmp +memcmp: + cmp r2, #0 + beq zero_len_out + mov r3, r0 +1: ldrb r0, [r3], #1 + ldrb r12, [r1], #1 + subs r0, r0, r12 + bxne lr + subs r2, r2, #1 + bne 1b + bx lr + +zero_len_out: + mov r0, #0 + bx lr diff --git a/src/target/firmware/lib/strcmp.c b/src/target/firmware/lib/strcmp.c new file mode 100644 index 0000000..9a7fa81 --- /dev/null +++ b/src/target/firmware/lib/strcmp.c @@ -0,0 +1,12 @@ +/* + * Compare strings: s1>s2: >0 s1==s2: 0 s1 +#include "globals.h" + +uint32_t tiffs_base_addr; +uint32_t tiffs_sector_size; +unsigned tiffs_nsectors; + +struct tiffs_inode *tiffs_active_index; +int tiffs_root_ino; +int tiffs_init_done; diff --git a/src/target/firmware/tiffs/globals.h b/src/target/firmware/tiffs/globals.h new file mode 100644 index 0000000..7c64693 --- /dev/null +++ b/src/target/firmware/tiffs/globals.h @@ -0,0 +1,9 @@ +/* global variables for the TIFFS reader code - extern declarations */ + +extern uint32_t tiffs_base_addr; +extern uint32_t tiffs_sector_size; +extern unsigned tiffs_nsectors; + +extern struct tiffs_inode *tiffs_active_index; +extern int tiffs_root_ino; +extern int tiffs_init_done; diff --git a/src/target/firmware/tiffs/init.c b/src/target/firmware/tiffs/init.c new file mode 100644 index 0000000..6a3b48a --- /dev/null +++ b/src/target/firmware/tiffs/init.c @@ -0,0 +1,103 @@ +/* TIFFS (TI Flash File System) reader implementation */ + +/* + * (C) 2017 by Mychaela Falconia + * Tweaked (coding style changes) by Vadim Yanitskiy + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include +#include + +#include +#include "globals.h" + +/* Each flash sector used for TIFFS begins with this 6-byte signature */ +static const uint8_t ffs_sector_signature[6] = { + 'F', 'f', 's', '#', 0x10, 0x02 +}; + +static int find_indexblk(void) +{ + uint32_t sector_addr; + uint8_t *sector_ptr; + unsigned i; + + sector_addr = tiffs_base_addr; + for (i = 0; i < tiffs_nsectors; i++) { + sector_ptr = (uint8_t *) sector_addr; + if (!memcmp(sector_ptr, ffs_sector_signature, 6) + && sector_ptr[8] == 0xAB) { + printf("Found TIFFS active index block " + "at 0x%" PRIx32 "\n", sector_addr); + tiffs_active_index = (struct tiffs_inode *) sector_addr; + return 0; + } + sector_addr += tiffs_sector_size; + } + + puts("TIFFS error: no active index block found\n"); + return -1; +} + +static int find_rootino(void) +{ + struct tiffs_inode *irec; + unsigned ino = 0; + + while (++ino < tiffs_sector_size >> 4) { + irec = tiffs_active_index + ino; + if (irec->type != TIFFS_OBJTYPE_DIR) + continue; + if (*INODE_TO_DATAPTR(irec) != '/') + continue; + + printf("Found TIFFS root inode at #%x\n", ino); + tiffs_root_ino = ino; + return 0; + } + + puts("TIFFS error: no root inode found\n"); + return -1; +} + +int tiffs_init(uint32_t base_addr, uint32_t sector_size, unsigned nsectors) +{ + int rc; + + printf("Looking for TIFFS (TI Flash File System) header at " + "0x%" PRIx32 ", %u sectors of 0x%" PRIx32 " bytes\n", + base_addr, nsectors, sector_size); + + tiffs_base_addr = base_addr; + tiffs_sector_size = sector_size; + tiffs_nsectors = nsectors; + + rc = find_indexblk(); + if (rc < 0) + return rc; + rc = find_rootino(); + if (rc < 0) + return rc; + + tiffs_init_done = 1; + return 0; +} diff --git a/src/target/firmware/tiffs/readfile.c b/src/target/firmware/tiffs/readfile.c new file mode 100644 index 0000000..f3e916f --- /dev/null +++ b/src/target/firmware/tiffs/readfile.c @@ -0,0 +1,264 @@ +/* TIFFS (TI Flash File System) reader implementation */ + +/* + * (C) 2017 by Mychaela Falconia + * Tweaked (coding style changes) by Vadim Yanitskiy + * + * All Rights Reserved + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#include +#include +#include + +#include +#include "globals.h" + +extern char *index(); + +#define MAX_FN_COMPONENT 20 + +static unsigned find_named_child(unsigned start, const char *seekname) +{ + struct tiffs_inode *irec; + unsigned ino; + + for (ino = start; ino != 0xFFFF; ino = irec->sibling) { + irec = tiffs_active_index + ino; + if (!irec->type) + continue; + if (!strcmp((const char *) INODE_TO_DATAPTR(irec), seekname)) + return ino; + } + + return 0; +} + +static int pathname_to_inode(const char *pathname) +{ + char seekname[MAX_FN_COMPONENT + 1]; + struct tiffs_inode *irec; + const char *cur, *next; + unsigned ino, namelen; + + cur = pathname; + if (*cur == '/') + cur++; + + for (ino = tiffs_root_ino; cur; cur = next) { + if (!*cur) + break; + + next = index(cur, '/'); + if (next == cur) { + puts("Malformed TIFFS pathname: multiple adjacent slashes\n"); + return -1; + } else if (next) { + namelen = next - cur; + next++; + } else { + namelen = strlen(cur); + } + + if (namelen > MAX_FN_COMPONENT) { + puts("Malformed TIFFS pathname: component name too long\n"); + return -1; + } + + memcpy(seekname, cur, namelen); + seekname[namelen] = '\0'; + + irec = tiffs_active_index + ino; + if (irec->type != TIFFS_OBJTYPE_DIR) { + /* printf("Error: non-terminal non-directory\n"); */ + return 0; + } + ino = find_named_child(irec->descend, seekname); + if (!ino) { + /* printf("Error: pathname component not found\n"); */ + return 0; + } + } + + return ino; +} + +static uint8_t *find_endofchunk(int ino) +{ + struct tiffs_inode *irec; + uint8_t *ptr; + int i; + + irec = tiffs_active_index + ino; + ptr = INODE_TO_DATAPTR(irec) + irec->len; + + for (i = 0; i < 16; i++) { + ptr--; + if (!*ptr) + return ptr; + if (*ptr != 0xFF) + break; + } + + printf("TIFFS error: inode #%x has no valid termination\n", ino); + return ptr; /* XXX */ +} + +static int get_file_head(const char *pathname, uint8_t **startret, + size_t *sizeret, int *continue_ret) +{ + struct tiffs_inode *irec; + uint8_t *start, *end; + int ino, cont, size; + + ino = pathname_to_inode(pathname); + if (ino <= 0) + return ino; + + irec = tiffs_active_index + ino; + if (irec->type != TIFFS_OBJTYPE_FILE) { + printf("TIFFS error: '%s' is not a regular file\n", pathname); + return -1; + } + + start = INODE_TO_DATAPTR(irec); + start += strlen((const char *) start) + 1; + end = find_endofchunk(ino); + + size = end - start; + if (size < 0) + size = 0; + + cont = irec->descend; + if (cont == 0xFFFF) + cont = 0; + if (startret) + *startret = start; + if (sizeret) + *sizeret = size; + if (continue_ret) + *continue_ret = cont; + + return 1; +} + +static int get_segment(int ino, uint8_t **startret, + size_t *sizeret, int *continue_ret) +{ + struct tiffs_inode *irec; + uint8_t *start, *end; + int cont, size; + + for (;;) { + irec = tiffs_active_index + ino; + if (irec->type) + break; + if (irec->sibling == 0xFFFF) { + printf("TIFFS error: segment inode #%d: " + "deleted and no sibling\n", ino); + return -1; + } + ino = irec->sibling; + } + + if (irec->type != TIFFS_OBJTYPE_SEGMENT) { + printf("TIFFS error: inode #%x is not a segment\n", ino); + return -1; + } + + start = INODE_TO_DATAPTR(irec); + end = find_endofchunk(ino); + + size = end - start; + if (size <= 0) { + printf("TIFFS error: segment inode #%x has bad length\n", ino); + return -1; + } + + cont = irec->descend; + if (cont == 0xFFFF) + cont = 0; + if (startret) + *startret = start; + if (sizeret) + *sizeret = size; + if (continue_ret) + *continue_ret = cont; + + return 0; +} + +int tiffs_read_file_maxlen(const char *pathname, uint8_t *buf, + size_t maxlen, size_t *lenrtn) +{ + size_t chunk_size, real_len, roomleft; + uint8_t *chunk_start; + int stat, cont; + + if (!tiffs_init_done) { + puts("TIFFS reader is not initialized\n"); + return -1; + } + + stat = get_file_head(pathname, &chunk_start, &chunk_size, &cont); + if (stat <= 0) + return stat; + if (chunk_size > maxlen) { +toobig: printf("TIFFS error: '%s' is bigger than the read buffer\n", pathname); + return -1; + } + + real_len = chunk_size; + memcpy(buf, chunk_start, chunk_size); + buf += chunk_size; + roomleft = maxlen - chunk_size; + while (cont) { + stat = get_segment(cont, &chunk_start, &chunk_size, &cont); + if (stat < 0) + return stat; + if (chunk_size > roomleft) + goto toobig; + + real_len += chunk_size; + memcpy(buf, chunk_start, chunk_size); + buf += chunk_size; + roomleft -= chunk_size; + } + + if (lenrtn) + *lenrtn = real_len; + + return 1; +} + +int tiffs_read_file_fixedlen(const char *pathname, uint8_t *buf, + size_t expect_len) +{ + size_t real_len; + int rc; + + rc = tiffs_read_file_maxlen(pathname, buf, expect_len, &real_len); + if (rc <= 0) + return rc; + if (real_len != expect_len) { + printf("TIFFS error: '%s' has the wrong length\n", pathname); + return -1; + } + + return 1; +} -- To view, visit https://gerrit.osmocom.org/12885 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If6e212baeb10953129fb0d5253d263567f5e12d6 Gerrit-Change-Number: 12885 Gerrit-PatchSet: 4 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 09:05:33 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Wed, 20 Feb 2019 09:05:33 +0000 Subject: Change in osmo-gsm-tester[master]: resources: Introduce a separate resource file for the virtual tests Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/12975 Change subject: resources: Introduce a separate resource file for the virtual tests ...................................................................... resources: Introduce a separate resource file for the virtual tests Create a dedicated resources file for running "virtual" tests. If all components run on the same machine we can avoid having to manage separate network. Change-Id: I0da1267a71dc06fd06f3cf4fc3dcfefda4bcf40b --- A example/resources.conf.virtual 1 file changed, 41 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/75/12975/1 diff --git a/example/resources.conf.virtual b/example/resources.conf.virtual new file mode 100644 index 0000000..44973a2 --- /dev/null +++ b/example/resources.conf.virtual @@ -0,0 +1,41 @@ +# Resources for a "virtual" run. + +ip_address: +- addr: 127.0.42.2 +- addr: 127.0.42.3 +- addr: 127.0.42.4 +- addr: 127.0.42.5 +- addr: 127.0.42.6 +- addr: 127.0.42.7 +- addr: 127.0.42.8 +- addr: 127.0.42.9 +- addr: 127.0.42.10 + +bts: +- label: OsmoBTS Virtual + type: osmo-bts-virtual + ipa_unit_id: 13 + addr: 127.0.43.55 + band: GSM-1800 + +arfcn: + - arfcn: 512 + band: GSM-1800 + - arfcn: 514 + band: GSM-1800 + - arfcn: 516 + band: GSM-1800 + - arfcn: 518 + band: GSM-1800 + - arfcn: 520 + band: GSM-1800 + - arfcn: 540 + band: GSM-1900 + - arfcn: 542 + band: GSM-1900 + - arfcn: 544 + band: GSM-1900 + - arfcn: 546 + band: GSM-1900 + - arfcn: 548 + band: GSM-1900 -- To view, visit https://gerrit.osmocom.org/12975 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0da1267a71dc06fd06f3cf4fc3dcfefda4bcf40b Gerrit-Change-Number: 12975 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 09:05:52 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Wed, 20 Feb 2019 09:05:52 +0000 Subject: Change in osmo-gsm-tester[master]: modem: Do not connect to the systembus until a modem is in use Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/12976 Change subject: modem: Do not connect to the systembus until a modem is in use ...................................................................... modem: Do not connect to the systembus until a modem is in use In case of the "virtual" tests we: * Don't use ofono based modems (they are physical for now). * Run in an environment that doesn't naturally run a dbus-daemon Modify the code to memoize the bus by hand. Change-Id: Ieae4bf819903402f7f715eb489e0a96ed59dc3f8 --- M src/osmo_gsm_tester/modem.py 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/76/12976/1 diff --git a/src/osmo_gsm_tester/modem.py b/src/osmo_gsm_tester/modem.py index 59e2136..f9b827a 100644 --- a/src/osmo_gsm_tester/modem.py +++ b/src/osmo_gsm_tester/modem.py @@ -29,7 +29,7 @@ Gio = get_introspection_module('Gio') from gi.repository import GLib -bus = SystemBus() +bus = None I_MODEM = 'org.ofono.Modem' I_NETREG = 'org.ofono.NetworkRegistration' @@ -66,6 +66,8 @@ def systembus_get(path): global bus + if not bus: + bus = SystemBus() return bus.get('org.ofono', path) def list_modems(): -- To view, visit https://gerrit.osmocom.org/12976 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ieae4bf819903402f7f715eb489e0a96ed59dc3f8 Gerrit-Change-Number: 12976 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 09:19:53 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 09:19:53 +0000 Subject: Change in libosmocore[master]: gprs_ns: Use gprs_ns_tx_alive() instead of gprs_ns_tx_simple() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12966 ) Change subject: gprs_ns: Use gprs_ns_tx_alive() instead of gprs_ns_tx_simple() ...................................................................... gprs_ns: Use gprs_ns_tx_alive() instead of gprs_ns_tx_simple() If we use gprs_ns_tx_alive() we will get logging for free. Change-Id: I53d410d13540d389096c40425e1fa2eb7460b16b --- M src/gb/gprs_ns.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c index 1281c9f..5c75694 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -960,7 +960,7 @@ rc = gprs_ns_tx_reset_ack(*nsvc); /* start the test procedure */ - gprs_ns_tx_simple((*nsvc), NS_PDUT_ALIVE); + gprs_ns_tx_alive(*nsvc); nsvc_start_timer((*nsvc), NSVC_TIMER_TNS_TEST); return rc; @@ -1084,7 +1084,7 @@ osmo_timer_del(&(*nsvc)->timer); } /* Initiate TEST proc.: Send ALIVE and start timer */ - rc = gprs_ns_tx_simple(*nsvc, NS_PDUT_ALIVE); + rc = gprs_ns_tx_alive(*nsvc); nsvc_start_timer(*nsvc, NSVC_TIMER_TNS_TEST); return rc; -- To view, visit https://gerrit.osmocom.org/12966 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I53d410d13540d389096c40425e1fa2eb7460b16b Gerrit-Change-Number: 12966 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 09:19:54 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 09:19:54 +0000 Subject: Change in libosmocore[master]: gprs_ns.c: cosmetic whitespace fixes In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12967 ) Change subject: gprs_ns.c: cosmetic whitespace fixes ...................................................................... gprs_ns.c: cosmetic whitespace fixes Change-Id: Ic19f65bdc5527ad5a69d0a92320ce5f672bf4d2b --- M src/gb/gprs_ns.c 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved Vadim Yanitskiy: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c index 5c75694..47c2529 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -608,7 +608,7 @@ DEBUGP(DNS, "NSEI=%u Starting timer in mode %s (%u seconds)\n", nsvc->nsei, get_value_string(timer_mode_strs, mode), seconds); - + if (osmo_timer_pending(&nsvc->timer)) osmo_timer_del(&nsvc->timer); @@ -636,7 +636,7 @@ DEBUGP(DNS, "NSEI=%u Timer expired in mode %s (%u seconds)\n", nsvc->nsei, get_value_string(timer_mode_strs, nsvc->timer_mode), seconds); - + switch (nsvc->timer_mode) { case NSVC_TIMER_TNS_ALIVE: /* Tns-alive case: we expired without response ! */ -- To view, visit https://gerrit.osmocom.org/12967 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic19f65bdc5527ad5a69d0a92320ce5f672bf4d2b Gerrit-Change-Number: 12967 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 09:19:54 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 09:19:54 +0000 Subject: Change in libosmocore[master]: gprs_ns: Declare gprs_ns_tx_alive*() in header file In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12968 ) Change subject: gprs_ns: Declare gprs_ns_tx_alive*() in header file ...................................................................... gprs_ns: Declare gprs_ns_tx_alive*() in header file The symbols for those functions were always exported, but we somehow didn't declare them in gprs_ns.h Change-Id: Ib073e9c93fcdf408b63000182e90aabce37f687e --- M include/osmocom/gprs/gprs_ns.h 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Vadim Yanitskiy: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/gprs/gprs_ns.h b/include/osmocom/gprs/gprs_ns.h index c97b200..1c99ed0 100644 --- a/include/osmocom/gprs/gprs_ns.h +++ b/include/osmocom/gprs/gprs_ns.h @@ -175,6 +175,8 @@ /* main function for higher layers (BSSGP) to send NS messages */ int gprs_ns_sendmsg(struct gprs_ns_inst *nsi, struct msgb *msg); +int gprs_ns_tx_alive(struct gprs_nsvc *nsvc); +int gprs_ns_tx_alive_ack(struct gprs_nsvc *nsvc); int gprs_ns_tx_reset(struct gprs_nsvc *nsvc, uint8_t cause); int gprs_ns_tx_block(struct gprs_nsvc *nsvc, uint8_t cause); int gprs_ns_tx_unblock(struct gprs_nsvc *nsvc); -- To view, visit https://gerrit.osmocom.org/12968 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib073e9c93fcdf408b63000182e90aabce37f687e Gerrit-Change-Number: 12968 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 09:48:44 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Feb 2019 09:48:44 +0000 Subject: Change in docker-playground[master]: debian-repo-test: blacklist soapysdr0.7 Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/12977 Change subject: debian-repo-test: blacklist soapysdr0.7 ...................................................................... debian-repo-test: blacklist soapysdr0.7 Fix conflict in debian-repo-test-latest by not explicitly installing soapysdr0.7: dpkg: error processing archive /tmp/apt-dpkg-install-aYn9qf/398-soapysdr0.7-module-lms7_19.01.0-1_amd64.deb (--unpack): trying to overwrite '/usr/lib/x86_64-linux-gnu/SoapySDR/modules0.5-2/libLMS7Support.so', which is also in package soapysdr0.5-2-module-lms7:amd64 16.12.0+dfsg-1 I have tested locally, that debian-repo-test passes with this patch with both FEED=latest and FEED=nightly. Related: OS#3809 Change-Id: Ic7c6b95d20345b39af2ba0d09dddd361696723be --- M debian-repo-install-test/testdata/blacklist.txt 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/77/12977/1 diff --git a/debian-repo-install-test/testdata/blacklist.txt b/debian-repo-install-test/testdata/blacklist.txt index 4d3f7ed..cb7db6a 100644 --- a/debian-repo-install-test/testdata/blacklist.txt +++ b/debian-repo-install-test/testdata/blacklist.txt @@ -23,3 +23,5 @@ soapysdr-module-lms7 soapysdr0.6-module-lms7 soapysdr0.6-module-lms7-dbgsym +soapysdr0.7-module-lms7 +soapysdr0.7-module-lms7-dbgsym -- To view, visit https://gerrit.osmocom.org/12977 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic7c6b95d20345b39af2ba0d09dddd361696723be Gerrit-Change-Number: 12977 Gerrit-PatchSet: 1 Gerrit-Owner: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 09:56:04 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Feb 2019 09:56:04 +0000 Subject: Change in osmo-ci[master]: osmocom-debian-install: notify myself on error Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/12978 Change subject: osmocom-debian-install: notify myself on error ...................................................................... osmocom-debian-install: notify myself on error Add myself to e-mail notifications for failed builds. Related: OS#3809 Change-Id: Iefa5047abb6264f13a856039f47e009139fcc794 --- M jobs/osmocom-debian-install.yml 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/78/12978/1 diff --git a/jobs/osmocom-debian-install.yml b/jobs/osmocom-debian-install.yml index 823db3c..c1c4275 100644 --- a/jobs/osmocom-debian-install.yml +++ b/jobs/osmocom-debian-install.yml @@ -26,5 +26,9 @@ git-config-email: 'jenkins at osmocom.org' triggers: - timed: "@midnight" + publishers: + - email: + notify-every-unstable-build: true + recipients: osmith at sysmocom.de # vim: expandtab tabstop=2 shiftwidth=2 -- To view, visit https://gerrit.osmocom.org/12978 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iefa5047abb6264f13a856039f47e009139fcc794 Gerrit-Change-Number: 12978 Gerrit-PatchSet: 1 Gerrit-Owner: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 09:56:09 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Wed, 20 Feb 2019 09:56:09 +0000 Subject: Change in libosmocore[master]: gprs_ns: Add missing NSVCI IE to NS-BLOCK-ACK message In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12969 ) Change subject: gprs_ns: Add missing NSVCI IE to NS-BLOCK-ACK message ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12969 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie7205e99d57f1e42d941f1be2460d8c9f46aadfe Gerrit-Change-Number: 12969 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 20 Feb 2019 09:56:09 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 10:35:58 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Wed, 20 Feb 2019 10:35:58 +0000 Subject: Change in osmo-gsm-tester[master]: Provide debug output before removing the evidence In-Reply-To: References: Message-ID: Holger Freyther has abandoned this change. ( https://gerrit.osmocom.org/12102 ) Change subject: Provide debug output before removing the evidence ...................................................................... Abandoned Let's leave it out for now. -- To view, visit https://gerrit.osmocom.org/12102 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: abandon Gerrit-Change-Id: I35c2fa17a1b57dfd0a3ca5485874b7f50765c897 Gerrit-Change-Number: 12102 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 14:57:09 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 20 Feb 2019 14:57:09 +0000 Subject: Change in osmo-ci[master]: osmocom-debian-install: notify myself on error In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12978 ) Change subject: osmocom-debian-install: notify myself on error ...................................................................... Patch Set 1: How about sending notifications to the mailing list? -- To view, visit https://gerrit.osmocom.org/12978 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iefa5047abb6264f13a856039f47e009139fcc794 Gerrit-Change-Number: 12978 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 20 Feb 2019 14:57:09 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Wed Feb 20 15:10:06 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 20 Feb 2019 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#407?= In-Reply-To: <146963547.309.1550589006658.JavaMail.jenkins@jenkins.osmocom.org> References: <146963547.309.1550589006658.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <579299764.335.1550675406772.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.83 KB...] checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs mkdir .libs mkdir .libs mkdir: mkdir: cannot create directory '.libs': File exists cannot create directory '.libs': File exists gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Wed Feb 20 15:13:54 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 20 Feb 2019 15:13:54 +0000 Subject: Change in osmo-ci[master]: docker: Add lua-socket for the OsmocomBB<->GSM Tester communication In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12974 ) Change subject: docker: Add lua-socket for the OsmocomBB<->GSM Tester communication ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12974 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9156c63c64dd32a91136240913baa7e4a5cdc893 Gerrit-Change-Number: 12974 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 20 Feb 2019 15:13:54 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 15:16:50 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 20 Feb 2019 15:16:50 +0000 Subject: Change in osmo-gsm-tester[master]: resources: Introduce a separate resource file for the virtual tests In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12975 ) Change subject: resources: Introduce a separate resource file for the virtual tests ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12975 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0da1267a71dc06fd06f3cf4fc3dcfefda4bcf40b Gerrit-Change-Number: 12975 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 20 Feb 2019 15:16:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 15:21:22 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Wed, 20 Feb 2019 15:21:22 +0000 Subject: Change in osmo-ci[master]: osmocom-debian-install: notify myself on error In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12978 ) Change subject: osmocom-debian-install: notify myself on error ...................................................................... Patch Set 1: > How about sending notifications to the mailing list? Good question, asked in the ML thread: https://lists.osmocom.org/pipermail/openbsc/2019-February/012788.html -- To view, visit https://gerrit.osmocom.org/12978 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iefa5047abb6264f13a856039f47e009139fcc794 Gerrit-Change-Number: 12978 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 20 Feb 2019 15:21:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 15:47:17 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 20 Feb 2019 15:47:17 +0000 Subject: Change in osmo-gsm-tester[master]: resources: Introduce a separate resource file for the virtual tests In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12975 ) Change subject: resources: Introduce a separate resource file for the virtual tests ...................................................................... Patch Set 1: Jenkins failing due to crashed ofono. I have gdb open in a screen session to debug it. See https://osmocom.org/issues/3810. -- To view, visit https://gerrit.osmocom.org/12975 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0da1267a71dc06fd06f3cf4fc3dcfefda4bcf40b Gerrit-Change-Number: 12975 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 20 Feb 2019 15:47:17 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 16:00:51 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 20 Feb 2019 16:00:51 +0000 Subject: Change in osmo-gsm-tester[master]: modem: Do not connect to the systembus until a modem is in use In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12976 ) Change subject: modem: Do not connect to the systembus until a modem is in use ...................................................................... Patch Set 1: Code-Review+1 See other patch comment, jenkins failing due to crashed ofono -- To view, visit https://gerrit.osmocom.org/12976 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ieae4bf819903402f7f715eb489e0a96ed59dc3f8 Gerrit-Change-Number: 12976 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 20 Feb 2019 16:00:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 16:11:22 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 20 Feb 2019 16:11:22 +0000 Subject: Change in libosmocore[master]: gprs_ns: Add missing NSVCI IE to NS-BLOCK-ACK message In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12969 ) Change subject: gprs_ns: Add missing NSVCI IE to NS-BLOCK-ACK message ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/12969/1/src/gb/gprs_ns.c File src/gb/gprs_ns.c: https://gerrit.osmocom.org/#/c/12969/1/src/gb/gprs_ns.c at 560 PS1, Line 560: log_set_context(LOG_CTX_GB_NSVC, nsvc); > the style of this function follows the style of all the other functions in this file. [?] Fine, but then when you go back to select() and fire another path which contains no log_set_context(), you are still logging in that NSVC logging context while it may not be related at all. I have seen this kind of issue in osmo-bts (iirc) regarding IMSI logging context, where it was enabled but later not disabled, and as a result you start getting lots of non-related logging when filtering over IMSI. But if all other functions in here do the same, let's keep it this way and we may want to check that later. -- To view, visit https://gerrit.osmocom.org/12969 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie7205e99d57f1e42d941f1be2460d8c9f46aadfe Gerrit-Change-Number: 12969 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 20 Feb 2019 16:11:22 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 16:15:30 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 20 Feb 2019 16:15:30 +0000 Subject: Change in osmo-mgw[master]: Add option to GSM HR frames to RFC5593 representation Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/12979 Change subject: Add option to GSM HR frames to RFC5593 representation ...................................................................... Add option to GSM HR frames to RFC5593 representation There are different specifications around on how a GSM-HR frame should be encapsulated into an RTP packet. RFC5593 specifies a ToC (Table of contents byte to be prepended in front of the payload data along with some additional shuffeling of the actual payload data. The two formates can be distinguished easyly by their length. Then the data can be formatted into the corresponding opposite format and vice versa. - Add new VTY rtp-patch options - Add conversion function Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Related: OS#3807 --- M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_internal.h M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_vty.c 5 files changed, 124 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/79/12979/1 diff --git a/include/osmocom/mgcp/mgcp.h b/include/osmocom/mgcp/mgcp.h index 7597af8..783cf1f 100644 --- a/include/osmocom/mgcp/mgcp.h +++ b/include/osmocom/mgcp/mgcp.h @@ -190,6 +190,7 @@ /* RTP patching */ int force_constant_ssrc; /* 0: don't, 1: once */ int force_aligned_timing; + int rfc5993_hr_convert; /* spec handling */ int force_realloc; diff --git a/include/osmocom/mgcp/mgcp_internal.h b/include/osmocom/mgcp/mgcp_internal.h index 14c5f11..89a4649 100644 --- a/include/osmocom/mgcp/mgcp_internal.h +++ b/include/osmocom/mgcp/mgcp_internal.h @@ -128,6 +128,7 @@ int force_constant_ssrc; /* -1: always, 0: don't, 1: once */ /* should we perform align_rtp_timestamp_offset() (1) or not (0) */ int force_aligned_timing; + int rfc5993_hr_convert; /* Each end has a separate socket for RTP and RTCP */ struct osmo_fd rtp; diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 2c86f8f..09302d8 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -43,6 +43,7 @@ #include #include #include +#include #define RTP_SEQ_MOD (1 << 16) @@ -651,6 +652,73 @@ #endif } +/* This has been ported from openbsc.git, branch sylvain/32c3_codec, + * commit f198259f57f868bc85726cbac3df47b143b0300f, original author is + * Sylvain Munaut */ +static void hr_jumble(uint8_t *dst, const uint8_t *src) +{ + const int p_unvoiced[] = + { 5, 11, 9, 8, 1, 2, 7, 7, 5, 7, 7, 5, 7, 7, 5, 7, 7, 5 }; + const int p_voiced[] = + { 5, 11, 9, 8, 1, 2, 8, 9, 5, 4, 9, 5, 4, 9, 5, 4, 9, 5 }; + + int base, i, j, l, si, di; + int *p; + + memset(dst, 0x00, 14); + + p = (src[4] & 0x30) ? p_voiced : p_unvoiced; + + base = 0; + for (i = 0; i < 18; i++) { + l = p[i]; + for (j = 0; j < l; j++) { + si = base + j; + di = base + l - j - 1; + + if (src[si >> 3] & (1 << (7 - (si & 7)))) + dst[di >> 3] |= (1 << (7 - (di & 7))); + } + + base += l; + } +} + +/* There are different dialects used to format and transfer voice data. When + * the receiving end expects GSM-HR data to be formated after RFC 5993, this + * function is used to convert between RFC 5993 and TS 101318, which we normally + * use. */ +static void rfc5993_hr_convert(struct mgcp_rtp_end *rtp_end, char *data, + int *len) +{ + /* NOTE: *data has an overall length of RTP_BUF_SIZE, so there is + * plenty of space available to store the slightly larger, converted + * data */ + + struct rtp_hdr *rtp_hdr; + uint8_t buf[GSM_HR_BYTES]; + + if (!rtp_end->rfc5993_hr_convert) + return; + + OSMO_ASSERT(*len >= sizeof(struct rtp_hdr)); + rtp_hdr = (struct rtp_hdr *)data; + + if (*len == GSM_HR_BYTES + sizeof(struct rtp_hdr)) { + /* TS 101318 encoding => RFC 5993 encoding */ + memcpy(buf, rtp_hdr->data, GSM_HR_BYTES); + hr_jumble(rtp_hdr->data + 1, buf); + rtp_hdr->data[0] = 0x00; + (*len) += 1; + + } else if (*len == GSM_HR_BYTES + sizeof(struct rtp_hdr) + 1) { + /* RFC 5993 encoding => TS 101318 encoding */ + memcpy(buf, rtp_hdr->data + 1, GSM_HR_BYTES); + hr_jumble(rtp_hdr->data, buf); + (*len) -= 1; + } +} + /* Forward data to a debug tap. This is debug function that is intended for * debugging the voice traffic with tools like gstreamer */ static void forward_data(int fd, struct mgcp_rtp_tap *tap, const char *buf, @@ -758,6 +826,9 @@ if (addr) mgcp_patch_and_count(endp, rtp_state, rtp_end, addr, buf, buflen); + + rfc5993_hr_convert(rtp_end, buf, &buflen); + LOGP(DRTP, LOGL_DEBUG, "endpoint:0x%x process/send to %s %s " "rtp_port:%u rtcp_port:%u\n", diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index 9f95ea4..82db02f 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -652,6 +652,7 @@ rtp->force_aligned_timing = tcfg->force_aligned_timing; rtp->force_constant_ssrc = patch_ssrc ? 1 : 0; + rtp->rfc5993_hr_convert = tcfg->rfc5993_hr_convert; LOGP(DLMGCP, LOGL_DEBUG, "Configuring RTP endpoint: local port %d%s%s\n", diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index ef63b04..c07018b 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -96,13 +96,17 @@ else vty_out(vty, " no rtcp-omit%s", VTY_NEWLINE); if (g_cfg->trunk.force_constant_ssrc - || g_cfg->trunk.force_aligned_timing) { + || g_cfg->trunk.force_aligned_timing + || g_cfg->trunk.rfc5993_hr_convert) { vty_out(vty, " %srtp-patch ssrc%s", g_cfg->trunk.force_constant_ssrc ? "" : "no ", VTY_NEWLINE); vty_out(vty, " %srtp-patch timestamp%s", g_cfg->trunk.force_aligned_timing ? "" : "no ", VTY_NEWLINE); + vty_out(vty, " %srtp-patch rfc5993hr%s", + g_cfg->trunk.rfc5993_hr_convert ? "" : "no ", + VTY_NEWLINE); } else vty_out(vty, " no rtp-patch%s", VTY_NEWLINE); if (g_cfg->trunk.audio_payload != -1) @@ -722,11 +726,28 @@ return CMD_SUCCESS; } +DEFUN(cfg_mgcp_patch_rtp_rfc5993hr, + cfg_mgcp_patch_rtp_rfc5993hr_cmd, + "rtp-patch rfc5993hr", RTP_PATCH_STR "Convert GSM-HR to rfc5993 and back\n") +{ + g_cfg->trunk.rfc5993_hr_convert = 1; + return CMD_SUCCESS; +} + +DEFUN(cfg_mgcp_no_patch_rtp_rfc5993hr, + cfg_mgcp_no_patch_rtp_rfc5993hr_cmd, + "no rtp-patch rfc5993hr", NO_STR RTP_PATCH_STR "Convert GSM-HR to rfc5993 and back\n") +{ + g_cfg->trunk.rfc5993_hr_convert = 1; + return CMD_SUCCESS; +} + DEFUN(cfg_mgcp_no_patch_rtp, cfg_mgcp_no_patch_rtp_cmd, "no rtp-patch", NO_STR RTP_PATCH_STR) { g_cfg->trunk.force_constant_ssrc = 0; g_cfg->trunk.force_aligned_timing = 0; + g_cfg->trunk.rfc5993_hr_convert = 0; return CMD_SUCCESS; } @@ -823,13 +844,17 @@ vty_out(vty, " rtcp-omit%s", VTY_NEWLINE); else vty_out(vty, " no rtcp-omit%s", VTY_NEWLINE); - if (trunk->force_constant_ssrc || trunk->force_aligned_timing) { + if (trunk->force_constant_ssrc || trunk->force_aligned_timing + || g_cfg->trunk.rfc5993_hr_convert) { vty_out(vty, " %srtp-patch ssrc%s", trunk->force_constant_ssrc ? "" : "no ", VTY_NEWLINE); vty_out(vty, " %srtp-patch timestamp%s", trunk->force_aligned_timing ? "" : "no ", VTY_NEWLINE); + vty_out(vty, " %srtp-patch rfc5993hr%s", + trunk->rfc5993_hr_convert ? "" : "no ", + VTY_NEWLINE); } else vty_out(vty, " no rtp-patch%s", VTY_NEWLINE); if (trunk->audio_fmtp_extra) @@ -995,12 +1020,31 @@ return CMD_SUCCESS; } +DEFUN(cfg_trunk_patch_rtp_rfc5993hr, + cfg_trunk_patch_rtp_rfc5993hr_cmd, + "rtp-patch rfc5993hr", RTP_PATCH_STR "Convert GSM-HR to rfc5993 and back\n") +{ + struct mgcp_trunk_config *trunk = vty->index; + trunk->rfc5993_hr_convert = 1; + return CMD_SUCCESS; +} + +DEFUN(cfg_trunk_no_patch_rtp_rfc5993hr, + cfg_trunk_no_patch_rtp_rfc5993hr_cmd, + "no rtp-patch rfc5993hr", NO_STR RTP_PATCH_STR "Convert GSM-HR to rfc5993 and back\n") +{ + struct mgcp_trunk_config *trunk = vty->index; + trunk->rfc5993_hr_convert = 0; + return CMD_SUCCESS; +} + DEFUN(cfg_trunk_no_patch_rtp, cfg_trunk_no_patch_rtp_cmd, "no rtp-patch", NO_STR RTP_PATCH_STR) { struct mgcp_trunk_config *trunk = vty->index; trunk->force_constant_ssrc = 0; trunk->force_aligned_timing = 0; + trunk->rfc5993_hr_convert = 0; return CMD_SUCCESS; } @@ -1400,6 +1444,8 @@ install_element(MGCP_NODE, &cfg_mgcp_patch_rtp_ts_cmd); install_element(MGCP_NODE, &cfg_mgcp_no_patch_rtp_ts_cmd); install_element(MGCP_NODE, &cfg_mgcp_no_patch_rtp_cmd); + install_element(MGCP_NODE, &cfg_mgcp_patch_rtp_rfc5993hr_cmd); + install_element(MGCP_NODE, &cfg_mgcp_no_patch_rtp_rfc5993hr_cmd); install_element(MGCP_NODE, &cfg_mgcp_sdp_fmtp_extra_cmd); install_element(MGCP_NODE, &cfg_mgcp_sdp_payload_send_ptime_cmd); install_element(MGCP_NODE, &cfg_mgcp_no_sdp_payload_send_ptime_cmd); @@ -1431,6 +1477,8 @@ install_element(TRUNK_NODE, &cfg_trunk_patch_rtp_ssrc_cmd); install_element(TRUNK_NODE, &cfg_trunk_no_patch_rtp_ssrc_cmd); install_element(TRUNK_NODE, &cfg_trunk_patch_rtp_ts_cmd); + install_element(TRUNK_NODE, &cfg_trunk_patch_rtp_rfc5993hr_cmd); + install_element(TRUNK_NODE, &cfg_trunk_no_patch_rtp_rfc5993hr_cmd); install_element(TRUNK_NODE, &cfg_trunk_no_patch_rtp_ts_cmd); install_element(TRUNK_NODE, &cfg_trunk_no_patch_rtp_cmd); install_element(TRUNK_NODE, &cfg_trunk_sdp_fmtp_extra_cmd); -- To view, visit https://gerrit.osmocom.org/12979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Gerrit-Change-Number: 12979 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 16:15:33 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Wed, 20 Feb 2019 16:15:33 +0000 Subject: Change in libosmo-netif[master]: Stream client: add disconnect callback Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12980 Change subject: Stream client: add disconnect callback ...................................................................... Stream client: add disconnect callback It's similar to connect_cb() but called once client has been disconnected. Change-Id: I905adb2d6191216551a3bcdcd1aec1f96f01612a --- M examples/ipa-stream-client.c M examples/stream-client.c M include/osmocom/netif/stream.h M src/stream.c 4 files changed, 31 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/80/12980/1 diff --git a/examples/ipa-stream-client.c b/examples/ipa-stream-client.c index 2151090..cd8b38a 100644 --- a/examples/ipa-stream-client.c +++ b/examples/ipa-stream-client.c @@ -54,6 +54,13 @@ exit(EXIT_SUCCESS); } +static int disconnect_cb(struct osmo_stream_cli *conn) +{ + LOGP(DIPATEST, LOGL_NOTICE, "disconnected\n"); + + return 0; +} + static int connect_cb(struct osmo_stream_cli *conn) { int *__num_msgs = osmo_stream_cli_get_data(conn); @@ -176,6 +183,7 @@ osmo_stream_cli_set_addr(conn, "127.0.0.1"); osmo_stream_cli_set_port(conn, 10000); osmo_stream_cli_set_connect_cb(conn, connect_cb); + osmo_stream_cli_set_connect_cb(conn, disconnect_cb); osmo_stream_cli_set_read_cb(conn, read_cb); osmo_stream_cli_set_data(conn, &num_msgs); diff --git a/examples/stream-client.c b/examples/stream-client.c index e2fb901..f590f25 100644 --- a/examples/stream-client.c +++ b/examples/stream-client.c @@ -43,6 +43,13 @@ return 0; } +static int disconnect_cb(struct osmo_stream_cli *conn) +{ + LOGP(DSTREAMTEST, LOGL_NOTICE, "disconnected: %s\n", osmo_stream_cli_get_sockname(conn)); + + return 0; +} + static int read_cb(struct osmo_stream_cli *conn) { int bytes; @@ -121,6 +128,7 @@ osmo_stream_cli_set_addr(conn, "127.0.0.1"); osmo_stream_cli_set_port(conn, 10000); osmo_stream_cli_set_connect_cb(conn, connect_cb); + osmo_stream_cli_set_disconnect_cb(conn, disconnect_cb); osmo_stream_cli_set_read_cb(conn, read_cb); if (osmo_stream_cli_open(conn) < 0) { diff --git a/include/osmocom/netif/stream.h b/include/osmocom/netif/stream.h index 3044511..56162e4 100644 --- a/include/osmocom/netif/stream.h +++ b/include/osmocom/netif/stream.h @@ -64,6 +64,7 @@ char *osmo_stream_cli_get_sockname(const struct osmo_stream_cli *cli); struct osmo_fd *osmo_stream_cli_get_ofd(struct osmo_stream_cli *cli); void osmo_stream_cli_set_connect_cb(struct osmo_stream_cli *cli, int (*connect_cb)(struct osmo_stream_cli *cli)); +void osmo_stream_cli_set_disconnect_cb(struct osmo_stream_cli *cli, int (*disconnect_cb)(struct osmo_stream_cli *cli)); void osmo_stream_cli_set_read_cb(struct osmo_stream_cli *cli, int (*read_cb)(struct osmo_stream_cli *cli)); void osmo_stream_cli_reconnect(struct osmo_stream_cli *cli); diff --git a/src/stream.c b/src/stream.c index 1880e25..c4db3d7 100644 --- a/src/stream.c +++ b/src/stream.c @@ -155,6 +155,7 @@ uint16_t local_port; uint16_t proto; int (*connect_cb)(struct osmo_stream_cli *srv); + int (*disconnect_cb)(struct osmo_stream_cli *srv); int (*read_cb)(struct osmo_stream_cli *srv); int (*write_cb)(struct osmo_stream_cli *srv); void *data; @@ -194,8 +195,11 @@ close(cli->ofd.fd); cli->ofd.fd = -1; - if (cli->state == STREAM_CLI_STATE_CONNECTED) + if (cli->state == STREAM_CLI_STATE_CONNECTED) { LOGSCLI(cli, LOGL_DEBUG, "connection closed\n"); + if (cli->disconnect_cb) + cli->disconnect_cb(cli); + } cli->state = STREAM_CLI_STATE_NONE; } @@ -442,6 +446,15 @@ cli->connect_cb = connect_cb; } +/*! \brief Set the call-back function called on disconnect of the stream client socket + * \param[in] cli Stream Client to modify + * \param[in] disconnect_cb Call-back function to be called upon disconnect */ +void osmo_stream_cli_set_disconnect_cb(struct osmo_stream_cli *cli, + int (*disconnect_cb)(struct osmo_stream_cli *cli)) +{ + cli->disconnect_cb = disconnect_cb; +} + /*! \brief Set the call-back function called to read from the stream client socket * \param[in] cli Stream Client to modify * \param[in] read_cb Call-back function to be called when we want to read */ -- To view, visit https://gerrit.osmocom.org/12980 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I905adb2d6191216551a3bcdcd1aec1f96f01612a Gerrit-Change-Number: 12980 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 16:20:06 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 20 Feb 2019 16:20:06 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: Add VTY access Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/12981 Change subject: MGCP_Test: Add VTY access ...................................................................... MGCP_Test: Add VTY access The MGCP_Test testsuite currenty lacks VTY access capabilities, lets add them so that future testcases can access the VTY in order to change options on the fly. Depends: osmo-ttcn3-hacks Ife949c61156222de3026280071226ef6f5dbd959 Change-Id: If383f81af3306f8f5bdf50152498ae1303d390df Related: OS#3807 --- M mgw/MGCP_Test.default M mgw/MGCP_Test.ttcn M mgw/gen_links.sh M mgw/regen_makefile.sh 4 files changed, 37 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/81/12981/1 diff --git a/mgw/MGCP_Test.default b/mgw/MGCP_Test.default index 16027cc..4336033 100644 --- a/mgw/MGCP_Test.default +++ b/mgw/MGCP_Test.default @@ -2,12 +2,22 @@ FileMask := LOG_ALL | TTCN_MATCHING; [TESTPORT_PARAMETERS] +*.MGWVTY.CTRL_MODE := "client" +*.MGWVTY.CTRL_HOSTNAME := "127.0.0.1" +*.MGWVTY.CTRL_PORTNUM := "4243" +*.MGWVTY.CTRL_LOGIN_SKIPPED := "yes" +*.MGWVTY.CTRL_DETECT_SERVER_DISCONNECTED := "yes" +*.MGWVTY.CTRL_READMODE := "buffered" +*.MGWVTY.CTRL_CLIENT_CLEANUP_LINEFEED := "yes" +*.MGWVTY.CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT := "yes" +*.MGWVTY.PROMPT1 := "OsmoMGW> " [MODULE_PARAMETERS] mp_local_udp_port := 2727; mp_local_ip:= "127.0.0.1"; mp_remote_udp_port := 2427; mp_remote_ip:= "127.0.0.1"; +Osmocom_VTY_Functions.mp_prompt_prefix := "OsmoMGW"; [MAIN_CONTROLLER] diff --git a/mgw/MGCP_Test.ttcn b/mgw/MGCP_Test.ttcn index 9adeb2a..9eff8c2 100644 --- a/mgw/MGCP_Test.ttcn +++ b/mgw/MGCP_Test.ttcn @@ -9,6 +9,12 @@ import from RTP_CodecPort_CtrlFunct all; import from RTP_Emulation all; import from IPL4asp_Types all; + import from General_Types all; + import from Native_Functions all; + import from IPCP_Types all; + import from IP_Types all; + import from Osmocom_VTY_Functions all; + import from TELNETasp_PortType all; const charstring c_mgw_domain := "mgw"; const charstring c_mgw_ep_rtpbridge := "rtpbridge/"; @@ -24,6 +30,8 @@ var RTP_Emulation_CT vc_RTPEM[3]; port RTPEM_CTRL_PT RTPEM[3]; + + port TELNETasp_PT MGWVTY; }; function get_next_trans_id() runs on dummy_CT return MgcpTransId { @@ -44,6 +52,12 @@ PortNumber mp_local_rtp_port_base := 10000; } + private function f_init_vty() runs on dummy_CT { + map(self:MGWVTY, system:MGWVTY); + f_vty_set_prompts(MGWVTY); + f_vty_transceive(MGWVTY, "enable"); + } + private function f_rtpem_init(inout RTP_Emulation_CT comp_ref, integer i) runs on dummy_CT { comp_ref := RTP_Emulation_CT.create("RTPEM" & int2str(i)); @@ -85,6 +99,8 @@ /* do a DLCX on all connections of the EP */ f_dlcx_ignore(valueof(ep)); } + + f_init_vty(); } testcase TC_selftest() runs on dummy_CT { diff --git a/mgw/gen_links.sh b/mgw/gen_links.sh index 8b2def7..632f2e3 100755 --- a/mgw/gen_links.sh +++ b/mgw/gen_links.sh @@ -29,10 +29,20 @@ FILES="RTP_EncDec.cc RTP_Types.ttcn" gen_links $DIR $FILES +DIR=$BASEDIR/titan.ProtocolModules.IP/src +FILES="IP_EncDec.cc IP_Types.ttcn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.TestPorts.TELNETasp/src +FILES="TELNETasp_PT.cc TELNETasp_PT.hh TELNETasp_PortType.ttcn" +gen_links $DIR $FILES + DIR=../library FILES="Misc_Helpers.ttcn General_Types.ttcn Osmocom_Types.ttcn MGCP_Types.ttcn MGCP_Templates.ttcn MGCP_CodecPort.ttcn MGCP_CodecPort_CtrlFunct.ttcn MGCP_CodecPort_CtrlFunctDef.cc " FILES+="RTP_CodecPort.ttcn RTP_Emulation.ttcn IuUP_Types.ttcn IuUP_Emulation.ttcn IuUP_EncDec.cc " +FILES+="Native_Functions.ttcn Native_FunctionDefs.cc IPCP_Types.ttcn " +FILES+="Osmocom_VTY_Functions.ttcn " gen_links $DIR $FILES ignore_pp_results diff --git a/mgw/regen_makefile.sh b/mgw/regen_makefile.sh index 2b7d1f4..64a4fc5 100755 --- a/mgw/regen_makefile.sh +++ b/mgw/regen_makefile.sh @@ -1,5 +1,5 @@ #!/bin/sh -FILES="*.ttcn SDP_EncDec.cc *.c MGCP_CodecPort_CtrlFunctDef.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc RTP_EncDec.cc RTP_CodecPort_CtrlFunctDef.cc IuUP_EncDec.cc " +FILES="*.ttcn SDP_EncDec.cc *.c MGCP_CodecPort_CtrlFunctDef.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc RTP_EncDec.cc RTP_CodecPort_CtrlFunctDef.cc IuUP_EncDec.cc Native_FunctionDefs.cc TELNETasp_PT.cc IP_EncDec.cc " ../regen-makefile.sh MGCP_Test.ttcn $FILES -- To view, visit https://gerrit.osmocom.org/12981 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If383f81af3306f8f5bdf50152498ae1303d390df Gerrit-Change-Number: 12981 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 16:22:32 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 20 Feb 2019 16:22:32 +0000 Subject: Change in docker-playground[master]: ttcn3-mgw_test: Configure VTY interface Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/12982 Change subject: ttcn3-mgw_test: Configure VTY interface ...................................................................... ttcn3-mgw_test: Configure VTY interface The testsuite did not support VTY access in the past, so VTY access was unconfigured. Lets add the required lines to the configuration files Depends: osmo-mgw If383f81af3306f8f5bdf50152498ae1303d390df Change-Id: Ife949c61156222de3026280071226ef6f5dbd959 Related: OS#3807 --- M ttcn3-mgw-test/MGCP_Test.cfg M ttcn3-mgw-test/osmo-mgw.cfg 2 files changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/82/12982/1 diff --git a/ttcn3-mgw-test/MGCP_Test.cfg b/ttcn3-mgw-test/MGCP_Test.cfg index cd23183..0c6a550 100644 --- a/ttcn3-mgw-test/MGCP_Test.cfg +++ b/ttcn3-mgw-test/MGCP_Test.cfg @@ -5,6 +5,7 @@ [LOGGING] [TESTPORT_PARAMETERS] +*.MGWVTY.CTRL_HOSTNAME := "172.18.4.180" [MODULE_PARAMETERS] mp_local_ip:= "172.18.4.181"; diff --git a/ttcn3-mgw-test/osmo-mgw.cfg b/ttcn3-mgw-test/osmo-mgw.cfg index eb2f7ef..7b0094f 100644 --- a/ttcn3-mgw-test/osmo-mgw.cfg +++ b/ttcn3-mgw-test/osmo-mgw.cfg @@ -31,6 +31,7 @@ ! line vty no login + bind 0.0.0.0 ! mgcp bind ip 172.18.4.180 -- To view, visit https://gerrit.osmocom.org/12982 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ife949c61156222de3026280071226ef6f5dbd959 Gerrit-Change-Number: 12982 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 16:26:12 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 20 Feb 2019 16:26:12 +0000 Subject: Change in osmo-mgw[master]: Add option to GSM HR frames to RFC5593 representation In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12979 ) Change subject: Add option to GSM HR frames to RFC5593 representation ...................................................................... Patch Set 1: Code-Review-1 (6 comments) https://gerrit.osmocom.org/#/c/12979/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/12979/1//COMMIT_MSG at 11 PS1, Line 11: contents byte to be prepended in front of the payload data along with Missing ) and capital C: (Table of Contents) https://gerrit.osmocom.org/#/c/12979/1//COMMIT_MSG at 14 PS1, Line 14: The two formates can be distinguished easyly by their length. Then the typo: formats typo: easily https://gerrit.osmocom.org/#/c/12979/1/include/osmocom/mgcp/mgcp_internal.h File include/osmocom/mgcp/mgcp_internal.h: https://gerrit.osmocom.org/#/c/12979/1/include/osmocom/mgcp/mgcp_internal.h at 131 PS1, Line 131: int rfc5993_hr_convert; we can use a bool here. https://gerrit.osmocom.org/#/c/12979/1/src/libosmo-mgcp/mgcp_network.c File src/libosmo-mgcp/mgcp_network.c: https://gerrit.osmocom.org/#/c/12979/1/src/libosmo-mgcp/mgcp_network.c at 655 PS1, Line 655: /* This has been ported from openbsc.git, branch sylvain/32c3_codec, Is this comment really needed here? Better put it in commit description. https://gerrit.osmocom.org/#/c/12979/1/src/libosmo-mgcp/mgcp_network.c at 701 PS1, Line 701: if (!rtp_end->rfc5993_hr_convert) makes more sense to move this conditional when calling this function, in forward_data(). https://gerrit.osmocom.org/#/c/12979/1/src/libosmo-mgcp/mgcp_vty.c File src/libosmo-mgcp/mgcp_vty.c: https://gerrit.osmocom.org/#/c/12979/1/src/libosmo-mgcp/mgcp_vty.c at 733 PS1, Line 733: g_cfg->trunk.rfc5993_hr_convert = 1; bool here and later. -- To view, visit https://gerrit.osmocom.org/12979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Gerrit-Change-Number: 12979 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 20 Feb 2019 16:26:12 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 16:28:48 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 20 Feb 2019 16:28:48 +0000 Subject: Change in libosmo-netif[master]: Stream client: add disconnect callback In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12980 ) Change subject: Stream client: add disconnect callback ...................................................................... Patch Set 1: Code-Review-1 (1 comment) https://gerrit.osmocom.org/#/c/12980/1/examples/ipa-stream-client.c File examples/ipa-stream-client.c: https://gerrit.osmocom.org/#/c/12980/1/examples/ipa-stream-client.c at 186 PS1, Line 186: osmo_stream_cli_set_connect_cb(conn, disconnect_cb); osmo_stream_cli_set_connect_cb() called twice? that looks wrong. -- To view, visit https://gerrit.osmocom.org/12980 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I905adb2d6191216551a3bcdcd1aec1f96f01612a Gerrit-Change-Number: 12980 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 20 Feb 2019 16:28:48 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 16:33:40 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Wed, 20 Feb 2019 16:33:40 +0000 Subject: Change in libosmo-netif[master]: Stream client: add disconnect callback In-Reply-To: References: Message-ID: Hello Pau Espin Pedrol, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12980 to look at the new patch set (#2). Change subject: Stream client: add disconnect callback ...................................................................... Stream client: add disconnect callback It's similar to connect_cb() but called once client has been disconnected. Change-Id: I905adb2d6191216551a3bcdcd1aec1f96f01612a --- M examples/ipa-stream-client.c M examples/stream-client.c M include/osmocom/netif/stream.h M src/stream.c 4 files changed, 31 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/80/12980/2 -- To view, visit https://gerrit.osmocom.org/12980 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I905adb2d6191216551a3bcdcd1aec1f96f01612a Gerrit-Change-Number: 12980 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 16:34:01 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Wed, 20 Feb 2019 16:34:01 +0000 Subject: Change in libosmo-netif[master]: Stream client: add disconnect callback In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12980 ) Change subject: Stream client: add disconnect callback ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/12980/1/examples/ipa-stream-client.c File examples/ipa-stream-client.c: https://gerrit.osmocom.org/#/c/12980/1/examples/ipa-stream-client.c at 186 PS1, Line 186: osmo_stream_cli_set_disconnect_cb(conn, disconnect_cb); > osmo_stream_cli_set_connect_cb() called twice? that looks wrong. Doh! -- To view, visit https://gerrit.osmocom.org/12980 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I905adb2d6191216551a3bcdcd1aec1f96f01612a Gerrit-Change-Number: 12980 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 20 Feb 2019 16:34:01 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 16:42:20 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 20 Feb 2019 16:42:20 +0000 Subject: Change in libosmo-netif[master]: Stream client: add disconnect callback In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12980 ) Change subject: Stream client: add disconnect callback ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12980 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I905adb2d6191216551a3bcdcd1aec1f96f01612a Gerrit-Change-Number: 12980 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 20 Feb 2019 16:42:20 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 16:50:44 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Wed, 20 Feb 2019 16:50:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: Add VTY access In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12981 ) Change subject: MGCP_Test: Add VTY access ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12981 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If383f81af3306f8f5bdf50152498ae1303d390df Gerrit-Change-Number: 12981 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Wed, 20 Feb 2019 16:50:44 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 16:58:02 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Wed, 20 Feb 2019 16:58:02 +0000 Subject: Change in docker-playground[master]: debian-repo-test: blacklist soapysdr0.7 In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12977 ) Change subject: debian-repo-test: blacklist soapysdr0.7 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12977 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic7c6b95d20345b39af2ba0d09dddd361696723be Gerrit-Change-Number: 12977 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 20 Feb 2019 16:58:02 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 17:09:23 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 20 Feb 2019 17:09:23 +0000 Subject: Change in osmo-pcu[master]: Clarify write_immediate_assignment() signature In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12948 ) Change subject: Clarify write_immediate_assignment() signature ...................................................................... Patch Set 5: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12948 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I363445063e2d873d9194b2a5924b9e59b8b7ea53 Gerrit-Change-Number: 12948 Gerrit-PatchSet: 5 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 20 Feb 2019 17:09:23 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 17:13:07 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 20 Feb 2019 17:13:07 +0000 Subject: Change in osmo-bts[master]: oc2g: Fix compilation error (comment mark inside comment) In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12962 ) Change subject: oc2g: Fix compilation error (comment mark inside comment) ...................................................................... Patch Set 2: > A better approach would be to use: > > #if 0 > ... > #endif > > instead of abusing comments. Sure makes sense, but I don't plan to invest time on this code since anyway will be cleaned/improved later. For now I'm just clearing some obvious compile time warnings/errors to better see how other more annoying warnings need to be fixed and avoid adding new warnings later on with new development. -- To view, visit https://gerrit.osmocom.org/12962 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib27b31825744ea397b5b4eb258da78f5f834895c Gerrit-Change-Number: 12962 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 20 Feb 2019 17:13:07 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 17:31:05 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Wed, 20 Feb 2019 17:31:05 +0000 Subject: Change in osmo-bts[master]: oc2g: vty: Compilation error fixes due to commented code In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12973 ) Change subject: oc2g: vty: Compilation error fixes due to commented code ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12973/1/src/osmo-bts-oc2g/oc2gbts_vty.c File src/osmo-bts-oc2g/oc2gbts_vty.c: https://gerrit.osmocom.org/#/c/12973/1/src/osmo-bts-oc2g/oc2gbts_vty.c at 80 PS1, Line 80: /* > Same here, why not to use #if 0? Same here, doesn't really matter since this code will change at some point either being removed or fixed. For now I'm just quickly removing compilation warnings. -- To view, visit https://gerrit.osmocom.org/12973 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id2b16b9acd15d0c80085fac0fdc2a57173ebb0a0 Gerrit-Change-Number: 12973 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 20 Feb 2019 17:31:05 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 17:48:00 2019 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Wed, 20 Feb 2019 17:48:00 +0000 Subject: Change in osmo-mgw[master]: Add option to GSM HR frames to RFC5593 representation In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/12979 ) Change subject: Add option to GSM HR frames to RFC5593 representation ...................................................................... Patch Set 1: I'm rechecking the specs right now, but this 'jumble' function was written to fix a _bug_ in an older sysmobts phy version. I'm pretty sure back then I checked both the RFC and IETF specs and both specified the same parameter bit order because the alternative is _nuts_ and it was just whoever implemented the phy misread the spec (because they are confusing, referencing different specs and some use b0 as msb and some as lsb ...) -- To view, visit https://gerrit.osmocom.org/12979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Gerrit-Change-Number: 12979 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: tnt Gerrit-Comment-Date: Wed, 20 Feb 2019 17:48:00 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 18:10:49 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 18:10:49 +0000 Subject: Change in docker-playground[master]: ttcn3-mgw_test: Configure VTY interface In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12982 ) Change subject: ttcn3-mgw_test: Configure VTY interface ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12982 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ife949c61156222de3026280071226ef6f5dbd959 Gerrit-Change-Number: 12982 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Wed, 20 Feb 2019 18:10:49 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 18:11:47 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 18:11:47 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: Add VTY access In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12981 ) Change subject: MGCP_Test: Add VTY access ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12981 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If383f81af3306f8f5bdf50152498ae1303d390df Gerrit-Change-Number: 12981 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Wed, 20 Feb 2019 18:11:47 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 18:11:50 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 18:11:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: Add VTY access In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12981 ) Change subject: MGCP_Test: Add VTY access ...................................................................... MGCP_Test: Add VTY access The MGCP_Test testsuite currenty lacks VTY access capabilities, lets add them so that future testcases can access the VTY in order to change options on the fly. Depends: osmo-ttcn3-hacks Ife949c61156222de3026280071226ef6f5dbd959 Change-Id: If383f81af3306f8f5bdf50152498ae1303d390df Related: OS#3807 --- M mgw/MGCP_Test.default M mgw/MGCP_Test.ttcn M mgw/gen_links.sh M mgw/regen_makefile.sh 4 files changed, 37 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Max: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/mgw/MGCP_Test.default b/mgw/MGCP_Test.default index 16027cc..4336033 100644 --- a/mgw/MGCP_Test.default +++ b/mgw/MGCP_Test.default @@ -2,12 +2,22 @@ FileMask := LOG_ALL | TTCN_MATCHING; [TESTPORT_PARAMETERS] +*.MGWVTY.CTRL_MODE := "client" +*.MGWVTY.CTRL_HOSTNAME := "127.0.0.1" +*.MGWVTY.CTRL_PORTNUM := "4243" +*.MGWVTY.CTRL_LOGIN_SKIPPED := "yes" +*.MGWVTY.CTRL_DETECT_SERVER_DISCONNECTED := "yes" +*.MGWVTY.CTRL_READMODE := "buffered" +*.MGWVTY.CTRL_CLIENT_CLEANUP_LINEFEED := "yes" +*.MGWVTY.CTRL_DETECT_CONNECTION_ESTABLISHMENT_RESULT := "yes" +*.MGWVTY.PROMPT1 := "OsmoMGW> " [MODULE_PARAMETERS] mp_local_udp_port := 2727; mp_local_ip:= "127.0.0.1"; mp_remote_udp_port := 2427; mp_remote_ip:= "127.0.0.1"; +Osmocom_VTY_Functions.mp_prompt_prefix := "OsmoMGW"; [MAIN_CONTROLLER] diff --git a/mgw/MGCP_Test.ttcn b/mgw/MGCP_Test.ttcn index 9adeb2a..9eff8c2 100644 --- a/mgw/MGCP_Test.ttcn +++ b/mgw/MGCP_Test.ttcn @@ -9,6 +9,12 @@ import from RTP_CodecPort_CtrlFunct all; import from RTP_Emulation all; import from IPL4asp_Types all; + import from General_Types all; + import from Native_Functions all; + import from IPCP_Types all; + import from IP_Types all; + import from Osmocom_VTY_Functions all; + import from TELNETasp_PortType all; const charstring c_mgw_domain := "mgw"; const charstring c_mgw_ep_rtpbridge := "rtpbridge/"; @@ -24,6 +30,8 @@ var RTP_Emulation_CT vc_RTPEM[3]; port RTPEM_CTRL_PT RTPEM[3]; + + port TELNETasp_PT MGWVTY; }; function get_next_trans_id() runs on dummy_CT return MgcpTransId { @@ -44,6 +52,12 @@ PortNumber mp_local_rtp_port_base := 10000; } + private function f_init_vty() runs on dummy_CT { + map(self:MGWVTY, system:MGWVTY); + f_vty_set_prompts(MGWVTY); + f_vty_transceive(MGWVTY, "enable"); + } + private function f_rtpem_init(inout RTP_Emulation_CT comp_ref, integer i) runs on dummy_CT { comp_ref := RTP_Emulation_CT.create("RTPEM" & int2str(i)); @@ -85,6 +99,8 @@ /* do a DLCX on all connections of the EP */ f_dlcx_ignore(valueof(ep)); } + + f_init_vty(); } testcase TC_selftest() runs on dummy_CT { diff --git a/mgw/gen_links.sh b/mgw/gen_links.sh index 8b2def7..632f2e3 100755 --- a/mgw/gen_links.sh +++ b/mgw/gen_links.sh @@ -29,10 +29,20 @@ FILES="RTP_EncDec.cc RTP_Types.ttcn" gen_links $DIR $FILES +DIR=$BASEDIR/titan.ProtocolModules.IP/src +FILES="IP_EncDec.cc IP_Types.ttcn" +gen_links $DIR $FILES + +DIR=$BASEDIR/titan.TestPorts.TELNETasp/src +FILES="TELNETasp_PT.cc TELNETasp_PT.hh TELNETasp_PortType.ttcn" +gen_links $DIR $FILES + DIR=../library FILES="Misc_Helpers.ttcn General_Types.ttcn Osmocom_Types.ttcn MGCP_Types.ttcn MGCP_Templates.ttcn MGCP_CodecPort.ttcn MGCP_CodecPort_CtrlFunct.ttcn MGCP_CodecPort_CtrlFunctDef.cc " FILES+="RTP_CodecPort.ttcn RTP_Emulation.ttcn IuUP_Types.ttcn IuUP_Emulation.ttcn IuUP_EncDec.cc " +FILES+="Native_Functions.ttcn Native_FunctionDefs.cc IPCP_Types.ttcn " +FILES+="Osmocom_VTY_Functions.ttcn " gen_links $DIR $FILES ignore_pp_results diff --git a/mgw/regen_makefile.sh b/mgw/regen_makefile.sh index 2b7d1f4..64a4fc5 100755 --- a/mgw/regen_makefile.sh +++ b/mgw/regen_makefile.sh @@ -1,5 +1,5 @@ #!/bin/sh -FILES="*.ttcn SDP_EncDec.cc *.c MGCP_CodecPort_CtrlFunctDef.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc RTP_EncDec.cc RTP_CodecPort_CtrlFunctDef.cc IuUP_EncDec.cc " +FILES="*.ttcn SDP_EncDec.cc *.c MGCP_CodecPort_CtrlFunctDef.cc IPL4asp_PT.cc IPL4asp_discovery.cc TCCConversion.cc TCCInterface.cc RTP_EncDec.cc RTP_CodecPort_CtrlFunctDef.cc IuUP_EncDec.cc Native_FunctionDefs.cc TELNETasp_PT.cc IP_EncDec.cc " ../regen-makefile.sh MGCP_Test.ttcn $FILES -- To view, visit https://gerrit.osmocom.org/12981 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If383f81af3306f8f5bdf50152498ae1303d390df Gerrit-Change-Number: 12981 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 18:12:00 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 18:12:00 +0000 Subject: Change in docker-playground[master]: ttcn3-mgw_test: Configure VTY interface In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12982 ) Change subject: ttcn3-mgw_test: Configure VTY interface ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/12982 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ife949c61156222de3026280071226ef6f5dbd959 Gerrit-Change-Number: 12982 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Wed, 20 Feb 2019 18:12:00 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 18:12:01 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 18:12:01 +0000 Subject: Change in docker-playground[master]: ttcn3-mgw_test: Configure VTY interface In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12982 ) Change subject: ttcn3-mgw_test: Configure VTY interface ...................................................................... ttcn3-mgw_test: Configure VTY interface The testsuite did not support VTY access in the past, so VTY access was unconfigured. Lets add the required lines to the configuration files Depends: osmo-mgw If383f81af3306f8f5bdf50152498ae1303d390df Change-Id: Ife949c61156222de3026280071226ef6f5dbd959 Related: OS#3807 --- M ttcn3-mgw-test/MGCP_Test.cfg M ttcn3-mgw-test/osmo-mgw.cfg 2 files changed, 2 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/ttcn3-mgw-test/MGCP_Test.cfg b/ttcn3-mgw-test/MGCP_Test.cfg index cd23183..0c6a550 100644 --- a/ttcn3-mgw-test/MGCP_Test.cfg +++ b/ttcn3-mgw-test/MGCP_Test.cfg @@ -5,6 +5,7 @@ [LOGGING] [TESTPORT_PARAMETERS] +*.MGWVTY.CTRL_HOSTNAME := "172.18.4.180" [MODULE_PARAMETERS] mp_local_ip:= "172.18.4.181"; diff --git a/ttcn3-mgw-test/osmo-mgw.cfg b/ttcn3-mgw-test/osmo-mgw.cfg index eb2f7ef..7b0094f 100644 --- a/ttcn3-mgw-test/osmo-mgw.cfg +++ b/ttcn3-mgw-test/osmo-mgw.cfg @@ -31,6 +31,7 @@ ! line vty no login + bind 0.0.0.0 ! mgcp bind ip 172.18.4.180 -- To view, visit https://gerrit.osmocom.org/12982 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ife949c61156222de3026280071226ef6f5dbd959 Gerrit-Change-Number: 12982 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 18:13:11 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 18:13:11 +0000 Subject: Change in docker-playground[master]: debian-repo-test: blacklist soapysdr0.7 In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12977 ) Change subject: debian-repo-test: blacklist soapysdr0.7 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12977 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic7c6b95d20345b39af2ba0d09dddd361696723be Gerrit-Change-Number: 12977 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 20 Feb 2019 18:13:11 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 18:13:13 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 18:13:13 +0000 Subject: Change in docker-playground[master]: debian-repo-test: blacklist soapysdr0.7 In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12977 ) Change subject: debian-repo-test: blacklist soapysdr0.7 ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/12977 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic7c6b95d20345b39af2ba0d09dddd361696723be Gerrit-Change-Number: 12977 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Comment-Date: Wed, 20 Feb 2019 18:13:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 18:13:15 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 18:13:15 +0000 Subject: Change in docker-playground[master]: debian-repo-test: blacklist soapysdr0.7 In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12977 ) Change subject: debian-repo-test: blacklist soapysdr0.7 ...................................................................... debian-repo-test: blacklist soapysdr0.7 Fix conflict in debian-repo-test-latest by not explicitly installing soapysdr0.7: dpkg: error processing archive /tmp/apt-dpkg-install-aYn9qf/398-soapysdr0.7-module-lms7_19.01.0-1_amd64.deb (--unpack): trying to overwrite '/usr/lib/x86_64-linux-gnu/SoapySDR/modules0.5-2/libLMS7Support.so', which is also in package soapysdr0.5-2-module-lms7:amd64 16.12.0+dfsg-1 I have tested locally, that debian-repo-test passes with this patch with both FEED=latest and FEED=nightly. Related: OS#3809 Change-Id: Ic7c6b95d20345b39af2ba0d09dddd361696723be --- M debian-repo-install-test/testdata/blacklist.txt 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified daniel: Looks good to me, but someone else must approve diff --git a/debian-repo-install-test/testdata/blacklist.txt b/debian-repo-install-test/testdata/blacklist.txt index 4d3f7ed..cb7db6a 100644 --- a/debian-repo-install-test/testdata/blacklist.txt +++ b/debian-repo-install-test/testdata/blacklist.txt @@ -23,3 +23,5 @@ soapysdr-module-lms7 soapysdr0.6-module-lms7 soapysdr0.6-module-lms7-dbgsym +soapysdr0.7-module-lms7 +soapysdr0.7-module-lms7-dbgsym -- To view, visit https://gerrit.osmocom.org/12977 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic7c6b95d20345b39af2ba0d09dddd361696723be Gerrit-Change-Number: 12977 Gerrit-PatchSet: 2 Gerrit-Owner: osmith Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 18:14:33 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 18:14:33 +0000 Subject: Change in libosmocore[master]: gprs_ns: Add missing NSVCI IE to NS-BLOCK-ACK message In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12969 ) Change subject: gprs_ns: Add missing NSVCI IE to NS-BLOCK-ACK message ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/#/c/12969/1/src/gb/gprs_ns.c File src/gb/gprs_ns.c: https://gerrit.osmocom.org/#/c/12969/1/src/gb/gprs_ns.c at 560 PS1, Line 560: log_set_context(LOG_CTX_GB_NSVC, nsvc); > Fine, but then when you go back to select() and fire another path which contains no log_set_context( [?] the solution then is to make sure the logging context is re-initialized to none every time we come out of select (or just before entering select). Let's create a separate issue about this and fix it there. -- To view, visit https://gerrit.osmocom.org/12969 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie7205e99d57f1e42d941f1be2460d8c9f46aadfe Gerrit-Change-Number: 12969 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 20 Feb 2019 18:14:33 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 18:14:36 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 18:14:36 +0000 Subject: Change in libosmocore[master]: gprs_ns: Add missing NSVCI IE to NS-BLOCK-ACK message In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12969 ) Change subject: gprs_ns: Add missing NSVCI IE to NS-BLOCK-ACK message ...................................................................... gprs_ns: Add missing NSVCI IE to NS-BLOCK-ACK message According to Section 9.2.4 of 3GPP TS 48.016, the NS-BLOCK-ACK PDU has a mandatory NSVCI IE which we so far were missing. Change-Id: Ie7205e99d57f1e42d941f1be2460d8c9f46aadfe Closes: OS#3808 --- M src/gb/gprs_ns.c 1 file changed, 29 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Max: Looks good to me, but someone else must approve Pau Espin Pedrol: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c index 47c2529..54964d3 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -547,6 +547,34 @@ return gprs_ns_tx(nsvc, msg); } +/*! Transmit a NS-BLOCK-ACK on a given NS-VC + * \param[in] nsvc NS-VC on which the NS-BLOCK is to be transmitted + * \returns 0 in case of success + */ +static int gprs_ns_tx_block_ack(struct gprs_nsvc *nsvc) +{ + struct msgb *msg; + struct gprs_ns_hdr *nsh; + uint16_t nsvci = osmo_htons(nsvc->nsvci); + + log_set_context(LOG_CTX_GB_NSVC, nsvc); + + msg = gprs_ns_msgb_alloc(); + if (!msg) + return -ENOMEM; + + LOGP(DNS, LOGL_INFO, "NSEI=%u Tx NS BLOCK ACK (NSVCI=%u)\n", nsvc->nsei, nsvc->nsvci); + + /* be conservative and mark it as blocked even now! */ + msg->l2h = msgb_put(msg, sizeof(*nsh)); + nsh = (struct gprs_ns_hdr *) msg->l2h; + nsh->pdu_type = NS_PDUT_BLOCK_ACK; + + msgb_tvlv_put(msg, NS_IE_VCI, 2, (uint8_t *) &nsvci); + + return gprs_ns_tx(nsvc, msg); +} + /*! Transmit a NS-UNBLOCK on a given NS-VC * \param[in] nsvc NS-VC on which the NS-UNBLOCK is to be transmitted * \returns 0 in case of success @@ -1122,7 +1150,7 @@ ns_osmo_signal_dispatch(nsvc, S_NS_BLOCK, *cause); rate_ctr_inc(&nsvc->ctrg->ctr[NS_CTR_BLOCKED]); - return gprs_ns_tx_simple(nsvc, NS_PDUT_BLOCK_ACK); + return gprs_ns_tx_block_ack(nsvc); } int gprs_ns_vc_create(struct gprs_ns_inst *nsi, struct msgb *msg, -- To view, visit https://gerrit.osmocom.org/12969 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie7205e99d57f1e42d941f1be2460d8c9f46aadfe Gerrit-Change-Number: 12969 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 19:05:35 2019 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Wed, 20 Feb 2019 19:05:35 +0000 Subject: Change in osmo-mgw[master]: Add option to GSM HR frames to RFC5593 representation In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/12979 ) Change subject: Add option to GSM HR frames to RFC5593 representation ...................................................................... Patch Set 1: Code-Review-1 Confirmed by re-reading both rfc5993 (which refers to TS46.020, Annex B) and TS 101.318 5.2 Both use the exact same format for the actual 'speech data'. There is no bit shuffling or anything needed, the TOC header is the only difference. If you want a mode for that bit shuffling because you need to talk to some screwed up implementation, that should be a separate option 'enable_crappy_implementation_workaround' or something. -- To view, visit https://gerrit.osmocom.org/12979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Gerrit-Change-Number: 12979 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: tnt Gerrit-Comment-Date: Wed, 20 Feb 2019 19:05:35 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 19:33:11 2019 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Wed, 20 Feb 2019 19:33:11 +0000 Subject: Change in libosmocore[master]: [WIP] fsm: Delay processing events after dispatch is complete Message-ID: tnt has uploaded this change for review. ( https://gerrit.osmocom.org/12983 Change subject: [WIP] fsm: Delay processing events after dispatch is complete ...................................................................... [WIP] fsm: Delay processing events after dispatch is complete Change-Id: I6f0c64d21d57512c5b329b561ccd415a93790dec Signed-off-by: Sylvain Munaut --- M include/osmocom/core/fsm.h M src/fsm.c 2 files changed, 72 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/83/12983/1 diff --git a/include/osmocom/core/fsm.h b/include/osmocom/core/fsm.h index df7e348..c1144c6 100644 --- a/include/osmocom/core/fsm.h +++ b/include/osmocom/core/fsm.h @@ -17,6 +17,9 @@ struct osmo_fsm_inst; +/*! Maximum number of pending events to be disptached to an FSM instance */ +#define OSMO_FSM_MAX_PENDING_EVENTS 8 + enum osmo_fsm_term_cause { /*! terminate because parent terminated */ OSMO_FSM_TERM_PARENT, @@ -115,6 +118,20 @@ /*! \ref llist_head linked to parent->proc.children */ struct llist_head child; } proc; + + /*! Busy inside dispatch */ + int in_dispatch; + + /*! Queue of events to dispatch */ + struct { + uint32_t event; + void *data; + const char *src_file; + int src_line; + } evt_queue[OSMO_FSM_MAX_PENDING_EVENTS]; + + /*! Number of events queued */ + int evt_queue_len; }; void osmo_fsm_log_addr(bool log_addr); diff --git a/src/fsm.c b/src/fsm.c index 6e15ab7..46128d3 100644 --- a/src/fsm.c +++ b/src/fsm.c @@ -571,6 +571,7 @@ { struct osmo_fsm *fsm; const struct osmo_fsm_state *fs; + int i; if (!fi) { LOGPSRC(DLGLOBAL, LOGL_ERROR, file, line, @@ -581,26 +582,67 @@ } fsm = fi->fsm; - OSMO_ASSERT(fi->state < fsm->num_states); - fs = &fi->fsm->states[fi->state]; - LOGPFSMSRC(fi, file, line, - "Received Event %s\n", osmo_fsm_event_name(fsm, event)); +// LOGPFSMSRC(fi, file, line, +// "Received Event %s%s.\n", +// osmo_fsm_event_name(fsm, event), +// fi->in_dispatch ? " while in dispatch, queing it" : ""); - if (((1 << event) & fsm->allstate_event_mask) && fsm->allstate_action) { - fsm->allstate_action(fi, event, data); + if (fi->evt_queue_len == OSMO_FSM_MAX_PENDING_EVENTS) { + LOGPFSMSRC(fi, file, line, + "Unable to queue event %s, overflow ...\n", + osmo_fsm_event_name(fsm, event)); + + return -ENOMEM; + } + + fi->evt_queue[fi->evt_queue_len].event = event; + fi->evt_queue[fi->evt_queue_len].data = data; + fi->evt_queue[fi->evt_queue_len].src_file = file; + fi->evt_queue[fi->evt_queue_len].src_line = line; + fi->evt_queue_len++; + + if (fi->in_dispatch) { + LOGPFSMSRC(fi, file, line, + "Deferred Event %s\n", + osmo_fsm_event_name(fsm, event)); return 0; } - if (!((1 << event) & fs->in_event_mask)) { - LOGPFSMLSRC(fi, LOGL_ERROR, file, line, - "Event %s not permitted\n", - osmo_fsm_event_name(fsm, event)); - return -1; + fi->in_dispatch = 1; + + for (i=0; i < fi->evt_queue_len; i++) { + OSMO_ASSERT(fi->state < fsm->num_states); + fs = &fi->fsm->states[fi->state]; + + event = fi->evt_queue[i].event; + data = fi->evt_queue[i].data; + file = fi->evt_queue[i].src_file; + line = fi->evt_queue[i].src_line; + +// LOGPFSMSRC(fi, file, line, +// "Processing Event %s\n", osmo_fsm_event_name(fsm, event)); + LOGPFSMSRC(fi, file, line, + "Received Event %s\n", osmo_fsm_event_name(fsm, event)); + + if (((1 << event) & fsm->allstate_event_mask) && fsm->allstate_action) { + fsm->allstate_action(fi, event, data); + continue; + } + + if (!((1 << event) & fs->in_event_mask)) { + LOGPFSMLSRC(fi, LOGL_ERROR, file, line, + "Event %s not permitted\n", + osmo_fsm_event_name(fsm, event)); + continue; + } + + if (fs->action) + fs->action(fi, event, data); } - if (fs->action) - fs->action(fi, event, data); + fi->evt_queue_len = 0; + fi->in_dispatch = 0; return 0; } -- To view, visit https://gerrit.osmocom.org/12983 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6f0c64d21d57512c5b329b561ccd415a93790dec Gerrit-Change-Number: 12983 Gerrit-PatchSet: 1 Gerrit-Owner: tnt -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 19:52:57 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 19:52:57 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Tests for the BSS/PCU side NS/BSSGP implementations Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12984 Change subject: PCU: Tests for the BSS/PCU side NS/BSSGP implementations ...................................................................... PCU: Tests for the BSS/PCU side NS/BSSGP implementations The existing (unused) PCU_Tests are operating on top of a NS + BSSGP emulation, i.e. they're aimed at testing higher protocol layers. Also, they required BTS+BSC to run next to the PCU. The new PCU_Tests_RAW introduced in this patch are the exact opposite: * they test the PCU alone (attach to PCUIF and Gb interface) * they don't require BTS or BSC to run * they don't use NS + BSSGP emulation but raw NS/BSSGP frames to test the very NS/BSSGP implementation inside of OsmoPCU. Change-Id: I7ad76b96974cf0a686ad0f00ccd09d1a9df8b4d5 --- M pcu/PCU_Tests.cfg A pcu/PCU_Tests_RAW.ttcn M pcu/gen_links.sh 3 files changed, 372 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/84/12984/1 diff --git a/pcu/PCU_Tests.cfg b/pcu/PCU_Tests.cfg index 5975290..17d5448 100644 --- a/pcu/PCU_Tests.cfg +++ b/pcu/PCU_Tests.cfg @@ -33,6 +33,7 @@ [TESTPORT_PARAMETERS] *.*.udpReuseAddress := "yes"; +*.PCU.socket_type := "SEQPACKET" [MAIN_CONTROLLER] diff --git a/pcu/PCU_Tests_RAW.ttcn b/pcu/PCU_Tests_RAW.ttcn new file mode 100644 index 0000000..50d9d0e --- /dev/null +++ b/pcu/PCU_Tests_RAW.ttcn @@ -0,0 +1,370 @@ +module PCU_Tests_RAW { + +/* "RAW" PCU tests: Talk directly to the PCU socket of OsmoPCU on the one hand side (emulating + the BTS/BSC side PCU socket server) and the Gb interface on the other hand side. No NS/BSSGP + Emulation is used; rather, we simply use the NS_CodecPort to implement both standard and non- + standard procedures on the NS and BSSGP level. The goal of these tests is to test exactly + those NS and BSSGP implementations on the BSS (PCU) side. */ + +import from General_Types all; +import from Osmocom_Types all; +import from NS_Types all; +import from BSSGP_Types all; +import from Osmocom_Gb_Types all; + +import from BSSGP_Emulation all; /* BssgpConfig */ +import from NS_Emulation all; /* NSConfiguration */ + +import from UD_Types all; +import from PCUIF_Types all; +import from PCUIF_CodecPort all; +import from IPL4asp_Types all; +import from NS_CodecPort all; +import from NS_CodecPort_CtrlFunct all; +import from Native_Functions all; +import from PCU_Tests all; + + +type component RAW_NS_CT { + /* UDP port towards the bottom (IUT) */ + port NS_CODEC_PT NSCP; + var ConnectionId g_ns_conn_id := -1; + + /* PCUIF (we emulate the BTS part) */ + port PCUIF_CODEC_PT PCU; + var ConnectionId g_pcu_conn_id := -1; +} + +function f_init_pcuif() runs on RAW_NS_CT { + map(self:PCU, system:PCU); + + /* Connect the Unix Domain Socket */ + g_pcu_conn_id := f_pcuif_listen(PCU, PCU_SOCK_DEFAULT); + PCU.receive(UD_connected:?); + + /* Wait for PCU_VERSION and return INFO_IND */ + PCU.receive(t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_TXT_IND(0, PCU_VERSION, ?))); + /* FIXME: make sure to use parameters from mp_gb_cfg.cell_id in the PCU INFO IND */ + var template PCUIF_Message info_ind := ts_PCUIF_INFO_IND(bts_nr := 0, + nsei := mp_nsconfig.nsei, + nsvci := mp_nsconfig.nsvci, + bvci := mp_gb_cfg.bvci, + local_port := mp_nsconfig.remote_udp_port, + remote_port := mp_nsconfig.local_udp_port, + remote_ip := f_inet_haddr(mp_nsconfig.remote_ip) + ); + PCU.send(t_SD_PCUIF(g_pcu_conn_id, info_ind)); +} + +function f_init_ns_codec() runs on RAW_NS_CT { + var Result res; + map(self:NSCP, system:NSCP); + /* Connect the UDP socket */ + res := f_IPL4_connect(NSCP, mp_nsconfig.remote_ip, mp_nsconfig.remote_udp_port, + mp_nsconfig.local_ip, mp_nsconfig.local_udp_port, + 0, { udp := {}}); + if (not ispresent(res.connId)) { + setverdict(fail, "Could not connect NS UDP socket, check your configuration"); + mtc.stop; + } + g_ns_conn_id := res.connId; + /* FIXME: start guard timer */ +} + +function f_ns_exp(template PDU_NS exp_rx) runs on RAW_NS_CT return PDU_NS { + var NS_RecvFrom nrf; + log("f_ns_exp() expecting ", exp_rx); + alt { + [] NSCP.receive(t_NS_RecvFrom(exp_rx)) -> value nrf { } + [] NSCP.receive { + setverdict(fail, "Received unexpected NS: ", nrf); + mtc.stop; + } + } + return nrf.msg; +} + +/* perform inbound SNS-SIZE procedure */ +function f_incoming_sns_size(template (omit) NsCause cause := omit) runs on RAW_NS_CT { + var PDU_NS rx; + /* expect one single SNS-SIZE with RESET flag; one remote v4 EP; no v6 EP */ + rx := f_ns_exp(tr_SNS_SIZE(mp_nsconfig.nsei, rst_flag := true, max_nsvcs := ?, + num_v4 := 1, num_v6 := omit)); + NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_SIZE_ACK(mp_nsconfig.nsei, cause))); +} + +/* perform outbound SNS-SIZE procedure */ +function f_outgoing_sns_size(template (omit) NsCause cause := omit) runs on RAW_NS_CT { + var PDU_NS rx; + NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_SIZE(mp_nsconfig.nsei, rst_flag := true, max_nsvcs := 1, + num_v4 := 1, num_v6 := omit) + )); + /* expect one single SNS-SIZE with RESET flag; one remote v4 EP; no v6 EP */ + rx := f_ns_exp(tr_SNS_SIZE_ACK(mp_nsconfig.nsei, cause)); +} + +/* perform inbound SNS-CONFIG procedure */ +function f_incoming_sns_config(template (omit) NsCause cause := omit) runs on RAW_NS_CT { + var PDU_NS rx; + rx := f_ns_exp(tr_SNS_CONFIG(mp_nsconfig.nsei, end_flag := true, v4 := ?)); + NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_CONFIG_ACK(mp_nsconfig.nsei, cause))); +} + +/* perform outbound SNS-CONFIG procedure */ +function f_outgoing_sns_config(template (omit) NsCause cause := omit) runs on RAW_NS_CT { + var PDU_NS rx; + var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(mp_nsconfig.local_ip, + mp_nsconfig.local_udp_port) } + NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_CONFIG(mp_nsconfig.nsei, true, v4))); + rx := f_ns_exp(tr_SNS_CONFIG_ACK(mp_nsconfig.nsei, cause)); +} + +/* perform outbound NS-ALIVE procedure */ +function f_outgoing_ns_alive() runs on RAW_NS_CT { + NSCP.send(t_NS_Send(g_ns_conn_id, t_NS_ALIVE)); + alt { + [] NSCP.receive(t_NS_RecvFrom(t_NS_ALIVE_ACK)); + [] NSCP.receive { repeat; } + } +} + +/* perform outbound NS-BLOCK procedure */ +function f_outgoing_ns_block(NsCause cause) runs on RAW_NS_CT { + NSCP.send(t_NS_Send(g_ns_conn_id, ts_NS_BLOCK(cause, mp_nsconfig.nsvci))); + alt { + [] NSCP.receive(t_NS_RecvFrom(tr_NS_BLOCK_ACK(mp_nsconfig.nsvci))); + [] NSCP.receive { repeat; } + } +} + +/* receive NS-ALIVE and ACK it */ +altstep as_rx_alive_tx_ack(boolean oneshot := false) runs on RAW_NS_CT { + [] NSCP.receive(t_NS_RecvFrom(t_NS_ALIVE)) { + NSCP.send(t_NS_Send(g_ns_conn_id, t_NS_ALIVE_ACK)); + if (not oneshot) { repeat; } + } +} + +/* Receive a BSSGP RESET for given BVCI and ACK it */ +altstep as_rx_bvc_reset_tx_ack(BssgpBvci bvci, boolean oneshot := false) runs on RAW_NS_CT { + var NS_RecvFrom ns_rf; + /* FIXME: nail down received cell_id in match */ + [] NSCP.receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, 0, + decmatch tr_BVC_RESET(?, bvci, ?)))) + -> value ns_rf { + var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.msg.pDU_NS_Unitdata.nS_SDU); + var PDU_BSSGP bssgp_tx := valueof(ts_BVC_RESET_ACK(bvci, mp_gb_cfg.cell_id)); + NSCP.send(t_NS_Send(g_ns_conn_id, ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx)))); + if (not oneshot) { repeat; } + } +} + + +/* Receive a BSSGP UNBLOCK for given BVCI and ACK it */ +altstep as_rx_bvc_unblock_tx_ack(BssgpBvci bvci, boolean oneshot := false) runs on RAW_NS_CT { + var NS_RecvFrom ns_rf; + [] NSCP.receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, 0, + decmatch t_BVC_UNBLOCK(bvci)))) + -> value ns_rf { + var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.msg.pDU_NS_Unitdata.nS_SDU); + var PDU_BSSGP bssgp_tx := valueof(t_BVC_UNBLOCK_ACK(bvci)); + NSCP.send(t_NS_Send(g_ns_conn_id, ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx)))); + if (not oneshot) { repeat; } + } +} + +/* Receive a BSSGP FLOW-CONTROL-BVC and ACK it */ +altstep as_rx_bvc_fc_tx_ack(BssgpBvci bvci, boolean oneshot := false) runs on RAW_NS_CT { + var NS_RecvFrom ns_rf; + [] NSCP.receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, bvci, + decmatch tr_BVC_FC_BVC))) + -> value ns_rf { + var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.msg.pDU_NS_Unitdata.nS_SDU); + var OCT1 tag := bssgp_rx.pDU_BSSGP_FLOW_CONTROL_BVC.tag.unstructured_Value; + var PDU_BSSGP bssgp_tx := valueof(t_BVC_FC_BVC_ACK(tag)); + NSCP.send(t_NS_Send(g_ns_conn_id, ts_NS_UNITDATA(t_SduCtrlB, bvci, enc_PDU_BSSGP(bssgp_tx)))); + if (not oneshot) { repeat; } + } +} + +/********************************************************************************** + * Classic Gb/IP bring-up test cases using NS-{RESET,BLOCK,UNBLOCK} and no IP-SNS * + **********************************************************************************/ + +/* Receive a NS-RESET and ACK it */ +private altstep as_rx_ns_reset_ack(boolean oneshot := false) runs on RAW_NS_CT { + var NS_RecvFrom ns_rf; + [] NSCP.receive(t_NS_RecvFrom(tr_NS_RESET(NS_CAUSE_OM_INTERVENTION, mp_nsconfig.nsvci, + mp_nsconfig.nsei))) -> value ns_rf { + NSCP.send(t_NS_Send(g_ns_conn_id, ts_NS_RESET_ACK(mp_nsconfig.nsvci, mp_nsconfig.nsei))); + if (not oneshot) { repeat; } + } +} +/* Receive a NS-UNBLOCK and ACK it */ +private altstep as_rx_ns_unblock_ack(boolean oneshot := false) runs on RAW_NS_CT { + var NS_RecvFrom ns_rf; + [] NSCP.receive(t_NS_RecvFrom(t_NS_UNBLOCK)) -> value ns_rf { + NSCP.send(t_NS_Send(g_ns_conn_id, t_NS_UNBLOCK_ACK)); + if (not oneshot) { repeat; } + } +} + +/* test the NS-RESET procedure */ +testcase TC_ns_reset() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + + + /* Expect inbound NS-RESET procedure */ + as_rx_ns_reset_ack(); + setverdict(pass); +} + +/* ensure NS-RESET are re-transmitted */ +testcase TC_ns_reset_retrans() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + + var integer i; + for (i := 0; i < 3; i := i+1) { + NSCP.receive(t_NS_RecvFrom(tr_NS_RESET(NS_CAUSE_OM_INTERVENTION, + mp_nsconfig.nsvci, mp_nsconfig.nsei))); + } + + /* Expect inbound NS-RESET procedure */ + as_rx_ns_reset_ack(oneshot := true); + setverdict(pass); +} + +/* test the inbound NS-ALIVE procedure after NS-RESET */ +testcase TC_ns_alive() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + + /* Expect inbound NS-RESET procedure */ + as_rx_ns_reset_ack(oneshot := true); + + /* wait for one ALIVE cycle, then ACK any further ALIVE in the background */ + as_rx_alive_tx_ack(oneshot := true); + setverdict(pass); +} + +/* Test for NS-RESET after NS-ALIVE timeout */ +testcase TC_ns_alive_timeout_reset() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + + /* Expect inbound NS-RESET procedure */ + as_rx_ns_reset_ack(oneshot := true); + + /* wait for at least one NS-ALIVE */ + NSCP.receive(t_NS_RecvFrom(t_NS_ALIVE)); + + /* wait for NS-RESET to re-appear, ignoring any NS-ALIVE until then */ + alt { + [] as_rx_ns_reset_ack(oneshot := true) { setverdict(pass); } + [] NSCP.receive(t_NS_RecvFrom(t_NS_ALIVE)) { repeat; } + } +} + +/* test for NS-RESET/NS-ALIVE/NS-UNBLOCK */ +testcase TC_ns_unblock() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + + /* Expect inbound NS-RESET procedure */ + as_rx_ns_reset_ack(oneshot := true); + + /* wait for one ALIVE cycle, then ACK any further ALIVE in the background */ + as_rx_alive_tx_ack(oneshot := true); + activate(as_rx_alive_tx_ack()); + + as_rx_ns_unblock_ack(oneshot := true); + setverdict(pass); +} + +/* test for NS-UNBLOCK re-transmissions */ +testcase TC_ns_unblock_retrans() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + + /* Expect inbound NS-RESET procedure */ + as_rx_ns_reset_ack(oneshot := true); + + /* wait for one ALIVE cycle, then ACK any further ALIVE in the background */ + as_rx_alive_tx_ack(oneshot := true); + activate(as_rx_alive_tx_ack()); + + /* wait for first NS-UNBLOCK, don't respond */ + NSCP.receive(t_NS_RecvFrom(t_NS_UNBLOCK)); + + /* wait for re-transmission of NS-UNBLOCK */ + as_rx_ns_unblock_ack(oneshot := true); + setverdict(pass); +} + +/* full bring-up of the Gb link for NS and BSSGP layer up to BVC-FC */ +testcase TC_ns_full_bringup() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + + /* Expect inbound NS-RESET procedure */ + as_rx_ns_reset_ack(oneshot := true); + + /* wait for one ALIVE cycle, then ACK any further ALIVE in the background */ + as_rx_alive_tx_ack(oneshot := true); + activate(as_rx_alive_tx_ack()); + + as_rx_ns_unblock_ack(oneshot := true); + + f_outgoing_ns_alive(); + + /* Expect BVC-RESET for signaling (0) and ptp BVCI */ + as_rx_bvc_reset_tx_ack(0, oneshot := true); + as_rx_bvc_reset_tx_ack(mp_gb_cfg.bvci, oneshot := true); + as_rx_bvc_unblock_tx_ack(mp_gb_cfg.bvci, oneshot := true); + + /* wait for one FLOW-CONTROL BVC and then ACK any further in the future */ + as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvci, oneshot := true); + activate(as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvci)); + setverdict(pass); +} + +/* test outbound (SGSN-originated) NS-BLOCK procedure */ +testcase TC_ns_so_block() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + + /* Expect inbound NS-RESET procedure */ + as_rx_ns_reset_ack(oneshot := true); + + /* wait for one ALIVE cycle, then ACK any further ALIVE in the background */ + as_rx_alive_tx_ack(oneshot := true); + activate(as_rx_alive_tx_ack()); + + as_rx_ns_unblock_ack(oneshot := true); + + f_outgoing_ns_alive(); + + f_outgoing_ns_block(NS_CAUSE_EQUIPMENT_FAILURE); + setverdict(pass); +} + + +control { + execute( TC_ns_reset() ); + execute( TC_ns_reset_retrans() ); + execute( TC_ns_alive() ); + execute( TC_ns_alive_timeout_reset() ); + execute( TC_ns_unblock() ); + execute( TC_ns_unblock_retrans() ); + execute( TC_ns_full_bringup() ); + execute( TC_ns_so_block() ); +} + + + + + + +} diff --git a/pcu/gen_links.sh b/pcu/gen_links.sh index 6e549eb..f9f6dd5 100755 --- a/pcu/gen_links.sh +++ b/pcu/gen_links.sh @@ -50,6 +50,7 @@ FILES+="NS_Emulation.ttcn NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc " FILES+="BSSGP_Emulation.ttcn Osmocom_Gb_Types.ttcn " FILES+="LLC_Templates.ttcn L3_Templates.ttcn L3_Common.ttcn " +FILES+="PCUIF_Types.ttcn PCUIF_CodecPort.ttcn " gen_links $DIR $FILES ignore_pp_results -- To view, visit https://gerrit.osmocom.org/12984 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I7ad76b96974cf0a686ad0f00ccd09d1a9df8b4d5 Gerrit-Change-Number: 12984 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 19:52:58 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 19:52:58 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Add tests for our new IP Sub-Network-Service (SNS) Gb interface Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12985 Change subject: PCU: Add tests for our new IP Sub-Network-Service (SNS) Gb interface ...................................................................... PCU: Add tests for our new IP Sub-Network-Service (SNS) Gb interface The SNS-enabled Gb interface has no RESET/BLOCK/UNBLOCK procedures, but introduces a bunch of new SNS procedures. Most importantly the SNS-SIZE and SNS-CONFIG procedures. Change-Id: I0fe3d4579960bab0494c294ec7ab8032feed4fb2 --- A pcu/PCU_Tests_RAW_SNS.ttcn 1 file changed, 86 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/85/12985/1 diff --git a/pcu/PCU_Tests_RAW_SNS.ttcn b/pcu/PCU_Tests_RAW_SNS.ttcn new file mode 100644 index 0000000..75e984d --- /dev/null +++ b/pcu/PCU_Tests_RAW_SNS.ttcn @@ -0,0 +1,86 @@ +module PCU_Tests_RAW_SNS { + +import from Osmocom_Types all; +import from PCU_Tests all; +import from PCU_Tests_RAW all; + +/********************************************************************************** + * Modern Gb/IP bring-up test cases using IP Sub-Network Service (SNS) + **********************************************************************************/ + +/* PCU-originated SNS-SIZE: successful case */ +testcase TC_sns_po_size_success() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + f_incoming_sns_size(); + f_sleep(1.0); + setverdict(pass); +} + +/* PCU-originated SNS-SIZE: NACK from our side */ +testcase TC_sns_po_size_nack() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + f_incoming_sns_size(NS_CAUSE_PROTOCOL_ERROR_UNSPEIFIED); + /* FIXME: ensure we don't get a SNS-CONFIG */ + /* FIXME: ensure we get re-transmitted SNS-SIZE attempts */ + f_sleep(10.0); + setverdict(pass); +} + +/* PCU-originated SNS-CONFIG: successful case */ +testcase TC_sns_po_config_success() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + f_incoming_sns_size(); + f_incoming_sns_config(); + f_sleep(1.0); + setverdict(pass); +} + +/* PCU-originated SNS-CONFIG: successful case */ +testcase TC_sns_po_config_nack() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + f_incoming_sns_size(); + f_incoming_sns_config(NS_CAUSE_PROTOCOL_ERROR_UNSPEIFIED); + /* FIXME: ensure we get re-transmitted SNS-CONFIG attempts */ + f_sleep(10.0); + setverdict(pass); +} + + +/* SGSN-originated SNS-SIZE: successful case */ +testcase TC_sns_so_config_success() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + f_incoming_sns_size(); + f_incoming_sns_config(); + f_outgoing_sns_config(); + + /* wait for one ALIVE cycle, then ACK any further ALIVE in the background */ + as_rx_alive_tx_ack(oneshot := true); + activate(as_rx_alive_tx_ack()); + + f_outgoing_ns_alive(); + + /* Expect BVC-RESET for signaling (0) and ptp BVCI */ + as_rx_bvc_reset_tx_ack(0); + as_rx_bvc_reset_tx_ack(mp_gb_cfg.bvci); + as_rx_bvc_unblock_tx_ack(mp_gb_cfg.bvci); + + /* wait for one FLOW-CONTROL BVC and then ACK any further in the future */ + as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvci, oneshot := true); + activate(as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvci)); + setverdict(pass); +} + +control { + execute( TC_sns_po_size_success() ); + execute( TC_sns_po_size_nack() ); + execute( TC_sns_po_config_success() ); + execute( TC_sns_po_config_nack() ); + execute( TC_sns_so_config_success() ); +} + +} -- To view, visit https://gerrit.osmocom.org/12985 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0fe3d4579960bab0494c294ec7ab8032feed4fb2 Gerrit-Change-Number: 12985 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:05:47 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:05:47 +0000 Subject: Change in libusrp[master]: Avoid compiler warning 'dynamic exception specifications are deprecat... In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12853 ) Change subject: Avoid compiler warning 'dynamic exception specifications are deprecated in C++11 [-Wdeprecated]' ...................................................................... Avoid compiler warning 'dynamic exception specifications are deprecated in C++11 [-Wdeprecated]' Change-Id: Ie472e6f92944cfe1af7d63cd644879573d080ca2 --- M host/include/usrp/usrp_local_sighandler.h M host/lib/usrp_local_sighandler.cc 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Max: Looks good to me, but someone else must approve Pau Espin Pedrol: Looks good to me, approved diff --git a/host/include/usrp/usrp_local_sighandler.h b/host/include/usrp/usrp_local_sighandler.h index ee33675..5553680 100644 --- a/host/include/usrp/usrp_local_sighandler.h +++ b/host/include/usrp/usrp_local_sighandler.h @@ -55,7 +55,7 @@ ~usrp_local_sighandler (); /* throw usrp_signal (signum) */ - static void throw_signal (int signum) throw (usrp_signal); + static void throw_signal (int signum); }; #endif /* INCLUDED_USRP_LOCAL_SIGHANDLER_H */ diff --git a/host/lib/usrp_local_sighandler.cc b/host/lib/usrp_local_sighandler.cc index 5901397..81bc3d1 100644 --- a/host/lib/usrp_local_sighandler.cc +++ b/host/lib/usrp_local_sighandler.cc @@ -64,7 +64,7 @@ } void -usrp_local_sighandler::throw_signal(int signum) throw(usrp_signal) +usrp_local_sighandler::throw_signal(int signum) { throw usrp_signal (signum); } -- To view, visit https://gerrit.osmocom.org/12853 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libusrp Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie472e6f92944cfe1af7d63cd644879573d080ca2 Gerrit-Change-Number: 12853 Gerrit-PatchSet: 1 Gerrit-Owner: Alexander Huemer Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:08:45 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:08:45 +0000 Subject: Change in osmo-sysmon[master]: Introduce generic host config and related helpers In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12761 ) Change subject: Introduce generic host config and related helpers ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie321655a92cdbefbfaa056ac0d583397c83beccb Gerrit-Change-Number: 12761 Gerrit-PatchSet: 6 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 20 Feb 2019 20:08:45 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:10:13 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:10:13 +0000 Subject: Change in osmo-sysmon[master]: Add OpenVPN probe In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12763 ) Change subject: Add OpenVPN probe ...................................................................... Patch Set 5: (1 comment) https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c File src/osysmon_openvpn.c: https://gerrit.osmocom.org/#/c/12763/5/src/osysmon_openvpn.c at 79 PS5, Line 79: tmp[sizeof(tmp) - 1] = '\0'; > Done OSMO_STRLCPY_ARRAY() even as the output is a static array of const size. -- To view, visit https://gerrit.osmocom.org/12763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4493e19b9a09dcebd289457eacd1719f7f8cc31c Gerrit-Change-Number: 12763 Gerrit-PatchSet: 5 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-CC: Harald Welte Gerrit-Comment-Date: Wed, 20 Feb 2019 20:10:13 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:11:34 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:11:34 +0000 Subject: Change in osmo-sysmon[master]: Add OpenVPN probe In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12763 ) Change subject: Add OpenVPN probe ...................................................................... Patch Set 7: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4493e19b9a09dcebd289457eacd1719f7f8cc31c Gerrit-Change-Number: 12763 Gerrit-PatchSet: 7 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 20 Feb 2019 20:11:34 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:23:51 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:23:51 +0000 Subject: Change in osmo-mgw[master]: Add option to GSM HR frames to RFC5593 representation In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12979 ) Change subject: Add option to GSM HR frames to RFC5593 representation ...................................................................... Patch Set 1: > I'm rechecking the specs right now, but this 'jumble' function was > written to fix a _bug_ in an older sysmobts phy version. I'm pretty > sure back then I checked both the RFC and IETF specs and both > specified the same parameter bit order because the alternative is > _nuts_ and it was just whoever implemented the phy misread the spec > (because they are confusing, referencing different specs and some > use b0 as msb and some as lsb ...) the sysmoBTS PHY (just like the PHY of the litecell 1.5 and the oc2g) still have the bit ordering as you discovered it back then. It may be that the ETSI TS is using the same bit-ordering as the new RFC? In that case it would really be a bug. However, the additional 1-byte TOC definitely is a difference between the ETSI HR RTP payload and the RFC5593. -- To view, visit https://gerrit.osmocom.org/12979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Gerrit-Change-Number: 12979 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: tnt Gerrit-CC: Harald Welte Gerrit-Comment-Date: Wed, 20 Feb 2019 20:23:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:26:50 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:26:50 +0000 Subject: Change in osmo-mgw[master]: Add option to GSM HR frames to RFC5593 representation In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12979 ) Change subject: Add option to GSM HR frames to RFC5593 representation ...................................................................... Patch Set 1: (2 comments) https://gerrit.osmocom.org/#/c/12979/1/src/libosmo-mgcp/mgcp_network.c File src/libosmo-mgcp/mgcp_network.c: https://gerrit.osmocom.org/#/c/12979/1/src/libosmo-mgcp/mgcp_network.c at 655 PS1, Line 655: /* This has been ported from openbsc.git, branch sylvain/32c3_codec, > Is this comment really needed here? Better put it in commit description. I don't mind either way. https://gerrit.osmocom.org/#/c/12979/1/src/libosmo-mgcp/mgcp_vty.c File src/libosmo-mgcp/mgcp_vty.c: https://gerrit.osmocom.org/#/c/12979/1/src/libosmo-mgcp/mgcp_vty.c at 107 PS1, Line 107: vty_out(vty, " %srtp-patch rfc5993hr%s", : g_cfg->trunk.rfc5993_hr_convert ? "" : "no ", : VTY_NEWLINE); I think it's important to somehow explain that this is not patching the RFC5993 format, but it is in fact patching (better: converting) the older ETSI TS [FIXME] format to become RFC5993. This should be implied by naming of the VTY option and variable. -- To view, visit https://gerrit.osmocom.org/12979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Gerrit-Change-Number: 12979 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: tnt Gerrit-CC: Harald Welte Gerrit-Comment-Date: Wed, 20 Feb 2019 20:26:50 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:32:13 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:32:13 +0000 Subject: Change in osmo-pcu[master]: Add define for dummy burst string In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12946 ) Change subject: Add define for dummy burst string ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I464920b3d6d47bb1c797a4ce06230f005a2e06a0 Gerrit-Change-Number: 12946 Gerrit-PatchSet: 4 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 20 Feb 2019 20:32:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:32:28 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:32:28 +0000 Subject: Change in osmo-pcu[master]: Move C include to proper place In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12958 ) Change subject: Move C include to proper place ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12958 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id58d1820b94d54ce73ed40edb7747ef975890a7b Gerrit-Change-Number: 12958 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 20 Feb 2019 20:32:28 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:33:25 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:33:25 +0000 Subject: Change in osmo-pcu[master]: Add encoding tests for Immediate Assignment In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12947 ) Change subject: Add encoding tests for Immediate Assignment ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I63f4654b23c7c4f063f6b3254d77157fac798586 Gerrit-Change-Number: 12947 Gerrit-PatchSet: 5 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 20 Feb 2019 20:33:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:33:47 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:33:47 +0000 Subject: Change in osmo-pcu[master]: Clarify write_immediate_assignment() signature In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12948 ) Change subject: Clarify write_immediate_assignment() signature ...................................................................... Patch Set 5: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12948 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I363445063e2d873d9194b2a5924b9e59b8b7ea53 Gerrit-Change-Number: 12948 Gerrit-PatchSet: 5 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 20 Feb 2019 20:33:47 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:34:44 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:34:44 +0000 Subject: Change in osmo-pcu[master]: Restructure IA Rest Octets encoders In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12959 ) Change subject: Restructure IA Rest Octets encoders ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12959 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0ad1bc786c3a8055ea9666f64ae82c512bd01603 Gerrit-Change-Number: 12959 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-Comment-Date: Wed, 20 Feb 2019 20:34:44 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:35:35 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:35:35 +0000 Subject: Change in osmo-pcu[master]: Rewrite Packet Downlink Assignment In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12954 ) Change subject: Rewrite Packet Downlink Assignment ...................................................................... Patch Set 6: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie180733d2584ebb16fb80b84526d0dbc70e3d441 Gerrit-Change-Number: 12954 Gerrit-PatchSet: 6 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 20 Feb 2019 20:35:35 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:38:06 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:38:06 +0000 Subject: Change in osmo-gsm-tester[master]: doc: Update list of dependencies and add pysispm one In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12953 ) Change subject: doc: Update list of dependencies and add pysispm one ...................................................................... doc: Update list of dependencies and add pysispm one Change-Id: I05cc63bfd627bfec83b50fe89fe8004d130384e6 --- M doc/README.txt 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, but someone else must approve Pau Espin Pedrol: Looks good to me, approved Jenkins Builder: Verified diff --git a/doc/README.txt b/doc/README.txt index c00cd3e..3b4d202 100644 --- a/doc/README.txt +++ b/doc/README.txt @@ -23,9 +23,11 @@ python3-mako \ python3-gi \ ofono \ - python3-pip + python3-pip \ + python3-usb pip3 install git+git://github.com/podshumok/python-smpplib.git pip3 install pydbus + pip3 install pysispm To build ofono: apt-get install libglib2.0-dev \ -- To view, visit https://gerrit.osmocom.org/12953 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I05cc63bfd627bfec83b50fe89fe8004d130384e6 Gerrit-Change-Number: 12953 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:38:20 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:38:20 +0000 Subject: Change in osmo-gsm-tester[master]: resources: Introduce a separate resource file for the virtual tests In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12975 ) Change subject: resources: Introduce a separate resource file for the virtual tests ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12975 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0da1267a71dc06fd06f3cf4fc3dcfefda4bcf40b Gerrit-Change-Number: 12975 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 20 Feb 2019 20:38:20 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:38:21 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:38:21 +0000 Subject: Change in osmo-gsm-tester[master]: resources: Introduce a separate resource file for the virtual tests In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12975 ) Change subject: resources: Introduce a separate resource file for the virtual tests ...................................................................... resources: Introduce a separate resource file for the virtual tests Create a dedicated resources file for running "virtual" tests. If all components run on the same machine we can avoid having to manage separate network. Change-Id: I0da1267a71dc06fd06f3cf4fc3dcfefda4bcf40b --- A example/resources.conf.virtual 1 file changed, 41 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/example/resources.conf.virtual b/example/resources.conf.virtual new file mode 100644 index 0000000..44973a2 --- /dev/null +++ b/example/resources.conf.virtual @@ -0,0 +1,41 @@ +# Resources for a "virtual" run. + +ip_address: +- addr: 127.0.42.2 +- addr: 127.0.42.3 +- addr: 127.0.42.4 +- addr: 127.0.42.5 +- addr: 127.0.42.6 +- addr: 127.0.42.7 +- addr: 127.0.42.8 +- addr: 127.0.42.9 +- addr: 127.0.42.10 + +bts: +- label: OsmoBTS Virtual + type: osmo-bts-virtual + ipa_unit_id: 13 + addr: 127.0.43.55 + band: GSM-1800 + +arfcn: + - arfcn: 512 + band: GSM-1800 + - arfcn: 514 + band: GSM-1800 + - arfcn: 516 + band: GSM-1800 + - arfcn: 518 + band: GSM-1800 + - arfcn: 520 + band: GSM-1800 + - arfcn: 540 + band: GSM-1900 + - arfcn: 542 + band: GSM-1900 + - arfcn: 544 + band: GSM-1900 + - arfcn: 546 + band: GSM-1900 + - arfcn: 548 + band: GSM-1900 -- To view, visit https://gerrit.osmocom.org/12975 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I0da1267a71dc06fd06f3cf4fc3dcfefda4bcf40b Gerrit-Change-Number: 12975 Gerrit-PatchSet: 2 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:38:45 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:38:45 +0000 Subject: Change in osmo-gsm-tester[master]: modem: Do not connect to the systembus until a modem is in use In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12976 ) Change subject: modem: Do not connect to the systembus until a modem is in use ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12976 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ieae4bf819903402f7f715eb489e0a96ed59dc3f8 Gerrit-Change-Number: 12976 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 20 Feb 2019 20:38:45 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:38:46 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:38:46 +0000 Subject: Change in osmo-gsm-tester[master]: modem: Do not connect to the systembus until a modem is in use In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12976 ) Change subject: modem: Do not connect to the systembus until a modem is in use ...................................................................... modem: Do not connect to the systembus until a modem is in use In case of the "virtual" tests we: * Don't use ofono based modems (they are physical for now). * Run in an environment that doesn't naturally run a dbus-daemon Modify the code to memoize the bus by hand. Change-Id: Ieae4bf819903402f7f715eb489e0a96ed59dc3f8 --- M src/osmo_gsm_tester/modem.py 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo_gsm_tester/modem.py b/src/osmo_gsm_tester/modem.py index 59e2136..f9b827a 100644 --- a/src/osmo_gsm_tester/modem.py +++ b/src/osmo_gsm_tester/modem.py @@ -29,7 +29,7 @@ Gio = get_introspection_module('Gio') from gi.repository import GLib -bus = SystemBus() +bus = None I_MODEM = 'org.ofono.Modem' I_NETREG = 'org.ofono.NetworkRegistration' @@ -66,6 +66,8 @@ def systembus_get(path): global bus + if not bus: + bus = SystemBus() return bus.get('org.ofono', path) def list_modems(): -- To view, visit https://gerrit.osmocom.org/12976 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ieae4bf819903402f7f715eb489e0a96ed59dc3f8 Gerrit-Change-Number: 12976 Gerrit-PatchSet: 2 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:39:07 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:39:07 +0000 Subject: Change in osmo-gsm-tester[master]: Log signals from VoiceCall dbus objects In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12899 ) Change subject: Log signals from VoiceCall dbus objects ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12899 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0def02b9063f75ec32c8b9382bdb12d65e1fb9eb Gerrit-Change-Number: 12899 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Wed, 20 Feb 2019 20:39:07 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:39:35 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:39:35 +0000 Subject: Change in osmo-bts[master]: oc2g: Fix compilation error (comment mark inside comment) In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12962 ) Change subject: oc2g: Fix compilation error (comment mark inside comment) ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12962 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib27b31825744ea397b5b4eb258da78f5f834895c Gerrit-Change-Number: 12962 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 20 Feb 2019 20:39:35 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:39:48 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:39:48 +0000 Subject: Change in osmo-bts[master]: oc2g: Fix compilation error (comment mark inside comment) In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12962 ) Change subject: oc2g: Fix compilation error (comment mark inside comment) ...................................................................... oc2g: Fix compilation error (comment mark inside comment) Change-Id: Ib27b31825744ea397b5b4eb258da78f5f834895c --- M src/osmo-bts-oc2g/l1_if.c M src/osmo-bts-oc2g/main.c M src/osmo-bts-oc2g/oc2gbts_vty.c M src/osmo-bts-oc2g/oml.c 4 files changed, 19 insertions(+), 18 deletions(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/osmo-bts-oc2g/l1_if.c b/src/osmo-bts-oc2g/l1_if.c index d8fdd96..884ce4e 100644 --- a/src/osmo-bts-oc2g/l1_if.c +++ b/src/osmo-bts-oc2g/l1_if.c @@ -1745,7 +1745,7 @@ return -EIO; } - /* initialize DSP heart beat alive timer * / + / * initialize DSP heart beat alive timer * / fl1h->hw_alive.dsp_alive_timer.cb = dsp_alive_timer_cb; fl1h->hw_alive.dsp_alive_timer.data = fl1h; fl1h->hw_alive.dsp_alive_cnt = 0; diff --git a/src/osmo-bts-oc2g/main.c b/src/osmo-bts-oc2g/main.c index 574bc72..e685150 100644 --- a/src/osmo-bts-oc2g/main.c +++ b/src/osmo-bts-oc2g/main.c @@ -94,9 +94,9 @@ /* TODO(oramadan) MERGE bts->oc2g.led_ctrl_mode = OC2G_BTS_LED_CTRL_MODE_DEFAULT; - /* RTP drift threshold default * / - bts->oc2g.rtp_drift_thres_ms = OC2G_BTS_RTP_DRIFT_THRES_DEFAULT; */ + /* RTP drift threshold default */ + /* bts->oc2g.rtp_drift_thres_ms = OC2G_BTS_RTP_DRIFT_THRES_DEFAULT; */ rc = oml_router_init(bts, OML_ROUTER_PATH, &accept_fd, &read_fd); if (rc < 0) { diff --git a/src/osmo-bts-oc2g/oc2gbts_vty.c b/src/osmo-bts-oc2g/oc2gbts_vty.c index 4f7c45a..099698f 100644 --- a/src/osmo-bts-oc2g/oc2gbts_vty.c +++ b/src/osmo-bts-oc2g/oc2gbts_vty.c @@ -507,16 +507,16 @@ return CMD_WARNING; } /* TODO(oramadan) MERGE - /* store recorded HO causes * / + / * store recorded HO causes * / old_ho_cause = lchan->meas_preproc.rec_ho_causes; - /* Apply new HO causes * / + / * Apply new HO causes * / lchan->meas_preproc.rec_ho_causes = 1 << (ho_cause - 1); - /* Send measuremnt report to BSC * / + / * Send measuremnt report to BSC * / rsl_tx_preproc_meas_res(lchan); - /* restore HO cause * / + / * restore HO cause * / lchan->meas_preproc.rec_ho_causes = old_ho_cause; */ @@ -673,7 +673,7 @@ } /* TODO(oramadan) MERGE -/* OC2G BTS control interface * / +/ * OC2G BTS control interface * / CTRL_CMD_DEFINE_WO_NOVRF(oc2g_oml_alert, "oc2g-oml-alert"); static int set_oc2g_oml_alert(struct ctrl_cmd *cmd, void *data) { @@ -688,10 +688,10 @@ memcpy(alarm_sig_data.spare, &cause, sizeof(int)); LOGP(DLCTRL, LOGL_NOTICE, "BTS received MGR alarm cause=%d, text=%s\n", cause, alarm_sig_data.add_text); - /* dispatch OML alarm signal * / + / * dispatch OML alarm signal * / osmo_signal_dispatch(SS_NM, S_NM_OML_BTS_MGR_ALARM, &alarm_sig_data); - /* return with same alarm cause to MGR rather than OK string* / + / * return with same alarm cause to MGR rather than OK string* / cmd->reply = talloc_asprintf(cmd, "%d", cause); return CTRL_CMD_REPLY; } @@ -709,11 +709,10 @@ memcpy(alarm_sig_data.spare, &cause, sizeof(int)); LOGP(DLCTRL, LOGL_NOTICE, "BTS received MGR ceased alarm cause=%d, text=%s\n", cause, alarm_sig_data.add_text); - /* dispatch OML alarm signal * / + / * dispatch OML alarm signal * / osmo_signal_dispatch(SS_NM, S_NM_OML_BTS_MGR_CEASED_ALARM, &alarm_sig_data); - */ - /* return with same alarm cause to MGR rather than OK string* / + / * return with same alarm cause to MGR rather than OK string* / cmd->reply = talloc_asprintf(cmd, "%d", cause); return CTRL_CMD_REPLY; } diff --git a/src/osmo-bts-oc2g/oml.c b/src/osmo-bts-oc2g/oml.c index 6cf7e1d..3202409 100644 --- a/src/osmo-bts-oc2g/oml.c +++ b/src/osmo-bts-oc2g/oml.c @@ -354,19 +354,21 @@ if (trx->mo.nm_state.administrative == NM_STATE_LOCKED) trx_rf_lock(trx, 1, trx_mute_on_init_cb); - /* apply initial values for Tx power backoff for 8-PSK * / - trx->max_power_backoff_8psk = fl1h->phy_inst->u.oc2g.tx_pwr_red_8psk; + /* apply initial values for Tx power backoff for 8-PSK */ + /*trx->max_power_backoff_8psk = fl1h->phy_inst->u.oc2g.tx_pwr_red_8psk; l1if_set_txpower_backoff_8psk(fl1h, fl1h->phy_inst->u.oc2g.tx_pwr_red_8psk); LOGP(DL1C, LOGL_INFO, "%s Applied initial 8-PSK Tx power backoff of %d dB\n", gsm_trx_name(fl1h->phy_inst->trx), fl1h->phy_inst->u.oc2g.tx_pwr_red_8psk); + */ - /* apply initial values for Tx C0 idle slot power reduction * / - trx->c0_idle_power_red = fl1h->phy_inst->u.oc2g.tx_c0_idle_pwr_red; + /* apply initial values for Tx C0 idle slot power reduction */ + /*trx->c0_idle_power_red = fl1h->phy_inst->u.oc2g.tx_c0_idle_pwr_red; l1if_set_txpower_c0_idle_pwr_red(fl1h, fl1h->phy_inst->u.oc2g.tx_c0_idle_pwr_red); LOGP(DL1C, LOGL_INFO, "%s Applied initial C0 idle slot power reduction of %d dB\n", gsm_trx_name(fl1h->phy_inst->trx), - fl1h->phy_inst->u.oc2g.tx_c0_idle_pwr_red); */ + fl1h->phy_inst->u.oc2g.tx_c0_idle_pwr_red); + */ /* Begin to ramp up the power */ power_ramp_start(trx, get_p_target_mdBm(trx, 0), 0); -- To view, visit https://gerrit.osmocom.org/12962 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib27b31825744ea397b5b4eb258da78f5f834895c Gerrit-Change-Number: 12962 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:39:49 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:39:49 +0000 Subject: Change in osmo-bts[master]: oc2g: Add get_hwversion_desc to header file In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12963 ) Change subject: oc2g: Add get_hwversion_desc to header file ...................................................................... oc2g: Add get_hwversion_desc to header file it's used in oc2g/main.c and it needs to be in a header file. Similar as previously done for lc15 in 19795c5a. Change-Id: Ic6826d8c8ff5c648158493454a80704bb956b51d --- M src/osmo-bts-oc2g/misc/oc2gbts_bid.h 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved Vadim Yanitskiy: Looks good to me, but someone else must approve diff --git a/src/osmo-bts-oc2g/misc/oc2gbts_bid.h b/src/osmo-bts-oc2g/misc/oc2gbts_bid.h index 00cf389..793ce6c 100644 --- a/src/osmo-bts-oc2g/misc/oc2gbts_bid.h +++ b/src/osmo-bts-oc2g/misc/oc2gbts_bid.h @@ -43,5 +43,6 @@ void oc2gbts_rev_get(char *rev_maj, char *rev_min); int oc2gbts_model_get(void); int oc2gbts_option_get(enum oc2gbts_option_type type); +const char* get_hwversion_desc(); #endif -- To view, visit https://gerrit.osmocom.org/12963 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic6826d8c8ff5c648158493454a80704bb956b51d Gerrit-Change-Number: 12963 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:39:49 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:39:49 +0000 Subject: Change in osmo-bts[master]: oc2g: Cleanup of get_hwversion_desc In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12964 ) Change subject: oc2g: Cleanup of get_hwversion_desc ...................................................................... oc2g: Cleanup of get_hwversion_desc Remove unused variables, wrong return type values, etc. Change-Id: I5565b904c72a9ac1775818416f05c64722d366b2 --- M src/osmo-bts-oc2g/misc/oc2gbts_bid.c 1 file changed, 3 insertions(+), 8 deletions(-) Approvals: Harald Welte: Looks good to me, approved Vadim Yanitskiy: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bts-oc2g/misc/oc2gbts_bid.c b/src/osmo-bts-oc2g/misc/oc2gbts_bid.c index 6eaa9c6..c2cd483 100644 --- a/src/osmo-bts-oc2g/misc/oc2gbts_bid.c +++ b/src/osmo-bts-oc2g/misc/oc2gbts_bid.c @@ -24,6 +24,7 @@ #include #include #include +#include #include "oc2gbts_bid.h" @@ -106,7 +107,6 @@ const char* get_hwversion_desc() { - int rev; int model; size_t len; static char model_name[64] = {0, }; @@ -114,14 +114,9 @@ char rev_maj = 0, rev_min = 0; - int rc = 0; oc2gbts_rev_get(&rev_maj, &rev_min); - if (rc < 0) - return rc; - if (rev >= 0) { - len += snprintf(model_name + len, sizeof(model_name) - len, - " Rev %d.%d", (uint8_t)rev_maj, (uint8_t)rev_min); - } + len += snprintf(model_name + len, sizeof(model_name) - len, + " Rev %" PRIu8 ".%" PRIu8, (uint8_t)rev_maj, (uint8_t)rev_min); model = oc2gbts_model_get(); if (model >= 0) { -- To view, visit https://gerrit.osmocom.org/12964 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5565b904c72a9ac1775818416f05c64722d366b2 Gerrit-Change-Number: 12964 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:39:49 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:39:49 +0000 Subject: Change in osmo-bts[master]: oc2g: led_sleep_cb: pass correct ptr to llist_move_tail In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12965 ) Change subject: oc2g: led_sleep_cb: pass correct ptr to llist_move_tail ...................................................................... oc2g: led_sleep_cb: pass correct ptr to llist_move_tail Fix compilation warning. At runtime it's not a big issue because the "list" field is the first field of the led_list (struct lc15bts_led_timer_list) variable. Hence, the address passed is the same. Similar to commit fixing same issue in lc15 in 080302f8. Change-Id: Ie393a21bc3a725520343c70941cb4f591b313420 --- M src/osmo-bts-oc2g/misc/oc2gbts_led.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Vadim Yanitskiy: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/osmo-bts-oc2g/misc/oc2gbts_led.c b/src/osmo-bts-oc2g/misc/oc2gbts_led.c index b8758b8..40d4b72 100644 --- a/src/osmo-bts-oc2g/misc/oc2gbts_led.c +++ b/src/osmo-bts-oc2g/misc/oc2gbts_led.c @@ -150,7 +150,7 @@ /* Delete current timer */ osmo_timer_del(&led_list->led_timer.timer); /* Rotate the timer list */ - llist_move_tail(led_list, &mgr->oc2gbts_leds.list); + llist_move_tail(&led_list->list, &mgr->oc2gbts_leds.list); break; } } -- To view, visit https://gerrit.osmocom.org/12965 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie393a21bc3a725520343c70941cb4f591b313420 Gerrit-Change-Number: 12965 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:39:50 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:39:50 +0000 Subject: Change in osmo-bts[master]: oc2g: fsync requires fd instead of file stream In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12970 ) Change subject: oc2g: fsync requires fd instead of file stream ...................................................................... oc2g: fsync requires fd instead of file stream Similar fix was done for lc15 in a8041edb. Change-Id: Idcd9dc48ea2e1f80bfdf5cf8b6bf55d8150fe0d2 --- M src/osmo-bts-oc2g/misc/oc2gbts_par.c 1 file changed, 3 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved Vadim Yanitskiy: Looks good to me, but someone else must approve diff --git a/src/osmo-bts-oc2g/misc/oc2gbts_par.c b/src/osmo-bts-oc2g/misc/oc2gbts_par.c index f355024..7dc77c9 100644 --- a/src/osmo-bts-oc2g/misc/oc2gbts_par.c +++ b/src/osmo-bts-oc2g/misc/oc2gbts_par.c @@ -151,7 +151,7 @@ fclose(fp); return -EIO; } - fsync(fp); + fsync(fileno(fp)); fclose(fp); return 0; } @@ -201,7 +201,7 @@ rc = fwrite(buf, 1, size, fp); - fsync(fp); + fsync(fileno(fp)); fclose(fp); return rc; @@ -242,7 +242,7 @@ fclose(fp); return -EIO; } - fsync(fp); + fsync(fileno(fp)); fclose(fp); return 0; -- To view, visit https://gerrit.osmocom.org/12970 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Idcd9dc48ea2e1f80bfdf5cf8b6bf55d8150fe0d2 Gerrit-Change-Number: 12970 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:39:50 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:39:50 +0000 Subject: Change in osmo-bts[master]: oc2g: Remove unused variables In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12971 ) Change subject: oc2g: Remove unused variables ...................................................................... oc2g: Remove unused variables Change-Id: I6738adb6b0ae50905351c67c259d7a77cb250624 --- M src/osmo-bts-oc2g/l1_if.c M src/osmo-bts-oc2g/main.c M src/osmo-bts-oc2g/misc/oc2gbts_clock.c M src/osmo-bts-oc2g/misc/oc2gbts_mgr.c 4 files changed, 0 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved Vadim Yanitskiy: Looks good to me, but someone else must approve diff --git a/src/osmo-bts-oc2g/l1_if.c b/src/osmo-bts-oc2g/l1_if.c index 884ce4e..52ec3e7 100644 --- a/src/osmo-bts-oc2g/l1_if.c +++ b/src/osmo-bts-oc2g/l1_if.c @@ -1266,7 +1266,6 @@ GsmL1_Status_t status; int on = 0; unsigned int i; - struct gsm_bts *bts = trx->bts; if (sysp->id == Oc2g_PrimId_ActivateRfCnf) on = 1; diff --git a/src/osmo-bts-oc2g/main.c b/src/osmo-bts-oc2g/main.c index e685150..ab3d36d 100644 --- a/src/osmo-bts-oc2g/main.c +++ b/src/osmo-bts-oc2g/main.c @@ -83,7 +83,6 @@ int bts_model_init(struct gsm_bts *bts) { - struct gsm_bts_trx *trx; struct stat st; static struct osmo_fd accept_fd, read_fd; int rc; diff --git a/src/osmo-bts-oc2g/misc/oc2gbts_clock.c b/src/osmo-bts-oc2g/misc/oc2gbts_clock.c index acbbbc5..5263e3e 100644 --- a/src/osmo-bts-oc2g/misc/oc2gbts_clock.c +++ b/src/osmo-bts-oc2g/misc/oc2gbts_clock.c @@ -100,8 +100,6 @@ int oc2gbts_clock_err_open(void) { - int rc; - int fault; if (clkerr_fd_err < 0) { clkerr_fd_err = open(CLKERR_ERR_SYSFS, O_RDONLY); diff --git a/src/osmo-bts-oc2g/misc/oc2gbts_mgr.c b/src/osmo-bts-oc2g/misc/oc2gbts_mgr.c index 45ecc65..f8768e4 100644 --- a/src/osmo-bts-oc2g/misc/oc2gbts_mgr.c +++ b/src/osmo-bts-oc2g/misc/oc2gbts_mgr.c @@ -271,7 +271,6 @@ { void *tall_msgb_ctx; int rc; - pthread_t tid; tall_mgr_ctx = talloc_named_const(NULL, 1, "bts manager"); tall_msgb_ctx = talloc_named_const(tall_mgr_ctx, 1, "msgb"); -- To view, visit https://gerrit.osmocom.org/12971 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I6738adb6b0ae50905351c67c259d7a77cb250624 Gerrit-Change-Number: 12971 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:40:01 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:40:01 +0000 Subject: Change in osmo-bts[master]: oc2g: vty: Compilation error fixes due to commented code In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12973 ) Change subject: oc2g: vty: Compilation error fixes due to commented code ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12973 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id2b16b9acd15d0c80085fac0fdc2a57173ebb0a0 Gerrit-Change-Number: 12973 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Wed, 20 Feb 2019 20:40:01 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:40:20 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:40:20 +0000 Subject: Change in osmo-ci[master]: docker: Add lua-socket for the OsmocomBB<->GSM Tester communication In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12974 ) Change subject: docker: Add lua-socket for the OsmocomBB<->GSM Tester communication ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12974 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9156c63c64dd32a91136240913baa7e4a5cdc893 Gerrit-Change-Number: 12974 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Wed, 20 Feb 2019 20:40:20 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:40:21 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:40:21 +0000 Subject: Change in osmo-ci[master]: docker: Add lua-socket for the OsmocomBB<->GSM Tester communication In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12974 ) Change subject: docker: Add lua-socket for the OsmocomBB<->GSM Tester communication ...................................................................... docker: Add lua-socket for the OsmocomBB<->GSM Tester communication Change-Id: I9156c63c64dd32a91136240913baa7e4a5cdc893 --- M docker/Dockerfile_osmocom_jenkins.amd64 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Pau Espin Pedrol: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved; Verified diff --git a/docker/Dockerfile_osmocom_jenkins.amd64 b/docker/Dockerfile_osmocom_jenkins.amd64 index 25a9f61..b2c1c9a 100644 --- a/docker/Dockerfile_osmocom_jenkins.amd64 +++ b/docker/Dockerfile_osmocom_jenkins.amd64 @@ -50,7 +50,7 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get install -y patchelf # Be able to run the osmo-gsm-tester -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y dbus tcpdump sqlite3 python3 python3-yaml python3-mako python3-gi ofono python3-pip python3-usb +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y dbus tcpdump sqlite3 python3 python3-yaml python3-mako python3-gi ofono python3-pip python3-usb lua-socket RUN pip3 install git+git://github.com/podshumok/python-smpplib.git RUN pip3 install pydbus RUN pip3 install pysispm -- To view, visit https://gerrit.osmocom.org/12974 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I9156c63c64dd32a91136240913baa7e4a5cdc893 Gerrit-Change-Number: 12974 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 20:41:04 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 20:41:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Fix race condition in f_dyn_ipa_pdch_(de)act In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12949 ) Change subject: bts: Fix race condition in f_dyn_ipa_pdch_(de)act ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12949 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If11ef05d97aa5f6caaa731f3817c1fecfc3edf7c Gerrit-Change-Number: 12949 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Wed, 20 Feb 2019 20:41:04 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 21:15:27 2019 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Wed, 20 Feb 2019 21:15:27 +0000 Subject: Change in osmo-mgw[master]: Add option to GSM HR frames to RFC5593 representation In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/12979 ) Change subject: Add option to GSM HR frames to RFC5593 representation ...................................................................... Patch Set 1: > the sysmoBTS PHY (just like the PHY of the litecell 1.5 and the oc2g) > still have the bit ordering as you discovered it back then. But there is code to 'fix' that in osmo-bts itself osmo-bts-sysmo/tch.c And IMHO that's where it belongs. That weird format shouldn't appear on the wire ever. > It may be that the ETSI TS is using the same bit-ordering as the new RFC? In that case it would really be a bug. Yes, both the ETSI TS spec and the new RFC have the same bit ordering. They both point to the same spec for the order of the parameter. Then one says "The first bit (b1) of the first parameter is placed in the most significant bit (MSB) (bit 0) of the first octet (octet 1) of the payload field;" and the other says "Within the GSM 06.20 codec parameter bits are numbered in big-endian manner." (i.e. MSB first), so both the same thing IMHO. (and really, the opposite makes no sense at all) > However, the additional 1-byte TOC definitely is a difference between the ETSI HR RTP payload and the RFC5593. Yes indeed the only difference between the two formats is the TOC byte. -- To view, visit https://gerrit.osmocom.org/12979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Gerrit-Change-Number: 12979 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: tnt Gerrit-CC: Harald Welte Gerrit-Comment-Date: Wed, 20 Feb 2019 21:15:27 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 21:29:12 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 21:29:12 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Tests for the BSS/PCU side NS/BSSGP implementations In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12984 to look at the new patch set (#2). Change subject: PCU: Tests for the BSS/PCU side NS/BSSGP implementations ...................................................................... PCU: Tests for the BSS/PCU side NS/BSSGP implementations The existing (unused) PCU_Tests are operating on top of a NS + BSSGP emulation, i.e. they're aimed at testing higher protocol layers. Also, they required BTS+BSC to run next to the PCU. The new PCU_Tests_RAW introduced in this patch are the exact opposite: * they test the PCU alone (attach to PCUIF and Gb interface) * they don't require BTS or BSC to run * they don't use NS + BSSGP emulation but raw NS/BSSGP frames to test the very NS/BSSGP implementation inside of OsmoPCU. Change-Id: I7ad76b96974cf0a686ad0f00ccd09d1a9df8b4d5 Related: OS#2890 --- M pcu/PCU_Tests.cfg A pcu/PCU_Tests.default A pcu/PCU_Tests_RAW.ttcn M pcu/gen_links.sh 4 files changed, 427 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/84/12984/2 -- To view, visit https://gerrit.osmocom.org/12984 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I7ad76b96974cf0a686ad0f00ccd09d1a9df8b4d5 Gerrit-Change-Number: 12984 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 21:29:30 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 21:29:30 +0000 Subject: Change in docker-playground[master]: PCU: Add osmo-pcu-master + ttcn3-pcu-test containers Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12986 Change subject: PCU: Add osmo-pcu-master + ttcn3-pcu-test containers ...................................................................... PCU: Add osmo-pcu-master + ttcn3-pcu-test containers This will enable us to run the PCU testsuite automatically by jenkins, just like for other Osmocom projects. Change-Id: Ia8e2ed2e7d03b8afdc7b1e068f94b0544a8112c7 Related: OS#2890 --- A osmo-pcu-master/.release A osmo-pcu-master/Dockerfile A osmo-pcu-master/Makefile A osmo-pcu-master/Release.key A osmo-pcu-master/osmo-pcu.cfg A osmo-pcu-master/respawn.sh A ttcn3-pcu-test/.release A ttcn3-pcu-test/Dockerfile A ttcn3-pcu-test/Makefile A ttcn3-pcu-test/PCU_Tests.cfg A ttcn3-pcu-test/jenkins.sh A ttcn3-pcu-test/osmo-pcu.cfg 12 files changed, 204 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/86/12986/1 diff --git a/osmo-pcu-master/.release b/osmo-pcu-master/.release new file mode 100644 index 0000000..49b830d --- /dev/null +++ b/osmo-pcu-master/.release @@ -0,0 +1,2 @@ +release=0.0.0 +tag=osmo-pcu-master-0.0.0 diff --git a/osmo-pcu-master/Dockerfile b/osmo-pcu-master/Dockerfile new file mode 100644 index 0000000..867f534 --- /dev/null +++ b/osmo-pcu-master/Dockerfile @@ -0,0 +1,43 @@ +ARG USER +FROM $USER/debian-jessie-build + +MAINTAINER Harald Welte + +ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_8.0/" + +COPY Release.key /tmp/Release.key + +RUN apt-key add /tmp/Release.key && \ + rm /tmp/Release.key && \ + echo "deb " $OSMOCOM_REPO " ./" > /etc/apt/sources.list.d/osmocom-nightly.list + +ADD $OSMOCOM_REPO/Release /tmp/Release +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + telnet \ + libosmocore-dev && \ + apt-get clean + +ADD respawn.sh /usr/local/bin/respawn.sh + +WORKDIR /tmp + +ARG OSMO_PCU_BRANCH="master" + +RUN git clone git://git.osmocom.org/osmo-pcu.git +ADD http://git.osmocom.org/osmo-pcu/patch?h=$OSMO_PCU_BRANCH /tmp/commit-osmo-pcu + +RUN cd osmo-pcu && \ + git fetch && git checkout -f -B $OSMO_PCU_BRANCH origin/$OSMO_PCU_BRANCH && \ + autoreconf -fi && \ + ./configure --enable-trx && \ + make -j8 install + +VOLUME /data + +COPY osmo-pcu.cfg /data/osmo-pcu.cfg + +WORKDIR /data +CMD ["/usr/local/bin/osmo-pcu", "-i", "172.18.0.230"] + +#EXPOSE diff --git a/osmo-pcu-master/Makefile b/osmo-pcu-master/Makefile new file mode 100644 index 0000000..87350c2 --- /dev/null +++ b/osmo-pcu-master/Makefile @@ -0,0 +1,3 @@ +RUN_ARGS?=--rm --network sigtran --ip 172.18.0.211 -v pcu-vol:/data + +include ../make/Makefile diff --git a/osmo-pcu-master/Release.key b/osmo-pcu-master/Release.key new file mode 100644 index 0000000..e656238 --- /dev/null +++ b/osmo-pcu-master/Release.key @@ -0,0 +1,20 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.5 (GNU/Linux) + +mQENBFJBt/wBCADAht3d/ilNuyzaXYw/QwTRvmjyoDvfXw+H/3Fvk1zlDZoiKPPc +a1wCVBINUZl7vYM2OXqbJwYa++JP2Q48xKSvC6thbRc/YLievkbcvTemf7IaREfl +CTjoYpoqXHa9kHMw1aALDm8CNU88jZmnV7v9L6hKkbYDxie+jpoj7D6B9JlxgNJ4 +5dQyRNsFGVcIl4Vplt1HyGc5Q5nQI/VgS2rlF/IOXmhRQBc4LEDdU8R2IKnkU4ee +S7TWanAigGAQhxGuCkS39/CWzc1DhLhjlNhBl/+RTPejkqJtAy00ZLps3+RqUN1Y +CU/Fsr7aRlYVGqQ/BlptwV0XQ2VVYJX2oEBBABEBAAG0MG5ldHdvcmsgT0JTIFBy +b2plY3QgPG5ldHdvcmtAYnVpbGQub3BlbnN1c2Uub3JnPokBPAQTAQIAJgUCWmMc +aQIbAwUJDEAUbQYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEGLrGgkXKA3fjsoI +ALSXmXzFCpTxg8a6tvXkqddY/qAmeBMNUf7hslI9wN3leNmCrnuHS8TbHWYJZgtw +8M5fKL3aRQYaIiqqm1XOUF0OqwYNDj5V3y38mM68NYOkzgSP7foMwZp9Y0TlGhtI +L8weA+2RUjB4hwwGMAYMqkRZyKW3NhPqdlGGoXac1ilwEyGXFHdOLbkhtyS+P2yb +/EvaKIN5cMLzRZKeYgdp9WuAirV+yV/SDbgvabW098lrWhGLltlRRDQgMV883p8I +ERMI1wlLFZGnHL3mfBWGeQ24M/DaBOdXQDtfBLCJ9nGztmDBUb8i6GFWU7nD2TGi +8mYUsED1ZDwO/0jdvJ4gSluIRgQTEQIABgUCUkG3/AAKCRA7MBG3a51lIzhdAJ9v +d6XPffMZRcCGgDEY5OaTn/MsCQCgrXbeZpFJgnirSrc8rRonvzYFiF4= +=Gvly +-----END PGP PUBLIC KEY BLOCK----- diff --git a/osmo-pcu-master/osmo-pcu.cfg b/osmo-pcu-master/osmo-pcu.cfg new file mode 100644 index 0000000..9a5db59 --- /dev/null +++ b/osmo-pcu-master/osmo-pcu.cfg @@ -0,0 +1,10 @@ +line vty + no login + bind 0.0.0.0 +pcu + flow-control-interval 10 + cs 2 + alloc-algorithm dynamic + alpha 0 + gamma 0 + pcu-socket /data/pcu_bts diff --git a/osmo-pcu-master/respawn.sh b/osmo-pcu-master/respawn.sh new file mode 100755 index 0000000..ae5cf60 --- /dev/null +++ b/osmo-pcu-master/respawn.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +trap "kill 0" EXIT + +while [ -e /etc/passwd ]; do + $* & + LAST_PID=$! + wait $LAST_PID +done diff --git a/ttcn3-pcu-test/.release b/ttcn3-pcu-test/.release new file mode 100644 index 0000000..adac371 --- /dev/null +++ b/ttcn3-pcu-test/.release @@ -0,0 +1,2 @@ +release=0.0.0 +tag=ttcn3-pcu-test-0.0.0 diff --git a/ttcn3-pcu-test/Dockerfile b/ttcn3-pcu-test/Dockerfile new file mode 100644 index 0000000..2cfacce --- /dev/null +++ b/ttcn3-pcu-test/Dockerfile @@ -0,0 +1,33 @@ +ARG USER +FROM $USER/debian-stretch-titan + +RUN mkdir /root/projects && (cd /root/projects && ln -sf / git) +RUN git clone git://git.osmocom.org/osmo-ttcn3-hacks.git + +RUN cd osmo-ttcn3-hacks && \ + git checkout -f -B master origin/master && \ + make deps + +RUN git config --global user.email docker at dock.er && \ + git config --global user.name "Dock Er" + +ARG OSMO_TTCN3_BRANCH="laforge/gb-sns" + +ADD http://git.osmocom.org/osmo-ttcn3-hacks/patch?h=$OSMO_TTCN3_BRANCH /tmp/commit +RUN cd osmo-ttcn3-hacks && \ + git fetch && \ + git checkout -f -B $OSMO_TTCN3_BRANCH origin/$OSMO_TTCN3_BRANCH && \ + make pcu + +VOLUME /data + +RUN ln -s /osmo-ttcn3-hacks/ttcn3-tcpdump-start.sh / && \ + ln -s /osmo-ttcn3-hacks/ttcn3-tcpdump-stop.sh / + +COPY PCU_Tests.cfg /data/PCU_Tests.cfg + +CMD cd /data && \ + /osmo-ttcn3-hacks/start-testsuite.sh /osmo-ttcn3-hacks/pcu/PCU_Tests; \ + exit_code=$?; \ + /osmo-ttcn3-hacks/log_merge.sh PCU_Tests --rm; \ + exit $exit_code diff --git a/ttcn3-pcu-test/Makefile b/ttcn3-pcu-test/Makefile new file mode 100644 index 0000000..b172280 --- /dev/null +++ b/ttcn3-pcu-test/Makefile @@ -0,0 +1,3 @@ +RUN_ARGS?=--sysctl net.ipv6.conf.all.disable_ipv6=0 --rm --network sigtran --ip 172.18.1.202 -v pcu-test-vol:/data + +include ../make/Makefile diff --git a/ttcn3-pcu-test/PCU_Tests.cfg b/ttcn3-pcu-test/PCU_Tests.cfg new file mode 100644 index 0000000..07af661 --- /dev/null +++ b/ttcn3-pcu-test/PCU_Tests.cfg @@ -0,0 +1,23 @@ +[ORDERED_INCLUDE] +"/osmo-ttcn3-hacks/Common.cfg" +"/osmo-ttcn3-hacks/pcu/PCU_Tests.default" + +[LOGGING] + +[TESTPORT_PARAMETERS] + +[MODULE_PARAMETERS] +PCU_Tests_RAW.mp_pcu_sock_path := "/data/unix/pcu_bts" +PCU_Tests.mp_nsconfig := { + local_ip := "172.18.13.10", + local_udp_port := 23000, + remote_ip := "172.18.13.101", + remote_udp_port := 23000, + nsvci := 1234, + nsei := 1234 +} + +[MAIN_CONTROLLER] + +[EXECUTE] +PCU_Tests_RAW.control diff --git a/ttcn3-pcu-test/jenkins.sh b/ttcn3-pcu-test/jenkins.sh new file mode 100755 index 0000000..bee539d --- /dev/null +++ b/ttcn3-pcu-test/jenkins.sh @@ -0,0 +1,46 @@ +#!/bin/sh + +. ../jenkins-common.sh +IMAGE_SUFFIX="${IMAGE_SUFFIX:-master}" +docker_images_require \ + "debian-jessie-build" \ + "osmo-pcu-$IMAGE_SUFFIX" \ + "debian-stretch-titan" \ + "ttcn3-pcu-test" + +network_create 172.18.13.0/24 + +mkdir $VOL_BASE_DIR/pcu-tester +mkdir $VOL_BASE_DIR/pcu-tester/unix +cp PCU_Tests.cfg $VOL_BASE_DIR/pcu-tester/ + +mkdir $VOL_BASE_DIR/pcu +mkdir $VOL_BASE_DIR/pcu/unix +cp osmo-pcu.cfg $VOL_BASE_DIR/pcu/ + +mkdir $VOL_BASE_DIR/unix + +echo Starting container with PCU +docker run --rm \ + --network $NET_NAME --ip 172.18.13.101 \ + -v $VOL_BASE_DIR/pcu:/data \ + -v $VOL_BASE_DIR/unix:/data/unix \ + --name ${BUILD_TAG}-pcu -d \ + $REPO_USER/osmo-pcu-$IMAGE_SUFFIX \ + /usr/local/bin/respawn.sh osmo-pcu -c /data/osmo-pcu.cfg + +echo Starting container with PCU testsuite +docker run --rm \ + --network $NET_NAME --ip 172.18.13.10 \ + -e "TTCN3_PCAP_PATH=/data" \ + -v $VOL_BASE_DIR/pcu-tester:/data \ + -v $VOL_BASE_DIR/unix:/data/unix \ + --name ${BUILD_TAG}-ttcn3-pcu-test \ + $REPO_USER/ttcn3-pcu-test + +echo Stopping containers +docker container kill ${BUILD_TAG}-pcu + +network_remove +rm -rf $VOL_BASE_DIR/unix +collect_logs diff --git a/ttcn3-pcu-test/osmo-pcu.cfg b/ttcn3-pcu-test/osmo-pcu.cfg new file mode 100644 index 0000000..918beea --- /dev/null +++ b/ttcn3-pcu-test/osmo-pcu.cfg @@ -0,0 +1,10 @@ +line vty + no login + bind 0.0.0.0 +pcu + flow-control-interval 10 + cs 2 + alloc-algorithm dynamic + alpha 0 + gamma 0 + pcu-socket /data/unix/pcu_bts -- To view, visit https://gerrit.osmocom.org/12986 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ia8e2ed2e7d03b8afdc7b1e068f94b0544a8112c7 Gerrit-Change-Number: 12986 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 21:30:18 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 21:30:18 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Tests for the BSS/PCU side NS/BSSGP implementations In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12984 ) Change subject: PCU: Tests for the BSS/PCU side NS/BSSGP implementations ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12984 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7ad76b96974cf0a686ad0f00ccd09d1a9df8b4d5 Gerrit-Change-Number: 12984 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Wed, 20 Feb 2019 21:30:18 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 21:31:46 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 20 Feb 2019 21:31:46 +0000 Subject: Change in docker-playground[master]: PCU: Add osmo-pcu-master + ttcn3-pcu-test containers In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12986 ) Change subject: PCU: Add osmo-pcu-master + ttcn3-pcu-test containers ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12986/1/ttcn3-pcu-test/Dockerfile File ttcn3-pcu-test/Dockerfile: https://gerrit.osmocom.org/#/c/12986/1/ttcn3-pcu-test/Dockerfile at 14 PS1, Line 14: laforge/gb-sns this needs to be changed to master once https://gerrit.osmocom.org/#/c/osmo-ttcn3-hacks/+/12984/ is merged. -- To view, visit https://gerrit.osmocom.org/12986 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia8e2ed2e7d03b8afdc7b1e068f94b0544a8112c7 Gerrit-Change-Number: 12986 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Wed, 20 Feb 2019 21:31:46 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 23:30:06 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Wed, 20 Feb 2019 23:30:06 +0000 Subject: Change in osmo-pcu[master]: Move C include to proper place In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12958 ) Change subject: Move C include to proper place ...................................................................... Move C include to proper place Change-Id: Id58d1820b94d54ce73ed40edb7747ef975890a7b --- M src/encoding.cpp 1 file changed, 1 insertion(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/encoding.cpp b/src/encoding.cpp index 1f96458..0241b39 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -28,9 +28,8 @@ extern "C" { #include -} - #include +} #include #include -- To view, visit https://gerrit.osmocom.org/12958 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Id58d1820b94d54ce73ed40edb7747ef975890a7b Gerrit-Change-Number: 12958 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 23:30:07 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Wed, 20 Feb 2019 23:30:07 +0000 Subject: Change in osmo-pcu[master]: Add define for dummy burst string In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12946 ) Change subject: Add define for dummy burst string ...................................................................... Add define for dummy burst string Change-Id: I464920b3d6d47bb1c797a4ce06230f005a2e06a0 --- M src/gprs_rlcmac.cpp M src/gprs_rlcmac.h M src/tbf.cpp M src/tbf_ul.cpp M tests/rlcmac/RLCMACTest.cpp M tests/types/TypesTest.cpp 6 files changed, 15 insertions(+), 17 deletions(-) Approvals: Pau Espin Pedrol: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gprs_rlcmac.cpp b/src/gprs_rlcmac.cpp index da5c541..5a223c1 100644 --- a/src/gprs_rlcmac.cpp +++ b/src/gprs_rlcmac.cpp @@ -33,7 +33,7 @@ { LOGP(DRLCMAC, LOGL_NOTICE, "TX: [PCU -> BTS] Paging Request (CCCH)\n"); bitvec *paging_request = bitvec_alloc(23, tall_pcu_ctx); - bitvec_unhex(paging_request, "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); + bitvec_unhex(paging_request, DUMMY_VEC); int plen = Encoding::write_paging_request(paging_request, ptmsi, ptmsi_len); pcu_l1if_tx_pch(paging_request, plen, (char *)imsi); bitvec_free(paging_request); diff --git a/src/gprs_rlcmac.h b/src/gprs_rlcmac.h index 8ff3c90..7a3a7af 100644 --- a/src/gprs_rlcmac.h +++ b/src/gprs_rlcmac.h @@ -40,6 +40,7 @@ */ //#define DEBUG_DL_ASS_IDLE +#define DUMMY_VEC "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b" struct gprs_rlcmac_tbf; struct gprs_rlcmac_bts; diff --git a/src/tbf.cpp b/src/tbf.cpp index 6792d08..233ae91 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -1270,8 +1270,7 @@ msgb_free(msg); return NULL; } - bitvec_unhex(ass_vec, - "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); + bitvec_unhex(ass_vec, DUMMY_VEC); LOGPTBF(new_dl_tbf, LOGL_INFO, "start Packet Downlink Assignment (PACCH)\n"); RlcMacDownlink_t * mac_control_block = (RlcMacDownlink_t *)talloc_zero(tall_pcu_ctx, RlcMacDownlink_t); Encoding::write_packet_downlink_assignment(mac_control_block, @@ -1310,8 +1309,7 @@ bitvec *packet_access_rej = bitvec_alloc(23, tall_pcu_ctx); - bitvec_unhex(packet_access_rej, - "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); + bitvec_unhex(packet_access_rej, DUMMY_VEC); Encoding::write_packet_access_reject( packet_access_rej, tlli()); @@ -1368,8 +1366,7 @@ msgb_free(msg); return NULL; } - bitvec_unhex(ass_vec, - "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); + bitvec_unhex(ass_vec, DUMMY_VEC); Encoding::write_packet_uplink_assignment(bts_data(), ass_vec, m_tfi, (direction == GPRS_RLCMAC_DL_TBF), tlli(), is_tlli_valid(), new_tbf, 1, rrbp, bts_data()->alpha, diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp index 02f4ddb..7937f8b 100644 --- a/src/tbf_ul.cpp +++ b/src/tbf_ul.cpp @@ -151,8 +151,7 @@ msgb_free(msg); return NULL; } - bitvec_unhex(ack_vec, - "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); + bitvec_unhex(ack_vec, DUMMY_VEC); Encoding::write_packet_uplink_ack(bts_data(), ack_vec, this, final, rrbp); bitvec_pack(ack_vec, msgb_put(msg, 23)); bitvec_free(ack_vec); diff --git a/tests/rlcmac/RLCMACTest.cpp b/tests/rlcmac/RLCMACTest.cpp index 3de4fac..bf7a605 100644 --- a/tests/rlcmac/RLCMACTest.cpp +++ b/tests/rlcmac/RLCMACTest.cpp @@ -25,6 +25,8 @@ #include #include "csn1.h" #include "gsm_rlcmac.h" +#include "gprs_rlcmac.h" + extern "C" { extern const struct log_info gprs_log_info; #include "pcu_vty.h" @@ -86,7 +88,7 @@ void testRlcMacDownlink(void *test_ctx) { struct bitvec *resultVector = bitvec_alloc(23, test_ctx); - bitvec_unhex(resultVector, "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); + bitvec_unhex(resultVector, DUMMY_VEC); std::string testData[] = { "4e082500e3f1a81d080820800b2b2b2b2b2b2b2b2b2b2b", // Packet Downlink Assignment @@ -141,7 +143,7 @@ { cout << "vector1 == vector2 : FALSE" << endl; } - bitvec_unhex(resultVector, "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); + bitvec_unhex(resultVector, DUMMY_VEC); bitvec_free(vector); free(data); } @@ -153,7 +155,7 @@ void testRlcMacUplink(void *test_ctx) { struct bitvec *resultVector = bitvec_alloc(23, test_ctx); - bitvec_unhex(resultVector, "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); + bitvec_unhex(resultVector, DUMMY_VEC); std::string testData[] = { "400e1e61d11d2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b", // Packet Uplink Dummy Control Block @@ -204,7 +206,7 @@ { cout << "vector1 == vector2 : FALSE" << endl; } - bitvec_unhex(resultVector, "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); + bitvec_unhex(resultVector, DUMMY_VEC); bitvec_free(vector); free(data); } diff --git a/tests/types/TypesTest.cpp b/tests/types/TypesTest.cpp index 1bc911f..90d3981 100644 --- a/tests/types/TypesTest.cpp +++ b/tests/types/TypesTest.cpp @@ -25,6 +25,7 @@ #include "gprs_debug.h" #include "encoding.h" #include "decoding.h" +#include "gprs_rlcmac.h" extern "C" { #include @@ -435,8 +436,7 @@ uint8_t plen; bitvec *immediate_assignment_rej = bitvec_alloc(22, tall_pcu_ctx); - bitvec_unhex(immediate_assignment_rej, - "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); + bitvec_unhex(immediate_assignment_rej, DUMMY_VEC); plen = Encoding::write_immediate_assignment_reject( immediate_assignment_rej, 112, 100, GSM_L1_BURST_TYPE_ACCESS_1); @@ -450,8 +450,7 @@ /* Extended RA value */ OSMO_ASSERT(immediate_assignment_rej->data[19] == 0xc0); - bitvec_unhex(immediate_assignment_rej, - "2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b"); + bitvec_unhex(immediate_assignment_rej, DUMMY_VEC); plen = Encoding::write_immediate_assignment_reject( immediate_assignment_rej, 112, 100, -- To view, visit https://gerrit.osmocom.org/12946 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I464920b3d6d47bb1c797a4ce06230f005a2e06a0 Gerrit-Change-Number: 12946 Gerrit-PatchSet: 4 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-CC: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 23:30:08 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Wed, 20 Feb 2019 23:30:08 +0000 Subject: Change in osmo-pcu[master]: Add encoding tests for Immediate Assignment In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12947 ) Change subject: Add encoding tests for Immediate Assignment ...................................................................... Add encoding tests for Immediate Assignment Change-Id: I63f4654b23c7c4f063f6b3254d77157fac798586 --- M tests/types/TypesTest.cpp M tests/types/TypesTest.err M tests/types/TypesTest.ok 3 files changed, 152 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, but someone else must approve diff --git a/tests/types/TypesTest.cpp b/tests/types/TypesTest.cpp index 90d3981..9c24ffe 100644 --- a/tests/types/TypesTest.cpp +++ b/tests/types/TypesTest.cpp @@ -431,6 +431,134 @@ } } +static void check_imm_ass(struct gprs_rlcmac_tbf *tbf, bool dl, enum ph_burst_type bt, const uint8_t *exp, uint8_t len, + const char *kind) +{ + uint8_t alpha = 7, gamma = 8, ta = 35, ts = 5, tsc = 1, usf = 1, sz = sizeof(DUMMY_VEC) / 2, plen; + bitvec *immediate_assignment = bitvec_alloc(sz, tall_pcu_ctx); + struct msgb *m = msgb_alloc(80, "test"); + bool poll = true; + uint16_t ra = 13, arfcn = 877; + uint32_t ref_fn = 24, fn = 11; + int8_t ta_idx = 0; + + bitvec_unhex(immediate_assignment, DUMMY_VEC); + plen = Encoding::write_immediate_assignment(tbf, immediate_assignment, dl, + ra, ref_fn, ta, arfcn, ts, tsc, usf, + poll, fn, alpha, gamma, ta_idx, bt); + printf("[%u] %s Immediate Assignment <%s>:\n\t%s\n", plen, dl ? "DL" : "UL", kind, + osmo_hexdump(immediate_assignment->data, sz)); + + memcpy(msgb_put(m, sz), immediate_assignment->data, sz); + if (!msgb_eq_data_print(m, exp, len)) + printf("%s(%s, %s) failed!\n", __func__, dl ? "DL" : "UL", kind); + + msgb_free(m); +} + +void test_immediate_assign_dl() +{ + BTS the_bts; + the_bts.bts_data()->alloc_algorithm = alloc_algorithm_a; + the_bts.bts_data()->trx[0].pdch[2].enable(); + the_bts.bts_data()->trx[0].pdch[3].enable(); + + struct gprs_rlcmac_tbf *tbf = tbf_alloc_dl_tbf(the_bts.bts_data(), NULL, 0, 1, 1, false); + static uint8_t res[] = { 0x06, + 0x3f, /* Immediate Assignment Message Type */ + 0x30, /* ?10.5.2.26 Page Mode and ?10.5.2.25b Dedicated mode/TBF */ + 0x0d, 0x23, 0x6d, /* ?10.5.2.25a Packet Channel Description */ + /* ETSI TS 44.018 ?10.5.2.30 Request Reference */ + 0x7f, /* RA */ + 0x03, 0x18, /* T1'-T3 */ + 0x23, /* TA */ + 0x00, /* 0-length ?10.5.2.21 Mobile Allocation */ + /* ETSI TS 44.018 ?10.5.2.16 IA Rest Octets */ + 0xd0, 0x00, 0x00, 0x00, 0x08, 0x17, 0x47, 0x08, 0x0b, 0x5b, 0x2b, 0x2b, }; + + check_imm_ass(tbf, true, GSM_L1_BURST_TYPE_ACCESS_2, res, sizeof(res), "ia_rest_downlink"); +} + +void test_immediate_assign_ul0m() +{ + BTS the_bts; + the_bts.bts_data()->alloc_algorithm = alloc_algorithm_a; + the_bts.bts_data()->trx[0].pdch[4].enable(); + the_bts.bts_data()->trx[0].pdch[5].enable(); + + struct gprs_rlcmac_tbf *tbf = tbf_alloc_ul_tbf(the_bts.bts_data(), NULL, 0, 1, 1, false); + static uint8_t res[] = { 0x06, + 0x3f, /* Immediate Assignment Message Type */ + 0x10, /* ?10.5.2.26 Page Mode and ?10.5.2.25b Dedicated mode/TBF */ + 0x0d, 0x23, 0x6d, /* ?10.5.2.25a Packet Channel Description */ + /* ETSI TS 44.018 ?10.5.2.30 Request Reference */ + 0x0d, /* RA */ + 0x03, 0x18, /* T1'-T3 */ + 0x23, /* TA */ + 0x00, /* 0-length ?10.5.2.21 Mobile Allocation */ + /* ETSI TS 44.018 ?10.5.2.16 IA Rest Octets */ + 0xc8, 0x02, 0x7b, 0xa0, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, }; + + check_imm_ass(tbf, false, GSM_L1_BURST_TYPE_ACCESS_0, res, sizeof(res), "ia_rest_uplink(MBA)"); +} + +void test_immediate_assign_ul0s() +{ + static uint8_t res[] = { 0x06, + 0x3f, /* Immediate Assignment Message Type */ + 0x10, /* ?10.5.2.26 Page Mode and ?10.5.2.25b Dedicated mode/TBF */ + 0x0d, 0x23, 0x6d, /* ?10.5.2.25a Packet Channel Description */ + /* ETSI TS 44.018 ?10.5.2.30 Request Reference */ + 0x0d, /* RA */ + 0x03, 0x18, /* T1'-T3 */ + 0x23, /* TA */ + 0x00, /* 0-length ?10.5.2.21 Mobile Allocation */ + /* ETSI TS 44.018 ?10.5.2.16 IA Rest Octets */ + 0xc5, 0xd1, 0x08, 0x0b, 0x5b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, }; + + check_imm_ass(NULL, false, GSM_L1_BURST_TYPE_ACCESS_0, res, sizeof(res), "ia_rest_uplink(SBA)"); +} + +void test_immediate_assign_ul1s() +{ + BTS the_bts; + the_bts.bts_data()->alloc_algorithm = alloc_algorithm_a; + the_bts.bts_data()->trx[0].pdch[1].enable(); + the_bts.bts_data()->trx[0].pdch[2].enable(); + + struct gprs_rlcmac_tbf *tbf = tbf_alloc_ul_tbf(the_bts.bts_data(), NULL, 0, 1, 1, false); + static uint8_t res[] = { 0x06, + 0x3f, /* Immediate Assignment Message Type */ + 0x10, /* ?10.5.2.26 Page Mode and ?10.5.2.25b Dedicated mode/TBF */ + 0x0d, 0x23, 0x6d, /* ?10.5.2.25a Packet Channel Description */ + /* ETSI TS 44.018 ?10.5.2.30 Request Reference */ + 0x7f, /* RA */ + 0x03, 0x18, /* T1'-T3 */ + 0x23, /* TA */ + 0x00, /* 0-length ?10.5.2.21 Mobile Allocation */ + /* ETSI TS 44.018 ?10.5.2.16 IA Rest Octets */ + 0x46, 0xa0, 0x09, 0xe0, 0x17, 0x40, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, }; + + check_imm_ass(tbf, false, GSM_L1_BURST_TYPE_ACCESS_1, res, sizeof(res), "ia_rest_egprs_uplink(SBA)"); +} + +void test_immediate_assign_ul1m() +{ + static uint8_t res[] = { 0x06, + 0x3f, /* Immediate Assignment Message Type */ + 0x10, /* ?10.5.2.26 Page Mode and ?10.5.2.25b Dedicated mode/TBF */ + 0x0d, 0x23, 0x6d, /* ?10.5.2.25a Packet Channel Description */ + /* ETSI TS 44.018 ?10.5.2.30 Request Reference */ + 0x7f, /* RA */ + 0x03, 0x18, /* T1'-T3 */ + 0x23, /* TA */ + 0x00, /* 0-length ?10.5.2.21 Mobile Allocation */ + /* ETSI TS 44.018 ?10.5.2.16 IA Rest Octets */ + 0x46, 0x97, 0x40, 0x0b, 0x58, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, }; + + check_imm_ass(NULL, false, GSM_L1_BURST_TYPE_ACCESS_1, res, sizeof(res), "ia_rest_egprs_uplink(MBA)"); +} + void test_immediate_assign_rej() { uint8_t plen; @@ -496,6 +624,11 @@ test_rlc_v_b(); test_rlc_v_n(); test_rlc_dl_ul_basic(); + test_immediate_assign_dl(); + test_immediate_assign_ul0m(); + test_immediate_assign_ul0s(); + test_immediate_assign_ul1m(); + test_immediate_assign_ul1s(); test_immediate_assign_rej(); test_lsb(); diff --git a/tests/types/TypesTest.err b/tests/types/TypesTest.err index e69de29..3abc61c 100644 --- a/tests/types/TypesTest.err +++ b/tests/types/TypesTest.err @@ -0,0 +1,9 @@ +Allocating DL TBF: MS_CLASS=1/1 +TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) Setting Control TS 2 +TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) Allocated: trx = 0, ul_slots = 04, dl_slots = 04 +Allocating UL TBF: MS_CLASS=1/1 +TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) Setting Control TS 4 +TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 10, dl_slots = 00 +Allocating UL TBF: MS_CLASS=1/1 +TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) Setting Control TS 1 +TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL) Allocated: trx = 0, ul_slots = 02, dl_slots = 00 diff --git a/tests/types/TypesTest.ok b/tests/types/TypesTest.ok index 4bdd917..d4cc255 100644 --- a/tests/types/TypesTest.ok +++ b/tests/types/TypesTest.ok @@ -6,6 +6,16 @@ rbb: 10 00 00 00 00 00 00 01 show_rbb: RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR show_rbb: IIRRIIIR +[11] DL Immediate Assignment : + 06 3f 30 0d 23 6d 7f 03 18 23 00 d0 00 00 00 08 17 47 08 0b 5b 2b 2b +[11] UL Immediate Assignment : + 06 3f 10 0d 23 6d 0d 03 18 23 00 c8 02 7b a0 2b 2b 2b 2b 2b 2b 2b 2b +[11] UL Immediate Assignment : + 06 3f 10 0d 23 6d 0d 03 18 23 00 c5 d1 08 0b 5b 2b 2b 2b 2b 2b 2b 2b +[11] UL Immediate Assignment : + 06 3f 10 0d 23 6d 7f 03 18 23 00 46 97 40 0b 58 2b 2b 2b 2b 2b 2b 2b +[11] UL Immediate Assignment : + 06 3f 10 0d 23 6d 7f 03 18 23 00 46 a0 09 e0 17 40 2b 2b 2b 2b 2b 2b assignment reject: 06 3a 10 7f 06 36 14 7f 06 36 14 7f 06 36 14 7f 06 36 14 c0 2b 2b assignment reject: 06 3a 10 70 06 36 14 70 06 36 14 70 06 36 14 70 06 36 14 0b 2b 2b Testing LBS utility... -- To view, visit https://gerrit.osmocom.org/12947 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I63f4654b23c7c4f063f6b3254d77157fac798586 Gerrit-Change-Number: 12947 Gerrit-PatchSet: 5 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 23:30:09 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Wed, 20 Feb 2019 23:30:09 +0000 Subject: Change in osmo-pcu[master]: Clarify write_immediate_assignment() signature In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12948 ) Change subject: Clarify write_immediate_assignment() signature ...................................................................... Clarify write_immediate_assignment() signature * remove unused variable * use bool for boolean types * add clarification comments Change-Id: I363445063e2d873d9194b2a5924b9e59b8b7ea53 --- M src/bts.cpp M src/bts.h M src/encoding.cpp M src/encoding.h M src/tbf.cpp M src/tbf_dl.cpp 6 files changed, 20 insertions(+), 22 deletions(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/bts.cpp b/src/bts.cpp index b6d0d0c..1804c52 100644 --- a/src/bts.cpp +++ b/src/bts.cpp @@ -774,11 +774,10 @@ " - TRX=%d (%d) TS=%d TA=%d TSC=%d TFI=%d USF=%d\n", trx_no, m_bts.trx[trx_no].arfcn, ts_no, ta, tsc, tbf ? tbf->tfi() : -1, usf); - - plen = Encoding::write_immediate_assignment( - tbf, immediate_assignment, 0, ra, Fn, ta, - m_bts.trx[trx_no].arfcn, ts_no, tsc, usf, 0, sb_fn, - m_bts.alpha, m_bts.gamma, -1, burst_type, sb); + // N. B: if tbf == NULL then SBA is used for Imm. Ass. below + plen = Encoding::write_immediate_assignment(tbf, immediate_assignment, false, ra, Fn, ta, + m_bts.trx[trx_no].arfcn, ts_no, tsc, usf, false, sb_fn, + m_bts.alpha, m_bts.gamma, -1, burst_type); } if (plen >= 0) { @@ -791,7 +790,7 @@ return rc; } -void BTS::snd_dl_ass(gprs_rlcmac_tbf *tbf, uint8_t poll, const char *imsi) +void BTS::snd_dl_ass(gprs_rlcmac_tbf *tbf, bool poll, const char *imsi) { int plen; unsigned int ts = tbf->first_ts; @@ -804,10 +803,11 @@ LOGP(DRLCMAC, LOGL_DEBUG, " - TRX=%d (%d) TS=%d TA=%d pollFN=%d\n", tbf->trx->trx_no, tbf->trx->arfcn, ts, tbf->ta(), poll ? tbf->poll_fn : -1); - plen = Encoding::write_immediate_assignment(tbf, immediate_assignment, 1, 125, - (tbf->pdch[ts]->last_rts_fn + 21216) % GSM_MAX_FN, tbf->ta(), - tbf->trx->arfcn, ts, tbf->tsc(), 7, poll, - tbf->poll_fn, m_bts.alpha, m_bts.gamma, -1); + plen = Encoding::write_immediate_assignment(tbf, immediate_assignment, true, 125, + (tbf->pdch[ts]->last_rts_fn + 21216) % GSM_MAX_FN, tbf->ta(), + tbf->trx->arfcn, ts, tbf->tsc(), 7, poll, + tbf->poll_fn, m_bts.alpha, m_bts.gamma, -1, + GSM_L1_BURST_TYPE_ACCESS_0); if (plen >= 0) { immediate_assignment_dl_tbf(); pcu_l1if_tx_pch(immediate_assignment, plen, imsi); diff --git a/src/bts.h b/src/bts.h index df81440..51760e2 100644 --- a/src/bts.h +++ b/src/bts.h @@ -294,7 +294,7 @@ int rcv_rach(uint16_t ra, uint32_t Fn, int16_t qta, bool is_11bit, enum ph_burst_type burst_type); - void snd_dl_ass(gprs_rlcmac_tbf *tbf, uint8_t poll, const char *imsi); + void snd_dl_ass(gprs_rlcmac_tbf *tbf, bool poll, const char *imsi); GprsMsStorage &ms_store(); GprsMs *ms_by_tlli(uint32_t tlli, uint32_t old_tlli = 0); diff --git a/src/encoding.cpp b/src/encoding.cpp index 0241b39..2c89819 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -90,7 +90,7 @@ static int write_ia_rest_downlink( gprs_rlcmac_dl_tbf *tbf, bitvec * dest, unsigned& wp, - uint8_t polling, bool ta_valid, uint32_t fn, + bool polling, bool ta_valid, uint32_t fn, uint8_t alpha, uint8_t gamma, int8_t ta_idx) { if (!tbf) { @@ -342,10 +342,10 @@ */ int Encoding::write_immediate_assignment( struct gprs_rlcmac_tbf *tbf, - bitvec * dest, uint8_t downlink, uint16_t ra, + bitvec * dest, bool downlink, uint16_t ra, uint32_t ref_fn, uint8_t ta, uint16_t arfcn, uint8_t ts, uint8_t tsc, - uint8_t usf, uint8_t polling, uint32_t fn, uint8_t alpha, - uint8_t gamma, int8_t ta_idx, enum ph_burst_type burst_type, uint8_t sb) + uint8_t usf, bool polling, uint32_t fn, uint8_t alpha, + uint8_t gamma, int8_t ta_idx, enum ph_burst_type burst_type) { unsigned wp = 0; int plen; diff --git a/src/encoding.h b/src/encoding.h index 54cb057..2309dc3 100644 --- a/src/encoding.h +++ b/src/encoding.h @@ -43,14 +43,12 @@ public: static int write_immediate_assignment( struct gprs_rlcmac_tbf *tbf, - bitvec * dest, uint8_t downlink, uint16_t ra, + bitvec * dest, bool downlink, uint16_t ra, uint32_t ref_fn, uint8_t ta, uint16_t arfcn, uint8_t ts, - uint8_t tsc, uint8_t usf, uint8_t polling, + uint8_t tsc, uint8_t usf, bool polling, uint32_t fn, uint8_t alpha, uint8_t gamma, int8_t ta_idx, - enum ph_burst_type burst_type = - GSM_L1_BURST_TYPE_ACCESS_0, - uint8_t sb = 1); + enum ph_burst_type burst_type); static int write_immediate_assignment_reject( bitvec *dest, uint16_t ra, diff --git a/src/tbf.cpp b/src/tbf.cpp index 233ae91..ffe8b82 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -880,7 +880,7 @@ LOGPTBF(dl_tbf, LOGL_DEBUG, "Re-send dowlink assignment on PCH (IMSI=%s)\n", imsi()); /* send immediate assignment */ - dl_tbf->bts->snd_dl_ass(dl_tbf, 0, imsi()); + dl_tbf->bts->snd_dl_ass(dl_tbf, false, imsi()); dl_tbf->m_wait_confirm = 1; } } else diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index dd24963..0ef3032 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -510,7 +510,7 @@ TBF_SET_ASS_ON(this, GPRS_RLCMAC_FLAG_CCCH, false); /* send immediate assignment */ - bts->snd_dl_ass(this, 0, imsi()); + bts->snd_dl_ass(this, false, imsi()); m_wait_confirm = 1; } } -- To view, visit https://gerrit.osmocom.org/12948 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I363445063e2d873d9194b2a5924b9e59b8b7ea53 Gerrit-Change-Number: 12948 Gerrit-PatchSet: 5 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 20 23:32:08 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Wed, 20 Feb 2019 23:32:08 +0000 Subject: Change in osmo-sysmon[master]: Introduce generic host config and related helpers In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12761 ) Change subject: Introduce generic host config and related helpers ...................................................................... Introduce generic host config and related helpers Add generic host config struct and related helpers for TCP-based probes and use them for ctrl probe. This will be used in follow-up patch for OpenVPN probe as well. Change-Id: Ie321655a92cdbefbfaa056ac0d583397c83beccb --- M src/Makefile.am A src/client.c A src/client.h M src/osysmon_ctrl.c M src/simple_ctrl.c M src/simple_ctrl.h 6 files changed, 133 insertions(+), 38 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved Objections: Pau Espin Pedrol: I would prefer this is not merged as is diff --git a/src/Makefile.am b/src/Makefile.am index d0d6a22..f639023 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -21,7 +21,7 @@ $(NULL) noinst_LTLIBRARIES = libintern.la -libintern_la_SOURCES = simple_ctrl.c +libintern_la_SOURCES = simple_ctrl.c client.c libintern_la_LIBADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS) osmo_sysmon_CFLAGS = $(LIBMNL_CFLAGS) $(LIBOSMOVTY_CFLAGS) $(LIBOPING_CFLAGS) $(AM_CFLAGS) @@ -44,6 +44,7 @@ noinst_HEADERS = \ osysmon.h \ + client.h \ simple_ctrl.h \ value_node.h \ $(NULL) diff --git a/src/client.c b/src/client.c new file mode 100644 index 0000000..6b37fc6 --- /dev/null +++ b/src/client.c @@ -0,0 +1,73 @@ +/* Generic client structure and related helpers */ + +/* (C) 2018 by Harald Welte + * (C) 2019 by sysmocom - s.f.m.c. GmbH. + * All Rights Reserved. + * + * SPDX-License-Identifier: GPL-2.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ + +#include +#include +#include + +#include + +#include "client.h" + +bool match_config(const struct host_cfg *cfg, const char *match, enum match_kind k) +{ + bool m_name = (strcmp(match, cfg->name) == 0), + m_host = (strcmp(match, cfg->remote_host) == 0); + + switch (k) { + case MATCH_NAME: + return m_name; + case MATCH_HOST: + return m_host; + case MATCH_EITHER: + return m_name | m_host; + case MATCH_BOTH: + return m_name & m_host; + default: + return false; + } + + return false; +} + +struct host_cfg *host_cfg_alloc(void *ctx, const char *name, const char *host, uint16_t port) +{ + struct host_cfg *cfg = talloc_zero(ctx, struct host_cfg); + if (!cfg) + return NULL; + + cfg->name = talloc_strdup(cfg, name); + cfg->remote_host = talloc_strdup(cfg, host); + cfg->remote_port = port; + + return cfg; +} + +char *make_authority(void *ctx, const struct host_cfg *cfg) +{ + if (!cfg->remote_host) + return NULL; + + return talloc_asprintf(ctx, "%s:%u", cfg->remote_host, cfg->remote_port); +} diff --git a/src/client.h b/src/client.h new file mode 100644 index 0000000..605ddd7 --- /dev/null +++ b/src/client.h @@ -0,0 +1,25 @@ +#pragma once + +#include +#include + +enum match_kind { + MATCH_NAME, + MATCH_HOST, + MATCH_BOTH, + MATCH_EITHER, +}; + +/* a client config */ +struct host_cfg { + /* name of this client */ + const char *name; + /* remote host/IP */ + const char *remote_host; + /* remote port */ + uint16_t remote_port; +}; + +struct host_cfg *host_cfg_alloc(void *ctx, const char *name, const char *host, uint16_t port); +bool match_config(const struct host_cfg *cfg, const char *match, enum match_kind k); +char *make_authority(void *ctx, const struct host_cfg *cfg); diff --git a/src/osysmon_ctrl.c b/src/osysmon_ctrl.c index c2d0725..c54779c 100644 --- a/src/osysmon_ctrl.c +++ b/src/osysmon_ctrl.c @@ -26,6 +26,7 @@ #include #include +#include "client.h" #include "osysmon.h" #include "simple_ctrl.h" #include "value_node.h" @@ -38,7 +39,7 @@ struct ctrl_client { /* links to osysmon.ctrl_clients */ struct llist_head list; - struct ctrl_cfg cfg; + struct host_cfg *cfg; struct simple_ctrl_handle *sch; /* list of ctrl_client_get_var objects */ struct llist_head get_vars; @@ -62,7 +63,7 @@ { struct ctrl_client *cc; llist_for_each_entry(cc, &os->ctrl_clients, list) { - if (!strcmp(name, cc->cfg.name)) + if (match_config(cc->cfg, name, MATCH_NAME)) return cc; } return NULL; @@ -79,9 +80,13 @@ cc = talloc_zero(os, struct ctrl_client); if (!cc) return NULL; - cc->cfg.name = talloc_strdup(cc, name); - cc->cfg.remote_host = talloc_strdup(cc, host); - cc->cfg.remote_port = port; + + cc->cfg = host_cfg_alloc(cc, name, host, port); + if (!cc->cfg) { + talloc_free(cc); + return NULL; + } + INIT_LLIST_HEAD(&cc->get_vars); llist_add_tail(&cc->list, &os->ctrl_clients); /* FIXME */ @@ -156,10 +161,10 @@ struct ctrl_client *cc; cc = ctrl_client_find(g_oss, argv[0]); if (cc) { - if ((strcmp(cc->cfg.remote_host, argv[1])) || - (cc->cfg.remote_port != atoi(argv[2]))) { + if ((strcmp(cc->cfg->remote_host, argv[1])) || + (cc->cfg->remote_port != atoi(argv[2]))) { vty_out(vty, "Client %s has different IP/port, please remove it first%s", - cc->cfg.name, VTY_NEWLINE); + cc->cfg->name, VTY_NEWLINE); return CMD_WARNING; } } else @@ -215,8 +220,8 @@ static void write_one_ctrl_client(struct vty *vty, struct ctrl_client *cc) { struct ctrl_client_get_var *ccgv; - vty_out(vty, "ctrl-client %s %s %u%s", cc->cfg.name, - cc->cfg.remote_host, cc->cfg.remote_port, VTY_NEWLINE); + vty_out(vty, "ctrl-client %s %s %u%s", cc->cfg->name, + cc->cfg->remote_host, cc->cfg->remote_port, VTY_NEWLINE); llist_for_each_entry(ccgv, &cc->get_vars, list) { vty_out(vty, " get-variable %s%s", ccgv->cfg.name, VTY_NEWLINE); if (ccgv->cfg.display_name) @@ -259,11 +264,11 @@ static int ctrl_client_poll(struct ctrl_client *cc, struct value_node *parent) { struct ctrl_client_get_var *ccgv; - struct value_node *vn_clnt = value_node_add(parent, cc->cfg.name, NULL); + struct value_node *vn_clnt = value_node_add(parent, cc->cfg->name, NULL); /* attempt to re-connect */ if (!cc->sch) - cc->sch = simple_ctrl_open(cc, cc->cfg.remote_host, cc->cfg.remote_port, 1000); + cc->sch = simple_ctrl_open(cc, cc->cfg->remote_host, cc->cfg->remote_port, 1000); /* abort, if that failed */ if (!cc->sch) { return -1; diff --git a/src/simple_ctrl.c b/src/simple_ctrl.c index b56fc83..883e92f 100644 --- a/src/simple_ctrl.c +++ b/src/simple_ctrl.c @@ -35,10 +35,11 @@ #include #include +#include "client.h" #include "simple_ctrl.h" -#define CTRL_ERR(cfg, fmt, args...) \ - fprintf(stderr, "CTRL %s:%u error: " fmt, cfg.remote_host, cfg.remote_port, ##args) +#define CTRL_ERR(sch, fmt, args...) \ + fprintf(stderr, "CTRL %s error: " fmt, make_authority(sch, &sch->cfg), ##args) /*********************************************************************** * blocking I/O with timeout helpers @@ -101,7 +102,7 @@ int fd; uint32_t next_id; uint32_t tout_msec; - struct ctrl_cfg cfg; + struct host_cfg cfg; }; struct simple_ctrl_handle *simple_ctrl_open(void *ctx, const char *host, uint16_t dport, @@ -122,7 +123,7 @@ fd = osmo_sock_init(AF_INET, SOCK_STREAM, IPPROTO_TCP, host, dport, OSMO_SOCK_F_CONNECT | OSMO_SOCK_F_NONBLOCK); if (fd < 0) { - CTRL_ERR(sch->cfg, "connecting socket: %s\n", strerror(errno)); + CTRL_ERR(sch, "connecting socket: %s\n", strerror(errno)); return NULL; } @@ -131,17 +132,17 @@ FD_SET(fd, &writeset); rc = select(fd+1, NULL, &writeset, NULL, timeval_from_msec(tout_msec)); if (rc == 0) { - CTRL_ERR(sch->cfg, "timeout during connect\n"); + CTRL_ERR(sch, "timeout during connect\n"); goto out_close; } if (rc < 0) { - CTRL_ERR(sch->cfg, "error connecting socket: %s\n", strerror(errno)); + CTRL_ERR(sch, "error connecting socket: %s\n", strerror(errno)); goto out_close; } /* set FD blocking again */ if (ioctl(fd, FIONBIO, (unsigned char *)&off) < 0) { - CTRL_ERR(sch->cfg, "cannot set socket blocking: %s\n", strerror(errno)); + CTRL_ERR(sch, "cannot set socket blocking: %s\n", strerror(errno)); goto out_close; } @@ -173,10 +174,10 @@ rc = read_timeout(sch->fd, (uint8_t *) &hh, sizeof(hh), sch->tout_msec); if (rc < 0) { - CTRL_ERR(sch->cfg, "read(): %d\n", rc); + CTRL_ERR(sch, "read(): %d\n", rc); return NULL; } else if (rc < sizeof(hh)) { - CTRL_ERR(sch->cfg, "short read (header)\n"); + CTRL_ERR(sch, "short read (header)\n"); return NULL; } len = ntohs(hh.len); @@ -190,7 +191,7 @@ resp->l2h = resp->tail; rc = read(sch->fd, resp->l2h, len); if (rc < len) { - CTRL_ERR(sch->cfg, "short read (payload)\n"); + CTRL_ERR(sch, "short read (payload)\n"); msgb_free(resp); return NULL; } @@ -222,7 +223,7 @@ *tmp = '\0'; return resp; } else { - CTRL_ERR(sch->cfg, "unknown IPA message %s\n", msgb_hexdump(resp)); + CTRL_ERR(sch, "unknown IPA message %s\n", msgb_hexdump(resp)); msgb_free(resp); } } @@ -237,10 +238,10 @@ rc = write_timeout(sch->fd, msg->data, msg->len, sch->tout_msec); if (rc < 0) { - CTRL_ERR(sch->cfg, "write(): %d\n", rc); + CTRL_ERR(sch, "write(): %d\n", rc); return rc; } else if (rc < msg->len) { - CTRL_ERR(sch->cfg, "short write\n"); + CTRL_ERR(sch, "short write\n"); msgb_free(msg); return -1; } else { @@ -291,7 +292,7 @@ free(rx_var); free(rx_val); } else { - CTRL_ERR(sch->cfg, "GET(%s) results in '%s'\n", var, (char *)msgb_l2(resp)); + CTRL_ERR(sch, "GET(%s) results in '%s'\n", var, (char *)msgb_l2(resp)); } msgb_free(resp); @@ -329,7 +330,7 @@ free(rx_var); } } else { - CTRL_ERR(sch->cfg, "SET(%s=%s) results in '%s'\n", var, val, (char *) msgb_l2(resp)); + CTRL_ERR(sch, "SET(%s=%s) results in '%s'\n", var, val, (char *) msgb_l2(resp)); } msgb_free(resp); diff --git a/src/simple_ctrl.h b/src/simple_ctrl.h index f35eab1..81a759d 100644 --- a/src/simple_ctrl.h +++ b/src/simple_ctrl.h @@ -2,16 +2,6 @@ #include -/* a CTRL client config */ -struct ctrl_cfg { - /* name of this CTRL client */ - const char *name; - /* remote host/IP */ - const char *remote_host; - /* remote CTRL port */ - uint16_t remote_port; -}; - struct simple_ctrl_handle; struct simple_ctrl_handle *simple_ctrl_open(void *ctx, const char *host, uint16_t dport, -- To view, visit https://gerrit.osmocom.org/12761 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie321655a92cdbefbfaa056ac0d583397c83beccb Gerrit-Change-Number: 12761 Gerrit-PatchSet: 6 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Thu Feb 21 00:55:17 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Thu, 21 Feb 2019 00:55:17 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_mas?= =?UTF-8?Q?ter-osmo-iuh_=C2=BB_a1=3Ddefault,a2=3D?= =?UTF-8?Q?default,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#3162?= Message-ID: <1989293801.337.1550710517094.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 700.28 KB...] CC RANAP_AccuracyFulfilmentIndicator.lo CC RANAP_AllocationOrRetentionPriority.lo CC RANAP_Alt-RAB-Parameters.lo CC RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateInf.lo CC RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrates.lo CC RANAP_Alt-RAB-Parameter-ExtendedGuaranteedBitrateList.lo CC RANAP_Alt-RAB-Parameter-GuaranteedBitrateInf.lo CC RANAP_Alt-RAB-Parameter-GuaranteedBitrateType.lo CC RANAP_Alt-RAB-Parameter-GuaranteedBitrates.lo CC RANAP_Alt-RAB-Parameter-GuaranteedBitrateList.lo CC RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrateInf.lo CC RANAP_Alt-RAB-Parameter-SupportedGuaranteedBitrates.lo CC RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateInf.lo CC RANAP_Alt-RAB-Parameter-ExtendedMaxBitrates.lo CC RANAP_Alt-RAB-Parameter-ExtendedMaxBitrateList.lo CC RANAP_Alt-RAB-Parameter-MaxBitrateInf.lo CC RANAP_Alt-RAB-Parameter-MaxBitrateType.lo CC RANAP_Alt-RAB-Parameter-MaxBitrates.lo CC RANAP_Alt-RAB-Parameter-MaxBitrateList.lo CC RANAP_Alt-RAB-Parameter-SupportedMaxBitrateInf.lo CC RANAP_Alt-RAB-Parameter-SupportedMaxBitrates.lo CC RANAP_AlternativeRABConfigurationRequest.lo CC RANAP_APN.lo CC RANAP_AreaIdentity.lo CC RANAP_Ass-RAB-Parameters.lo CC RANAP_Ass-RAB-Parameter-ExtendedGuaranteedBitrateList.lo CC RANAP_Ass-RAB-Parameter-ExtendedMaxBitrateList.lo CC RANAP_Ass-RAB-Parameter-GuaranteedBitrateList.lo CC RANAP_Ass-RAB-Parameter-MaxBitrateList.lo In file included from :8:0, from ../../include/osmocom/ranap/RANAP_IE-Extensions.h:15, from ../../include/osmocom/ranap/RANAP_SAI.h:17, from ../../include/osmocom/ranap/RANAP_AreaIdentity.h:14, from RANAP_AreaIdentity.c:7: ../../include/osmocom/ranap/RANAP_GA-Polygon.h:26:23: warning: ?struct Member? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct Member { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../../include/osmocom/ranap/RANAP_GA-Polygon.h:26:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct Member { ^~~~~~~~~~~~~ CC RANAP_AuthorisedPLMNs.lo CC RANAP_AuthorisedSNAs.lo CC RANAP_BindingID.lo CC RANAP_BroadcastAssistanceDataDecipheringKeys.lo CC RANAP_Cause.lo CC RANAP_CauseMisc.lo CC RANAP_CauseNAS.lo CC RANAP_CauseProtocol.lo In file included from :8:0, from ../../include/osmocom/ranap/RANAP_AuthorisedPLMNs.h:14, from RANAP_AuthorisedPLMNs.c:7: ../../include/osmocom/ranap/RANAP_AuthorisedPLMNs.h:27:23: warning: ?struct MemberC? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberC { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../../include/osmocom/ranap/RANAP_AuthorisedPLMNs.h:27:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberC { ^~~~~~~~~~~~~ CC RANAP_CauseRadioNetwork.lo CC RANAP_CauseRadioNetworkExtension.lo CC RANAP_CauseNon-Standard.lo CC RANAP_CauseTransmissionNetwork.lo CC RANAP_Cell-Access-Mode.lo CC RANAP_CellBased.lo CC RANAP_CellIdList.lo CC RANAP_Cell-Id.lo CC RANAP_Cell-Capacity-Class-Value.lo CC RANAP_CellLoadInformation.lo CC RANAP_CellLoadInformationGroup.lo CC RANAP_CellType.lo CC RANAP_ClientType.lo CC RANAP_CriticalityDiagnostics.lo CC RANAP_CriticalityDiagnostics-IE-List.lo CC RANAP_MessageStructure.lo CC RANAP_CGI.lo CC RANAP_ChosenEncryptionAlgorithm.lo CC RANAP_ChosenIntegrityProtectionAlgorithm.lo In file included from :8:0, from ../../include/osmocom/ranap/RANAP_CriticalityDiagnostics-IE-List.h:14, from ../../include/osmocom/ranap/RANAP_CriticalityDiagnostics.h:17, from RANAP_CriticalityDiagnostics.c:7: ../../include/osmocom/ranap/RANAP_CriticalityDiagnostics-IE-List.h:28:23: warning: ?struct MemberG? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberG { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../../include/osmocom/ranap/RANAP_CriticalityDiagnostics-IE-List.h:28:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberG { ^~~~~~~~~~~~~ In file included from :8:0, from ../../include/osmocom/ranap/RANAP_CriticalityDiagnostics-IE-List.h:14, from RANAP_CriticalityDiagnostics-IE-List.c:7: ../../include/osmocom/ranap/RANAP_CriticalityDiagnostics-IE-List.h:28:23: warning: ?struct MemberG? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberG { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../../include/osmocom/ranap/RANAP_CriticalityDiagnostics-IE-List.h:28:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberG { ^~~~~~~~~~~~~ CC RANAP_CI.lo CC RANAP_ClassmarkInformation2.lo In file included from :8:0, from ../../include/osmocom/ranap/RANAP_MessageStructure.h:14, from RANAP_MessageStructure.c:7: ../../include/osmocom/ranap/RANAP_MessageStructure.h:27:23: warning: ?struct MemberL? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct MemberL { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../../include/osmocom/ranap/RANAP_MessageStructure.h:27:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct MemberL { ^~~~~~~~~~~~~ CC RANAP_ClassmarkInformation3.lo CC RANAP_CN-DomainIndicator.lo CC RANAP_CN-ID.lo CC RANAP_Correlation-ID.lo CC RANAP_CSFB-Information.lo CC RANAP_CSG-Id.lo CC RANAP_CSG-Id-List.lo CC RANAP_CSG-Membership-Status.lo CC RANAP_DataPDUType.lo CC RANAP_DataVolumeReference.lo CC RANAP_DataVolumeReportingIndication.lo CC RANAP_DCH-ID.lo CC RANAP_DeliveryOfErroneousSDU.lo CC RANAP_DeliveryOrder.lo CC RANAP_DeltaRAListofIdleModeUEs.lo CC RANAP_NewRAListofIdleModeUEs.lo CC RANAP_RAListwithNoIdleModeUEsAnyMore.lo CC RANAP_ForwardingIndication.lo CC RANAP_DL-GTP-PDU-SequenceNumber.lo CC RANAP_DL-N-PDU-SequenceNumber.lo CC RANAP_D-RNTI.lo CC RANAP_DRX-CycleLengthCoefficient.lo CC RANAP_DSCH-ID.lo CC RANAP_EARFCN-Extended.lo CC RANAP_E-DCH-MAC-d-Flow-ID.lo CC RANAP_ENB-ID.lo CC RANAP_EncryptionAlgorithm.lo CC RANAP_EncryptionInformation.lo CC RANAP_EncryptionKey.lo CC RANAP_End-Of-CSFB.lo CC RANAP_EquipmentsToBeTraced.lo CC RANAP_E-UTRAN-Service-Handover.lo CC RANAP_Event.lo CC RANAP_Event1F-Parameters.lo CC RANAP_Event1I-Parameters.lo CC RANAP_ExtendedGuaranteedBitrate.lo CC RANAP_ExtendedMaxBitrate.lo CC RANAP_ExtendedRNC-ID.lo CC RANAP_FrameSequenceNumber.lo CC RANAP_FrequenceLayerConvergenceFlag.lo CC RANAP_GANSS-PositioningDataSet.lo CC RANAP_GANSS-PositioningMethodAndUsage.lo CC RANAP_GeographicalArea.lo CC RANAP_GeographicalCoordinates.lo In file included from :8:0, from ../../include/osmocom/ranap/RANAP_IE-Extensions.h:15, from ../../include/osmocom/ranap/RANAP_GeographicalCoordinates.h:16, from ../../include/osmocom/ranap/RANAP_GA-Point.h:14, from ../../include/osmocom/ranap/RANAP_GeographicalArea.h:14, from RANAP_GeographicalArea.c:7: ../../include/osmocom/ranap/RANAP_GA-Polygon.h:26:23: warning: ?struct Member? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct Member { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../../include/osmocom/ranap/RANAP_GA-Polygon.h:26:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct Member { ^~~~~~~~~~~~~ CC RANAP_GA-AltitudeAndDirection.lo CC RANAP_GA-EllipsoidArc.lo CC RANAP_GA-Point.lo CC RANAP_GA-PointWithAltitude.lo CC RANAP_GA-PointWithAltitudeAndUncertaintyEllipsoid.lo CC RANAP_GA-PointWithUnCertainty.lo CC RANAP_GA-PointWithUnCertaintyEllipse.lo CC RANAP_GA-Polygon.lo CC RANAP_GA-UncertaintyEllipse.lo CC RANAP_GERAN-BSC-Container.lo CC RANAP_GERAN-Cell-ID.lo CC RANAP_GERAN-Classmark.lo CC RANAP_GlobalCN-ID.lo CC RANAP_GlobalRNC-ID.lo CC RANAP_GTP-TEI.lo In file included from :8:0, from ../../include/osmocom/ranap/RANAP_GA-Polygon.h:14, from RANAP_GA-Polygon.c:7: ../../include/osmocom/ranap/RANAP_GA-Polygon.h:26:23: warning: ?struct Member? declared inside parameter list will not be visible outside of this definition or declaration A_SEQUENCE_OF(struct Member { ^ :17:16: note: in definition of macro ?A_SET_OF? void (*free)(type *); \ ^~~~ ../../include/osmocom/ranap/RANAP_GA-Polygon.h:26:2: note: in expansion of macro ?A_SEQUENCE_OF? A_SEQUENCE_OF(struct Member { ^~~~~~~~~~~~~ CC RANAP_GuaranteedBitrate.lo CC RANAP_HigherBitratesThan16MbpsFlag.lo CC RANAP_HS-DSCH-MAC-d-Flow-ID.lo CC RANAP_IMEI.lo CC RANAP_IMEIGroup.lo CC RANAP_IMEIList.lo CC RANAP_IMEISV.lo CC RANAP_IMEISVGroup.lo CC RANAP_IMEISVList.lo CC RANAP_ImmediateMDT.lo CC RANAP_IMSI.lo CC RANAP_IncludeVelocity.lo CC RANAP_InformationExchangeID.lo CC RANAP_InformationExchangeType.lo CC RANAP_InformationRequested.lo CC RANAP_InformationRequestType.lo CC RANAP_InformationTransferID.lo CC RANAP_InformationTransferType.lo CC RANAP_IntegrityProtectionAlgorithm.lo CC RANAP_IntegrityProtectionInformation.lo CC RANAP_IntegrityProtectionKey.lo CC RANAP_InterSystemInformationTransferType.lo CC RANAP_InterSystemInformation-TransparentContainer.lo CC RANAP_IPMulticastAddress.lo /bin/bash: line 1: 5157 Segmentation fault /bin/bash ../../libtool --silent --tag=CC --mode=compile gcc -DPACKAGE_NAME=\"osmo-iuh\" -DPACKAGE_TARNAME=\"osmo-iuh\" -DPACKAGE_VERSION=\"0.4.0.1-04b5\" -DPACKAGE_STRING=\"osmo-iuh\ 0.4.0.1-04b5\" -DPACKAGE_BUGREPORT=\"openbsc at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DPACKAGE=\"osmo-iuh\" -DVERSION=\"0.4.0.1-04b5\" -DSTDC_HEADERS=1 -I. -fsanitize=address -fsanitize=undefined -Wall -I../../include -I -I -I -g -O2 -fsanitize=address -fsanitize=undefined -Wall -MT RANAP_IntegrityProtectionKey.lo -MD -MP -MF .deps/RANAP_IntegrityProtectionKey.Tpo -c -o RANAP_IntegrityProtectionKey.lo RANAP_IntegrityProtectionKey.c Makefile:2506: recipe for target 'RANAP_IntegrityProtectionKey.lo' failed make[4]: *** [RANAP_IntegrityProtectionKey.lo] Error 139 make[4]: *** Waiting for unfinished jobs.... make[4]: Leaving directory ' Makefile:642: recipe for target 'all-recursive' failed make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory ' Makefile:454: recipe for target 'all' failed make[2]: *** [all] Error 2 make[2]: Leaving directory ' Makefile:458: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:382: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Thu Feb 21 01:37:00 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 21 Feb 2019 01:37:00 +0000 Subject: Change in libosmocore[master]: log: fsm: log timeout on state change Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/12987 Change subject: log: fsm: log timeout on state change ...................................................................... log: fsm: log timeout on state change To not break the osmo-msc test expectations, this needs to be merged at the same time as osmo-msc I621fa6ce2485149750e2062abca63d66c417998b. Change-Id: I089b81021a1a4ada1205261470da032b82d57872 --- M include/osmocom/core/fsm.h M src/fsm.c M tests/fsm/fsm_test.c M tests/fsm/fsm_test.err 4 files changed, 53 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/87/12987/1 diff --git a/include/osmocom/core/fsm.h b/include/osmocom/core/fsm.h index df7e348..ae1c857 100644 --- a/include/osmocom/core/fsm.h +++ b/include/osmocom/core/fsm.h @@ -118,6 +118,7 @@ }; void osmo_fsm_log_addr(bool log_addr); +void osmo_fsm_log_timeouts(bool log_timeouts); /*! Log using FSM instance's context, on explicit logging subsystem and level. * \param fi An osmo_fsm_inst. diff --git a/src/fsm.c b/src/fsm.c index 6e15ab7..eb457a1 100644 --- a/src/fsm.c +++ b/src/fsm.c @@ -90,6 +90,7 @@ LLIST_HEAD(osmo_g_fsms); static bool fsm_log_addr = true; +static bool fsm_log_timeouts = false; /*! specify if FSM instance addresses should be logged or not * @@ -104,6 +105,26 @@ fsm_log_addr = log_addr; } +/*! Enable or disable logging of timeout values for FSM instance state changes. + * + * By default, state changes are logged by state name only, omitting the timeout. When passing true, each state change + * will also log the T number and the chosen timeout in seconds. osmo_fsm_inst_state_chg_keep_timer() will log remaining + * timeout in millisecond precision. + * + * The default for this is false to reflect legacy behavior. Since various C tests that verify logging output already + * existed prior to this option, keeping timeout logging off makes sure that they continue to pass. Particularly, + * osmo_fsm_inst_state_chg_keep_timer() may cause non-deterministic logging of remaining timeout values. + * + * For any program that does not explicitly require deterministic logging output, i.e. anything besides regression tests + * involving FSM instances, it is recommended to call osmo_fsm_log_timeouts(true). + * + * \param[in] log_timeouts Pass true to log timeouts on state transitions, false to omit timeouts. + */ +void osmo_fsm_log_timeouts(bool log_timeouts) +{ + fsm_log_timeouts = log_timeouts; +} + struct osmo_fsm *osmo_fsm_find_by_name(const char *name) { struct osmo_fsm *fsm; @@ -436,6 +457,7 @@ struct osmo_fsm *fsm = fi->fsm; uint32_t old_state = fi->state; const struct osmo_fsm_state *st = &fsm->states[fi->state]; + struct timeval remaining; /* Limit to 0x7fffffff seconds as explained by * _osmo_fsm_inst_state_chg()'s API doc. */ @@ -458,8 +480,23 @@ if (st->onleave) st->onleave(fi, new_state); - LOGPFSMSRC(fi, file, line, "state_chg to %s\n", - osmo_fsm_state_name(fsm, new_state)); + if (fsm_log_timeouts) { + if (keep_timer && fi->timer.active && (osmo_timer_remaining(&fi->timer, NULL, &remaining) == 0)) + LOGPFSMSRC(fi, file, line, "State change to %s (keeping T%d, %ld.%03lds remaining)\n", + osmo_fsm_state_name(fsm, new_state), + fi->T, remaining.tv_sec, remaining.tv_usec / 1000); + else if (timeout_secs && !keep_timer) + LOGPFSMSRC(fi, file, line, "State change to %s (T%d, %lus)\n", + osmo_fsm_state_name(fsm, new_state), + T, timeout_secs); + else + LOGPFSMSRC(fi, file, line, "State change to %s (no timeout)\n", + osmo_fsm_state_name(fsm, new_state)); + } else { + LOGPFSMSRC(fi, file, line, "state_chg to %s\n", + osmo_fsm_state_name(fsm, new_state)); + } + fi->state = new_state; st = &fsm->states[new_state]; diff --git a/tests/fsm/fsm_test.c b/tests/fsm/fsm_test.c index 7aac8d3..f8ebdc7 100644 --- a/tests/fsm/fsm_test.c +++ b/tests/fsm/fsm_test.c @@ -406,6 +406,9 @@ osmo_fsm_log_addr(false); + /* Using fake time to get deterministic timeout logging */ + osmo_fsm_log_timeouts(true); + log_init(&log_info, NULL); stderr_target = log_target_create_stderr(); log_add_target(stderr_target); diff --git a/tests/fsm/fsm_test.err b/tests/fsm/fsm_test.err index bf474ab..13cbacd 100644 --- a/tests/fsm/fsm_test.err +++ b/tests/fsm/fsm_test.err @@ -3,9 +3,9 @@ Test_FSM(my_id){NULL}: Received Event EV_B Test_FSM(my_id){NULL}: Event EV_B not permitted Test_FSM(my_id){NULL}: Received Event EV_A -Test_FSM(my_id){NULL}: state_chg to ONE +Test_FSM(my_id){NULL}: State change to ONE (no timeout) Test_FSM(my_id){ONE}: Received Event EV_B -Test_FSM(my_id){ONE}: state_chg to TWO +Test_FSM(my_id){ONE}: State change to TWO (T2342, 1s) Test_FSM(my_id){TWO}: Timeout of T2342 Timer Test_FSM(my_id){TWO}: Deallocated @@ -83,16 +83,16 @@  --- test_state_chg_keep_timer() Test_FSM{NULL}: Allocated -Test_FSM{NULL}: state_chg to ONE -Test_FSM{ONE}: state_chg to TWO +Test_FSM{NULL}: State change to ONE (no timeout) +Test_FSM{ONE}: State change to TWO (no timeout) Test_FSM{TWO}: Terminating (cause = OSMO_FSM_TERM_REQUEST) Test_FSM{TWO}: Freeing instance Test_FSM{TWO}: Deallocated Total time passed: 0.000000 s Test_FSM{NULL}: Allocated -Test_FSM{NULL}: state_chg to ONE +Test_FSM{NULL}: State change to ONE (T10, 10s) Total time passed: 2.000342 s -Test_FSM{ONE}: state_chg to TWO +Test_FSM{ONE}: State change to TWO (keeping T10, 7.999s remaining) Total time passed: 2.000342 s Total time passed: 9.999999 s Total time passed: 10.000000 s @@ -104,14 +104,14 @@ --- test_state_chg_T() Test_FSM{NULL}: Allocated -Test_FSM{NULL}: state_chg to ONE -Test_FSM{ONE}: state_chg to TWO +Test_FSM{NULL}: State change to ONE (T42, 23s) +Test_FSM{ONE}: State change to TWO (no timeout) Test_FSM{TWO}: Terminating (cause = OSMO_FSM_TERM_REQUEST) Test_FSM{TWO}: Freeing instance Test_FSM{TWO}: Deallocated Test_FSM{NULL}: Allocated -Test_FSM{NULL}: state_chg to ONE -Test_FSM{ONE}: state_chg to TWO +Test_FSM{NULL}: State change to ONE (T42, 23s) +Test_FSM{ONE}: State change to TWO (no timeout) Test_FSM{TWO}: Terminating (cause = OSMO_FSM_TERM_REQUEST) Test_FSM{TWO}: Freeing instance Test_FSM{TWO}: Deallocated -- To view, visit https://gerrit.osmocom.org/12987 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I089b81021a1a4ada1205261470da032b82d57872 Gerrit-Change-Number: 12987 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 01:37:00 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Thu, 21 Feb 2019 01:37:00 +0000 Subject: Change in libosmocore[master]: log: fsm: fix logging of negative T upon timeout Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/12988 Change subject: log: fsm: fix logging of negative T upon timeout ...................................................................... log: fsm: fix logging of negative T upon timeout fi->T values are int, i.e. can be negative. Do not log them as unsigned, i.e. print "Timeout of T-1" instead of "Timeout of T4294967295". Negative T timers are useful to indicate freely invented timer numbers, to distinguish them from proper 3GPP defined T numbers. So far I was using numbers like T993210 or T9999 for invented T, but T-1, T-2 etc. is a better solution. Change-Id: I3a59457623da9309fbbda235fe18fadd1636bff6 --- M src/fsm.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/88/12988/1 diff --git a/src/fsm.c b/src/fsm.c index eb457a1..900ada6 100644 --- a/src/fsm.c +++ b/src/fsm.c @@ -205,9 +205,9 @@ { struct osmo_fsm_inst *fi = data; struct osmo_fsm *fsm = fi->fsm; - uint32_t T = fi->T; + int32_t T = fi->T; - LOGPFSM(fi, "Timeout of T%u\n", fi->T); + LOGPFSM(fi, "Timeout of T%d\n", fi->T); if (fsm->timer_cb) { int rc = fsm->timer_cb(fi); -- To view, visit https://gerrit.osmocom.org/12988 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I3a59457623da9309fbbda235fe18fadd1636bff6 Gerrit-Change-Number: 12988 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Thu Feb 21 06:21:21 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Thu, 21 Feb 2019 06:21:21 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal?= =?UTF-8?Q?_:_master-osmo-iuh_=C2=BB_a1=3Ddefault?= =?UTF-8?Q?,a2=3Ddefault,a3=3Ddefault,a4=3Ddefau?= =?UTF-8?Q?lt,osmocom-master-debian9_#3163?= In-Reply-To: <1989293801.337.1550710517094.JavaMail.jenkins@jenkins.osmocom.org> References: <1989293801.337.1550710517094.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1589140242.346.1550730081958.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Thu Feb 21 07:01:13 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 21 Feb 2019 07:01:13 +0000 Subject: Change in libosmocore[master]: log: fsm: log timeout on state change In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12987 ) Change subject: log: fsm: log timeout on state change ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12987 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I089b81021a1a4ada1205261470da032b82d57872 Gerrit-Change-Number: 12987 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 21 Feb 2019 07:01:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 07:03:18 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 21 Feb 2019 07:03:18 +0000 Subject: Change in libosmocore[master]: log: fsm: fix logging of negative T upon timeout In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12988 ) Change subject: log: fsm: fix logging of negative T upon timeout ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12988 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3a59457623da9309fbbda235fe18fadd1636bff6 Gerrit-Change-Number: 12988 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 21 Feb 2019 07:03:18 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 07:11:45 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 07:11:45 +0000 Subject: Change in libosmocore[master]: log: fsm: log timeout on state change In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12987 ) Change subject: log: fsm: log timeout on state change ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12987 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I089b81021a1a4ada1205261470da032b82d57872 Gerrit-Change-Number: 12987 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 21 Feb 2019 07:11:45 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 07:13:54 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 07:13:54 +0000 Subject: Change in libosmocore[master]: log: fsm: fix logging of negative T upon timeout In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12988 ) Change subject: log: fsm: fix logging of negative T upon timeout ...................................................................... Patch Set 1: I strongly discourage the use of negative values for timeout numbers. Try explaining this to user: T-2 is somehing else than T2. This is making the same mistake as the Indian restaurant next to the sysmocom office, where there's lunch menu "M-2" and 'M.2" which totally reduces the utility of having such designators at all, particularly when using verbal communication. Now we can still merge this patch, but I'd actually rather merge a patch that prints an error message if somebody uses negative T numbers. -- To view, visit https://gerrit.osmocom.org/12988 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3a59457623da9309fbbda235fe18fadd1636bff6 Gerrit-Change-Number: 12988 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-CC: Harald Welte Gerrit-Comment-Date: Thu, 21 Feb 2019 07:13:54 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 07:14:45 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 07:14:45 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/11992 ) Change subject: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions ...................................................................... Patch Set 12: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/11992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icf4d87c45e90324764073e8230e0fb9cb96dd9cb Gerrit-Change-Number: 11992 Gerrit-PatchSet: 12 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-CC: Stefan Sperling Gerrit-Comment-Date: Thu, 21 Feb 2019 07:14:45 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 07:21:09 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 07:21:09 +0000 Subject: Change in libosmocore[master]: log: fsm: fix logging of negative T upon timeout In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12988 ) Change subject: log: fsm: fix logging of negative T upon timeout ...................................................................... Patch Set 1: > Now we can still merge this patch, but I'd actually rather merge a > patch that prints an error message if somebody uses negative T > numbers. What I wanted to say here: We can still merge this patch to fix the logging, but we shall never use negative numbers and I'd actually rather merge a patch that prints an error message if somebody uses negative T numbers. -- To view, visit https://gerrit.osmocom.org/12988 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3a59457623da9309fbbda235fe18fadd1636bff6 Gerrit-Change-Number: 12988 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-CC: Harald Welte Gerrit-Comment-Date: Thu, 21 Feb 2019 07:21:09 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 09:01:13 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 21 Feb 2019 09:01:13 +0000 Subject: Change in osmo-sysmon[master]: Add OpenVPN probe In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12763 ) Change subject: Add OpenVPN probe ...................................................................... Add OpenVPN probe This adds support for OpenVPN status probe which uses OpenVPN's management interface (configured via 'management 127.0.0.1 1234' in OpenVPN's config). The output looks as follows: ... OpenVPN 127.0.0.1:1234 status: CONNECTED tunnel: 10.8.0.15 remote: 144.76.43.77:1194 localhost:4242 status: management interface incompatible 127.0.0.1:4444 status: management interface unavailable ... We show tunnel's IP (if available) as well as remote (OpenVPN server itself) address/port in addition to general connection status. If management interface is unavailable it's reported as such. If we've managed to establish connection with a given management interface but are unable to obtain expected information than we report this incompatibility as well. Related: SYS#2655 Change-Id: I4493e19b9a09dcebd289457eacd1719f7f8cc31c --- M configure.ac M contrib/jenkins.sh M src/Makefile.am M src/client.c M src/client.h M src/osysmon.h M src/osysmon_main.c A src/osysmon_openvpn.c 8 files changed, 342 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved Objections: Pau Espin Pedrol: I would prefer this is not merged as is diff --git a/configure.ac b/configure.ac index d98de89..44a040c 100644 --- a/configure.ac +++ b/configure.ac @@ -42,6 +42,7 @@ PKG_CHECK_MODULES(LIBOSMOVTY, libosmovty >= 0.11.0) PKG_CHECK_MODULES(LIBOSMOCTRL, libosmoctrl >= 0.11.0) PKG_CHECK_MODULES(LIBOSMOGSM, libosmogsm >= 0.11.0) +PKG_CHECK_MODULES(LIBOSMONETIF, libosmo-netif >= 0.4.0) PKG_CHECK_MODULES(LIBMNL, libmnl) dnl FIXME: bump to 1.10.0 once it's available on build slaves and remove workaround from osysmon_ping.c PKG_CHECK_MODULES(LIBOPING, liboping >= 1.9.0) diff --git a/contrib/jenkins.sh b/contrib/jenkins.sh index b1529c4..631f95a 100755 --- a/contrib/jenkins.sh +++ b/contrib/jenkins.sh @@ -25,6 +25,9 @@ export PKG_CONFIG_PATH="$inst/lib/pkgconfig:$PKG_CONFIG_PATH" export LD_LIBRARY_PATH="$inst/lib" +osmo-build-dep.sh libosmo-abis +osmo-build-dep.sh libosmo-netif "" '--disable-doxygen' + set +x echo echo diff --git a/src/Makefile.am b/src/Makefile.am index f639023..f9b79f2 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -9,6 +9,7 @@ -Wall \ $(LIBOSMOCORE_CFLAGS) \ $(LIBOSMOGSM_CFLAGS) \ + $(LIBOSMONETIF_CFLAGS) \ $(NULL) AM_LDFLAGS = \ @@ -22,12 +23,13 @@ noinst_LTLIBRARIES = libintern.la libintern_la_SOURCES = simple_ctrl.c client.c -libintern_la_LIBADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS) +libintern_la_LIBADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS) $(LIBOSMONETIF_LIBS) osmo_sysmon_CFLAGS = $(LIBMNL_CFLAGS) $(LIBOSMOVTY_CFLAGS) $(LIBOPING_CFLAGS) $(AM_CFLAGS) osmo_sysmon_LDADD = $(LDADD) \ $(LIBOSMOVTY_LIBS) \ + $(LIBOSMONETIF_LIBS) \ $(LIBMNL_LIBS) \ $(LIBOPING_LIBS) \ $(NULL) @@ -39,6 +41,7 @@ osysmon_rtnl.c \ osysmon_file.c \ osysmon_ping.c \ + osysmon_openvpn.c \ osysmon_main.c \ $(NULL) diff --git a/src/client.c b/src/client.c index 6b37fc6..758884d 100644 --- a/src/client.c +++ b/src/client.c @@ -27,6 +27,7 @@ #include #include +#include #include "client.h" @@ -71,3 +72,24 @@ return talloc_asprintf(ctx, "%s:%u", cfg->remote_host, cfg->remote_port); } + +struct osmo_stream_cli *make_tcp_client(struct host_cfg *cfg) +{ + struct osmo_stream_cli *cl = osmo_stream_cli_create(cfg); + if (cl) { + osmo_stream_cli_set_addr(cl, cfg->remote_host); + osmo_stream_cli_set_port(cl, cfg->remote_port); + } + + return cl; +} + +void update_name(struct host_cfg *cfg, const char *new_name) +{ + osmo_talloc_replace_string(cfg, (char **)&cfg->name, new_name); +} + +void update_host(struct host_cfg *cfg, const char *new_host) +{ + osmo_talloc_replace_string(cfg, (char **)&cfg->remote_host, new_host); +} diff --git a/src/client.h b/src/client.h index 605ddd7..d878450 100644 --- a/src/client.h +++ b/src/client.h @@ -23,3 +23,8 @@ struct host_cfg *host_cfg_alloc(void *ctx, const char *name, const char *host, uint16_t port); bool match_config(const struct host_cfg *cfg, const char *match, enum match_kind k); char *make_authority(void *ctx, const struct host_cfg *cfg); + +struct osmo_stream_cli *make_tcp_client(struct host_cfg *cfg); + +void update_name(struct host_cfg *cfg, const char *new_name); +void update_host(struct host_cfg *cfg, const char *new_host); diff --git a/src/osysmon.h b/src/osysmon.h index df8bf8d..2f82c47 100644 --- a/src/osysmon.h +++ b/src/osysmon.h @@ -15,6 +15,8 @@ struct rtnl_client_state *rcs; /* list of 'struct ctrl client' */ struct llist_head ctrl_clients; + /* list of 'struct openvpn_client' */ + struct llist_head openvpn_clients; /* list of 'struct netdev' */ struct llist_head netdevs; /* list of 'struct osysmon_file' */ @@ -30,6 +32,7 @@ CTRL_CLIENT_NODE = _LAST_OSMOVTY_NODE + 1, CTRL_CLIENT_GETVAR_NODE, NETDEV_NODE, + OPENVPN_NODE, PING_NODE, }; @@ -48,5 +51,8 @@ int osysmon_ping_init(); int osysmon_ping_poll(struct value_node *parent); +int osysmon_openvpn_init(); +int osysmon_openvpn_poll(struct value_node *parent); + int osysmon_file_init(); int osysmon_file_poll(struct value_node *parent); diff --git a/src/osysmon_main.c b/src/osysmon_main.c index 91d5039..18f6299 100644 --- a/src/osysmon_main.c +++ b/src/osysmon_main.c @@ -199,6 +199,7 @@ g_oss = talloc_zero(NULL, struct osysmon_state); INIT_LLIST_HEAD(&g_oss->ctrl_clients); + INIT_LLIST_HEAD(&g_oss->openvpn_clients); INIT_LLIST_HEAD(&g_oss->netdevs); INIT_LLIST_HEAD(&g_oss->files); @@ -206,6 +207,7 @@ handle_options(argc, argv); osysmon_sysinfo_init(); osysmon_ctrl_init(); + osysmon_openvpn_init(); osysmon_rtnl_init(); ping_init = osysmon_ping_init(); osysmon_file_init(); @@ -231,6 +233,7 @@ while (1) { struct value_node *root = value_node_add(NULL, "root", NULL); + int vpns = osysmon_openvpn_poll(root); osysmon_sysinfo_poll(root); osysmon_ctrl_poll(root); osysmon_rtnl_poll(root); @@ -242,6 +245,10 @@ display_update(root); value_node_del(root); + + if (vpns) + osmo_select_main(0); + sleep(1); } diff --git a/src/osysmon_openvpn.c b/src/osysmon_openvpn.c new file mode 100644 index 0000000..135a532 --- /dev/null +++ b/src/osysmon_openvpn.c @@ -0,0 +1,294 @@ +/* Simple Osmocom System Monitor (osysmon): Support for OpenVPN monitoring */ + +/* (C) 2019 by sysmocom - s.f.m.c. GmbH. + * Author: Max Suraev + * All Rights Reserved. + * + * SPDX-License-Identifier: GPL-2.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ + +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include "osysmon.h" +#include "client.h" +#include "value_node.h" + +/*********************************************************************** + * Data model + ***********************************************************************/ + +#define OVPN_LOG(ctx, vpn, fmt, args...) \ + fprintf(stderr, "OpenVPN [%s]: " fmt, make_authority(ctx, vpn->cfg), ##args) + +/* max number of csv in response */ +#define MAX_RESP_COMPONENTS 6 + +/* a single OpenVPN management interface client */ +struct openvpn_client { + /* links to osysmon.openvpn_clients */ + struct llist_head list; + struct host_cfg *cfg; + struct osmo_stream_cli *mgmt; + /* fields below are parsed from response to 'state' command on mgmt interface */ + struct host_cfg *rem_cfg; + char *tun_ip; + bool connected; +}; + +static char *parse_state(struct msgb *msg, struct openvpn_client *vpn) +{ + char tmp[128]; + char *tok; + unsigned int i = 0; + uint8_t *m = msgb_data(msg); + + if (msgb_length(msg) > 128) + OVPN_LOG(msg, vpn, "received message too long (%d > %u), truncating...\n", msgb_length(msg), 128); + + if (msgb_length(msg) > 0) { + if (!isdigit(m[0])) /* skip OpenVPN greetings and alike */ + return NULL; + } else { + OVPN_LOG(msg, vpn, "received message is empty, ignoring...\n"); + return NULL; + } + + OSMO_STRLCPY_ARRAY(tmp, (char *)m); + + for (tok = strtok(tmp, ","); tok && i < MAX_RESP_COMPONENTS; tok = strtok(NULL, ",")) { + /* The string format is documented in https://openvpn.net/community-resources/management-interface/ */ + if (tok) { /* Parse csv string and pick interesting tokens while ignoring the rest. */ + switch (i++) { + case 1: + update_name(vpn->rem_cfg, tok); + break; + case 3: + osmo_talloc_replace_string(vpn->rem_cfg, &vpn->tun_ip, tok); + break; + case 4: + update_host(vpn->rem_cfg, tok); + break; + case 5: + vpn->rem_cfg->remote_port = atoi(tok); + break; + } + } + } + return NULL; +} + +static struct openvpn_client *openvpn_client_find_or_make(const struct osysmon_state *os, + const char *host, uint16_t port) +{ + struct openvpn_client *vpn; + llist_for_each_entry(vpn, &os->openvpn_clients, list) { + if (match_config(vpn->cfg, host, MATCH_HOST) && vpn->cfg->remote_port == port) + return vpn; + } + + return NULL; +} + +static int connect_cb(struct osmo_stream_cli *conn) +{ + struct openvpn_client *vpn = osmo_stream_cli_get_data(conn); + + update_name(vpn->rem_cfg, "management interface incompatible"); + vpn->connected = true; /* FIXME: there's no callback for lost connection to drop this flag */ + + return 0; +} + +static int read_cb(struct osmo_stream_cli *conn) +{ + int bytes; + struct openvpn_client *vpn = osmo_stream_cli_get_data(conn); + struct msgb *msg = msgb_alloc(1024, "OpenVPN"); + if (!msg) { + OVPN_LOG(conn, vpn, "unable to allocate message in callback\n"); + return 0; + } + + bytes = osmo_stream_cli_recv(conn, msg); + if (bytes < 0) + OVPN_LOG(msg, vpn, "unable to receive message in callback\n"); + else + parse_state(msg, vpn); + + msgb_free(msg); + + return 0; +} + +static bool openvpn_client_create(struct osysmon_state *os, const char *name, const char *host, uint16_t port) +{ + struct openvpn_client *vpn = openvpn_client_find_or_make(os, host, port); + if (vpn) + return true; + + vpn = talloc_zero(os, struct openvpn_client); + if (!vpn) + return false; + + vpn->connected = false; + + vpn->cfg = host_cfg_alloc(vpn, name, host, port); + if (!vpn->cfg) + goto dealloc; + + vpn->rem_cfg = host_cfg_alloc(vpn, "management interface unavailable", NULL, 0); + if (!vpn->rem_cfg) + goto dealloc; + + vpn->mgmt = make_tcp_client(vpn->cfg); + if (!vpn->mgmt) { + OVPN_LOG(vpn->rem_cfg, vpn, "failed to create TCP client\n"); + goto dealloc; + } + + /* Wait for 1 minute before attempting to reconnect to management interface */ + osmo_stream_cli_set_reconnect_timeout(vpn->mgmt, 60); + osmo_stream_cli_set_read_cb(vpn->mgmt, read_cb); + osmo_stream_cli_set_connect_cb(vpn->mgmt, connect_cb); + + if (osmo_stream_cli_open(vpn->mgmt) < 0) { + OVPN_LOG(vpn->rem_cfg, vpn, "failed to connect to management interface\n"); + goto dealloc; + } + + osmo_stream_cli_set_data(vpn->mgmt, vpn); + llist_add_tail(&vpn->list, &os->openvpn_clients); + + return true; + +dealloc: + talloc_free(vpn); + return false; +} + +static void openvpn_client_destroy(struct openvpn_client *vpn) +{ + if (!vpn) + return; + + osmo_stream_cli_destroy(vpn->mgmt); + llist_del(&vpn->list); + talloc_free(vpn); +} + + +/*********************************************************************** + * VTY + ***********************************************************************/ + +#define OPENVPN_STR "Configure OpenVPN management interface address\n" + +DEFUN(cfg_openvpn, cfg_openvpn_cmd, + "openvpn HOST <1-65535>", + OPENVPN_STR "Name of the host to connect to\n" "Management interface port\n") +{ + uint16_t port = atoi(argv[1]); + + if (!openvpn_client_create(g_oss, "OpenVPN", argv[0], port)) { + vty_out(vty, "Failed to create OpenVPN client for %s:%u%s", argv[0], port, VTY_NEWLINE); + return CMD_WARNING; + } + + return CMD_SUCCESS; +} + +DEFUN(cfg_no_openvpn, cfg_no_openvpn_cmd, + "no openvpn HOST <1-65535>", + NO_STR OPENVPN_STR "Name of the host to connect to\n" "Management interface port\n") +{ + uint16_t port = atoi(argv[1]); + struct openvpn_client *vpn = openvpn_client_find_or_make(g_oss, argv[0], port); + if (!vpn) { + vty_out(vty, "OpenVPN client %s:%u doesn't exist%s", argv[0], port, VTY_NEWLINE); + return CMD_WARNING; + } + + openvpn_client_destroy(vpn); + + return CMD_SUCCESS; +} + + +/*********************************************************************** + * Runtime Code + ***********************************************************************/ + +static int openvpn_client_poll(struct openvpn_client *vpn, struct value_node *parent) +{ + char *remote = make_authority(parent, vpn->rem_cfg); + struct value_node *vn_host = value_node_find_or_add(parent, make_authority(parent, vpn->cfg)); + struct msgb *msg = msgb_alloc(128, "state"); + if (!msg) { + value_node_add(vn_host, "msgb", "memory allocation failure"); + return 0; + } + + if (vpn->rem_cfg->name) + value_node_add(vn_host, "status", vpn->rem_cfg->name); + + if (vpn->tun_ip) + value_node_add(vn_host, "tunnel", vpn->tun_ip); + + if (remote) + value_node_add(vn_host, "remote", remote); + + /* FIXME: there's no way to check client state so this might be triggered even while it's reconnecting */ + if (vpn->connected) { /* re-trigger state command */ + msgb_printf(msg, "state\n"); + osmo_stream_cli_send(vpn->mgmt, msg); + } + + return 0; +} + +/* called once on startup before config file parsing */ +int osysmon_openvpn_init() +{ + install_element(CONFIG_NODE, &cfg_openvpn_cmd); + install_element(CONFIG_NODE, &cfg_no_openvpn_cmd); + + return 0; +} + +/* called periodically */ +int osysmon_openvpn_poll(struct value_node *parent) +{ + int num_vpns = llist_count(&g_oss->openvpn_clients); + if (num_vpns) { + struct value_node *vn_vpn = value_node_add(parent, "OpenVPN", NULL); + struct openvpn_client *vpn; + llist_for_each_entry(vpn, &g_oss->openvpn_clients, list) + openvpn_client_poll(vpn, vn_vpn); + } + + return num_vpns; +} -- To view, visit https://gerrit.osmocom.org/12763 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I4493e19b9a09dcebd289457eacd1719f7f8cc31c Gerrit-Change-Number: 12763 Gerrit-PatchSet: 7 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 09:08:27 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 21 Feb 2019 09:08:27 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/12625 ) Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... Patch Set 11: (38 comments) > * See comment about the unsupported value, any reason for this ? I have now added that value, it was indeed missing. > * The preference of codec expressed by the MSC in the assignement Yes thats true, when I was implementing it it was not clear to me how to handle the preference and if there is any preference at all so I did not take that into consideration. I also can not remember seeing anything in the spec that dictates that the order of the codecs needs to be retained when making the codec decision. I think thats also not in scope of the spec since at the end of the day it will be up to the vendor how to optimize the resource management at the BSC anyway. However, I think that if we decide to analyze and possibly fix/optimize the codec selection behavior we should do that in a separate patch. https://gerrit.osmocom.org/#/c/12625/2/include/osmocom/bsc/codec_pref.h File include/osmocom/bsc/codec_pref.h: https://gerrit.osmocom.org/#/c/12625/2/include/osmocom/bsc/codec_pref.h at 24 PS2, Line 24: const struct gsm_bts *bts, enum rate_pref rate_pref); > in ch_mode_rate, we add a 'bool full_rate', and we also add a 'rate_pref'? [?] The bool in ch_mode_rate and the enum rate_pref are two different things. The bool symbols an absolute choice between FR and HR, the enum rate_pref members symbolize a set of three different preference choices. I don't think that it is a good idea to mix this together. match_codec_pref() is used here to make an absolute choice based on a preference. If the MSC asks for FR and HR (with a preference) we execute match_codec_pref() two times to get the choices for the two situations. These two are then handed over to the channel allocator which makes the final decision based on the channel load. There is also a problem with the FR/HR flag that not every codec is available for FR and HR. So we can not first choose a codec with match_codec_pref() and then say if the TCH/F version of the codec is not available, just pick the TCH/H version. This does not work for EFR and even for AMR there are problems with the S-Bits. Thats why we need the full information for both possible situations. https://gerrit.osmocom.org/#/c/12625/2/include/osmocom/bsc/codec_pref.h at 24 PS2, Line 24: const struct gsm_bts *bts, enum rate_pref rate_pref); > Also talked about this in person, and obviously ch_mode_rate is an out-argument, while the rate_pref [?] Done https://gerrit.osmocom.org/#/c/12625/8/include/osmocom/bsc/gsm_data.h File include/osmocom/bsc/gsm_data.h: https://gerrit.osmocom.org/#/c/12625/8/include/osmocom/bsc/gsm_data.h at 104 PS8, Line 104: bool full_rate; > Just wondering if it wouldn't be worth directly using GSM_LCHAN_xxx constant in there rather than fu [?] Done https://gerrit.osmocom.org/#/c/12625/8/include/osmocom/bsc/gsm_data.h at 104 PS8, Line 104: bool full_rate; > We ignore the MS channel preference on purpose and do "late assignment" instead. [?] Done https://gerrit.osmocom.org/#/c/12625/8/include/osmocom/bsc/gsm_data.h at 104 PS8, Line 104: bool full_rate; > I hope I understood this right, though. [?] Done https://gerrit.osmocom.org/#/c/12625/4/include/osmocom/bsc/gsm_data.h File include/osmocom/bsc/gsm_data.h: https://gerrit.osmocom.org/#/c/12625/4/include/osmocom/bsc/gsm_data.h at 121 PS4, Line 121: > We talked in person, and there really are only two possible outcomes: one for an FR and one for an H [?] Done https://gerrit.osmocom.org/#/c/12625/4/include/osmocom/bsc/gsm_data.h at 300 PS4, Line 300: /* LCLS FSM */ > this ^ should probably go inside the assignment{} scope instead, see other comments Done https://gerrit.osmocom.org/#/c/12625/2/include/osmocom/bsc/gsm_data.h File include/osmocom/bsc/gsm_data.h: https://gerrit.osmocom.org/#/c/12625/2/include/osmocom/bsc/gsm_data.h at 121 PS2, Line 121: > Are there really only two possible mode,rate combinations? Yes, the MSC can only ask for TCH/F and TCH/H at the same time. It may also ask only for one of the two. The codec is a different thing. There are more combinations possible, but thats a pure capability thing since a TCH may be used with several different codecs. https://gerrit.osmocom.org/#/c/12625/1/src/osmo-bsc/abis_rsl.c File src/osmo-bsc/abis_rsl.c: https://gerrit.osmocom.org/#/c/12625/1/src/osmo-bsc/abis_rsl.c at 1378 PS1, Line 1378: a > Spelling: 'to' is not needed here I think. Done https://gerrit.osmocom.org/#/c/12625/2/src/osmo-bsc/abis_rsl.c File src/osmo-bsc/abis_rsl.c: https://gerrit.osmocom.org/#/c/12625/2/src/osmo-bsc/abis_rsl.c at 1391 PS2, Line 1391: if (!lchan) { > These changes above make up a separate fix by themselves. [?] I have now separated this. https://gerrit.osmocom.org/#/c/12625/1/src/osmo-bsc/assignment_fsm.c File src/osmo-bsc/assignment_fsm.c: https://gerrit.osmocom.org/#/c/12625/1/src/osmo-bsc/assignment_fsm.c at 258 PS1, Line 258: sw > Let's use bool. Done https://gerrit.osmocom.org/#/c/12625/2/src/osmo-bsc/assignment_fsm.c File src/osmo-bsc/assignment_fsm.c: https://gerrit.osmocom.org/#/c/12625/2/src/osmo-bsc/assignment_fsm.c at 255 PS2, Line 255: > const struct ... Done https://gerrit.osmocom.org/#/c/12625/2/src/osmo-bsc/assignment_fsm.c at 305 PS2, Line 305: case GSM48_CMODE_SPEECH_AMR: > (we already have a flag around called "requires_voice_stream", so prefer if this is called "check_re [?] Done https://gerrit.osmocom.org/#/c/12625/2/src/osmo-bsc/assignment_fsm.c at 324 PS2, Line 324: bool result_requires_voice_pref; > don't understand the name 'result_pref' ... [?] I have added 'requires_voice' to the variable names to make it more clear. https://gerrit.osmocom.org/#/c/12625/4/src/osmo-bsc/assignment_fsm.c File src/osmo-bsc/assignment_fsm.c: https://gerrit.osmocom.org/#/c/12625/4/src/osmo-bsc/assignment_fsm.c at a351 PS4, Line 351: > noticing a bug in this code path: it is leaving the assignment fi allocated. [?] Done https://gerrit.osmocom.org/#/c/12625/4/src/osmo-bsc/assignment_fsm.c at 304 PS4, Line 304: case GSM48_CMODE_SPEECH_EFR: > -1: code dup: please write one function that takes a chan_mode as input and returns a requires_voice [?] The requires voice stream must be identical for both possible choices. If it is not identical there is a protocol error since it is not possible mix signaling and voice here. There is no "Full rate TCH channel or Signalling channel, signalling prefered..." This means if we request for voice/TCH, both choices must always be voice channels. See also: 3GPP TS 48.008, chapter 3.2.2.11 https://gerrit.osmocom.org/#/c/12625/4/src/osmo-bsc/assignment_fsm.c at 377 PS4, Line 377: /* Check if the currently existing lchan is compatible with the > mistake in my comment: should be [?] I don't get that. Why check the req->ch_mode_rate_pref and req->ch_mode_rate_alt in the same statement if it is not checked if req->ch_mode_rate_alt is even populated. One must first check the _pref, and only if an _alt exists one may move on. https://gerrit.osmocom.org/#/c/12625/4/src/osmo-bsc/assignment_fsm.c at 443 PS4, Line 443: return; > -1: code dup (same) Its similar, but also different enough. I am not sure if it makes sense to split this up into a helper function, we wouldn't save much. https://gerrit.osmocom.org/#/c/12625/4/src/osmo-bsc/assignment_fsm.c at 479 PS4, Line 479: conn->lchan->ch_mode_rate.full_rate, > (FYI, I considered whether it is better to allocate the FSM instance only *after* we checked whether [?] Done https://gerrit.osmocom.org/#/c/12625/4/src/osmo-bsc/assignment_fsm.c at 495 PS4, Line 495: static void assignment_fsm_wait_lchan(struct osmo_fsm_inst *fi, uint32_t event, void *data) > ^ still valid, but don't worry about this one, see https://gerrit.osmocom. [?] Done https://gerrit.osmocom.org/#/c/12625/4/src/osmo-bsc/assignment_fsm.c at 495 PS4, Line 495: static void assignment_fsm_wait_lchan(struct osmo_fsm_inst *fi, uint32_t event, void *data) > ...maybe we can deallocate the assignment. [?] I see, however since it is allocated as a child we sill won't run into serious memory leaks. I have deallocated the fi now. https://gerrit.osmocom.org/#/c/12625/4/src/osmo-bsc/assignment_fsm.c at 501 PS4, Line 501: if (data != conn->assignment.new_lchan) > -1: the ch_mode_rate use must not be ambiguous: does it apply to the current conn->lchan or to the n [?] I have put it now into the assignment scope as you suggested. I am not sure if it makes sense to put it into the lchan. Probably worth to discuss this on Thursday? https://gerrit.osmocom.org/#/c/12625/4/src/osmo-bsc/assignment_fsm.c at 503 PS4, Line 503: > ("alternate". use line width. [?] Done https://gerrit.osmocom.org/#/c/12625/5/src/osmo-bsc/assignment_fsm.c File src/osmo-bsc/assignment_fsm.c: https://gerrit.osmocom.org/#/c/12625/5/src/osmo-bsc/assignment_fsm.c at 340 PS5, Line 340: return -EINVAL; > before, I said "it doesn't make sense to fail the assignment if only one of the choices is not suppo [?] Done https://gerrit.osmocom.org/#/c/12625/5/src/osmo-bsc/assignment_fsm.c at 497 PS5, Line 497: struct gsm_subscriber_connection *conn = assignment_fi_conn(fi); > instead of spraying CR comments I pushed a suggestion instead. [?] I have checked that out, looks good to me, also the tests pass fine. https://gerrit.osmocom.org/#/c/12625/10/src/osmo-bsc/bsc_vty.c File src/osmo-bsc/bsc_vty.c: https://gerrit.osmocom.org/#/c/12625/10/src/osmo-bsc/bsc_vty.c at 4805 PS10, Line 4805: > I am wondering how the changes in this file related to "channel allocator preferences"? Done https://gerrit.osmocom.org/#/c/12625/10/src/osmo-bsc/bsc_vty.c at 4805 PS10, Line 4805: > indeed, seems like whitespace tweaks related to the previous patch that allows disabling specific lc [?] Done https://gerrit.osmocom.org/#/c/12625/5/src/osmo-bsc/handover_fsm.c File src/osmo-bsc/handover_fsm.c: https://gerrit.osmocom.org/#/c/12625/5/src/osmo-bsc/handover_fsm.c at 716 PS5, Line 716: sc.cfg = conn->lchan->ch_mode_rate.s15_s0; > Noticing this problem that exists before this patch: [?] I see, then ch_mode_rate should be really seen as an lchan property. I have moved the struct now to gsm_lchan. https://gerrit.osmocom.org/#/c/12625/5/src/osmo-bsc/handover_fsm.c at 716 PS5, Line 716: sc.cfg = conn->lchan->ch_mode_rate.s15_s0; > Noticing this problem that exists before this patch: [?] Then its https://gerrit.osmocom.org/#/c/12625/4/src/osmo-bsc/osmo_bsc_bssap.c File src/osmo-bsc/osmo_bsc_bssap.c: https://gerrit.osmocom.org/#/c/12625/4/src/osmo-bsc/osmo_bsc_bssap.c at 609 PS4, Line 609: lcls_apply_config(conn); > "select_codecs" ? Done https://gerrit.osmocom.org/#/c/12625/4/src/osmo-bsc/osmo_bsc_bssap.c at 632 PS4, Line 632: msc = conn->sccp.msc; > (if full rate didn't work, then this must end up being half rate? [?] Yes, thats correct. Its possibly more logical to express it explicitly. https://gerrit.osmocom.org/#/c/12625/4/src/osmo-bsc/osmo_bsc_bssap.c at 647 PS4, Line 647: RATE_PREF_FR); > (RATE_PREF_FR?) Done https://gerrit.osmocom.org/#/c/12625/8/src/osmo-bsc/osmo_bsc_bssap.c File src/osmo-bsc/osmo_bsc_bssap.c: https://gerrit.osmocom.org/#/c/12625/8/src/osmo-bsc/osmo_bsc_bssap.c at 635 PS8, Line 635: switch (ct->ch_rate_type) { > do you really need the mask at all? Yes, we need to mask off the bits that define that a later change is between the two rates is allowed or not. This information plays no role here, but is contained in the byte. https://gerrit.osmocom.org/#/c/12625/8/src/osmo-bsc/osmo_bsc_bssap.c at 635 PS8, Line 635: switch (ct->ch_rate_type) { > Wait what ? GSM0808_SPEECH_PERM is not a mask, it's an actual possible value of the field defined in [?] I have looked up 3GPP TS 48.008 version 14.2.0 Release 14 3.2.2.11 and 0x0F is not a valid value, this is indeed a mask. The original author of the file seems to have forgotten to add a suffix to make that clear. If you look at enum gsm0808_chan_rate_type_data it should be more clear how the intension was. I know this is odd, but unfortunately its now the way it is. I can of course change it but I am not sure if this is wise, we might break the backward compatibility of the API. https://gerrit.osmocom.org/#/c/12625/8/src/osmo-bsc/osmo_bsc_bssap.c at 637 PS8, Line 637: rc = match_codec_pref(&req->ch_mode_rate_pref, ct, &conn->codec_list, msc, conn_get_bts(conn), > Given this is used for speech, I'd use the GSM0808_SPEECH_xxx constants. [?] Done https://gerrit.osmocom.org/#/c/12625/8/src/osmo-bsc/osmo_bsc_bssap.c at 637 PS8, Line 637: rc = match_codec_pref(&req->ch_mode_rate_pref, ct, &conn->codec_list, msc, conn_get_bts(conn), > agree Done https://gerrit.osmocom.org/#/c/12625/9/src/osmo-bsc/osmo_bsc_bssap.c File src/osmo-bsc/osmo_bsc_bssap.c: https://gerrit.osmocom.org/#/c/12625/9/src/osmo-bsc/osmo_bsc_bssap.c at 635 PS9, Line 635: switch (ct->ch_rate_type) { > Still that weird masking ... The purpose of the masking is to get rid of the bit that configures if later changes are allowed or not. As I said, I interpret GSM0808_SPEECH_PERM as a mask that is intended to do this. However, I looked at 3GPP TS 48.008 again, the mask would also mask off bits that define TCH multislot configurations, so now I think that just masking the bits off is probably not a very good Idea. I have added the fall through cases instead. https://gerrit.osmocom.org/#/c/12625/11/src/osmo-bsc/osmo_bsc_bssap.c File src/osmo-bsc/osmo_bsc_bssap.c: https://gerrit.osmocom.org/#/c/12625/11/src/osmo-bsc/osmo_bsc_bssap.c at 635 PS11, Line 635: switch (ct->ch_rate_type) { > GSM0808_SPEECH_PERM and GSM0808_SPEECH_PERM_NO_CHANGE are not handled ? [?] Now I finally understand this, i always thought that those were masks, but the spec indeed lists the constants for speech + CTM Text Telephony, but not for data. I thought that data and voice would have no difference in their options, but this is not the case. I have never seen those constants anywhere in the wild. Presumably MSCs always seem to have a preference for the one or the other rate. However, I have now programmed it that way that it is handled like GSM0808_SPEECH_FULL_PREF, so if the MSC has no preference at all we would internally assume a preference for FR. I think this makes sense since FR has better quality and if we have resources available, we should just use FR. -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 11 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: dexter Gerrit-CC: Vadim Yanitskiy Gerrit-CC: tnt Gerrit-Comment-Date: Thu, 21 Feb 2019 09:08:27 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 09:23:58 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 21 Feb 2019 09:23:58 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: Hello Max, Neels Hofmeyr, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12625 to look at the new patch set (#12). Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... assignment_fsm: fix channel allocator preferences When the MSC allocates a channel through the ASSIGNMENT REQUEST, it may ask for a TCH/H and a TCH/F at the same time and tell which of the two types it prefers. The process of channel allocation currently selects, based on the BTS, MSC and MS capabilites exactly one apropriate codec/rate (e.g. TCH/H) and then tries to allocate it. If that allocation fails, there is no way to try the second choice and the assignment fails. For example: The MSC asks for TCH/F and TCH/H, prefering TCH/F, then the channel allocator will try TCH/F and if it fails (all TCH/F are currently in use), then TCH/H is never tried. Since the BSC currently only trys the first best codec/rate that is supported it also ignores the preference. Lets fix those problems by including the preference information and both possible codec/rate settings into the channel allocation decision. Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Related: OS#3503 --- M include/osmocom/bsc/codec_pref.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/codec_pref.c M src/osmo-bsc/handover_fsm.c M src/osmo-bsc/osmo_bsc_bssap.c M tests/codec_pref/codec_pref_test.c 8 files changed, 321 insertions(+), 113 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/25/12625/12 -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 12 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: dexter Gerrit-CC: Vadim Yanitskiy Gerrit-CC: tnt -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 09:30:50 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 21 Feb 2019 09:30:50 +0000 Subject: Change in osmo-sysmon[master]: OpenVPN: track interface disconnect Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12989 Change subject: OpenVPN: track interface disconnect ...................................................................... OpenVPN: track interface disconnect Setup disconnection callback and use it to properly track management interface availability. Change-Id: I11b8bc71c1e9cbbf992ee3b7c1c9aae6e6f697e0 Requires: libosmo-netif I905adb2d6191216551a3bcdcd1aec1f96f01612a Related: SYS#2655 --- M src/client.h M src/osysmon_openvpn.c 2 files changed, 17 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sysmon refs/changes/89/12989/1 diff --git a/src/client.h b/src/client.h index d878450..a14019e 100644 --- a/src/client.h +++ b/src/client.h @@ -15,7 +15,7 @@ /* name of this client */ const char *name; /* remote host/IP */ - const char *remote_host; + char *remote_host; /* remote port */ uint16_t remote_port; }; diff --git a/src/osysmon_openvpn.c b/src/osysmon_openvpn.c index 135a532..148e3b8 100644 --- a/src/osysmon_openvpn.c +++ b/src/osysmon_openvpn.c @@ -113,12 +113,26 @@ return NULL; } +static int disconnect_cb(struct osmo_stream_cli *conn) +{ + struct openvpn_client *vpn = osmo_stream_cli_get_data(conn); + + update_name(vpn->rem_cfg, "management interface unavailable"); + vpn->connected = false; + talloc_free(vpn->tun_ip); + talloc_free(vpn->rem_cfg->remote_host); + vpn->tun_ip = NULL; + vpn->rem_cfg->remote_host = NULL; + + return 0; +} + static int connect_cb(struct osmo_stream_cli *conn) { struct openvpn_client *vpn = osmo_stream_cli_get_data(conn); update_name(vpn->rem_cfg, "management interface incompatible"); - vpn->connected = true; /* FIXME: there's no callback for lost connection to drop this flag */ + vpn->connected = true; return 0; } @@ -174,6 +188,7 @@ osmo_stream_cli_set_reconnect_timeout(vpn->mgmt, 60); osmo_stream_cli_set_read_cb(vpn->mgmt, read_cb); osmo_stream_cli_set_connect_cb(vpn->mgmt, connect_cb); + osmo_stream_cli_set_disconnect_cb(vpn->mgmt, disconnect_cb); if (osmo_stream_cli_open(vpn->mgmt) < 0) { OVPN_LOG(vpn->rem_cfg, vpn, "failed to connect to management interface\n"); @@ -261,7 +276,6 @@ if (remote) value_node_add(vn_host, "remote", remote); - /* FIXME: there's no way to check client state so this might be triggered even while it's reconnecting */ if (vpn->connected) { /* re-trigger state command */ msgb_printf(msg, "state\n"); osmo_stream_cli_send(vpn->mgmt, msg); -- To view, visit https://gerrit.osmocom.org/12989 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I11b8bc71c1e9cbbf992ee3b7c1c9aae6e6f697e0 Gerrit-Change-Number: 12989 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 09:36:25 2019 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Thu, 21 Feb 2019 09:36:25 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/12625 ) Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... Patch Set 12: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 12 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: dexter Gerrit-Reviewer: tnt Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 21 Feb 2019 09:36:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 09:39:05 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 21 Feb 2019 09:39:05 +0000 Subject: Change in libosmocore[master]: ipa_ccm_idtag_parse*: Fix reported length value In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/10216 ) Change subject: ipa_ccm_idtag_parse*: Fix reported length value ...................................................................... Patch Set 3: Code-Review+1 > @Max: there's an unanswered question from Neels. Sure, but if I understood it correctly it's not related to commit itself so it shouldn't stop us from merging this. FYI, I've stumbled across related commit da5f41cdada843ede0a360dc72601fc2125d0677 in libosmo-netif. -- To view, visit https://gerrit.osmocom.org/10216 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I435aaa33605bd48635715a2c81aa2d231c1abf51 Gerrit-Change-Number: 10216 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 21 Feb 2019 09:39:05 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Thu Feb 21 09:42:00 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Thu, 21 Feb 2019 09:42:00 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-trx_=C2=BB_--with-ss?= =?UTF-8?Q?e,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#896?= Message-ID: <846735847.351.1550742120053.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 107.45 KB...] Searching INPUT for files to process... Reading and parsing tag files Parsing files Building group list... Building directory list... Building namespace list... Building file list... Building class list... Associating documentation with classes... Computing nesting relations for classes... Building example list... Searching for enumerations... Searching for documented typedefs... Searching for members imported via using declarations... Searching for included using directives... Searching for documented variables... Building interface member list... Building member list... Searching for friends... Searching for documented defines... Computing class inheritance relations... Computing class usage relations... Flushing cached template relations that have become invalid... Computing class relations... Add enum values to enums... Searching for member function documentation... Creating members for template instances... Building page list... Search for main page... Computing page relations... Determining the scope of groups... Sorting lists... Freeing entry tree Determining which enums are documented Computing member relations... Building full member lists recursively... Adding members to member groups. Computing member references... Inheriting documentation... Generating disk names... Adding source references... Adding xrefitems... Sorting member lists... Computing dependencies between directories... Generating citations page... Counting data structures... Resolving user defined references... Finding anchors and sections in the documentation... Transferring function references... Combining using relations... Adding members to index pages... Generating style sheet... Generating search indices... Generating example documentation... Generating file sources... Generating file documentation... Generating page documentation... Generating group documentation... Generating class documentation... Generating namespace index... Generating graph info page... Generating directory documentation... Generating index page... Generating page index... Generating module index... Generating namespace index... Generating namespace member index... Generating annotated compound index... Generating alphabetical compound index... Generating hierarchical class index... Generating graphical class hierarchy... Generating member index... Generating file index... Generating file member index... Generating example index... finalizing index lists... writing tag file... Running dot... Running dot for graph 1/1 lookup cache used 0/65536 hits=0 misses=0 finished... make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_guide.html /usr/bin/install -c -m 644 ../README ' cp -r html make[5]: Leaving directory ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in firmware make[2]: Entering directory ' Making install in include make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_i2c_addr.h usrp_spi_defs.h fpga_regs_common.h fpga_regs_standard.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' Making install in lib make[3]: Entering directory ' sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c delay.c -o delay.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c fx2utils.c -o fx2utils.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c i2c.c -o i2c.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c isr.c -o isr.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c timer.c -o timer.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c usb_common.c -o usb_common.rel usb_common.c:65: warning 196: pointer target lost const qualifier usb_common.c:66: warning 196: pointer target lost const qualifier usb_common.c:67: warning 196: pointer target lost const qualifier usb_common.c:68: warning 196: pointer target lost const qualifier usb_common.c:71: warning 196: pointer target lost const qualifier usb_common.c:72: warning 196: pointer target lost const qualifier usb_common.c:73: warning 196: pointer target lost const qualifier usb_common.c:74: warning 196: pointer target lost const qualifier timer.c:45: warning 158: overflow in implicit constant conversion isr.c:73: warning 94: comparison is always false due to limited range of data type -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'int fixed' to type 'volatile-unsigned-char xdata* xdata' isr.c:100: warning 94: comparison is always false due to limited range of data type usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:217: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:226: warning 126: unreachable code usb_common.c:184: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG usb_common.c:315: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG rm -f libfx2.lib touch libfx2.lib for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done make[3]: Leaving directory ' Making install in src make[3]: Entering directory ' Making install in common make[4]: Entering directory ' make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory ' make[4]: Leaving directory ' Making install in usrp2 make[4]: Entering directory ' test -f `basename 'eeprom_boot.a51'` || ln -s 'eeprom_boot.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_init.rel `test -f 'eeprom_init.c' || echo './'`eeprom_init.c test -f `basename '_startup.a51'` || ln -s '_startup.a51' . test -f `basename 'vectors.a51'` || ln -s 'vectors.a51' . srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_common.rel `test -f 'usrp_common.c' || echo './'`usrp_common.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o board_specific.rel `test -f 'board_specific.c' || echo './'`board_specific.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_load.rel `test -f 'fpga_load.c' || echo './'`fpga_load.c test -f ../common/`basename '_startup.a51'` -o \ \! -f `dirname '_startup.a51'`/../common/`basename '_startup.a51'` \ || ln -s `dirname '_startup.a51'`/../common/`basename '_startup.a51'` ../common/`basename '_startup.a51'` test -f ../common/`basename 'vectors.a51'` -o \ \! -f `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` \ || ln -s `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` ../common/`basename 'vectors.a51'` test -f ../common/`basename 'eeprom_boot.a51'` -o \ \! -f `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` \ || ln -s `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` ../common/`basename 'eeprom_boot.a51'` sdas8051 -plosgff `basename 'vectors.a51'` sdas8051 -plosgff `basename '_startup.a51'` sdas8051 -plosgff `basename 'eeprom_boot.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_rev2.rel `test -f 'fpga_rev2.c' || echo './'`fpga_rev2.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o init_gpif.rel `test -f 'init_gpif.c' || echo './'`init_gpif.c srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h ../common/fpga_load.c:139: warning 85: in function clock_out_config_byte unreferenced function argument : 'bits' board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'bits' board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'mask' ../common/fpga_load.c:181: warning 126: unreachable code test -f `basename 'usb_descriptors.a51'` || ln -s 'usb_descriptors.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o spi.rel `test -f 'spi.c' || echo './'`spi.c test -f ../common/`basename 'usb_descriptors.a51'` -o \ \! -f `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` \ || ln -s `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` ../common/`basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_io.rel `test -f 'eeprom_io.c' || echo './'`eeprom_io.c sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o eeprom_boot.ihx eeprom_boot.rel eeprom_init.rel _startup.rel sdas8051 -plosgff `basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_main.rel `test -f 'usrp_main.c' || echo './'`usrp_main.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_gpif.rel `test -f 'usrp_gpif.c' || echo './'`usrp_gpif.c ./../common/build_eeprom.py -p -r2 eeprom_boot.ihx > burn-usrp2-eeprom ./../common/build_eeprom.py -p -r4 eeprom_boot.ihx > burn-usrp4-eeprom usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion chmod +x burn-usrp2-eeprom chmod +x burn-usrp4-eeprom usrp_main.c:223: warning 112: function 'setup_flowstate_common' implicit declaration usrp_main.c:260: warning 112: function 'setup_flowstate_write' implicit declaration usrp_main.c:282: warning 112: function 'setup_flowstate_read' implicit declaration usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o std.ihx vectors.rel usrp_main.rel usrp_common.rel board_specific.rel fpga_load.rel fpga_rev2.rel init_gpif.rel usrp_gpif.rel usb_descriptors.rel spi.rel eeprom_io.rel _startup.rel ?ASlink-Warning-Undefined Global '_setup_flowstate_read' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_write' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_common' referenced by module 'usrp_main' Makefile:688: recipe for target 'std.ihx' failed make[4]: *** [std.ihx] Error 1 make[4]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[3]: *** [install-recursive] Error 1 make[3]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[2]: *** [install-recursive] Error 1 make[2]: Leaving directory ' Makefile:628: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:925: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Thu Feb 21 09:52:10 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 21 Feb 2019 09:52:10 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12625 ) Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... Patch Set 12: (1 comment) https://gerrit.osmocom.org/#/c/12625/8/src/osmo-bsc/osmo_bsc_bssap.c File src/osmo-bsc/osmo_bsc_bssap.c: https://gerrit.osmocom.org/#/c/12625/8/src/osmo-bsc/osmo_bsc_bssap.c at 635 PS8, Line 635: switch (ct->ch_rate_type) { > I can of course change it but I am not sure if this is wise, we might break the backward compatibility of the API. You can always add wrapper to libosmocore's src/gsm/gsm0808_utils.c to avoid dealing with gsm0808_chan_rate_type_speech values/masking directly. This would hide the odd naming until we can deprecate it properly. It'd also help with documenting/clarifying that naming confusion. -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 12 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: dexter Gerrit-Reviewer: tnt Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 21 Feb 2019 09:52:10 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 09:54:53 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 21 Feb 2019 09:54:53 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Tests for the BSS/PCU side NS/BSSGP implementations In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12984 ) Change subject: PCU: Tests for the BSS/PCU side NS/BSSGP implementations ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12984 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7ad76b96974cf0a686ad0f00ccd09d1a9df8b4d5 Gerrit-Change-Number: 12984 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Thu, 21 Feb 2019 09:54:53 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 09:57:18 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 21 Feb 2019 09:57:18 +0000 Subject: Change in osmo-mgw[master]: Add option to GSM HR frames to RFC5593 representation In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/12979 ) Change subject: Add option to GSM HR frames to RFC5593 representation ...................................................................... Patch Set 1: > Yes indeed the only difference between the two formats is the TOC > byte. Thanks for checking this back. I have removed the hr_jumble now. I also noticed in a second check this morning that it only works when I make an MO to MT call. When I place a call to somewhere else I get garbled audio. -- To view, visit https://gerrit.osmocom.org/12979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Gerrit-Change-Number: 12979 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: dexter Gerrit-Reviewer: tnt Gerrit-CC: Harald Welte Gerrit-Comment-Date: Thu, 21 Feb 2019 09:57:18 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 10:02:49 2019 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Thu, 21 Feb 2019 10:02:49 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/12625 ) Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... Patch Set 12: (1 comment) https://gerrit.osmocom.org/#/c/12625/8/src/osmo-bsc/osmo_bsc_bssap.c File src/osmo-bsc/osmo_bsc_bssap.c: https://gerrit.osmocom.org/#/c/12625/8/src/osmo-bsc/osmo_bsc_bssap.c at 635 PS8, Line 635: switch (ct->ch_rate_type) { > > I can of course change it but I am not sure if this is wise, we might break the backward compatibi [?] @Max the above comment is irrelevant. This wasn't a mask, naming is correct. 0xf is a valid value, so is 0x1f. This is now handled properly in the v12 of this patch. -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 12 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: dexter Gerrit-Reviewer: tnt Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 21 Feb 2019 10:02:49 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 10:19:08 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 21 Feb 2019 10:19:08 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/11992 ) Change subject: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions ...................................................................... Patch Set 12: Code-Review+1 Let's move it forward. -- To view, visit https://gerrit.osmocom.org/11992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Icf4d87c45e90324764073e8230e0fb9cb96dd9cb Gerrit-Change-Number: 11992 Gerrit-PatchSet: 12 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-CC: Stefan Sperling Gerrit-Comment-Date: Thu, 21 Feb 2019 10:19:08 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 10:19:16 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 21 Feb 2019 10:19:16 +0000 Subject: Change in osmo-msc[master]: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/11992 ) Change subject: libmsc/gsm_09_11.c: implement guard timer for NCSS sessions ...................................................................... libmsc/gsm_09_11.c: implement guard timer for NCSS sessions It may happen that either the MS or an EUSE would become unresponsive during a call independent SS session, e.g. due to a bug, or a dropped message. In such cases, the corresponding transaction would remain unfreed forever. This change introduces a guard timer, that prevents keeping 'stalled' NCSS sessions forever. As soon as it expires, both sides (i.e. MS and EUSE) are getting notified, and the transaction is being released. By default, the timer expires after 30 seconds. As soon as either the MS, or an EUSE initiates any activity, the watchdog timer is rescheduled. The timeout value can be configured from the VTY: msc ... ! Use 0 to disable this timer ncss guard-timeout 30 Please note that changing the timeout value at run-time doesn't affect the existing NCSS sessions, excepting the case when the timer is disabled at run-time. This change makes TC_lu_and_ss_session_timeout pass. Change-Id: Icf4d87c45e90324764073e8230e0fb9cb96dd9cb Related Change-Id: (TTCN) I3e1791773d56617172ae27a46889a1ae4d400e2f Related: OS#3655 --- M include/osmocom/msc/gsm_data.h M include/osmocom/msc/transaction.h M src/libmsc/gsm_09_11.c M src/libmsc/msc_vty.c M src/libmsc/osmo_msc.c M tests/test_nodes.vty 6 files changed, 90 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved Vadim Yanitskiy: Looks good to me, but someone else must approve diff --git a/include/osmocom/msc/gsm_data.h b/include/osmocom/msc/gsm_data.h index dab082d..7d3a1e7 100644 --- a/include/osmocom/msc/gsm_data.h +++ b/include/osmocom/msc/gsm_data.h @@ -192,6 +192,8 @@ /* Global MNCC guard timer value */ int mncc_guard_timeout; + /* Global guard timer value for NCSS sessions */ + int ncss_guard_timeout; struct { struct mgcp_client_conf conf; diff --git a/include/osmocom/msc/transaction.h b/include/osmocom/msc/transaction.h index 39b09ae..830328b 100644 --- a/include/osmocom/msc/transaction.h +++ b/include/osmocom/msc/transaction.h @@ -87,6 +87,8 @@ * a subscriber after successful Paging Response */ struct msgb *msg; + /* Inactivity timer, triggers transaction release */ + struct osmo_timer_list timer_guard; } ss; }; diff --git a/src/libmsc/gsm_09_11.c b/src/libmsc/gsm_09_11.c index d2ad0b7..c133656 100644 --- a/src/libmsc/gsm_09_11.c +++ b/src/libmsc/gsm_09_11.c @@ -51,6 +51,39 @@ /* FIXME: choose a proper range */ static uint32_t new_callref = 0x20000001; +static void ncss_session_timeout_handler(void *_trans) +{ + struct gsm_trans *trans = (struct gsm_trans *) _trans; + struct osmo_gsup_message gsup_msg = { 0 }; + + /* The timeout might be disabled from the VTY */ + if (trans->net->ncss_guard_timeout == 0) + return; + + LOGP(DMM, LOGL_NOTICE, "SS/USSD session timeout, releasing " + "transaction (trans=%p, callref=%x)\n", trans, trans->callref); + + /* Indicate connection release to subscriber (if active) */ + if (trans->conn != NULL) { + /* This pair of cause location and value is used by commercial networks */ + msc_send_ussd_release_complete_cause(trans->conn, trans->transaction_id, + GSM48_CAUSE_LOC_PUN_S_LU, GSM48_CC_CAUSE_NORMAL_UNSPEC); + } + + /* Terminate GSUP session with EUSE */ + gsup_msg.message_type = OSMO_GSUP_MSGT_PROC_SS_ERROR; + OSMO_STRLCPY_ARRAY(gsup_msg.imsi, trans->vsub->imsi); + + gsup_msg.session_state = OSMO_GSUP_SESSION_STATE_END; + gsup_msg.session_id = trans->callref; + gsup_msg.cause = GMM_CAUSE_NET_FAIL; + + osmo_gsup_client_enc_send(trans->net->vlr->gsup_client, &gsup_msg); + + /* Finally, release this transaction */ + trans_free(trans); +} + /* Entry point for call independent MO SS messages */ int gsm0911_rcv_nc_ss(struct ran_conn *conn, struct msgb *msg) { @@ -108,6 +141,10 @@ return -ENOMEM; } + /* Init inactivity timer */ + osmo_timer_setup(&trans->ss.timer_guard, + ncss_session_timeout_handler, trans); + /* Count active NC SS/USSD sessions */ osmo_counter_inc(conn->network->active_nc_ss); @@ -116,6 +153,12 @@ cm_service_request_concludes(conn, msg); } + /* (Re)schedule the inactivity timer */ + if (conn->network->ncss_guard_timeout > 0) { + osmo_timer_schedule(&trans->ss.timer_guard, + conn->network->ncss_guard_timeout, 0); + } + /* Attempt to extract Facility IE */ rc = gsm0480_extract_ie_by_tag(gh, msgb_l3len(msg), &facility_ie, &facility_ie_len, GSM0480_IE_FACILITY); @@ -233,6 +276,12 @@ transt->conn = ran_conn_get(conn, RAN_CONN_USE_TRANS_NC_SS); transt->paging_request = NULL; + /* (Re)schedule the inactivity timer */ + if (conn->network->ncss_guard_timeout > 0) { + osmo_timer_schedule(&transt->ss.timer_guard, + conn->network->ncss_guard_timeout, 0); + } + /* Send stored message */ ss_msg = transt->ss.msg; gh = (struct gsm48_hdr *) msgb_push(ss_msg, sizeof(*gh)); @@ -317,6 +366,10 @@ } trans->transaction_id = tid; + /* Init inactivity timer */ + osmo_timer_setup(&trans->ss.timer_guard, + ncss_session_timeout_handler, trans); + /* Attempt to find connection */ conn = connection_for_subscr(vsub); if (conn) { @@ -371,6 +424,9 @@ if (trans->ss.msg != NULL) msgb_free(trans->ss.msg); + /* Stop inactivity timer */ + osmo_timer_del(&trans->ss.timer_guard); + /* One session less */ osmo_counter_dec(trans->net->active_nc_ss); } @@ -420,6 +476,12 @@ return 0; } + /* (Re)schedule the inactivity timer */ + if (net->ncss_guard_timeout > 0) { + osmo_timer_schedule(&trans->ss.timer_guard, + net->ncss_guard_timeout, 0); + } + /* Allocate and prepare a new MT message */ ss_msg = gsm48_msgb_alloc_name("GSM 04.08 SS/USSD"); gh = (struct gsm48_hdr *) msgb_push(ss_msg, sizeof(*gh)); diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c index 078b83a..5aa533b 100644 --- a/src/libmsc/msc_vty.c +++ b/src/libmsc/msc_vty.c @@ -375,6 +375,18 @@ "mncc-guard-timeout <0-255>", MNCC_GUARD_TIMEOUT_STR MNCC_GUARD_TIMEOUT_VALUE_STR); +#define NCSS_STR "Configure call independent Supplementary Services\n" + +DEFUN(cfg_msc_ncss_guard_timeout, + cfg_msc_ncss_guard_timeout_cmd, + "ncss guard-timeout <0-255>", + NCSS_STR "Set guard timer for session activity\n" + "guard timer value (sec.), or 0 to disable\n") +{ + gsmnet->ncss_guard_timeout = atoi(argv[0]); + return CMD_SUCCESS; +} + DEFUN(cfg_msc_assign_tmsi, cfg_msc_assign_tmsi_cmd, "assign-tmsi", "Assign TMSI during Location Updating.\n") @@ -496,6 +508,8 @@ vty_out(vty, " mncc external %s%s", gsmnet->mncc_sock_path, VTY_NEWLINE); vty_out(vty, " mncc guard-timeout %i%s", gsmnet->mncc_guard_timeout, VTY_NEWLINE); + vty_out(vty, " ncss guard-timeout %i%s", + gsmnet->ncss_guard_timeout, VTY_NEWLINE); vty_out(vty, " %sassign-tmsi%s", gsmnet->vlr->cfg.assign_tmsi? "" : "no ", VTY_NEWLINE); @@ -1588,6 +1602,7 @@ install_element(MSC_NODE, &cfg_msc_mncc_external_cmd); install_element(MSC_NODE, &cfg_msc_mncc_guard_timeout_cmd); install_element(MSC_NODE, &cfg_msc_deprecated_mncc_guard_timeout_cmd); + install_element(MSC_NODE, &cfg_msc_ncss_guard_timeout_cmd); install_element(MSC_NODE, &cfg_msc_no_assign_tmsi_cmd); install_element(MSC_NODE, &cfg_msc_auth_tuple_max_reuse_count_cmd); install_element(MSC_NODE, &cfg_msc_auth_tuple_reuse_on_error_cmd); diff --git a/src/libmsc/osmo_msc.c b/src/libmsc/osmo_msc.c index 9828da1..5c6f0aa 100644 --- a/src/libmsc/osmo_msc.c +++ b/src/libmsc/osmo_msc.c @@ -54,6 +54,7 @@ net->t3212 = 5; net->mncc_guard_timeout = 180; + net->ncss_guard_timeout = 30; net->paging_response_timer = MSC_PAGING_RESPONSE_TIMER_DEFAULT; diff --git a/tests/test_nodes.vty b/tests/test_nodes.vty index f2312d1..fb9e5f0 100644 --- a/tests/test_nodes.vty +++ b/tests/test_nodes.vty @@ -34,6 +34,7 @@ mncc internal mncc external MNCC_SOCKET_PATH mncc guard-timeout <0-255> + ncss guard-timeout <0-255> no assign-tmsi auth-tuple-max-reuse-count <-1-2147483647> auth-tuple-reuse-on-error (0|1) @@ -50,6 +51,12 @@ mgw remote-port <0-65535> ... +OsmoMSC(config-msc)# ncss? + ncss Configure call independent Supplementary Services + +OsmoMSC(config-msc)# ncss ? + guard-timeout Set guard timer for session activity + OsmoMSC(config-msc)# mncc? mncc Configure Mobile Network Call Control @@ -123,6 +130,7 @@ periodic location update 30 msc mncc guard-timeout 180 + ncss guard-timeout 30 assign-tmsi cs7-instance-a 0 ... -- To view, visit https://gerrit.osmocom.org/11992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Icf4d87c45e90324764073e8230e0fb9cb96dd9cb Gerrit-Change-Number: 11992 Gerrit-PatchSet: 12 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-CC: Stefan Sperling -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 10:21:41 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 21 Feb 2019 10:21:41 +0000 Subject: Change in osmocom-bb[master]: trxcon/scheduler: count number of measurements Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/12990 Change subject: trxcon/scheduler: count number of measurements ...................................................................... trxcon/scheduler: count number of measurements Instead of counting both RSSI and ToA measurements separately, let's have a single counter in trx_lchan_state.meas struct. Change-Id: I45454a3ac92b8cc85dd74092e4ab6eb350f20c9a --- M src/host/trxcon/sched_lchan_common.c M src/host/trxcon/sched_lchan_pdtch.c M src/host/trxcon/sched_lchan_tchf.c M src/host/trxcon/sched_lchan_tchh.c M src/host/trxcon/sched_lchan_xcch.c M src/host/trxcon/sched_trx.h 6 files changed, 8 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/90/12990/1 diff --git a/src/host/trxcon/sched_lchan_common.c b/src/host/trxcon/sched_lchan_common.c index 921c466..615d81c 100644 --- a/src/host/trxcon/sched_lchan_common.c +++ b/src/host/trxcon/sched_lchan_common.c @@ -99,9 +99,9 @@ dl_hdr.num_biterr = bit_error_count; /* Convert average RSSI to RX level */ - if (lchan->meas.rssi_num) { + if (lchan->meas.num) { /* RX level: 0 .. 63 in typical GSM notation (dBm + 110) */ - dbm_avg = lchan->meas.rssi_sum / lchan->meas.rssi_num; + dbm_avg = lchan->meas.rssi_sum / lchan->meas.num; dl_hdr.rx_level = dbm2rxlev(dbm_avg); } else { /* No measurements, assuming the worst */ diff --git a/src/host/trxcon/sched_lchan_pdtch.c b/src/host/trxcon/sched_lchan_pdtch.c index aa9cb6a..845ef64 100644 --- a/src/host/trxcon/sched_lchan_pdtch.c +++ b/src/host/trxcon/sched_lchan_pdtch.c @@ -75,8 +75,7 @@ /* Update measurements */ lchan->meas.toa256_sum += toa256; lchan->meas.rssi_sum += rssi; - lchan->meas.toa256_num++; - lchan->meas.rssi_num++; + lchan->meas.num++; /* Copy burst to buffer of 4 bursts */ offset = buffer + bid * 116; diff --git a/src/host/trxcon/sched_lchan_tchf.c b/src/host/trxcon/sched_lchan_tchf.c index 5bebe49..cec7daf 100644 --- a/src/host/trxcon/sched_lchan_tchf.c +++ b/src/host/trxcon/sched_lchan_tchf.c @@ -77,8 +77,7 @@ /* Update mask and RSSI */ lchan->meas.rssi_sum += rssi; lchan->meas.toa256_sum += toa256; - lchan->meas.rssi_num++; - lchan->meas.toa256_num++; + lchan->meas.num++; /* Copy burst to end of buffer of 8 bursts */ offset = buffer + bid * 116 + 464; diff --git a/src/host/trxcon/sched_lchan_tchh.c b/src/host/trxcon/sched_lchan_tchh.c index 5b7daa3..172f54b 100644 --- a/src/host/trxcon/sched_lchan_tchh.c +++ b/src/host/trxcon/sched_lchan_tchh.c @@ -243,8 +243,7 @@ */ lchan->meas.rssi_sum += rssi; lchan->meas.toa256_sum += toa256; - lchan->meas.rssi_num++; - lchan->meas.toa256_num++; + lchan->meas.num++; /* Copy burst to the end of buffer of 6 bursts */ offset = buffer + bid * 116 + 464; diff --git a/src/host/trxcon/sched_lchan_xcch.c b/src/host/trxcon/sched_lchan_xcch.c index 825fc58..71eb38d 100644 --- a/src/host/trxcon/sched_lchan_xcch.c +++ b/src/host/trxcon/sched_lchan_xcch.c @@ -74,8 +74,7 @@ /* Update measurements */ lchan->meas.rssi_sum += rssi; lchan->meas.toa256_sum += toa256; - lchan->meas.rssi_num++; - lchan->meas.toa256_num++; + lchan->meas.num++; /* Copy burst to buffer of 4 bursts */ offset = buffer + bid * 116; diff --git a/src/host/trxcon/sched_trx.h b/src/host/trxcon/sched_trx.h index f914eee..72d9549 100644 --- a/src/host/trxcon/sched_trx.h +++ b/src/host/trxcon/sched_trx.h @@ -181,12 +181,10 @@ uint8_t ul_facch_blocks; struct { - /*! \brief Number of RSSI values */ - uint8_t rssi_num; + /*! \brief Number of measurements */ + unsigned int num; /*! \brief Sum of RSSI values */ float rssi_sum; - /*! \brief Number of TOA values */ - uint8_t toa256_num; /*! \brief Sum of TOA values */ int32_t toa256_sum; } meas; -- To view, visit https://gerrit.osmocom.org/12990 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I45454a3ac92b8cc85dd74092e4ab6eb350f20c9a Gerrit-Change-Number: 12990 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 10:26:24 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Thu, 21 Feb 2019 10:26:24 +0000 Subject: Change in osmo-gsm-tester[master]: jenkins: Only run journalctl if it is available on the machine Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/12991 Change subject: jenkins: Only run journalctl if it is available on the machine ...................................................................... jenkins: Only run journalctl if it is available on the machine It's not common to run journald inside containers and the journalctl command is not installed. Don't attempt to run it. Change-Id: I9dee3cb0d0ca203da77dfa1a793a4e4e5f8593c6 --- M contrib/jenkins-run.sh 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/91/12991/1 diff --git a/contrib/jenkins-run.sh b/contrib/jenkins-run.sh index 716899e..0b41247 100755 --- a/contrib/jenkins-run.sh +++ b/contrib/jenkins-run.sh @@ -30,7 +30,9 @@ # tar up all results for archiving (optional) cd "$trial_dir" -journalctl -u ofono -o short-precise --since "${time_start}" > "$(readlink last_run)/ofono.log" +if [ -x $(command -v journalctl) ]; then + journalctl -u ofono -o short-precise --since "${time_start}" > "$(readlink last_run)/ofono.log" +fi tar czf "$base/${trial_dir}-run.tgz" "$(readlink last_run)" tar czf "$base/${trial_dir}-bin.tgz" *.md5 *.tgz -- To view, visit https://gerrit.osmocom.org/12991 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I9dee3cb0d0ca203da77dfa1a793a4e4e5f8593c6 Gerrit-Change-Number: 12991 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 10:28:48 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 21 Feb 2019 10:28:48 +0000 Subject: Change in osmo-sysmon[master]: Update config example Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12992 Change subject: Update config example ...................................................................... Update config example Add OpenVPN and ping probe entries to example config. Change-Id: I78025027d48a1213b2a23252c8261d9cb4564027 Related: SYS#2655 --- M doc/examples/osmo-sysmon.cfg 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sysmon refs/changes/92/12992/1 diff --git a/doc/examples/osmo-sysmon.cfg b/doc/examples/osmo-sysmon.cfg index e3adab9..e4ed6e6 100644 --- a/doc/examples/osmo-sysmon.cfg +++ b/doc/examples/osmo-sysmon.cfg @@ -11,4 +11,6 @@ get-variable gbproxy-state netdev eth0 netdev tun0 +ping www.siminn.is +openvpn 127.0.0.1 1234 file os-image /etc/image-datetime -- To view, visit https://gerrit.osmocom.org/12992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I78025027d48a1213b2a23252c8261d9cb4564027 Gerrit-Change-Number: 12992 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 10:32:13 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 21 Feb 2019 10:32:13 +0000 Subject: Change in osmocom-bb[master]: trxcon/scheduler: count number of measurements In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12990 ) Change subject: trxcon/scheduler: count number of measurements ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12990 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I45454a3ac92b8cc85dd74092e4ab6eb350f20c9a Gerrit-Change-Number: 12990 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 21 Feb 2019 10:32:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 10:40:17 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 21 Feb 2019 10:40:17 +0000 Subject: Change in osmo-mgw[master]: Add option to GSM HR frames to RFC5593 representation In-Reply-To: References: Message-ID: Hello tnt, Pau Espin Pedrol, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12979 to look at the new patch set (#2). Change subject: Add option to GSM HR frames to RFC5593 representation ...................................................................... Add option to GSM HR frames to RFC5593 representation There are different specifications around on how a GSM-HR frame should be encapsulated into an RTP packet. RFC5593 specifies a ToC (Table of Contents) byte to be prepended in front of the payload data. The two formats can be distinguished easily by their length. Then the data can be formatted into the corresponding opposite format and vice versa. - Add new VTY rtp-patch options - Add conversion function Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Related: OS#3807 --- M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_internal.h M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_vty.c 5 files changed, 88 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/79/12979/2 -- To view, visit https://gerrit.osmocom.org/12979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Gerrit-Change-Number: 12979 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: dexter Gerrit-Reviewer: tnt Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 10:52:55 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Thu, 21 Feb 2019 10:52:55 +0000 Subject: Change in osmo-ci[master]: jobs: Introduce a tester using "virtual" tests Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/12993 Change subject: jobs: Introduce a tester using "virtual" tests ...................................................................... jobs: Introduce a tester using "virtual" tests With mobile, virtphy, osmo-bts-virtual we can run e2e tests without the need of any hardware. Create a dedicated job for it. This avoids having to share resources (e.g. lock state/ip allocations) with other builds. Change-Id: I19993b287cc948dbdfba9d375f80a7904f96ff4a --- M jobs/osmo-gsm-tester-runner.yml 1 file changed, 57 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/93/12993/1 diff --git a/jobs/osmo-gsm-tester-runner.yml b/jobs/osmo-gsm-tester-runner.yml index cfb32e2..e0cfe40 100644 --- a/jobs/osmo-gsm-tester-runner.yml +++ b/jobs/osmo-gsm-tester-runner.yml @@ -8,6 +8,7 @@ - 'osmo-gsm-tester_run-{stage}' - 'osmo-gsm-tester_gerrit' - 'osmo-gsm-tester_ttcn3' + - 'osmo-gsm-tester_virtual' - scm: name: osmo-gsm-tester-gerrit @@ -195,3 +196,59 @@ - junit: results: 'trial-*/last_run/trial-*.xml' allow-empty-results: true + +# virtual tester job +- job: + name: 'osmo-gsm-tester_virtual' + defaults: runner + node: 'osmocom-master-debian9' + scm: + - 'osmo-gsm-tester-repo' + triggers: + - timed: "H H/2 * * *" + - pollscm: + cron: "H/5 * * * *" + builders: + - shell: | + # make sure no bin artifacts from a previous run remain + rm -f *.tgz *.md5 + - copy_artifact_all + - copy_artifact: + repo: osmo-gsm-tester_build-osmocom-bb + - shell: > + unlink osmo-gsm-tester/example/resources.conf || true + + ln -s resources.conf.virtual osmo-gsm-tester/example/resources.conf + + # TODO: We (want to) grant CAP_SYS_NICE for osmo-bts-virtual + # but with newer cgroup support and the --cpu-rt-runtime/--ulimit + # rtprio=99 flags we can limit the damage a job can do. + + docker run --rm=true \ + -e HOME=/build \ + -e JOB_NAME="$JOB_NAME" \ + -e OSMO_GSM_TESTER_CONF="/build/osmo-gsm-tester/example" \ + -e OSMO_GSM_TESTER_OPTS="$OSMO_GSM_TESTER_OPTS" \ + -e BUILD_NUMBER="$BUILD_NUMBER" \ + -w /build -i \ + -v "$PWD:/build" \ + -v "$HOME/bin:/build_bin" \ + -v "$HOME/.ssh:/home/build/.ssh:ro" \ + --cap-add=sys_nice \ + osmocom:deb9_amd64 /bin/bash -c 'LANG="en_US.utf8" LC_ALL="en_US.UTF-8" LC_LANG="en_US.UTF-8" PATH="$PWD/osmo-gsm-tester/src:${PATH}" ./osmo-gsm-tester/contrib/jenkins-run.sh' + publishers: + - archive: + artifacts: '*-run.tgz, *-bin.tgz' + default-excludes: false + - junit: + results: 'trial-*/last_run/trial-*.xml' + allow-empty-results: true + parameters: + - string: + name: "OSMO_GSM_TESTER_OPTS" + default: "-s nitb_netreg_mass" + description: "pass additional command line options to osmo-gsm-tester.py, e.g. to select specific suites:scenarios. Default: leave empty." + - string: + name: "OSMO_GSM_TESTER_BRANCH" + default: "origin/master" + description: "Which branch/sha should be used for testing" -- To view, visit https://gerrit.osmocom.org/12993 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I19993b287cc948dbdfba9d375f80a7904f96ff4a Gerrit-Change-Number: 12993 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 10:54:20 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 10:54:20 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Tests for the BSS/PCU side NS/BSSGP implementations In-Reply-To: References: Message-ID: Hello Max, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12984 to look at the new patch set (#3). Change subject: PCU: Tests for the BSS/PCU side NS/BSSGP implementations ...................................................................... PCU: Tests for the BSS/PCU side NS/BSSGP implementations The existing (unused) PCU_Tests are operating on top of a NS + BSSGP emulation, i.e. they're aimed at testing higher protocol layers. Also, they required BTS+BSC to run next to the PCU. The new PCU_Tests_RAW introduced in this patch are the exact opposite: * they test the PCU alone (attach to PCUIF and Gb interface) * they don't require BTS or BSC to run * they don't use NS + BSSGP emulation but raw NS/BSSGP frames to test the very NS/BSSGP implementation inside of OsmoPCU. Change-Id: I7ad76b96974cf0a686ad0f00ccd09d1a9df8b4d5 Related: OS#2890 --- M pcu/PCU_Tests.cfg A pcu/PCU_Tests.default A pcu/PCU_Tests_RAW.ttcn M pcu/gen_links.sh 4 files changed, 427 insertions(+), 28 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/84/12984/3 -- To view, visit https://gerrit.osmocom.org/12984 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I7ad76b96974cf0a686ad0f00ccd09d1a9df8b4d5 Gerrit-Change-Number: 12984 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 10:54:44 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 10:54:44 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Tests for the BSS/PCU side NS/BSSGP implementations In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12984 ) Change subject: PCU: Tests for the BSS/PCU side NS/BSSGP implementations ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12984 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7ad76b96974cf0a686ad0f00ccd09d1a9df8b4d5 Gerrit-Change-Number: 12984 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Thu, 21 Feb 2019 10:54:44 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 10:55:06 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 10:55:06 +0000 Subject: Change in osmo-ci[master]: jobs: Introduce a tester using "virtual" tests In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12993 ) Change subject: jobs: Introduce a tester using "virtual" tests ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12993 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I19993b287cc948dbdfba9d375f80a7904f96ff4a Gerrit-Change-Number: 12993 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Thu, 21 Feb 2019 10:55:06 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 10:56:16 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 10:56:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Tests for the BSS/PCU side NS/BSSGP implementations In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12984 ) Change subject: PCU: Tests for the BSS/PCU side NS/BSSGP implementations ...................................................................... PCU: Tests for the BSS/PCU side NS/BSSGP implementations The existing (unused) PCU_Tests are operating on top of a NS + BSSGP emulation, i.e. they're aimed at testing higher protocol layers. Also, they required BTS+BSC to run next to the PCU. The new PCU_Tests_RAW introduced in this patch are the exact opposite: * they test the PCU alone (attach to PCUIF and Gb interface) * they don't require BTS or BSC to run * they don't use NS + BSSGP emulation but raw NS/BSSGP frames to test the very NS/BSSGP implementation inside of OsmoPCU. Change-Id: I7ad76b96974cf0a686ad0f00ccd09d1a9df8b4d5 Related: OS#2890 --- M pcu/PCU_Tests.cfg A pcu/PCU_Tests.default A pcu/PCU_Tests_RAW.ttcn M pcu/gen_links.sh 4 files changed, 427 insertions(+), 28 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/pcu/PCU_Tests.cfg b/pcu/PCU_Tests.cfg index 5975290..2dfce51 100644 --- a/pcu/PCU_Tests.cfg +++ b/pcu/PCU_Tests.cfg @@ -1,10 +1,10 @@ [ORDERED_INCLUDE] # Common configuration, shared between test suites "../Common.cfg" +# testsuite specific configuration, not expected to change +"./PCU_Tests.default" [LOGGING] -#*.FileMask := LOG_ALL -ConsoleMask := ERROR | WARNING | TESTCASE | TIMEROP_START | DEBUG_ENCDEC [MODULE_PARAMETERS] PCU_Tests.mp_nsconfig := { @@ -16,34 +16,9 @@ nsei := 1234 } -PCU_Tests.mp_gb_cfg := { - nsei := 1234, - bvci := 1234, - cell_id := { - ra_id := { - lai := { - mcc_mnc := '00101F'H, lac := 1 - }, - rac := 0 - }, - cell_id := 0 - }, - sgsn_role := true -} - [TESTPORT_PARAMETERS] -*.*.udpReuseAddress := "yes"; [MAIN_CONTROLLER] [EXECUTE] -PCU_Tests.control -# for internal use only: will always fail when called as part of normal routine -#PCU_Tests.TC_selftest_llc -#PCU_Tests.TC_selftest_rlcmac -#PCU_Tests.TC_selftest_bssgp -#PCU_Tests.TC_nsem -#PCU_Tests.TC_paging -#PCU_Tests.TC_rach -#PCU_Tests.TC_selftest_rr -#PCU_Tests.TC_dl_tbf +PCU_Tests_RAW.control diff --git a/pcu/PCU_Tests.default b/pcu/PCU_Tests.default new file mode 100644 index 0000000..72b1c45 --- /dev/null +++ b/pcu/PCU_Tests.default @@ -0,0 +1,41 @@ +[ORDERED_INCLUDE] +# Common configuration, shared between test suites +"../Common.cfg" + +[LOGGING] +#*.FileMask := LOG_ALL +ConsoleMask := ERROR | WARNING | TESTCASE | TIMEROP_START | DEBUG_ENCDEC + +[MODULE_PARAMETERS] +PCU_Tests.mp_gb_cfg := { + nsei := 1234, + bvci := 1234, + cell_id := { + ra_id := { + lai := { + mcc_mnc := '00101F'H, lac := 1 + }, + rac := 0 + }, + cell_id := 0 + }, + sgsn_role := true +} + +[TESTPORT_PARAMETERS] +*.*.udpReuseAddress := "yes"; +*.PCU.socket_type := "SEQPACKET" + +[MAIN_CONTROLLER] + +[EXECUTE] +PCU_Tests_RAW.control +# for internal use only: will always fail when called as part of normal routine +#PCU_Tests.TC_selftest_llc +#PCU_Tests.TC_selftest_rlcmac +#PCU_Tests.TC_selftest_bssgp +#PCU_Tests.TC_nsem +#PCU_Tests.TC_paging +#PCU_Tests.TC_rach +#PCU_Tests.TC_selftest_rr +#PCU_Tests.TC_dl_tbf diff --git a/pcu/PCU_Tests_RAW.ttcn b/pcu/PCU_Tests_RAW.ttcn new file mode 100644 index 0000000..eb06088 --- /dev/null +++ b/pcu/PCU_Tests_RAW.ttcn @@ -0,0 +1,382 @@ +module PCU_Tests_RAW { + +/* "RAW" PCU tests: Talk directly to the PCU socket of OsmoPCU on the one hand side (emulating + the BTS/BSC side PCU socket server) and the Gb interface on the other hand side. No NS/BSSGP + Emulation is used; rather, we simply use the NS_CodecPort to implement both standard and non- + standard procedures on the NS and BSSGP level. The goal of these tests is to test exactly + those NS and BSSGP implementations on the BSS (PCU) side. */ + +import from General_Types all; +import from Osmocom_Types all; +import from NS_Types all; +import from BSSGP_Types all; +import from Osmocom_Gb_Types all; + +import from BSSGP_Emulation all; /* BssgpConfig */ +import from NS_Emulation all; /* NSConfiguration */ + +import from UD_Types all; +import from PCUIF_Types all; +import from PCUIF_CodecPort all; +import from IPL4asp_Types all; +import from NS_CodecPort all; +import from NS_CodecPort_CtrlFunct all; +import from Native_Functions all; +import from PCU_Tests all; + +modulepar { + charstring mp_pcu_sock_path := PCU_SOCK_DEFAULT; +} + +type component RAW_NS_CT { + /* UDP port towards the bottom (IUT) */ + port NS_CODEC_PT NSCP; + var ConnectionId g_ns_conn_id := -1; + timer g_T_guard; + + /* PCUIF (we emulate the BTS part) */ + port PCUIF_CODEC_PT PCU; + var ConnectionId g_pcu_conn_id := -1; +} + +private altstep as_Tguard() runs on RAW_NS_CT { + [] g_T_guard.timeout { + setverdict(fail, "Timeout of T_guard"); + mtc.stop; + } +} + +function f_init_pcuif() runs on RAW_NS_CT { + map(self:PCU, system:PCU); + + /* Connect the Unix Domain Socket */ + g_pcu_conn_id := f_pcuif_listen(PCU, mp_pcu_sock_path); + PCU.receive(UD_connected:?); + + /* Wait for PCU_VERSION and return INFO_IND */ + PCU.receive(t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_TXT_IND(0, PCU_VERSION, ?))); + /* FIXME: make sure to use parameters from mp_gb_cfg.cell_id in the PCU INFO IND */ + var template PCUIF_Message info_ind := ts_PCUIF_INFO_IND(bts_nr := 0, + nsei := mp_nsconfig.nsei, + nsvci := mp_nsconfig.nsvci, + bvci := mp_gb_cfg.bvci, + local_port := mp_nsconfig.remote_udp_port, + remote_port := mp_nsconfig.local_udp_port, + remote_ip := f_inet_haddr(mp_nsconfig.local_ip) + ); + PCU.send(t_SD_PCUIF(g_pcu_conn_id, info_ind)); +} + +function f_init_ns_codec(float guard_secs := 60.0) runs on RAW_NS_CT { + var Result res; + map(self:NSCP, system:NSCP); + /* Connect the UDP socket */ + res := f_IPL4_connect(NSCP, mp_nsconfig.remote_ip, mp_nsconfig.remote_udp_port, + mp_nsconfig.local_ip, mp_nsconfig.local_udp_port, + 0, { udp := {}}); + if (not ispresent(res.connId)) { + setverdict(fail, "Could not connect NS UDP socket, check your configuration"); + mtc.stop; + } + g_ns_conn_id := res.connId; + g_T_guard.start(guard_secs); + activate(as_Tguard()); +} + +function f_ns_exp(template PDU_NS exp_rx) runs on RAW_NS_CT return PDU_NS { + var NS_RecvFrom nrf; + log("f_ns_exp() expecting ", exp_rx); + alt { + [] NSCP.receive(t_NS_RecvFrom(exp_rx)) -> value nrf { } + [] NSCP.receive { + setverdict(fail, "Received unexpected NS: ", nrf); + mtc.stop; + } + } + return nrf.msg; +} + +/* perform inbound SNS-SIZE procedure */ +function f_incoming_sns_size(template (omit) NsCause cause := omit) runs on RAW_NS_CT { + var PDU_NS rx; + /* expect one single SNS-SIZE with RESET flag; one remote v4 EP; no v6 EP */ + rx := f_ns_exp(tr_SNS_SIZE(mp_nsconfig.nsei, rst_flag := true, max_nsvcs := ?, + num_v4 := 1, num_v6 := omit)); + NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_SIZE_ACK(mp_nsconfig.nsei, cause))); +} + +/* perform outbound SNS-SIZE procedure */ +function f_outgoing_sns_size(template (omit) NsCause cause := omit) runs on RAW_NS_CT { + var PDU_NS rx; + NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_SIZE(mp_nsconfig.nsei, rst_flag := true, max_nsvcs := 1, + num_v4 := 1, num_v6 := omit) + )); + /* expect one single SNS-SIZE with RESET flag; one remote v4 EP; no v6 EP */ + rx := f_ns_exp(tr_SNS_SIZE_ACK(mp_nsconfig.nsei, cause)); +} + +/* perform inbound SNS-CONFIG procedure */ +function f_incoming_sns_config(template (omit) NsCause cause := omit) runs on RAW_NS_CT { + var PDU_NS rx; + rx := f_ns_exp(tr_SNS_CONFIG(mp_nsconfig.nsei, end_flag := true, v4 := ?)); + NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_CONFIG_ACK(mp_nsconfig.nsei, cause))); +} + +/* perform outbound SNS-CONFIG procedure */ +function f_outgoing_sns_config(template (omit) NsCause cause := omit) runs on RAW_NS_CT { + var PDU_NS rx; + var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(mp_nsconfig.local_ip, + mp_nsconfig.local_udp_port) } + NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_CONFIG(mp_nsconfig.nsei, true, v4))); + rx := f_ns_exp(tr_SNS_CONFIG_ACK(mp_nsconfig.nsei, cause)); +} + +/* perform outbound NS-ALIVE procedure */ +function f_outgoing_ns_alive() runs on RAW_NS_CT { + NSCP.send(t_NS_Send(g_ns_conn_id, t_NS_ALIVE)); + alt { + [] NSCP.receive(t_NS_RecvFrom(t_NS_ALIVE_ACK)); + [] NSCP.receive { repeat; } + } +} + +/* perform outbound NS-BLOCK procedure */ +function f_outgoing_ns_block(NsCause cause) runs on RAW_NS_CT { + NSCP.send(t_NS_Send(g_ns_conn_id, ts_NS_BLOCK(cause, mp_nsconfig.nsvci))); + alt { + [] NSCP.receive(t_NS_RecvFrom(tr_NS_BLOCK_ACK(mp_nsconfig.nsvci))); + [] NSCP.receive { repeat; } + } +} + +/* receive NS-ALIVE and ACK it */ +altstep as_rx_alive_tx_ack(boolean oneshot := false) runs on RAW_NS_CT { + [] NSCP.receive(t_NS_RecvFrom(t_NS_ALIVE)) { + NSCP.send(t_NS_Send(g_ns_conn_id, t_NS_ALIVE_ACK)); + if (not oneshot) { repeat; } + } +} + +/* Receive a BSSGP RESET for given BVCI and ACK it */ +altstep as_rx_bvc_reset_tx_ack(BssgpBvci bvci, boolean oneshot := false) runs on RAW_NS_CT { + var NS_RecvFrom ns_rf; + /* FIXME: nail down received cell_id in match */ + [] NSCP.receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, 0, + decmatch tr_BVC_RESET(?, bvci, ?)))) + -> value ns_rf { + var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.msg.pDU_NS_Unitdata.nS_SDU); + var PDU_BSSGP bssgp_tx := valueof(ts_BVC_RESET_ACK(bvci, mp_gb_cfg.cell_id)); + NSCP.send(t_NS_Send(g_ns_conn_id, ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx)))); + if (not oneshot) { repeat; } + } +} + + +/* Receive a BSSGP UNBLOCK for given BVCI and ACK it */ +altstep as_rx_bvc_unblock_tx_ack(BssgpBvci bvci, boolean oneshot := false) runs on RAW_NS_CT { + var NS_RecvFrom ns_rf; + [] NSCP.receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, 0, + decmatch t_BVC_UNBLOCK(bvci)))) + -> value ns_rf { + var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.msg.pDU_NS_Unitdata.nS_SDU); + var PDU_BSSGP bssgp_tx := valueof(t_BVC_UNBLOCK_ACK(bvci)); + NSCP.send(t_NS_Send(g_ns_conn_id, ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx)))); + if (not oneshot) { repeat; } + } +} + +/* Receive a BSSGP FLOW-CONTROL-BVC and ACK it */ +altstep as_rx_bvc_fc_tx_ack(BssgpBvci bvci, boolean oneshot := false) runs on RAW_NS_CT { + var NS_RecvFrom ns_rf; + [] NSCP.receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, bvci, + decmatch tr_BVC_FC_BVC))) + -> value ns_rf { + var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.msg.pDU_NS_Unitdata.nS_SDU); + var OCT1 tag := bssgp_rx.pDU_BSSGP_FLOW_CONTROL_BVC.tag.unstructured_Value; + var PDU_BSSGP bssgp_tx := valueof(t_BVC_FC_BVC_ACK(tag)); + NSCP.send(t_NS_Send(g_ns_conn_id, ts_NS_UNITDATA(t_SduCtrlB, bvci, enc_PDU_BSSGP(bssgp_tx)))); + if (not oneshot) { repeat; } + } +} + +/********************************************************************************** + * Classic Gb/IP bring-up test cases using NS-{RESET,BLOCK,UNBLOCK} and no IP-SNS * + **********************************************************************************/ + +/* Receive a NS-RESET and ACK it */ +private altstep as_rx_ns_reset_ack(boolean oneshot := false) runs on RAW_NS_CT { + var NS_RecvFrom ns_rf; + [] NSCP.receive(t_NS_RecvFrom(tr_NS_RESET(NS_CAUSE_OM_INTERVENTION, mp_nsconfig.nsvci, + mp_nsconfig.nsei))) -> value ns_rf { + NSCP.send(t_NS_Send(g_ns_conn_id, ts_NS_RESET_ACK(mp_nsconfig.nsvci, mp_nsconfig.nsei))); + if (not oneshot) { repeat; } + } +} +/* Receive a NS-UNBLOCK and ACK it */ +private altstep as_rx_ns_unblock_ack(boolean oneshot := false) runs on RAW_NS_CT { + var NS_RecvFrom ns_rf; + [] NSCP.receive(t_NS_RecvFrom(t_NS_UNBLOCK)) -> value ns_rf { + NSCP.send(t_NS_Send(g_ns_conn_id, t_NS_UNBLOCK_ACK)); + if (not oneshot) { repeat; } + } +} + +/* test the NS-RESET procedure */ +testcase TC_ns_reset() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + + + /* Expect inbound NS-RESET procedure */ + as_rx_ns_reset_ack(oneshot := true); + setverdict(pass); +} + +/* ensure NS-RESET are re-transmitted */ +testcase TC_ns_reset_retrans() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + + var integer i; + for (i := 0; i < 3; i := i+1) { + NSCP.receive(t_NS_RecvFrom(tr_NS_RESET(NS_CAUSE_OM_INTERVENTION, + mp_nsconfig.nsvci, mp_nsconfig.nsei))); + } + + /* Expect inbound NS-RESET procedure */ + as_rx_ns_reset_ack(oneshot := true); + setverdict(pass); +} + +/* test the inbound NS-ALIVE procedure after NS-RESET */ +testcase TC_ns_alive() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + + /* Expect inbound NS-RESET procedure */ + as_rx_ns_reset_ack(oneshot := true); + + /* wait for one ALIVE cycle, then ACK any further ALIVE in the background */ + as_rx_alive_tx_ack(oneshot := true); + setverdict(pass); +} + +/* Test for NS-RESET after NS-ALIVE timeout */ +testcase TC_ns_alive_timeout_reset() runs on RAW_NS_CT { + f_init_ns_codec(100.0); + f_init_pcuif(); + + /* Expect inbound NS-RESET procedure */ + as_rx_ns_reset_ack(oneshot := true); + + /* wait for at least one NS-ALIVE */ + NSCP.receive(t_NS_RecvFrom(t_NS_ALIVE)); + + /* wait for NS-RESET to re-appear, ignoring any NS-ALIVE until then */ + alt { + [] as_rx_ns_reset_ack(oneshot := true) { setverdict(pass); } + [] NSCP.receive(t_NS_RecvFrom(t_NS_ALIVE)) { repeat; } + } +} + +/* test for NS-RESET/NS-ALIVE/NS-UNBLOCK */ +testcase TC_ns_unblock() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + + /* Expect inbound NS-RESET procedure */ + as_rx_ns_reset_ack(oneshot := true); + + /* wait for one ALIVE cycle, then ACK any further ALIVE in the background */ + as_rx_alive_tx_ack(oneshot := true); + activate(as_rx_alive_tx_ack()); + + as_rx_ns_unblock_ack(oneshot := true); + setverdict(pass); +} + +/* test for NS-UNBLOCK re-transmissions */ +testcase TC_ns_unblock_retrans() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + + /* Expect inbound NS-RESET procedure */ + as_rx_ns_reset_ack(oneshot := true); + + /* wait for one ALIVE cycle, then ACK any further ALIVE in the background */ + as_rx_alive_tx_ack(oneshot := true); + activate(as_rx_alive_tx_ack()); + + /* wait for first NS-UNBLOCK, don't respond */ + NSCP.receive(t_NS_RecvFrom(t_NS_UNBLOCK)); + + /* wait for re-transmission of NS-UNBLOCK */ + as_rx_ns_unblock_ack(oneshot := true); + setverdict(pass); +} + +/* full bring-up of the Gb link for NS and BSSGP layer up to BVC-FC */ +testcase TC_ns_full_bringup() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + + /* Expect inbound NS-RESET procedure */ + as_rx_ns_reset_ack(oneshot := true); + + /* wait for one ALIVE cycle, then ACK any further ALIVE in the background */ + as_rx_alive_tx_ack(oneshot := true); + activate(as_rx_alive_tx_ack()); + + as_rx_ns_unblock_ack(oneshot := true); + + f_outgoing_ns_alive(); + + /* Expect BVC-RESET for signaling (0) and ptp BVCI */ + as_rx_bvc_reset_tx_ack(0, oneshot := true); + as_rx_bvc_reset_tx_ack(mp_gb_cfg.bvci, oneshot := true); + as_rx_bvc_unblock_tx_ack(mp_gb_cfg.bvci, oneshot := true); + + /* wait for one FLOW-CONTROL BVC and then ACK any further in the future */ + as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvci, oneshot := true); + activate(as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvci)); + setverdict(pass); +} + +/* test outbound (SGSN-originated) NS-BLOCK procedure */ +testcase TC_ns_so_block() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + + /* Expect inbound NS-RESET procedure */ + as_rx_ns_reset_ack(oneshot := true); + + /* wait for one ALIVE cycle, then ACK any further ALIVE in the background */ + as_rx_alive_tx_ack(oneshot := true); + activate(as_rx_alive_tx_ack()); + + as_rx_ns_unblock_ack(oneshot := true); + + f_outgoing_ns_alive(); + + f_outgoing_ns_block(NS_CAUSE_EQUIPMENT_FAILURE); + setverdict(pass); +} + + +control { + execute( TC_ns_reset() ); + execute( TC_ns_reset_retrans() ); + execute( TC_ns_alive() ); + execute( TC_ns_alive_timeout_reset() ); + execute( TC_ns_unblock() ); + execute( TC_ns_unblock_retrans() ); + execute( TC_ns_full_bringup() ); + execute( TC_ns_so_block() ); +} + + + + + + +} diff --git a/pcu/gen_links.sh b/pcu/gen_links.sh index 6e549eb..f9f6dd5 100755 --- a/pcu/gen_links.sh +++ b/pcu/gen_links.sh @@ -50,6 +50,7 @@ FILES+="NS_Emulation.ttcn NS_CodecPort.ttcn NS_CodecPort_CtrlFunct.ttcn NS_CodecPort_CtrlFunctDef.cc " FILES+="BSSGP_Emulation.ttcn Osmocom_Gb_Types.ttcn " FILES+="LLC_Templates.ttcn L3_Templates.ttcn L3_Common.ttcn " +FILES+="PCUIF_Types.ttcn PCUIF_CodecPort.ttcn " gen_links $DIR $FILES ignore_pp_results -- To view, visit https://gerrit.osmocom.org/12984 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I7ad76b96974cf0a686ad0f00ccd09d1a9df8b4d5 Gerrit-Change-Number: 12984 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 10:56:58 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 10:56:58 +0000 Subject: Change in docker-playground[master]: PCU: Add osmo-pcu-* + ttcn3-pcu-test containers In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12986 ) Change subject: PCU: Add osmo-pcu-* + ttcn3-pcu-test containers ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/12986 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia8e2ed2e7d03b8afdc7b1e068f94b0544a8112c7 Gerrit-Change-Number: 12986 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Thu, 21 Feb 2019 10:56:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 10:57:07 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 10:57:07 +0000 Subject: Change in docker-playground[master]: PCU: Add osmo-pcu-* + ttcn3-pcu-test containers In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12986 ) Change subject: PCU: Add osmo-pcu-* + ttcn3-pcu-test containers ...................................................................... PCU: Add osmo-pcu-* + ttcn3-pcu-test containers This will enable us to run the PCU testsuite automatically by jenkins, just like for other Osmocom projects. Change-Id: Ia8e2ed2e7d03b8afdc7b1e068f94b0544a8112c7 Related: OS#2890 --- A osmo-pcu-latest/.release A osmo-pcu-latest/Dockerfile A osmo-pcu-latest/Makefile A osmo-pcu-latest/Release.key A osmo-pcu-latest/osmo-pcu.cfg A osmo-pcu-latest/respawn.sh A osmo-pcu-master/.release A osmo-pcu-master/Dockerfile A osmo-pcu-master/Makefile A osmo-pcu-master/Release.key A osmo-pcu-master/osmo-pcu.cfg A osmo-pcu-master/respawn.sh A ttcn3-pcu-test/.release A ttcn3-pcu-test/Dockerfile A ttcn3-pcu-test/Makefile A ttcn3-pcu-test/PCU_Tests.cfg A ttcn3-pcu-test/jenkins.sh A ttcn3-pcu-test/osmo-pcu.cfg 18 files changed, 282 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/osmo-pcu-latest/.release b/osmo-pcu-latest/.release new file mode 100644 index 0000000..466d8a8 --- /dev/null +++ b/osmo-pcu-latest/.release @@ -0,0 +1,2 @@ +release=0.0.0 +tag=osmo-pcu-latest-0.0.0 diff --git a/osmo-pcu-latest/Dockerfile b/osmo-pcu-latest/Dockerfile new file mode 100644 index 0000000..fdd5e56 --- /dev/null +++ b/osmo-pcu-latest/Dockerfile @@ -0,0 +1,36 @@ +FROM debian:stretch + +MAINTAINER Harald Welte + +ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/latest/Debian_9.0/" + +COPY Release.key /tmp/Release.key + +ADD $OSMOCOM_REPO/Release /tmp/Release +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + gnupg + +RUN apt-key add /tmp/Release.key && \ + rm /tmp/Release.key && \ + echo "deb " $OSMOCOM_REPO " ./" > /etc/apt/sources.list.d/osmocom-latest.list + +ADD $OSMOCOM_REPO/Release /tmp/Release +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + telnet \ + osmo-pcu && \ + apt-get clean + +ADD respawn.sh /usr/local/bin/respawn.sh + +WORKDIR /tmp + +VOLUME /data + +COPY osmo-pcu.cfg /data/osmo-pcu.cfg + +WORKDIR /data +CMD ["/usr/bin/osmo-pcu"] + +#EXPOSE diff --git a/osmo-pcu-latest/Makefile b/osmo-pcu-latest/Makefile new file mode 100644 index 0000000..8d0e10b --- /dev/null +++ b/osmo-pcu-latest/Makefile @@ -0,0 +1 @@ +include ../make/Makefile diff --git a/osmo-pcu-latest/Release.key b/osmo-pcu-latest/Release.key new file mode 100644 index 0000000..e656238 --- /dev/null +++ b/osmo-pcu-latest/Release.key @@ -0,0 +1,20 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.5 (GNU/Linux) + +mQENBFJBt/wBCADAht3d/ilNuyzaXYw/QwTRvmjyoDvfXw+H/3Fvk1zlDZoiKPPc +a1wCVBINUZl7vYM2OXqbJwYa++JP2Q48xKSvC6thbRc/YLievkbcvTemf7IaREfl +CTjoYpoqXHa9kHMw1aALDm8CNU88jZmnV7v9L6hKkbYDxie+jpoj7D6B9JlxgNJ4 +5dQyRNsFGVcIl4Vplt1HyGc5Q5nQI/VgS2rlF/IOXmhRQBc4LEDdU8R2IKnkU4ee +S7TWanAigGAQhxGuCkS39/CWzc1DhLhjlNhBl/+RTPejkqJtAy00ZLps3+RqUN1Y +CU/Fsr7aRlYVGqQ/BlptwV0XQ2VVYJX2oEBBABEBAAG0MG5ldHdvcmsgT0JTIFBy +b2plY3QgPG5ldHdvcmtAYnVpbGQub3BlbnN1c2Uub3JnPokBPAQTAQIAJgUCWmMc +aQIbAwUJDEAUbQYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEGLrGgkXKA3fjsoI +ALSXmXzFCpTxg8a6tvXkqddY/qAmeBMNUf7hslI9wN3leNmCrnuHS8TbHWYJZgtw +8M5fKL3aRQYaIiqqm1XOUF0OqwYNDj5V3y38mM68NYOkzgSP7foMwZp9Y0TlGhtI +L8weA+2RUjB4hwwGMAYMqkRZyKW3NhPqdlGGoXac1ilwEyGXFHdOLbkhtyS+P2yb +/EvaKIN5cMLzRZKeYgdp9WuAirV+yV/SDbgvabW098lrWhGLltlRRDQgMV883p8I +ERMI1wlLFZGnHL3mfBWGeQ24M/DaBOdXQDtfBLCJ9nGztmDBUb8i6GFWU7nD2TGi +8mYUsED1ZDwO/0jdvJ4gSluIRgQTEQIABgUCUkG3/AAKCRA7MBG3a51lIzhdAJ9v +d6XPffMZRcCGgDEY5OaTn/MsCQCgrXbeZpFJgnirSrc8rRonvzYFiF4= +=Gvly +-----END PGP PUBLIC KEY BLOCK----- diff --git a/osmo-pcu-latest/osmo-pcu.cfg b/osmo-pcu-latest/osmo-pcu.cfg new file mode 100644 index 0000000..9a5db59 --- /dev/null +++ b/osmo-pcu-latest/osmo-pcu.cfg @@ -0,0 +1,10 @@ +line vty + no login + bind 0.0.0.0 +pcu + flow-control-interval 10 + cs 2 + alloc-algorithm dynamic + alpha 0 + gamma 0 + pcu-socket /data/pcu_bts diff --git a/osmo-pcu-latest/respawn.sh b/osmo-pcu-latest/respawn.sh new file mode 100755 index 0000000..ae5cf60 --- /dev/null +++ b/osmo-pcu-latest/respawn.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +trap "kill 0" EXIT + +while [ -e /etc/passwd ]; do + $* & + LAST_PID=$! + wait $LAST_PID +done diff --git a/osmo-pcu-master/.release b/osmo-pcu-master/.release new file mode 100644 index 0000000..49b830d --- /dev/null +++ b/osmo-pcu-master/.release @@ -0,0 +1,2 @@ +release=0.0.0 +tag=osmo-pcu-master-0.0.0 diff --git a/osmo-pcu-master/Dockerfile b/osmo-pcu-master/Dockerfile new file mode 100644 index 0000000..867f534 --- /dev/null +++ b/osmo-pcu-master/Dockerfile @@ -0,0 +1,43 @@ +ARG USER +FROM $USER/debian-jessie-build + +MAINTAINER Harald Welte + +ARG OSMOCOM_REPO="http://download.opensuse.org/repositories/network:/osmocom:/nightly/Debian_8.0/" + +COPY Release.key /tmp/Release.key + +RUN apt-key add /tmp/Release.key && \ + rm /tmp/Release.key && \ + echo "deb " $OSMOCOM_REPO " ./" > /etc/apt/sources.list.d/osmocom-nightly.list + +ADD $OSMOCOM_REPO/Release /tmp/Release +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + telnet \ + libosmocore-dev && \ + apt-get clean + +ADD respawn.sh /usr/local/bin/respawn.sh + +WORKDIR /tmp + +ARG OSMO_PCU_BRANCH="master" + +RUN git clone git://git.osmocom.org/osmo-pcu.git +ADD http://git.osmocom.org/osmo-pcu/patch?h=$OSMO_PCU_BRANCH /tmp/commit-osmo-pcu + +RUN cd osmo-pcu && \ + git fetch && git checkout -f -B $OSMO_PCU_BRANCH origin/$OSMO_PCU_BRANCH && \ + autoreconf -fi && \ + ./configure --enable-trx && \ + make -j8 install + +VOLUME /data + +COPY osmo-pcu.cfg /data/osmo-pcu.cfg + +WORKDIR /data +CMD ["/usr/local/bin/osmo-pcu", "-i", "172.18.0.230"] + +#EXPOSE diff --git a/osmo-pcu-master/Makefile b/osmo-pcu-master/Makefile new file mode 100644 index 0000000..87350c2 --- /dev/null +++ b/osmo-pcu-master/Makefile @@ -0,0 +1,3 @@ +RUN_ARGS?=--rm --network sigtran --ip 172.18.0.211 -v pcu-vol:/data + +include ../make/Makefile diff --git a/osmo-pcu-master/Release.key b/osmo-pcu-master/Release.key new file mode 100644 index 0000000..e656238 --- /dev/null +++ b/osmo-pcu-master/Release.key @@ -0,0 +1,20 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: GnuPG v1.4.5 (GNU/Linux) + +mQENBFJBt/wBCADAht3d/ilNuyzaXYw/QwTRvmjyoDvfXw+H/3Fvk1zlDZoiKPPc +a1wCVBINUZl7vYM2OXqbJwYa++JP2Q48xKSvC6thbRc/YLievkbcvTemf7IaREfl +CTjoYpoqXHa9kHMw1aALDm8CNU88jZmnV7v9L6hKkbYDxie+jpoj7D6B9JlxgNJ4 +5dQyRNsFGVcIl4Vplt1HyGc5Q5nQI/VgS2rlF/IOXmhRQBc4LEDdU8R2IKnkU4ee +S7TWanAigGAQhxGuCkS39/CWzc1DhLhjlNhBl/+RTPejkqJtAy00ZLps3+RqUN1Y +CU/Fsr7aRlYVGqQ/BlptwV0XQ2VVYJX2oEBBABEBAAG0MG5ldHdvcmsgT0JTIFBy +b2plY3QgPG5ldHdvcmtAYnVpbGQub3BlbnN1c2Uub3JnPokBPAQTAQIAJgUCWmMc +aQIbAwUJDEAUbQYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEGLrGgkXKA3fjsoI +ALSXmXzFCpTxg8a6tvXkqddY/qAmeBMNUf7hslI9wN3leNmCrnuHS8TbHWYJZgtw +8M5fKL3aRQYaIiqqm1XOUF0OqwYNDj5V3y38mM68NYOkzgSP7foMwZp9Y0TlGhtI +L8weA+2RUjB4hwwGMAYMqkRZyKW3NhPqdlGGoXac1ilwEyGXFHdOLbkhtyS+P2yb +/EvaKIN5cMLzRZKeYgdp9WuAirV+yV/SDbgvabW098lrWhGLltlRRDQgMV883p8I +ERMI1wlLFZGnHL3mfBWGeQ24M/DaBOdXQDtfBLCJ9nGztmDBUb8i6GFWU7nD2TGi +8mYUsED1ZDwO/0jdvJ4gSluIRgQTEQIABgUCUkG3/AAKCRA7MBG3a51lIzhdAJ9v +d6XPffMZRcCGgDEY5OaTn/MsCQCgrXbeZpFJgnirSrc8rRonvzYFiF4= +=Gvly +-----END PGP PUBLIC KEY BLOCK----- diff --git a/osmo-pcu-master/osmo-pcu.cfg b/osmo-pcu-master/osmo-pcu.cfg new file mode 100644 index 0000000..9a5db59 --- /dev/null +++ b/osmo-pcu-master/osmo-pcu.cfg @@ -0,0 +1,10 @@ +line vty + no login + bind 0.0.0.0 +pcu + flow-control-interval 10 + cs 2 + alloc-algorithm dynamic + alpha 0 + gamma 0 + pcu-socket /data/pcu_bts diff --git a/osmo-pcu-master/respawn.sh b/osmo-pcu-master/respawn.sh new file mode 100755 index 0000000..ae5cf60 --- /dev/null +++ b/osmo-pcu-master/respawn.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +trap "kill 0" EXIT + +while [ -e /etc/passwd ]; do + $* & + LAST_PID=$! + wait $LAST_PID +done diff --git a/ttcn3-pcu-test/.release b/ttcn3-pcu-test/.release new file mode 100644 index 0000000..adac371 --- /dev/null +++ b/ttcn3-pcu-test/.release @@ -0,0 +1,2 @@ +release=0.0.0 +tag=ttcn3-pcu-test-0.0.0 diff --git a/ttcn3-pcu-test/Dockerfile b/ttcn3-pcu-test/Dockerfile new file mode 100644 index 0000000..2cfacce --- /dev/null +++ b/ttcn3-pcu-test/Dockerfile @@ -0,0 +1,33 @@ +ARG USER +FROM $USER/debian-stretch-titan + +RUN mkdir /root/projects && (cd /root/projects && ln -sf / git) +RUN git clone git://git.osmocom.org/osmo-ttcn3-hacks.git + +RUN cd osmo-ttcn3-hacks && \ + git checkout -f -B master origin/master && \ + make deps + +RUN git config --global user.email docker at dock.er && \ + git config --global user.name "Dock Er" + +ARG OSMO_TTCN3_BRANCH="laforge/gb-sns" + +ADD http://git.osmocom.org/osmo-ttcn3-hacks/patch?h=$OSMO_TTCN3_BRANCH /tmp/commit +RUN cd osmo-ttcn3-hacks && \ + git fetch && \ + git checkout -f -B $OSMO_TTCN3_BRANCH origin/$OSMO_TTCN3_BRANCH && \ + make pcu + +VOLUME /data + +RUN ln -s /osmo-ttcn3-hacks/ttcn3-tcpdump-start.sh / && \ + ln -s /osmo-ttcn3-hacks/ttcn3-tcpdump-stop.sh / + +COPY PCU_Tests.cfg /data/PCU_Tests.cfg + +CMD cd /data && \ + /osmo-ttcn3-hacks/start-testsuite.sh /osmo-ttcn3-hacks/pcu/PCU_Tests; \ + exit_code=$?; \ + /osmo-ttcn3-hacks/log_merge.sh PCU_Tests --rm; \ + exit $exit_code diff --git a/ttcn3-pcu-test/Makefile b/ttcn3-pcu-test/Makefile new file mode 100644 index 0000000..b172280 --- /dev/null +++ b/ttcn3-pcu-test/Makefile @@ -0,0 +1,3 @@ +RUN_ARGS?=--sysctl net.ipv6.conf.all.disable_ipv6=0 --rm --network sigtran --ip 172.18.1.202 -v pcu-test-vol:/data + +include ../make/Makefile diff --git a/ttcn3-pcu-test/PCU_Tests.cfg b/ttcn3-pcu-test/PCU_Tests.cfg new file mode 100644 index 0000000..07af661 --- /dev/null +++ b/ttcn3-pcu-test/PCU_Tests.cfg @@ -0,0 +1,23 @@ +[ORDERED_INCLUDE] +"/osmo-ttcn3-hacks/Common.cfg" +"/osmo-ttcn3-hacks/pcu/PCU_Tests.default" + +[LOGGING] + +[TESTPORT_PARAMETERS] + +[MODULE_PARAMETERS] +PCU_Tests_RAW.mp_pcu_sock_path := "/data/unix/pcu_bts" +PCU_Tests.mp_nsconfig := { + local_ip := "172.18.13.10", + local_udp_port := 23000, + remote_ip := "172.18.13.101", + remote_udp_port := 23000, + nsvci := 1234, + nsei := 1234 +} + +[MAIN_CONTROLLER] + +[EXECUTE] +PCU_Tests_RAW.control diff --git a/ttcn3-pcu-test/jenkins.sh b/ttcn3-pcu-test/jenkins.sh new file mode 100755 index 0000000..bee539d --- /dev/null +++ b/ttcn3-pcu-test/jenkins.sh @@ -0,0 +1,46 @@ +#!/bin/sh + +. ../jenkins-common.sh +IMAGE_SUFFIX="${IMAGE_SUFFIX:-master}" +docker_images_require \ + "debian-jessie-build" \ + "osmo-pcu-$IMAGE_SUFFIX" \ + "debian-stretch-titan" \ + "ttcn3-pcu-test" + +network_create 172.18.13.0/24 + +mkdir $VOL_BASE_DIR/pcu-tester +mkdir $VOL_BASE_DIR/pcu-tester/unix +cp PCU_Tests.cfg $VOL_BASE_DIR/pcu-tester/ + +mkdir $VOL_BASE_DIR/pcu +mkdir $VOL_BASE_DIR/pcu/unix +cp osmo-pcu.cfg $VOL_BASE_DIR/pcu/ + +mkdir $VOL_BASE_DIR/unix + +echo Starting container with PCU +docker run --rm \ + --network $NET_NAME --ip 172.18.13.101 \ + -v $VOL_BASE_DIR/pcu:/data \ + -v $VOL_BASE_DIR/unix:/data/unix \ + --name ${BUILD_TAG}-pcu -d \ + $REPO_USER/osmo-pcu-$IMAGE_SUFFIX \ + /usr/local/bin/respawn.sh osmo-pcu -c /data/osmo-pcu.cfg + +echo Starting container with PCU testsuite +docker run --rm \ + --network $NET_NAME --ip 172.18.13.10 \ + -e "TTCN3_PCAP_PATH=/data" \ + -v $VOL_BASE_DIR/pcu-tester:/data \ + -v $VOL_BASE_DIR/unix:/data/unix \ + --name ${BUILD_TAG}-ttcn3-pcu-test \ + $REPO_USER/ttcn3-pcu-test + +echo Stopping containers +docker container kill ${BUILD_TAG}-pcu + +network_remove +rm -rf $VOL_BASE_DIR/unix +collect_logs diff --git a/ttcn3-pcu-test/osmo-pcu.cfg b/ttcn3-pcu-test/osmo-pcu.cfg new file mode 100644 index 0000000..918beea --- /dev/null +++ b/ttcn3-pcu-test/osmo-pcu.cfg @@ -0,0 +1,10 @@ +line vty + no login + bind 0.0.0.0 +pcu + flow-control-interval 10 + cs 2 + alloc-algorithm dynamic + alpha 0 + gamma 0 + pcu-socket /data/unix/pcu_bts -- To view, visit https://gerrit.osmocom.org/12986 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ia8e2ed2e7d03b8afdc7b1e068f94b0544a8112c7 Gerrit-Change-Number: 12986 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 10:58:04 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 10:58:04 +0000 Subject: Change in osmo-ci[master]: ttcn3-testsuites: Add PCU tests Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12994 Change subject: ttcn3-testsuites: Add PCU tests ...................................................................... ttcn3-testsuites: Add PCU tests Change-Id: Ifd8113c8db2b6e84d6e01539a6df031dc6f4ee80 Closes: OS#2890 --- M jobs/ttcn3-testsuites.yml 1 file changed, 4 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/94/12994/1 diff --git a/jobs/ttcn3-testsuites.yml b/jobs/ttcn3-testsuites.yml index b7a3fd0..b53d3dd 100644 --- a/jobs/ttcn3-testsuites.yml +++ b/jobs/ttcn3-testsuites.yml @@ -33,6 +33,8 @@ timer: 30 05 * * * - ttcn3-sip-test: timer: 00 07 * * * + - ttcn3-pcu-test: + timer: 00 05 * * * # latest stable - nplab-m3ua-test-latest: @@ -57,6 +59,8 @@ blocking: "^ttcn3-sgsn-test.*" - ttcn3-sip-test-latest: blocking: "^ttcn3-sip-test.*" + - ttcn3-pcu-test-latest: + blocking: "^ttcn3-pcu-test.*" - job-template: name: '{job-name}' project-type: freestyle -- To view, visit https://gerrit.osmocom.org/12994 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ifd8113c8db2b6e84d6e01539a6df031dc6f4ee80 Gerrit-Change-Number: 12994 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 11:03:20 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 11:03:20 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu-test: Use master branch, not laforge/gb-sns Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12995 Change subject: ttcn3-pcu-test: Use master branch, not laforge/gb-sns ...................................................................... ttcn3-pcu-test: Use master branch, not laforge/gb-sns All required code is now in master, let's use master. Change-Id: I106184f3f75802ac9a3109408c8eee6597b70caa --- M ttcn3-pcu-test/Dockerfile 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/95/12995/1 diff --git a/ttcn3-pcu-test/Dockerfile b/ttcn3-pcu-test/Dockerfile index 2cfacce..45b22d0 100644 --- a/ttcn3-pcu-test/Dockerfile +++ b/ttcn3-pcu-test/Dockerfile @@ -11,7 +11,7 @@ RUN git config --global user.email docker at dock.er && \ git config --global user.name "Dock Er" -ARG OSMO_TTCN3_BRANCH="laforge/gb-sns" +ARG OSMO_TTCN3_BRANCH="master" ADD http://git.osmocom.org/osmo-ttcn3-hacks/patch?h=$OSMO_TTCN3_BRANCH /tmp/commit RUN cd osmo-ttcn3-hacks && \ -- To view, visit https://gerrit.osmocom.org/12995 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I106184f3f75802ac9a3109408c8eee6597b70caa Gerrit-Change-Number: 12995 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 11:06:08 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 11:06:08 +0000 Subject: Change in osmo-ci[master]: ttcn3-testsuites: Add PCU tests In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12994 ) Change subject: ttcn3-testsuites: Add PCU tests ...................................................................... ttcn3-testsuites: Add PCU tests Change-Id: Ifd8113c8db2b6e84d6e01539a6df031dc6f4ee80 Closes: OS#2890 --- M jobs/ttcn3-testsuites.yml 1 file changed, 4 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/jobs/ttcn3-testsuites.yml b/jobs/ttcn3-testsuites.yml index b7a3fd0..b53d3dd 100644 --- a/jobs/ttcn3-testsuites.yml +++ b/jobs/ttcn3-testsuites.yml @@ -33,6 +33,8 @@ timer: 30 05 * * * - ttcn3-sip-test: timer: 00 07 * * * + - ttcn3-pcu-test: + timer: 00 05 * * * # latest stable - nplab-m3ua-test-latest: @@ -57,6 +59,8 @@ blocking: "^ttcn3-sgsn-test.*" - ttcn3-sip-test-latest: blocking: "^ttcn3-sip-test.*" + - ttcn3-pcu-test-latest: + blocking: "^ttcn3-pcu-test.*" - job-template: name: '{job-name}' project-type: freestyle -- To view, visit https://gerrit.osmocom.org/12994 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ifd8113c8db2b6e84d6e01539a6df031dc6f4ee80 Gerrit-Change-Number: 12994 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 11:06:07 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 11:06:07 +0000 Subject: Change in osmo-ci[master]: ttcn3-testsuites: Add PCU tests In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12994 ) Change subject: ttcn3-testsuites: Add PCU tests ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12994 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifd8113c8db2b6e84d6e01539a6df031dc6f4ee80 Gerrit-Change-Number: 12994 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Thu, 21 Feb 2019 11:06:07 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 11:06:19 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 11:06:19 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu-test: Use master branch, not laforge/gb-sns In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12995 ) Change subject: ttcn3-pcu-test: Use master branch, not laforge/gb-sns ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12995 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I106184f3f75802ac9a3109408c8eee6597b70caa Gerrit-Change-Number: 12995 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Thu, 21 Feb 2019 11:06:19 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 11:06:20 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 11:06:20 +0000 Subject: Change in docker-playground[master]: ttcn3-pcu-test: Use master branch, not laforge/gb-sns In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12995 ) Change subject: ttcn3-pcu-test: Use master branch, not laforge/gb-sns ...................................................................... ttcn3-pcu-test: Use master branch, not laforge/gb-sns All required code is now in master, let's use master. Change-Id: I106184f3f75802ac9a3109408c8eee6597b70caa --- M ttcn3-pcu-test/Dockerfile 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/ttcn3-pcu-test/Dockerfile b/ttcn3-pcu-test/Dockerfile index 2cfacce..45b22d0 100644 --- a/ttcn3-pcu-test/Dockerfile +++ b/ttcn3-pcu-test/Dockerfile @@ -11,7 +11,7 @@ RUN git config --global user.email docker at dock.er && \ git config --global user.name "Dock Er" -ARG OSMO_TTCN3_BRANCH="laforge/gb-sns" +ARG OSMO_TTCN3_BRANCH="master" ADD http://git.osmocom.org/osmo-ttcn3-hacks/patch?h=$OSMO_TTCN3_BRANCH /tmp/commit RUN cd osmo-ttcn3-hacks && \ -- To view, visit https://gerrit.osmocom.org/12995 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I106184f3f75802ac9a3109408c8eee6597b70caa Gerrit-Change-Number: 12995 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 11:06:28 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 11:06:28 +0000 Subject: Change in osmo-ci[master]: jobs: Introduce a tester using "virtual" tests In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12993 ) Change subject: jobs: Introduce a tester using "virtual" tests ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12993 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I19993b287cc948dbdfba9d375f80a7904f96ff4a Gerrit-Change-Number: 12993 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Thu, 21 Feb 2019 11:06:28 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 12:32:58 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 21 Feb 2019 12:32:58 +0000 Subject: Change in osmocom-bb[master]: trxcon/scheduler: count number of measurements In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12990 ) Change subject: trxcon/scheduler: count number of measurements ...................................................................... Patch Set 1: (1 comment) Would be nice to get more detailed explanation in commit message as to why this is the right thing. Was dbm_avg too high/incorrect before? https://gerrit.osmocom.org/#/c/12990/1/src/host/trxcon/sched_lchan_common.c File src/host/trxcon/sched_lchan_common.c: https://gerrit.osmocom.org/#/c/12990/1/src/host/trxcon/sched_lchan_common.c at 104 PS1, Line 104: dbm_avg = lchan->meas.rssi_sum / lchan->meas.num; So now you will end up with lower dbm_avg value than before because meas.num = meas.rssi_num + meas.toa256_num? -- To view, visit https://gerrit.osmocom.org/12990 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I45454a3ac92b8cc85dd74092e4ab6eb350f20c9a Gerrit-Change-Number: 12990 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-CC: Max Gerrit-Comment-Date: Thu, 21 Feb 2019 12:32:58 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 12:33:27 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 21 Feb 2019 12:33:27 +0000 Subject: Change in osmocom-bb[master]: trxcon/scheduler: count number of measurements In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12990 ) Change subject: trxcon/scheduler: count number of measurements ...................................................................... Patch Set 1: Code-Review-1 Also, why +2 with no reviews? -- To view, visit https://gerrit.osmocom.org/12990 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I45454a3ac92b8cc85dd74092e4ab6eb350f20c9a Gerrit-Change-Number: 12990 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 21 Feb 2019 12:33:27 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 12:49:18 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 12:49:18 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests.default: Remove content of [EXECUTE] section Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12996 Change subject: PCU_Tests.default: Remove content of [EXECUTE] section ...................................................................... PCU_Tests.default: Remove content of [EXECUTE] section If we have tests stated in the .default file and we have them stated again in the .cfg file, they will be executed twice. Let's align the PCU tests suite with those of other network elements. Change-Id: Ieeaf70153f4dc61978569d06e20947fa939cabdd --- M pcu/PCU_Tests.default 1 file changed, 0 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/96/12996/1 diff --git a/pcu/PCU_Tests.default b/pcu/PCU_Tests.default index 72b1c45..a877045 100644 --- a/pcu/PCU_Tests.default +++ b/pcu/PCU_Tests.default @@ -29,13 +29,3 @@ [MAIN_CONTROLLER] [EXECUTE] -PCU_Tests_RAW.control -# for internal use only: will always fail when called as part of normal routine -#PCU_Tests.TC_selftest_llc -#PCU_Tests.TC_selftest_rlcmac -#PCU_Tests.TC_selftest_bssgp -#PCU_Tests.TC_nsem -#PCU_Tests.TC_paging -#PCU_Tests.TC_rach -#PCU_Tests.TC_selftest_rr -#PCU_Tests.TC_dl_tbf -- To view, visit https://gerrit.osmocom.org/12996 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ieeaf70153f4dc61978569d06e20947fa939cabdd Gerrit-Change-Number: 12996 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 13:13:34 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Feb 2019 13:13:34 +0000 Subject: Change in osmo-gsm-tester[master]: jenkins: Only run journalctl if it is available on the machine In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12991 ) Change subject: jenkins: Only run journalctl if it is available on the machine ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12991 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9dee3cb0d0ca203da77dfa1a793a4e4e5f8593c6 Gerrit-Change-Number: 12991 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 21 Feb 2019 13:13:34 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 13:13:42 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Feb 2019 13:13:42 +0000 Subject: Change in osmo-gsm-tester[master]: jenkins: Only run journalctl if it is available on the machine In-Reply-To: References: Message-ID: Pau Espin Pedrol has submitted this change and it was merged. ( https://gerrit.osmocom.org/12991 ) Change subject: jenkins: Only run journalctl if it is available on the machine ...................................................................... jenkins: Only run journalctl if it is available on the machine It's not common to run journald inside containers and the journalctl command is not installed. Don't attempt to run it. Change-Id: I9dee3cb0d0ca203da77dfa1a793a4e4e5f8593c6 --- M contrib/jenkins-run.sh 1 file changed, 3 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, approved diff --git a/contrib/jenkins-run.sh b/contrib/jenkins-run.sh index 716899e..0b41247 100755 --- a/contrib/jenkins-run.sh +++ b/contrib/jenkins-run.sh @@ -30,7 +30,9 @@ # tar up all results for archiving (optional) cd "$trial_dir" -journalctl -u ofono -o short-precise --since "${time_start}" > "$(readlink last_run)/ofono.log" +if [ -x $(command -v journalctl) ]; then + journalctl -u ofono -o short-precise --since "${time_start}" > "$(readlink last_run)/ofono.log" +fi tar czf "$base/${trial_dir}-run.tgz" "$(readlink last_run)" tar czf "$base/${trial_dir}-bin.tgz" *.md5 *.tgz -- To view, visit https://gerrit.osmocom.org/12991 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I9dee3cb0d0ca203da77dfa1a793a4e4e5f8593c6 Gerrit-Change-Number: 12991 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 13:17:12 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Thu, 21 Feb 2019 13:17:12 +0000 Subject: Change in osmo-gsm-tester[master]: jenkins: Only run journalctl if it is available on the machine Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/12997 Change subject: jenkins: Only run journalctl if it is available on the machine ...................................................................... jenkins: Only run journalctl if it is available on the machine It's not common to run journald inside containers and the journalctl command is not installed. Don't attempt to run it. Change-Id: I7e4326df155dae776481bf7824694b3fb47abcad --- M contrib/jenkins-run.sh 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/97/12997/1 diff --git a/contrib/jenkins-run.sh b/contrib/jenkins-run.sh index 716899e..4a76c09 100755 --- a/contrib/jenkins-run.sh +++ b/contrib/jenkins-run.sh @@ -30,7 +30,9 @@ # tar up all results for archiving (optional) cd "$trial_dir" -journalctl -u ofono -o short-precise --since "${time_start}" > "$(readlink last_run)/ofono.log" +if [ ! -z "$(command -v journalctl)" ]; then + journalctl -u ofono -o short-precise --since "${time_start}" > "$(readlink last_run)/ofono.log" +fi tar czf "$base/${trial_dir}-run.tgz" "$(readlink last_run)" tar czf "$base/${trial_dir}-bin.tgz" *.md5 *.tgz -- To view, visit https://gerrit.osmocom.org/12997 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I7e4326df155dae776481bf7824694b3fb47abcad Gerrit-Change-Number: 12997 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 13:18:43 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Thu, 21 Feb 2019 13:18:43 +0000 Subject: Change in osmo-gsm-tester[master]: jenkins: Only run journalctl if it is available on the machine In-Reply-To: References: Message-ID: Holger Freyther has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/12997 ) Change subject: jenkins: Only run journalctl if it is available on the machine ...................................................................... jenkins: Only run journalctl if it is available on the machine It's not common to run journald inside containers and the journalctl command is not installed. Don't attempt to run it. Change-Id: I7e4326df155dae776481bf7824694b3fb47abcad --- M contrib/jenkins-run.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/97/12997/2 -- To view, visit https://gerrit.osmocom.org/12997 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I7e4326df155dae776481bf7824694b3fb47abcad Gerrit-Change-Number: 12997 Gerrit-PatchSet: 2 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 13:20:30 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Thu, 21 Feb 2019 13:20:30 +0000 Subject: Change in osmo-gsm-tester[master]: jenkins: Fix the test for journalctl if it isn't present In-Reply-To: References: Message-ID: Holger Freyther has uploaded a new patch set (#3). ( https://gerrit.osmocom.org/12997 ) Change subject: jenkins: Fix the test for journalctl if it isn't present ...................................................................... jenkins: Fix the test for journalctl if it isn't present test -x for an empty string is still true. Check if the result of command is empty or not. It seems to work for the negative case now. Change-Id: I7e4326df155dae776481bf7824694b3fb47abcad --- M contrib/jenkins-run.sh 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/97/12997/3 -- To view, visit https://gerrit.osmocom.org/12997 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I7e4326df155dae776481bf7824694b3fb47abcad Gerrit-Change-Number: 12997 Gerrit-PatchSet: 3 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 13:26:49 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Feb 2019 13:26:49 +0000 Subject: Change in osmo-bts[master]: oc2g: Remove unused static function In-Reply-To: References: Message-ID: Pau Espin Pedrol has submitted this change and it was merged. ( https://gerrit.osmocom.org/12972 ) Change subject: oc2g: Remove unused static function ...................................................................... oc2g: Remove unused static function Change-Id: I4d0a476f84bc9e92e02f94c3990daddeeaa3c5d5 --- M src/osmo-bts-oc2g/misc/oc2gbts_mgr_calib.c 1 file changed, 0 insertions(+), 12 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/osmo-bts-oc2g/misc/oc2gbts_mgr_calib.c b/src/osmo-bts-oc2g/misc/oc2gbts_mgr_calib.c index 104d279..eac8ed1 100644 --- a/src/osmo-bts-oc2g/misc/oc2gbts_mgr_calib.c +++ b/src/osmo-bts-oc2g/misc/oc2gbts_mgr_calib.c @@ -245,18 +245,6 @@ ipa_client_conn_send(mgr->oc2gbts_ctrl.bts_conn, msg); } -static void send_set_ctrl_cmd_int(struct oc2gbts_mgr_instance *mgr, const char *key, const int val) -{ - struct msgb *msg; - int ret; - - msg = msgb_alloc_headroom(1024, 128, "CTRL SET"); - ret = snprintf((char *) msg->data, 4096, "SET %u %s %d", - mgr->oc2gbts_ctrl.last_seqno++, key, val); - msg->l2h = msgb_put(msg, ret); - return send_ctrl_cmd(mgr, msg); -} - static void send_set_ctrl_cmd(struct oc2gbts_mgr_instance *mgr, const char *key, const int val, const char *text) { struct msgb *msg; -- To view, visit https://gerrit.osmocom.org/12972 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I4d0a476f84bc9e92e02f94c3990daddeeaa3c5d5 Gerrit-Change-Number: 12972 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 13:26:50 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Feb 2019 13:26:50 +0000 Subject: Change in osmo-bts[master]: oc2g: vty: Compilation error fixes due to commented code In-Reply-To: References: Message-ID: Pau Espin Pedrol has submitted this change and it was merged. ( https://gerrit.osmocom.org/12973 ) Change subject: oc2g: vty: Compilation error fixes due to commented code ...................................................................... oc2g: vty: Compilation error fixes due to commented code Change-Id: Id2b16b9acd15d0c80085fac0fdc2a57173ebb0a0 --- M src/osmo-bts-oc2g/oc2gbts_vty.c 1 file changed, 5 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/osmo-bts-oc2g/oc2gbts_vty.c b/src/osmo-bts-oc2g/oc2gbts_vty.c index 099698f..9bb4579 100644 --- a/src/osmo-bts-oc2g/oc2gbts_vty.c +++ b/src/osmo-bts-oc2g/oc2gbts_vty.c @@ -77,11 +77,13 @@ { 0, NULL } }; +/* static const struct value_string oc2g_led_mode_strs[] = { { OC2G_LED_CONTROL_BTS, "bts" }, { OC2G_LED_CONTROL_EXT, "external" }, { 0, NULL } }; +*/ static const struct value_string oc2g_auto_adj_pwr_strs[] = { { OC2G_TX_PWR_ADJ_NONE, "none" }, @@ -455,7 +457,7 @@ struct gsm_lchan *lchan; int trx_nr, ts_nr, lchan_nr; uint8_t ho_cause; - uint8_t old_ho_cause; + /* uint8_t old_ho_cause; */ /* get BTS pointer */ bts = gsm_bts_num(net, 0); @@ -519,6 +521,7 @@ / * restore HO cause * / lchan->meas_preproc.rec_ho_causes = old_ho_cause; */ + (void)lchan; /* to use lchan and avoid compilation warning */ return CMD_SUCCESS; } @@ -728,5 +731,5 @@ rc |= ctrl_cmd_install(CTRL_NODE_ROOT, &cmd_oc2g_oml_ceased); */ - return 0; + return rc; } -- To view, visit https://gerrit.osmocom.org/12973 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Id2b16b9acd15d0c80085fac0fdc2a57173ebb0a0 Gerrit-Change-Number: 12973 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-CC: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 13:31:35 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Feb 2019 13:31:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: bts: Fix race condition in f_dyn_ipa_pdch_(de)act In-Reply-To: References: Message-ID: Pau Espin Pedrol has submitted this change and it was merged. ( https://gerrit.osmocom.org/12949 ) Change subject: bts: Fix race condition in f_dyn_ipa_pdch_(de)act ...................................................................... bts: Fix race condition in f_dyn_ipa_pdch_(de)act Test BTS_Tests.TC_dyn_osmo_pdch_act_deact was sporadically failing due to receiving IND_INFO on the PCU port with pdch_mask related TS bit set to 0 after sending a PDCH ACT. That happened due to a race condition because PCU send IND_INFO periodically. As a result, it can happen that BTS sends an IND_INFO after PCU.clear was called and before the PDCH ACT is handled. Change-Id: If11ef05d97aa5f6caaa731f3817c1fecfc3edf7c --- M bts/BTS_Tests.ttcn 1 file changed, 18 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index f7caac2..230d3b6 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -3182,13 +3182,21 @@ PCU.clear; RSL.send(ts_RSL_IPA_PDCH_ACT(g_chan_nr)); /* expect INFO_IND on PCU interface listing TS as PDCH */ + timer T_wait := 2.0; + T_wait.start; alt { [] PCU.receive(t_SD_PCUIF(pcu_conn_id, tr_PCUIF_INFO_IND(bts_nr, ?))) -> value sd { if (substr(sd.data.u.info_ind.trx[trx_nr].pdch_mask, g_chan_nr.tn, 1) != '1'B) { - Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "PCUIF_INFO_IND PDCH_MASK not '1' after PDCH ACT"); + log("PCUIF_INFO_IND PDCH_MASK not yet '1' after PDCH ACT on TS", g_chan_nr.tn, + " mask:", sd.data.u.info_ind.trx[trx_nr].pdch_mask); + repeat; } } [] PCU.receive { repeat; } + [] T_wait.timeout { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Timeout waiting for PCUIF_INFO_IND PDCH_MASK to be '1' on TS", g_chan_nr.tn)); + } } /* try to activate this PDCH from the PCU point of view */ PCU.send(t_SD_PCUIF(pcu_conn_id, ts_PCUIF_ACT_REQ(bts_nr, trx_nr, g_chan_nr.tn))); @@ -3204,13 +3212,21 @@ RSL.send(ts_RSL_IPA_PDCH_DEACT(g_chan_nr)); PCU.clear; /* expect BTS to ask PCU to deactivate the channel */ + timer T_wait := 2.0; + T_wait.start; alt { [] PCU.receive(t_SD_PCUIF(pcu_conn_id, tr_PCUIF_INFO_IND(bts_nr, ?))) -> value sd { if (substr(sd.data.u.info_ind.trx[trx_nr].pdch_mask, g_chan_nr.tn, 1) != '0'B) { - Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "PCUIF_INFO_IND PDCH_MASK not '0' after PDCH DEACT"); + log("PCUIF_INFO_IND PDCH_MASK not yet '0' after PDCH DEACT on TS", g_chan_nr.tn, + " mask:", sd.data.u.info_ind.trx[trx_nr].pdch_mask); + repeat; } } [] PCU.receive { repeat; } + [] T_wait.timeout { + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, + log2str("Timeout waiting for PCUIF_INFO_IND PDCH_MASK to be '0' on TS", g_chan_nr.tn)); + } } /* Emulate PCU asking BTS to deactivate PDCH */ PCU.send(t_SD_PCUIF(pcu_conn_id, ts_PCUIF_DEACT_REQ(bts_nr, trx_nr, g_chan_nr.tn))); -- To view, visit https://gerrit.osmocom.org/12949 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If11ef05d97aa5f6caaa731f3817c1fecfc3edf7c Gerrit-Change-Number: 12949 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 13:32:05 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Feb 2019 13:32:05 +0000 Subject: Change in osmo-gsm-tester[master]: Log signals from VoiceCall dbus objects In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12899 ) Change subject: Log signals from VoiceCall dbus objects ...................................................................... Patch Set 1: Code-Review-1 Waiting to do some more tests before merging this one. -- To view, visit https://gerrit.osmocom.org/12899 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0def02b9063f75ec32c8b9382bdb12d65e1fb9eb Gerrit-Change-Number: 12899 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 21 Feb 2019 13:32:05 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 13:49:29 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 21 Feb 2019 13:49:29 +0000 Subject: Change in osmocom-bb[master]: trxcon/scheduler: count number of measurements In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/12990 ) Change subject: trxcon/scheduler: count number of measurements ...................................................................... Patch Set 1: (1 comment) Hi Max, > Would be nice to get more detailed explanation in commit message > as to why this is the right thing. I believe the commit message is satisfactory, please read it carefully. In other words: We used to count the amount of both RSSI and ToA measurements separately, but since we always receive both, i.e. there are no cases when we receive either RSSI, or ToA, it makes sense to have a shared counter of measurements. > Was dbm_avg too high/incorrect before? No. It would be calculated in the same way as before. > Patch Set 1: Code-Review-1 > Also, why +2 with no reviews? Because at the moment we have a lack of code review. Some of my further changes depend on this one, so I need to get it merged ASAP. Also, I have not merged this change immediately, so I don't see any problems here. https://gerrit.osmocom.org/#/c/12990/1/src/host/trxcon/sched_lchan_common.c File src/host/trxcon/sched_lchan_common.c: https://gerrit.osmocom.org/#/c/12990/1/src/host/trxcon/sched_lchan_common.c at 104 PS1, Line 104: dbm_avg = lchan->meas.rssi_sum / lchan->meas.num; > because meas.num = meas.rssi_num + meas.toa256_num? >From where this assumption comes from? > now you will end up with lower dbm_avg value than before No. -- To view, visit https://gerrit.osmocom.org/12990 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I45454a3ac92b8cc85dd74092e4ab6eb350f20c9a Gerrit-Change-Number: 12990 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 21 Feb 2019 13:49:29 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Thu Feb 21 14:22:39 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Thu, 21 Feb 2019 14:22:39 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-trx_=C2=BB_--wit?= =?UTF-8?Q?h-sse,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#897?= In-Reply-To: <846735847.351.1550742120053.JavaMail.jenkins@jenkins.osmocom.org> References: <846735847.351.1550742120053.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1774125307.354.1550758959295.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Thu Feb 21 14:30:00 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 21 Feb 2019 14:30:00 +0000 Subject: Change in osmocom-bb[master]: trxcon/scheduler: count number of measurements In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12990 ) Change subject: trxcon/scheduler: count number of measurements ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12990 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I45454a3ac92b8cc85dd74092e4ab6eb350f20c9a Gerrit-Change-Number: 12990 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Thu, 21 Feb 2019 14:30:00 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 14:44:39 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 21 Feb 2019 14:44:39 +0000 Subject: Change in libosmocore[master]: ipa_ccm_idtag_parse*: Fix reported length value In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/10216 ) Change subject: ipa_ccm_idtag_parse*: Fix reported length value ...................................................................... Patch Set 3: Code-Review+2 > Sure, but if I understood it correctly it's not related to commit itself so it shouldn't stop us from merging this. Then go ahead and merge it, you already have 2x +1 :) -- To view, visit https://gerrit.osmocom.org/10216 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I435aaa33605bd48635715a2c81aa2d231c1abf51 Gerrit-Change-Number: 10216 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 21 Feb 2019 14:44:39 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 14:49:06 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 21 Feb 2019 14:49:06 +0000 Subject: Change in libosmo-netif[master]: Stream client: add disconnect callback In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12980 ) Change subject: Stream client: add disconnect callback ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12980 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I905adb2d6191216551a3bcdcd1aec1f96f01612a Gerrit-Change-Number: 12980 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 21 Feb 2019 14:49:06 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 14:52:41 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Feb 2019 14:52:41 +0000 Subject: Change in osmo-gsm-tester[master]: jenkins: Fix the test for journalctl if it isn't present In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12997 ) Change subject: jenkins: Fix the test for journalctl if it isn't present ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12997 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7e4326df155dae776481bf7824694b3fb47abcad Gerrit-Change-Number: 12997 Gerrit-PatchSet: 3 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 21 Feb 2019 14:52:41 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 14:52:47 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Feb 2019 14:52:47 +0000 Subject: Change in osmo-gsm-tester[master]: jenkins: Fix the test for journalctl if it isn't present In-Reply-To: References: Message-ID: Pau Espin Pedrol has submitted this change and it was merged. ( https://gerrit.osmocom.org/12997 ) Change subject: jenkins: Fix the test for journalctl if it isn't present ...................................................................... jenkins: Fix the test for journalctl if it isn't present test -x for an empty string is still true. Check if the result of command is empty or not. It seems to work for the negative case now. Change-Id: I7e4326df155dae776481bf7824694b3fb47abcad --- M contrib/jenkins-run.sh 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Pau Espin Pedrol: Looks good to me, approved Jenkins Builder: Verified diff --git a/contrib/jenkins-run.sh b/contrib/jenkins-run.sh index 0b41247..4a76c09 100755 --- a/contrib/jenkins-run.sh +++ b/contrib/jenkins-run.sh @@ -30,7 +30,7 @@ # tar up all results for archiving (optional) cd "$trial_dir" -if [ -x $(command -v journalctl) ]; then +if [ ! -z "$(command -v journalctl)" ]; then journalctl -u ofono -o short-precise --since "${time_start}" > "$(readlink last_run)/ofono.log" fi tar czf "$base/${trial_dir}-run.tgz" "$(readlink last_run)" -- To view, visit https://gerrit.osmocom.org/12997 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I7e4326df155dae776481bf7824694b3fb47abcad Gerrit-Change-Number: 12997 Gerrit-PatchSet: 3 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 14:55:53 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 21 Feb 2019 14:55:53 +0000 Subject: Change in osmo-sysmon[master]: Update config example In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12992 ) Change subject: Update config example ...................................................................... Patch Set 1: Code-Review-1 (1 comment) https://gerrit.osmocom.org/#/c/12992/1/doc/examples/osmo-sysmon.cfg File doc/examples/osmo-sysmon.cfg: https://gerrit.osmocom.org/#/c/12992/1/doc/examples/osmo-sysmon.cfg at 14 PS1, Line 14: ping www.siminn.is Are we sure that this is okay with them? Otherwise, maybe use something neutral like "yourdomain.example"? https://en.wikipedia.org/wiki/.example -- To view, visit https://gerrit.osmocom.org/12992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I78025027d48a1213b2a23252c8261d9cb4564027 Gerrit-Change-Number: 12992 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 21 Feb 2019 14:55:53 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 15:00:29 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Thu, 21 Feb 2019 15:00:29 +0000 Subject: Change in osmo-sysmon[master]: OpenVPN: track interface disconnect In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12989 ) Change subject: OpenVPN: track interface disconnect ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12989 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I11b8bc71c1e9cbbf992ee3b7c1c9aae6e6f697e0 Gerrit-Change-Number: 12989 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 21 Feb 2019 15:00:29 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 15:03:47 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Feb 2019 15:03:47 +0000 Subject: Change in osmo-sysmon[master]: Update config example In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12992 ) Change subject: Update config example ...................................................................... Patch Set 1: Agree with osmith. -- To view, visit https://gerrit.osmocom.org/12992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I78025027d48a1213b2a23252c8261d9cb4564027 Gerrit-Change-Number: 12992 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 21 Feb 2019 15:03:47 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 15:03:54 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Feb 2019 15:03:54 +0000 Subject: Change in osmo-sysmon[master]: Update config example In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12992 ) Change subject: Update config example ...................................................................... Patch Set 1: Code-Review-1 -- To view, visit https://gerrit.osmocom.org/12992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I78025027d48a1213b2a23252c8261d9cb4564027 Gerrit-Change-Number: 12992 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 21 Feb 2019 15:03:54 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 15:06:02 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Feb 2019 15:06:02 +0000 Subject: Change in osmo-sysmon[master]: OpenVPN: track interface disconnect In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12989 ) Change subject: OpenVPN: track interface disconnect ...................................................................... Patch Set 1: Code-Review-1 build failure: osysmon_openvpn.c:191:2: error: implicit declaration of function ?osmo_stream_cli_set_disconnect_cb? [-Werror=implicit-function-declaration] osmo_stream_cli_set_disconnect_cb(vpn->mgmt, disconnect_cb); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Missing header include? -- To view, visit https://gerrit.osmocom.org/12989 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I11b8bc71c1e9cbbf992ee3b7c1c9aae6e6f697e0 Gerrit-Change-Number: 12989 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 21 Feb 2019 15:06:02 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Thu Feb 21 15:10:06 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Thu, 21 Feb 2019 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#408?= In-Reply-To: <579299764.335.1550675406772.JavaMail.jenkins@jenkins.osmocom.org> References: <579299764.335.1550675406772.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <2132091540.355.1550761806805.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.69 KB...] + ./configure checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Thu Feb 21 15:39:13 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 15:39:13 +0000 Subject: Change in libosmocore[master]: select: Call log_reset_context() before calling file descriptor callb... Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/12998 Change subject: select: Call log_reset_context() before calling file descriptor callbacks ...................................................................... select: Call log_reset_context() before calling file descriptor callbacks Make sure to clear any log context before processing the next incoming message as part of some file descriptor callback. This effectively prevents "context leaking" from processing of one message into processing of the next message as part of one iteration through the list of file descriptors here. Change-Id: I3644c7bc1a9cec5858eb0faf94efc8c3ba7f5d8d Closes: OS#3813 --- M src/select.c 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/98/12998/1 diff --git a/src/select.c b/src/select.c index b594ca5..4e7be35 100644 --- a/src/select.c +++ b/src/select.c @@ -35,6 +35,7 @@ #include #include #include +#include #include "../config.h" @@ -214,6 +215,11 @@ if (flags) { work = 1; + /* make sure to clear any log context before processing the next incoming message + * as part of some file descriptor callback. This effectively prevents "context + * leaking" from processing of one message into processing of the next message as part + * of one iteration through the list of file descriptors here. See OS#3813 */ + log_reset_context(); ufd->cb(ufd, flags); } /* ugly, ugly hack. If more than one filedescriptor was -- To view, visit https://gerrit.osmocom.org/12998 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I3644c7bc1a9cec5858eb0faf94efc8c3ba7f5d8d Gerrit-Change-Number: 12998 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 15:46:21 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 21 Feb 2019 15:46:21 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Log FN and RA on RACH test timeouts Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/12999 Change subject: Log FN and RA on RACH test timeouts ...................................................................... Log FN and RA on RACH test timeouts Change-Id: I6caac582649e38e77938602fa675d50bdde57790 --- M bts/BTS_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/99/12999/1 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 230d3b6..66bf040 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -1015,7 +1015,7 @@ } [] RSL_CCHAN.receive { repeat; } [] T.timeout { - Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Timeout waiting for CHAN RQD"); + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, log2str("Timeout waiting for CHAN RQD FN=", fn, " RA=", ra)); } } } -- To view, visit https://gerrit.osmocom.org/12999 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6caac582649e38e77938602fa675d50bdde57790 Gerrit-Change-Number: 12999 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 15:47:45 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 21 Feb 2019 15:47:45 +0000 Subject: Change in libosmo-netif[master]: Stream client: add disconnect callback In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12980 ) Change subject: Stream client: add disconnect callback ...................................................................... Stream client: add disconnect callback It's similar to connect_cb() but called once client has been disconnected. Change-Id: I905adb2d6191216551a3bcdcd1aec1f96f01612a --- M examples/ipa-stream-client.c M examples/stream-client.c M include/osmocom/netif/stream.h M src/stream.c 4 files changed, 31 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, but someone else must approve osmith: Looks good to me, approved diff --git a/examples/ipa-stream-client.c b/examples/ipa-stream-client.c index 2151090..ec7d2b3 100644 --- a/examples/ipa-stream-client.c +++ b/examples/ipa-stream-client.c @@ -54,6 +54,13 @@ exit(EXIT_SUCCESS); } +static int disconnect_cb(struct osmo_stream_cli *conn) +{ + LOGP(DIPATEST, LOGL_NOTICE, "disconnected\n"); + + return 0; +} + static int connect_cb(struct osmo_stream_cli *conn) { int *__num_msgs = osmo_stream_cli_get_data(conn); @@ -176,6 +183,7 @@ osmo_stream_cli_set_addr(conn, "127.0.0.1"); osmo_stream_cli_set_port(conn, 10000); osmo_stream_cli_set_connect_cb(conn, connect_cb); + osmo_stream_cli_set_disconnect_cb(conn, disconnect_cb); osmo_stream_cli_set_read_cb(conn, read_cb); osmo_stream_cli_set_data(conn, &num_msgs); diff --git a/examples/stream-client.c b/examples/stream-client.c index e2fb901..f590f25 100644 --- a/examples/stream-client.c +++ b/examples/stream-client.c @@ -43,6 +43,13 @@ return 0; } +static int disconnect_cb(struct osmo_stream_cli *conn) +{ + LOGP(DSTREAMTEST, LOGL_NOTICE, "disconnected: %s\n", osmo_stream_cli_get_sockname(conn)); + + return 0; +} + static int read_cb(struct osmo_stream_cli *conn) { int bytes; @@ -121,6 +128,7 @@ osmo_stream_cli_set_addr(conn, "127.0.0.1"); osmo_stream_cli_set_port(conn, 10000); osmo_stream_cli_set_connect_cb(conn, connect_cb); + osmo_stream_cli_set_disconnect_cb(conn, disconnect_cb); osmo_stream_cli_set_read_cb(conn, read_cb); if (osmo_stream_cli_open(conn) < 0) { diff --git a/include/osmocom/netif/stream.h b/include/osmocom/netif/stream.h index 3044511..56162e4 100644 --- a/include/osmocom/netif/stream.h +++ b/include/osmocom/netif/stream.h @@ -64,6 +64,7 @@ char *osmo_stream_cli_get_sockname(const struct osmo_stream_cli *cli); struct osmo_fd *osmo_stream_cli_get_ofd(struct osmo_stream_cli *cli); void osmo_stream_cli_set_connect_cb(struct osmo_stream_cli *cli, int (*connect_cb)(struct osmo_stream_cli *cli)); +void osmo_stream_cli_set_disconnect_cb(struct osmo_stream_cli *cli, int (*disconnect_cb)(struct osmo_stream_cli *cli)); void osmo_stream_cli_set_read_cb(struct osmo_stream_cli *cli, int (*read_cb)(struct osmo_stream_cli *cli)); void osmo_stream_cli_reconnect(struct osmo_stream_cli *cli); diff --git a/src/stream.c b/src/stream.c index 1880e25..c4db3d7 100644 --- a/src/stream.c +++ b/src/stream.c @@ -155,6 +155,7 @@ uint16_t local_port; uint16_t proto; int (*connect_cb)(struct osmo_stream_cli *srv); + int (*disconnect_cb)(struct osmo_stream_cli *srv); int (*read_cb)(struct osmo_stream_cli *srv); int (*write_cb)(struct osmo_stream_cli *srv); void *data; @@ -194,8 +195,11 @@ close(cli->ofd.fd); cli->ofd.fd = -1; - if (cli->state == STREAM_CLI_STATE_CONNECTED) + if (cli->state == STREAM_CLI_STATE_CONNECTED) { LOGSCLI(cli, LOGL_DEBUG, "connection closed\n"); + if (cli->disconnect_cb) + cli->disconnect_cb(cli); + } cli->state = STREAM_CLI_STATE_NONE; } @@ -442,6 +446,15 @@ cli->connect_cb = connect_cb; } +/*! \brief Set the call-back function called on disconnect of the stream client socket + * \param[in] cli Stream Client to modify + * \param[in] disconnect_cb Call-back function to be called upon disconnect */ +void osmo_stream_cli_set_disconnect_cb(struct osmo_stream_cli *cli, + int (*disconnect_cb)(struct osmo_stream_cli *cli)) +{ + cli->disconnect_cb = disconnect_cb; +} + /*! \brief Set the call-back function called to read from the stream client socket * \param[in] cli Stream Client to modify * \param[in] read_cb Call-back function to be called when we want to read */ -- To view, visit https://gerrit.osmocom.org/12980 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I905adb2d6191216551a3bcdcd1aec1f96f01612a Gerrit-Change-Number: 12980 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 15:52:27 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 21 Feb 2019 15:52:27 +0000 Subject: Change in osmo-sysmon[master]: OpenVPN: track interface disconnect In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12989 ) Change subject: OpenVPN: track interface disconnect ...................................................................... Patch Set 1: > Missing header include? Missing dependency - see commit message. -- To view, visit https://gerrit.osmocom.org/12989 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I11b8bc71c1e9cbbf992ee3b7c1c9aae6e6f697e0 Gerrit-Change-Number: 12989 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 21 Feb 2019 15:52:27 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 15:52:53 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 15:52:53 +0000 Subject: Change in libosmocore[master]: gprs_ns: Add missing NSVCI IE to NS-BLOCK-ACK message In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12969 ) Change subject: gprs_ns: Add missing NSVCI IE to NS-BLOCK-ACK message ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/12969/1/src/gb/gprs_ns.c File src/gb/gprs_ns.c: https://gerrit.osmocom.org/#/c/12969/1/src/gb/gprs_ns.c at 560 PS1, Line 560: log_set_context(LOG_CTX_GB_NSVC, nsvc); > the solution then is to make sure the logging context is re-initialized to none every time we come o [?] see https://osmocom.org/issues/3813 -- To view, visit https://gerrit.osmocom.org/12969 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie7205e99d57f1e42d941f1be2460d8c9f46aadfe Gerrit-Change-Number: 12969 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 21 Feb 2019 15:52:53 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 15:53:23 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 15:53:23 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Log FN and RA on RACH test timeouts In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12999 ) Change subject: Log FN and RA on RACH test timeouts ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12999 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6caac582649e38e77938602fa675d50bdde57790 Gerrit-Change-Number: 12999 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 21 Feb 2019 15:53:23 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 15:53:25 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 15:53:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Log FN and RA on RACH test timeouts In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12999 ) Change subject: Log FN and RA on RACH test timeouts ...................................................................... Log FN and RA on RACH test timeouts Change-Id: I6caac582649e38e77938602fa675d50bdde57790 --- M bts/BTS_Tests.ttcn 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 230d3b6..66bf040 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -1015,7 +1015,7 @@ } [] RSL_CCHAN.receive { repeat; } [] T.timeout { - Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, "Timeout waiting for CHAN RQD"); + Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, log2str("Timeout waiting for CHAN RQD FN=", fn, " RA=", ra)); } } } -- To view, visit https://gerrit.osmocom.org/12999 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I6caac582649e38e77938602fa675d50bdde57790 Gerrit-Change-Number: 12999 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 15:54:45 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 15:54:45 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests.default: Remove content of [EXECUTE] section In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12996 ) Change subject: PCU_Tests.default: Remove content of [EXECUTE] section ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12996 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ieeaf70153f4dc61978569d06e20947fa939cabdd Gerrit-Change-Number: 12996 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Thu, 21 Feb 2019 15:54:45 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 15:54:46 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 15:54:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU_Tests.default: Remove content of [EXECUTE] section In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12996 ) Change subject: PCU_Tests.default: Remove content of [EXECUTE] section ...................................................................... PCU_Tests.default: Remove content of [EXECUTE] section If we have tests stated in the .default file and we have them stated again in the .cfg file, they will be executed twice. Let's align the PCU tests suite with those of other network elements. Change-Id: Ieeaf70153f4dc61978569d06e20947fa939cabdd --- M pcu/PCU_Tests.default 1 file changed, 0 insertions(+), 10 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/pcu/PCU_Tests.default b/pcu/PCU_Tests.default index 72b1c45..a877045 100644 --- a/pcu/PCU_Tests.default +++ b/pcu/PCU_Tests.default @@ -29,13 +29,3 @@ [MAIN_CONTROLLER] [EXECUTE] -PCU_Tests_RAW.control -# for internal use only: will always fail when called as part of normal routine -#PCU_Tests.TC_selftest_llc -#PCU_Tests.TC_selftest_rlcmac -#PCU_Tests.TC_selftest_bssgp -#PCU_Tests.TC_nsem -#PCU_Tests.TC_paging -#PCU_Tests.TC_rach -#PCU_Tests.TC_selftest_rr -#PCU_Tests.TC_dl_tbf -- To view, visit https://gerrit.osmocom.org/12996 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ieeaf70153f4dc61978569d06e20947fa939cabdd Gerrit-Change-Number: 12996 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 15:55:31 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 21 Feb 2019 15:55:31 +0000 Subject: Change in osmo-mgw[master]: Add option to GSM HR frames to RFC5593 representation In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12979 ) Change subject: Add option to GSM HR frames to RFC5593 representation ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Gerrit-Change-Number: 12979 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: dexter Gerrit-Reviewer: tnt Gerrit-Comment-Date: Thu, 21 Feb 2019 15:55:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 15:56:09 2019 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Thu, 21 Feb 2019 15:56:09 +0000 Subject: Change in osmo-mgw[master]: Add option to GSM HR frames to RFC5593 representation In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/12979 ) Change subject: Add option to GSM HR frames to RFC5593 representation ...................................................................... Patch Set 2: Code-Review-1 (1 comment) Looks good to me except for the small cut&paste issue in the vty command. https://gerrit.osmocom.org/#/c/12979/2/src/libosmo-mgcp/mgcp_vty.c File src/libosmo-mgcp/mgcp_vty.c: https://gerrit.osmocom.org/#/c/12979/2/src/libosmo-mgcp/mgcp_vty.c at 743 PS2, Line 743: g_cfg->trunk.rfc5993_hr_convert = true; I think this should be false. -- To view, visit https://gerrit.osmocom.org/12979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Gerrit-Change-Number: 12979 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: dexter Gerrit-Reviewer: tnt Gerrit-Comment-Date: Thu, 21 Feb 2019 15:56:09 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 16:04:14 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Thu, 21 Feb 2019 16:04:14 +0000 Subject: Change in osmo-ci[master]: jobs: Introduce a tester using "virtual" tests In-Reply-To: References: Message-ID: Holger Freyther has posted comments on this change. ( https://gerrit.osmocom.org/12993 ) Change subject: jobs: Introduce a tester using "virtual" tests ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/12993 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I19993b287cc948dbdfba9d375f80a7904f96ff4a Gerrit-Change-Number: 12993 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Comment-Date: Thu, 21 Feb 2019 16:04:14 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 16:04:55 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Thu, 21 Feb 2019 16:04:55 +0000 Subject: Change in osmo-ci[master]: jobs: Introduce a tester using "virtual" tests In-Reply-To: References: Message-ID: Holger Freyther has submitted this change and it was merged. ( https://gerrit.osmocom.org/12993 ) Change subject: jobs: Introduce a tester using "virtual" tests ...................................................................... jobs: Introduce a tester using "virtual" tests With mobile, virtphy, osmo-bts-virtual we can run e2e tests without the need of any hardware. Create a dedicated job for it. This avoids having to share resources (e.g. lock state/ip allocations) with other builds. Change-Id: I19993b287cc948dbdfba9d375f80a7904f96ff4a --- M jobs/osmo-gsm-tester-runner.yml 1 file changed, 57 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Holger Freyther: Verified diff --git a/jobs/osmo-gsm-tester-runner.yml b/jobs/osmo-gsm-tester-runner.yml index cfb32e2..e0cfe40 100644 --- a/jobs/osmo-gsm-tester-runner.yml +++ b/jobs/osmo-gsm-tester-runner.yml @@ -8,6 +8,7 @@ - 'osmo-gsm-tester_run-{stage}' - 'osmo-gsm-tester_gerrit' - 'osmo-gsm-tester_ttcn3' + - 'osmo-gsm-tester_virtual' - scm: name: osmo-gsm-tester-gerrit @@ -195,3 +196,59 @@ - junit: results: 'trial-*/last_run/trial-*.xml' allow-empty-results: true + +# virtual tester job +- job: + name: 'osmo-gsm-tester_virtual' + defaults: runner + node: 'osmocom-master-debian9' + scm: + - 'osmo-gsm-tester-repo' + triggers: + - timed: "H H/2 * * *" + - pollscm: + cron: "H/5 * * * *" + builders: + - shell: | + # make sure no bin artifacts from a previous run remain + rm -f *.tgz *.md5 + - copy_artifact_all + - copy_artifact: + repo: osmo-gsm-tester_build-osmocom-bb + - shell: > + unlink osmo-gsm-tester/example/resources.conf || true + + ln -s resources.conf.virtual osmo-gsm-tester/example/resources.conf + + # TODO: We (want to) grant CAP_SYS_NICE for osmo-bts-virtual + # but with newer cgroup support and the --cpu-rt-runtime/--ulimit + # rtprio=99 flags we can limit the damage a job can do. + + docker run --rm=true \ + -e HOME=/build \ + -e JOB_NAME="$JOB_NAME" \ + -e OSMO_GSM_TESTER_CONF="/build/osmo-gsm-tester/example" \ + -e OSMO_GSM_TESTER_OPTS="$OSMO_GSM_TESTER_OPTS" \ + -e BUILD_NUMBER="$BUILD_NUMBER" \ + -w /build -i \ + -v "$PWD:/build" \ + -v "$HOME/bin:/build_bin" \ + -v "$HOME/.ssh:/home/build/.ssh:ro" \ + --cap-add=sys_nice \ + osmocom:deb9_amd64 /bin/bash -c 'LANG="en_US.utf8" LC_ALL="en_US.UTF-8" LC_LANG="en_US.UTF-8" PATH="$PWD/osmo-gsm-tester/src:${PATH}" ./osmo-gsm-tester/contrib/jenkins-run.sh' + publishers: + - archive: + artifacts: '*-run.tgz, *-bin.tgz' + default-excludes: false + - junit: + results: 'trial-*/last_run/trial-*.xml' + allow-empty-results: true + parameters: + - string: + name: "OSMO_GSM_TESTER_OPTS" + default: "-s nitb_netreg_mass" + description: "pass additional command line options to osmo-gsm-tester.py, e.g. to select specific suites:scenarios. Default: leave empty." + - string: + name: "OSMO_GSM_TESTER_BRANCH" + default: "origin/master" + description: "Which branch/sha should be used for testing" -- To view, visit https://gerrit.osmocom.org/12993 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I19993b287cc948dbdfba9d375f80a7904f96ff4a Gerrit-Change-Number: 12993 Gerrit-PatchSet: 2 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 16:10:23 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 21 Feb 2019 16:10:23 +0000 Subject: Change in osmo-sysmon[master]: Update config example In-Reply-To: References: Message-ID: Hello Pau Espin Pedrol, daniel, Harald Welte, osmith, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12992 to look at the new patch set (#2). Change subject: Update config example ...................................................................... Update config example Add OpenVPN and ping probe entries to example config. Change-Id: I78025027d48a1213b2a23252c8261d9cb4564027 Related: SYS#2655 --- M doc/examples/osmo-sysmon.cfg 1 file changed, 2 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sysmon refs/changes/92/12992/2 -- To view, visit https://gerrit.osmocom.org/12992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I78025027d48a1213b2a23252c8261d9cb4564027 Gerrit-Change-Number: 12992 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 16:22:03 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 21 Feb 2019 16:22:03 +0000 Subject: Change in libosmocore[master]: Add multipatch capability to osmo-config-merge In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12897 ) Change subject: Add multipatch capability to osmo-config-merge ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I212cbdc3bf6f251c1a3175737ac74242fb004c6d Gerrit-Change-Number: 12897 Gerrit-PatchSet: 4 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 21 Feb 2019 16:22:03 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 16:26:22 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Thu, 21 Feb 2019 16:26:22 +0000 Subject: Change in osmo-ci[master]: Add timeout wrapper to regular gerrit verification jobs In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12857 ) Change subject: Add timeout wrapper to regular gerrit verification jobs ...................................................................... Patch Set 2: Have you also checked that this terminates as expected when something runs longer than expected? i.e. that the signal causes ttcn3 and the docker instance to terminate? -- To view, visit https://gerrit.osmocom.org/12857 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9d0eb6b9eddf3e17120e74d7570d42291c0750ae Gerrit-Change-Number: 12857 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 21 Feb 2019 16:26:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 16:34:40 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 21 Feb 2019 16:34:40 +0000 Subject: Change in osmo-mgw[master]: Add option to GSM HR frames to RFC5593 representation In-Reply-To: References: Message-ID: Hello tnt, Pau Espin Pedrol, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12979 to look at the new patch set (#3). Change subject: Add option to GSM HR frames to RFC5593 representation ...................................................................... Add option to GSM HR frames to RFC5593 representation There are different specifications around on how a GSM-HR frame should be encapsulated into an RTP packet. RFC5593 specifies a ToC (Table of Contents) byte to be prepended in front of the payload data. The two formats can be distinguished easily by their length. Then the data can be formatted into the corresponding opposite format and vice versa. - Add new VTY rtp-patch options - Add conversion function Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Related: OS#3807 --- M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_internal.h M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_vty.c 5 files changed, 88 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/79/12979/3 -- To view, visit https://gerrit.osmocom.org/12979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Gerrit-Change-Number: 12979 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: dexter Gerrit-Reviewer: tnt -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 17:01:21 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 21 Feb 2019 17:01:21 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RTP_Emulation: check received RTP packets Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/13000 Change subject: RTP_Emulation: check received RTP packets ...................................................................... RTP_Emulation: check received RTP packets The configuration of the RTP Emulation (RtpemConfig) allows to set a fixed RTP payload that is then used when RTP packets are transmitted. However, when packets are received, then the payload is not checked. Lets check the received data against some user configurable rx payload, that is by default set to the tx payload. Change-Id: Id0b125aaf915497d0a4f051af890fc34e09da61d Related: OS#3807 --- M library/RTP_Emulation.ttcn 1 file changed, 14 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/00/13000/1 diff --git a/library/RTP_Emulation.ttcn b/library/RTP_Emulation.ttcn index fcb158b..b8f0ce4 100644 --- a/library/RTP_Emulation.ttcn +++ b/library/RTP_Emulation.ttcn @@ -119,7 +119,9 @@ /* number of packets received wrong payload type */ integer num_pkts_rx_err_pt, /* number of packets received during Rx disable */ - integer num_pkts_rx_err_disabled + integer num_pkts_rx_err_disabled, + /* number of packets received with mismatching payload */ + integer num_pkts_rx_err_payload } const RtpemStats c_RtpemStatsReset := { @@ -130,7 +132,8 @@ num_pkts_rx_err_seq := 0, num_pkts_rx_err_ts := 0, num_pkts_rx_err_pt := 0, - num_pkts_rx_err_disabled := 0 + num_pkts_rx_err_disabled := 0, + num_pkts_rx_err_payload := 0 } type record RtpemConfig { @@ -139,6 +142,7 @@ integer tx_duration_ms, BIT32_BO_LAST tx_ssrc, octetstring tx_fixed_payload optional, + octetstring rx_fixed_payload optional, boolean iuup_mode, boolean iuup_tx_init }; @@ -149,6 +153,7 @@ tx_duration_ms := 20, tx_ssrc := '11011110101011011011111011101111'B, tx_fixed_payload := '01020304'O, + rx_fixed_payload := '01020304'O, iuup_mode := false, iuup_tx_init := true } @@ -276,6 +281,10 @@ setverdict(fail, "RTP packets received while RX was disabled"); mtc.stop; } + if (s.num_pkts_rx_err_payload != 0) { + setverdict(fail, "RTP packets with mismatching payload received"); + mtc.stop; + } } template PDU_RTP ts_RTP(BIT32_BO_LAST ssrc, INT7b pt, LIN2_BO_LAST seq, uint32_t ts, @@ -437,8 +446,6 @@ /* process received RTCP/RTP if receiver enabled */ [g_rx_enabled] RTP.receive(tr_rtp) -> value rx_rtp { - //log("RX RTP: ", rx_rtp); - /* increment counters */ if (rx_rtp.msg.rtp.payload_type != g_cfg.tx_payload_type) { g_stats_rtp.num_pkts_rx_err_pt := g_stats_rtp.num_pkts_rx_err_pt+1; @@ -446,6 +453,9 @@ g_stats_rtp.num_pkts_rx := g_stats_rtp.num_pkts_rx+1; g_stats_rtp.bytes_payload_rx := g_stats_rtp.bytes_payload_rx + lengthof(rx_rtp.msg.rtp.data); + if (rx_rtp.msg.rtp.data != g_cfg.rx_fixed_payload) { + g_stats_rtp.num_pkts_rx_err_payload := g_stats_rtp.num_pkts_rx_err_payload + 1 + } if (g_cfg.iuup_mode) { rx_rtp.msg.rtp.data := f_IuUP_Em_rx_decaps(g_iuup_ent, rx_rtp.msg.rtp.data); } -- To view, visit https://gerrit.osmocom.org/13000 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id0b125aaf915497d0a4f051af890fc34e09da61d Gerrit-Change-Number: 13000 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 17:01:22 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 21 Feb 2019 17:01:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: Add testcase to test ts101318/rfc5993 conversion Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/13001 Change subject: MGCP_Test: Add testcase to test ts101318/rfc5993 conversion ...................................................................... MGCP_Test: Add testcase to test ts101318/rfc5993 conversion The MGW recentenly adds support to convert between ts101318 and rfc5993 when GSM-HR is used. Lets add a testcase for that. depends: osmo-mgw Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Change-Id: I96df45fe45b53088e07b26f14173a75498a84143 Related: OS#3807 --- M mgw/MGCP_Test.ttcn M mgw/expected-results.xml 2 files changed, 59 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/01/13001/1 diff --git a/mgw/MGCP_Test.ttcn b/mgw/MGCP_Test.ttcn index 9eff8c2..4969a3f 100644 --- a/mgw/MGCP_Test.ttcn +++ b/mgw/MGCP_Test.ttcn @@ -1314,6 +1314,63 @@ setverdict(pass); } + + /* create two local RTP emulations; create two connections on MGW EP, see if + * exchanged data is converted bwtween ts101318 and rfc5993 */ + testcase TC_ts101318_rfc5993_rtp_conversion() runs on dummy_CT { + var RtpFlowData flow[2]; + var RtpemStats stats[2]; + var MgcpResponse resp; + var MgcpEndpoint ep := c_mgw_ep_rtpbridge & "2@" & c_mgw_domain; + var MgcpCallId call_id := '1226'H; + + f_init(ep); + + /* Turn on conversion mode */ + f_vty_enter_config(MGWVTY); + f_vty_transceive(MGWVTY, "mgcp"); + f_vty_transceive(MGWVTY, "rtp-patch rfc5993hr"); + + /* from us to MGW */ + flow[0] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 111, "GSM-HR-08/8000")); + /* bind local RTP emulation sockets */ + flow[0].em.portnr := 10000; + flow[0].rtp_cfg := c_RtpemDefaultCfg; + flow[0].rtp_cfg.tx_payload_type := flow[0].pt; + flow[0].rtp_cfg.rx_fixed_payload := '0b11b3eede60be4e3ec68838c7b5'O; + flow[0].rtp_cfg.tx_fixed_payload := '0b11b3eede60be4e3ec68838c7b5'O; + f_flow_create(RTPEM[0], ep, call_id, "sendrecv", flow[0]); + + /* from MGW back to us */ + flow[1] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 111, "GSM-HR-08/8000")); + flow[1].em.portnr := 20000; + flow[1].rtp_cfg := c_RtpemDefaultCfg; + flow[1].rtp_cfg.tx_payload_type := flow[1].pt; + flow[1].rtp_cfg.rx_fixed_payload := '000b11b3eede60be4e3ec68838c7b5'O; + flow[1].rtp_cfg.tx_fixed_payload := '000b11b3eede60be4e3ec68838c7b5'O; + f_flow_create(RTPEM[1], ep, call_id, "sendrecv", flow[1]); + + f_rtpem_mode(RTPEM[1], RTPEM_MODE_BIDIR); + f_rtpem_mode(RTPEM[0], RTPEM_MODE_BIDIR); + + f_sleep(1.0); + + f_flow_delete(RTPEM[0]); + f_flow_delete(RTPEM[1], ep, call_id); + + stats[0] := f_rtpem_stats_get(RTPEM[0]); + stats[1] := f_rtpem_stats_get(RTPEM[1]); + + f_rtpem_stats_err_check(stats[0]); + f_rtpem_stats_err_check(stats[1]); + + /* Turn off conversion mode */ + f_vty_transceive(MGWVTY, "no rtp-patch rfc5993hr"); + + setverdict(pass); + } + + /* TODO: Double-DLCX (no retransmission) */ @@ -1364,5 +1421,6 @@ execute(TC_two_crcx_mdcx_and_rtp()); execute(TC_two_crcx_and_unsolicited_rtp()); execute(TC_two_crcx_and_one_mdcx_rtp_ho()); + execute(TC_ts101318_rfc5993_rtp_conversion()); } } diff --git a/mgw/expected-results.xml b/mgw/expected-results.xml index b45ba1f..f5bc1a0 100644 --- a/mgw/expected-results.xml +++ b/mgw/expected-results.xml @@ -37,4 +37,5 @@ + -- To view, visit https://gerrit.osmocom.org/13001 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I96df45fe45b53088e07b26f14173a75498a84143 Gerrit-Change-Number: 13001 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 17:16:46 2019 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Thu, 21 Feb 2019 17:16:46 +0000 Subject: Change in osmo-mgw[master]: Add option to GSM HR frames to RFC5593 representation In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/12979 ) Change subject: Add option to GSM HR frames to RFC5593 representation ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Gerrit-Change-Number: 12979 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: dexter Gerrit-Reviewer: tnt Gerrit-Comment-Date: Thu, 21 Feb 2019 17:16:46 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 17:57:33 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Feb 2019 17:57:33 +0000 Subject: Change in osmo-ci[master]: jobs: osmo-gsm-tester: Add oc2g jobs Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/13002 Change subject: jobs: osmo-gsm-tester: Add oc2g jobs ...................................................................... jobs: osmo-gsm-tester: Add oc2g jobs Change-Id: I5ea9b783a2a2017cb134e72087e217a4184184b2 --- M jobs/osmo-gsm-tester-builder.yml M jobs/osmo-gsm-tester-runner.yml M jobs/osmo-gsm-tester-trigger.yml 3 files changed, 13 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/02/13002/1 diff --git a/jobs/osmo-gsm-tester-builder.yml b/jobs/osmo-gsm-tester-builder.yml index 1b522fc..89ca203 100644 --- a/jobs/osmo-gsm-tester-builder.yml +++ b/jobs/osmo-gsm-tester-builder.yml @@ -25,6 +25,10 @@ triggered-by: master-osmo-bts - osmo-pcu-sysmo: triggered-by: master-osmo-pcu + - osmo-bts-oc2g: + triggered-by: master-osmo-bts + - osmo-pcu-oc2g: + triggered-by: master-osmo-pcu triggered-by: 'master-{repo}' jobs: diff --git a/jobs/osmo-gsm-tester-runner.yml b/jobs/osmo-gsm-tester-runner.yml index e0cfe40..c9d84a3 100644 --- a/jobs/osmo-gsm-tester-runner.yml +++ b/jobs/osmo-gsm-tester-runner.yml @@ -82,6 +82,10 @@ repo: osmo-gsm-tester_build-osmo-bts-sysmo - copy_artifact: repo: osmo-gsm-tester_build-osmo-pcu-sysmo + - copy_artifact: + repo: osmo-gsm-tester_build-osmo-bts-oc2g + - copy_artifact: + repo: osmo-gsm-tester_build-osmo-pcu-oc2g - defaults: name: runner @@ -122,6 +126,8 @@ - osmo-gsm-tester_build-osmo-stp - osmo-gsm-tester_build-osmo-bts-sysmo - osmo-gsm-tester_build-osmo-pcu-sysmo + - osmo-gsm-tester_build-osmo-bts-oc2g + - osmo-gsm-tester_build-osmo-pcu-oc2g builders: - copy_artifact_all - shell: !include-raw: osmo-gsm-tester_run-{stage}.sh diff --git a/jobs/osmo-gsm-tester-trigger.yml b/jobs/osmo-gsm-tester-trigger.yml index aa24a4e..43298dc 100644 --- a/jobs/osmo-gsm-tester-trigger.yml +++ b/jobs/osmo-gsm-tester-trigger.yml @@ -26,4 +26,6 @@ osmo-gsm-tester_build-osmo-nitb, osmo-gsm-tester_build-osmo-stp, osmo-gsm-tester_build-osmo-bts-sysmo, - osmo-gsm-tester_build-osmo-pcu-sysmo + osmo-gsm-tester_build-osmo-pcu-sysmo, + osmo-gsm-tester_build-osmo-bts-oc2g, + osmo-gsm-tester_build-osmo-pcu-oc2g -- To view, visit https://gerrit.osmocom.org/13002 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5ea9b783a2a2017cb134e72087e217a4184184b2 Gerrit-Change-Number: 13002 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 18:26:06 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Feb 2019 18:26:06 +0000 Subject: Change in osmo-gsm-tester[master]: contrib: Add script to build osmo-bts-oc2g Message-ID: Pau Espin Pedrol has uploaded this change for review. ( https://gerrit.osmocom.org/13003 Change subject: contrib: Add script to build osmo-bts-oc2g ...................................................................... contrib: Add script to build osmo-bts-oc2g Change-Id: I7cc8937fb3e6c5d74b56cb049afb293b0b7ed25e --- A contrib/jenkins-build-osmo-bts-oc2g.sh A contrib/jenkins-build-osmo-pcu-oc2g.sh 2 files changed, 55 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/03/13003/1 diff --git a/contrib/jenkins-build-osmo-bts-oc2g.sh b/contrib/jenkins-build-osmo-bts-oc2g.sh new file mode 100755 index 0000000..9ed2099 --- /dev/null +++ b/contrib/jenkins-build-osmo-bts-oc2g.sh @@ -0,0 +1,31 @@ +#!/bin/sh +set -e -x + +_poky_version="$POKY_VERSION" +_poky_path="$POKY_PATH" + +[ -z "$_poky_version" ] && _poky_version="2.3.2" +[ -z "$_poky_path" ] && _poky_path="/opt/poky/$_poky_version" + +. "$_poky_path/environment-setup-armv5te-poky-linux-gnueabi" + +# Cross-compilation: all installations need to be put in the sysmo SDK sysroot +export DESTDIR="$_poky_path/sysroots/armv5te-poky-linux-gnueabi" + +base="$PWD" +name="osmo-bts-oc2g" +prefix="/usr/local/jenkins-build/inst-$name" +prefix_real="$DESTDIR$prefix" +. "$(dirname "$0")/jenkins-build-common.sh" + +prev_git_url="${git_url}" +git_url="https://gitlab.com/nrw_oc2g/" +have_repo "oc2g-fw" "nrw/oc2g" +git_url="${prev_git_url}" +L1_OC2G_HEADERS="$PWD/oc2g-fw/inc" + +build_repo libosmocore --disable-pcsc --disable-doxygen --disable-gnutls +build_repo libosmo-abis +build_repo osmo-bts --disable-sysmocom-bts --enable-oc2g --with-oc2g="$L1_OC2G_HEADERS" + +create_bin_tgz osmo-bts-oc2g diff --git a/contrib/jenkins-build-osmo-pcu-oc2g.sh b/contrib/jenkins-build-osmo-pcu-oc2g.sh new file mode 100755 index 0000000..2164926 --- /dev/null +++ b/contrib/jenkins-build-osmo-pcu-oc2g.sh @@ -0,0 +1,24 @@ +#!/bin/sh +set -e -x + +_poky_version="$POKY_VERSION" +_poky_path="$POKY_PATH" + +[ -z "$_poky_version" ] && _poky_version="2.3.2" +[ -z "$_poky_path" ] && _poky_path="/opt/poky/$_poky_version" + +. "$_poky_path/environment-setup-armv5te-poky-linux-gnueabi" + +# Cross-compilation: all installations need to be put in the sysmo SDK sysroot +export DESTDIR="$_poky_path/sysroots/armv5te-poky-linux-gnueabi" + +base="$PWD" +name="osmo-pcu-oc2g" +prefix="/usr/local/jenkins-build/inst-$name" +prefix_real="$DESTDIR$prefix" +. "$(dirname "$0")/jenkins-build-common.sh" + +build_repo libosmocore --disable-pcsc --disable-doxygen --disable-gnutls +build_repo osmo-pcu --disable-sysmocom-dsp + +create_bin_tgz osmo-pcu -- To view, visit https://gerrit.osmocom.org/13003 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I7cc8937fb3e6c5d74b56cb049afb293b0b7ed25e Gerrit-Change-Number: 13003 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 18:26:33 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Feb 2019 18:26:33 +0000 Subject: Change in osmo-gsm-tester[master]: contrib: Add script to build osmo-bts and osmo-pcu for oc2g In-Reply-To: References: Message-ID: Pau Espin Pedrol has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/13003 ) Change subject: contrib: Add script to build osmo-bts and osmo-pcu for oc2g ...................................................................... contrib: Add script to build osmo-bts and osmo-pcu for oc2g Change-Id: I7cc8937fb3e6c5d74b56cb049afb293b0b7ed25e --- A contrib/jenkins-build-osmo-bts-oc2g.sh A contrib/jenkins-build-osmo-pcu-oc2g.sh 2 files changed, 55 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/03/13003/2 -- To view, visit https://gerrit.osmocom.org/13003 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I7cc8937fb3e6c5d74b56cb049afb293b0b7ed25e Gerrit-Change-Number: 13003 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 18:35:22 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Feb 2019 18:35:22 +0000 Subject: Change in libosmocore[master]: select: Call log_reset_context() before calling file descriptor callb... In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12998 ) Change subject: select: Call log_reset_context() before calling file descriptor callbacks ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/12998/1/src/select.c File src/select.c: https://gerrit.osmocom.org/#/c/12998/1/src/select.c at 222 PS1, Line 222: log_reset_context(); Probably doesn't change that much in practice, but I think it makes sense to remove it immeditelly AFTER cb is called. -- To view, visit https://gerrit.osmocom.org/12998 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3644c7bc1a9cec5858eb0faf94efc8c3ba7f5d8d Gerrit-Change-Number: 12998 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 21 Feb 2019 18:35:22 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 18:36:24 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Feb 2019 18:36:24 +0000 Subject: Change in osmo-sysmon[master]: OpenVPN: track interface disconnect In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12989 ) Change subject: OpenVPN: track interface disconnect ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12989 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I11b8bc71c1e9cbbf992ee3b7c1c9aae6e6f697e0 Gerrit-Change-Number: 12989 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 21 Feb 2019 18:36:24 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 18:36:48 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Feb 2019 18:36:48 +0000 Subject: Change in osmo-sysmon[master]: OpenVPN: track interface disconnect In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12989 ) Change subject: OpenVPN: track interface disconnect ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12989 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I11b8bc71c1e9cbbf992ee3b7c1c9aae6e6f697e0 Gerrit-Change-Number: 12989 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 21 Feb 2019 18:36:48 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 18:40:12 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Feb 2019 18:40:12 +0000 Subject: Change in osmo-mgw[master]: Add option to GSM HR frames to RFC5593 representation In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12979 ) Change subject: Add option to GSM HR frames to RFC5593 representation ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Gerrit-Change-Number: 12979 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: dexter Gerrit-Reviewer: tnt Gerrit-Comment-Date: Thu, 21 Feb 2019 18:40:12 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 18:42:17 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Thu, 21 Feb 2019 18:42:17 +0000 Subject: Change in osmo-sysmon[master]: OpenVPN: track interface disconnect In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12989 ) Change subject: OpenVPN: track interface disconnect ...................................................................... OpenVPN: track interface disconnect Setup disconnection callback and use it to properly track management interface availability. Change-Id: I11b8bc71c1e9cbbf992ee3b7c1c9aae6e6f697e0 Requires: libosmo-netif I905adb2d6191216551a3bcdcd1aec1f96f01612a Related: SYS#2655 --- M src/client.h M src/osysmon_openvpn.c 2 files changed, 17 insertions(+), 3 deletions(-) Approvals: osmith: Looks good to me, but someone else must approve Pau Espin Pedrol: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/client.h b/src/client.h index d878450..a14019e 100644 --- a/src/client.h +++ b/src/client.h @@ -15,7 +15,7 @@ /* name of this client */ const char *name; /* remote host/IP */ - const char *remote_host; + char *remote_host; /* remote port */ uint16_t remote_port; }; diff --git a/src/osysmon_openvpn.c b/src/osysmon_openvpn.c index 135a532..148e3b8 100644 --- a/src/osysmon_openvpn.c +++ b/src/osysmon_openvpn.c @@ -113,12 +113,26 @@ return NULL; } +static int disconnect_cb(struct osmo_stream_cli *conn) +{ + struct openvpn_client *vpn = osmo_stream_cli_get_data(conn); + + update_name(vpn->rem_cfg, "management interface unavailable"); + vpn->connected = false; + talloc_free(vpn->tun_ip); + talloc_free(vpn->rem_cfg->remote_host); + vpn->tun_ip = NULL; + vpn->rem_cfg->remote_host = NULL; + + return 0; +} + static int connect_cb(struct osmo_stream_cli *conn) { struct openvpn_client *vpn = osmo_stream_cli_get_data(conn); update_name(vpn->rem_cfg, "management interface incompatible"); - vpn->connected = true; /* FIXME: there's no callback for lost connection to drop this flag */ + vpn->connected = true; return 0; } @@ -174,6 +188,7 @@ osmo_stream_cli_set_reconnect_timeout(vpn->mgmt, 60); osmo_stream_cli_set_read_cb(vpn->mgmt, read_cb); osmo_stream_cli_set_connect_cb(vpn->mgmt, connect_cb); + osmo_stream_cli_set_disconnect_cb(vpn->mgmt, disconnect_cb); if (osmo_stream_cli_open(vpn->mgmt) < 0) { OVPN_LOG(vpn->rem_cfg, vpn, "failed to connect to management interface\n"); @@ -261,7 +276,6 @@ if (remote) value_node_add(vn_host, "remote", remote); - /* FIXME: there's no way to check client state so this might be triggered even while it's reconnecting */ if (vpn->connected) { /* re-trigger state command */ msgb_printf(msg, "state\n"); osmo_stream_cli_send(vpn->mgmt, msg); -- To view, visit https://gerrit.osmocom.org/12989 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I11b8bc71c1e9cbbf992ee3b7c1c9aae6e6f697e0 Gerrit-Change-Number: 12989 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 18:42:22 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 21 Feb 2019 18:42:22 +0000 Subject: Change in osmo-sysmon[master]: Update config example In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12992 ) Change subject: Update config example ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I78025027d48a1213b2a23252c8261d9cb4564027 Gerrit-Change-Number: 12992 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 21 Feb 2019 18:42:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 20:06:09 2019 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 21 Feb 2019 20:06:09 +0000 Subject: Change in osmo-ci[master]: Add timeout wrapper to regular gerrit verification jobs In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/12857 ) Change subject: Add timeout wrapper to regular gerrit verification jobs ...................................................................... Patch Set 2: @Max: there is also a timeout wrapper, but that might work differently. The jenkins timeout wrapper will terminate the whole shell, which prevents you from doing the cleanup in the same script. -- To view, visit https://gerrit.osmocom.org/12857 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9d0eb6b9eddf3e17120e74d7570d42291c0750ae Gerrit-Change-Number: 12857 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 21 Feb 2019 20:06:09 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 21 20:07:49 2019 From: gerrit-no-reply at lists.osmocom.org (lynxis lazus) Date: Thu, 21 Feb 2019 20:07:49 +0000 Subject: Change in osmo-ci[master]: Add timeout wrapper to regular gerrit verification jobs In-Reply-To: References: Message-ID: lynxis lazus has posted comments on this change. ( https://gerrit.osmocom.org/12857 ) Change subject: Add timeout wrapper to regular gerrit verification jobs ...................................................................... Patch Set 2: https://docs.openstack.org/infra/jenkins-job-builder/wrappers.html#wrappers.timeout -- To view, visit https://gerrit.osmocom.org/12857 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9d0eb6b9eddf3e17120e74d7570d42291c0750ae Gerrit-Change-Number: 12857 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: lynxis lazus Gerrit-Reviewer: osmith Gerrit-Comment-Date: Thu, 21 Feb 2019 20:07:49 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Thu Feb 21 22:32:36 2019 From: admin at opensuse.org (OBS Notification) Date: Thu, 21 Feb 2019 22:32:36 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-netif in Raspbian_9.0/armv7l In-Reply-To: References: Message-ID: <5c6f272249c61_1d6b53a5fc486183@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-netif/Raspbian_9.0/armv7l Package network:osmocom:nightly/libosmo-netif failed to build in Raspbian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly libosmo-netif Last lines of build log: [ 16s] [68/71] preinstalling sysvinit-utils... [ 16s] [69/71] preinstalling e2fsprogs... [ 16s] [70/71] preinstalling sysv-rc... [ 16s] [71/71] preinstalling initscripts... [ 16s] [ 17s] [1/1] preinstalling libdevmapper1.02.1... [ 18s] copying packages... [ 25s] reordering...cycle: libc6 -> libgcc1 [ 25s] breaking dependency libgcc1 -> libc6 [ 25s] cycle: debhelper -> dh-autoreconf [ 25s] breaking dependency debhelper -> dh-autoreconf [ 25s] cycle: dh-strip-nondeterminism -> debhelper [ 25s] breaking dependency debhelper -> dh-strip-nondeterminism [ 25s] done [ 25s] objdump: /boot/Image.guest32: file format not recognized [ 25s] Warning: cross compile not possible due to missing static binaries. please install build-initvm package for that purpose. [ 25s] check that the right architecture is available for your build host, you need initvm.armv8l for this one. [ 29s] booting kvm... [ 29s] ### VM INTERACTION START ### [ 29s] /usr/bin/qemu-system-aarch64 -nodefaults -no-reboot -nographic -vga none -cpu host,aarch64=off -enable-kvm -M virt,gic-version=host -object rng-random,filename=/dev/random,id=rng0 -device virtio-rng-device,rng=rng0 -runas qemu -mem-prealloc -mem-path /dev/hugepages -net none -kernel /boot/Image.guest32 -initrd /boot/initrd.guest32 -append root=/dev/disk/by-id/virtio-0 rootfstype=ext4 rootflags=noatime ext4.allow_unsupported=1 kpti=off pti=off spectre_v2=off panic=1 quiet no-kvmclock elevator=noop nmi_watchdog=0 rw rd.driver.pre=binfmt_misc console=ttyAMA0 init=/.build/build -m 9216 -drive file=/var/cache/obs/worker/root_5/root,format=raw,if=none,id=disk,cache=unsafe -device virtio-blk-device,drive=disk,serial=0 -drive file=/var/cache/obs/worker/root_5/swap,format=raw,if=none,id=swap,cache=unsafe -device virtio-blk-device,drive=swap,serial=1 -serial stdio -chardev socket,id=monitor,server,nowait,path=/var/cache/obs/worker/root_5/root.qemu/monitor -mon chardev=monitor,mode=readline -smp 6 [ 338s] ### WATCHDOG TRIGGERED, KILLING VM ### [ 339s] /var/cache/obs/worker/root_5/root: 14396 [ 339s] qemu-system-aarch64: terminating on signal 15 from pid 23549 () [ 339s] ### VM INTERACTION END ### [ 339s] /var/run/obs/worker/5/build/build-vm: line 462: kill: (14389) - No such process [ 339s] No buildstatus set, either the base system is broken (kernel/initrd/udev/glibc/bash/perl) [ 339s] or the build host has a kernel or hardware problem... gave up after 12 failed build attempts... -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Fri Feb 22 04:00:44 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Fri, 22 Feb 2019 04:00:44 +0000 Subject: Change in libosmocore[master]: gsm0808: make msgb size and headroom configurable Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/13004 Change subject: gsm0808: make msgb size and headroom configurable ...................................................................... gsm0808: make msgb size and headroom configurable Allow for manual configuration of buffer size and headroom by exposing osmo_gsm0808_msg_size and osmo_gsm0808_msg_headroom; if unset (remaining 0), the current defaults remain in effect. In osmo-msc, I would like to prepend an osmo_prim to the msgb created by gsm0808 API, but turns out the headroom is too small: msgb(0x61700001b660): Not enough headroom msgb_push (126 < 264) Instead of always copying a msgb that has just that instant been created, it makes more sense to allocate sufficient headroom in the first place. The gsm0808 API allocates msgb implicitly, this is the least impact fix. Compat: the BSSMAP_MSG_SIZE and BSSMAP_HEADROOM_SIZE can no longer be used as constants, e.g. to initialize the size of static things. They should only ever be used with msgb_alloc_headroom(), so I assert that this is fine. I am not sure why these #defines are in the public header in the first place, but since they are, keep them there and make them reflect the actually used sizes. Change-Id: I95729991eb49555f8bba60c5dc916131b03b6cf2 --- M TODO-RELEASE M include/osmocom/gsm/gsm0808.h M src/gsm/gsm0808.c M src/gsm/libosmogsm.map 4 files changed, 12 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/04/13004/1 diff --git a/TODO-RELEASE b/TODO-RELEASE index 8ccfa49..9bf5b03 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -7,3 +7,4 @@ # If any interfaces have been added since the last public release: c:r:a + 1. # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line +gsm gsm0808.h GSM0808_MSG_SIZE and GSM0808_MSG_HEADROOM are no longer compile-time constant numbers diff --git a/include/osmocom/gsm/gsm0808.h b/include/osmocom/gsm/gsm0808.h index 35e7a8e..dfab29a 100644 --- a/include/osmocom/gsm/gsm0808.h +++ b/include/osmocom/gsm/gsm0808.h @@ -29,8 +29,12 @@ #include #include -#define BSSMAP_MSG_SIZE 512 -#define BSSMAP_MSG_HEADROOM 128 +#define BSSMAP_MSG_DEFAULT_SIZE 512 +#define BSSMAP_MSG_DEFAULT_HEADROOM 128 +extern size_t osmo_gsm0808_msg_size; +extern size_t osmo_gsm0808_msg_headroom; +#define BSSMAP_MSG_HEADROOM (osmo_gsm0808_msg_headroom ? : BSSMAP_MSG_DEFAULT_HEADROOM) +#define BSSMAP_MSG_SIZE (osmo_gsm0808_msg_size ? : BSSMAP_MSG_DEFAULT_SIZE - BSSMAP_MSG_DEFAULT_HEADROOM + BSSMAP_MSG_HEADROOM) struct sockaddr_storage; diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c index 4873076..ff17bd2 100644 --- a/src/gsm/gsm0808.c +++ b/src/gsm/gsm0808.c @@ -27,6 +27,9 @@ #include #include +size_t osmo_gsm0808_msg_size = 0; +size_t osmo_gsm0808_msg_headroom = 0; + /*! \addtogroup gsm0808 * @{ * \file gsm0808.c diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 48757a7..525fa0d 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -228,6 +228,8 @@ gsm0808_lcls_status_names; gsm0808_enc_lcls; gsm0808_dec_lcls; +osmo_gsm0808_msg_size; +osmo_gsm0808_msg_headroom; gsm29118_msgb_alloc; gsm29118_create_alert_req; -- To view, visit https://gerrit.osmocom.org/13004 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I95729991eb49555f8bba60c5dc916131b03b6cf2 Gerrit-Change-Number: 13004 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 09:43:29 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 22 Feb 2019 09:43:29 +0000 Subject: Change in osmo-sysmon[master]: osmo-sysmon -h: s/OsmoHLR/osmo-sysmon/ Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/13005 Change subject: osmo-sysmon -h: s/OsmoHLR/osmo-sysmon/ ...................................................................... osmo-sysmon -h: s/OsmoHLR/osmo-sysmon/ Fix program name in help output. Change-Id: I45d4e43b92833a22ae31d1cdc2b4d397f572ca34 --- M src/osysmon_main.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sysmon refs/changes/05/13005/1 diff --git a/src/osysmon_main.c b/src/osysmon_main.c index 18f6299..c2df6ad 100644 --- a/src/osysmon_main.c +++ b/src/osysmon_main.c @@ -123,7 +123,7 @@ printf(" -s --disable-color Do not print ANSI colors in the log\n"); printf(" -T --timestamp Prefix every log line with a timestamp.\n"); printf(" -e --log-level number Set a global loglevel.\n"); - printf(" -V --version Print the version of OsmoHLR.\n"); + printf(" -V --version Print the version of osmo-sysmon.\n"); } static struct { -- To view, visit https://gerrit.osmocom.org/13005 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I45d4e43b92833a22ae31d1cdc2b4d397f572ca34 Gerrit-Change-Number: 13005 Gerrit-PatchSet: 1 Gerrit-Owner: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 10:00:13 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 22 Feb 2019 10:00:13 +0000 Subject: Change in osmo-sysmon[master]: Update config example In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/12992 ) Change subject: Update config example ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/12992/2/doc/examples/osmo-sysmon.cfg File doc/examples/osmo-sysmon.cfg: https://gerrit.osmocom.org/#/c/12992/2/doc/examples/osmo-sysmon.cfg at 14 PS2, Line 14: example.com Is there any downside if we comment out that line by default? It would be unexpected for me from a user's perspective, if I ran the example config, and it started pinging a random server on the Internet. That's why I recommended a domain that will never resolve in my comment on the first patch set. (With that being said, I don't really know how to use osmo-sysmon - there seems to be no README/wiki page/pdf docs about it yet.) -- To view, visit https://gerrit.osmocom.org/12992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I78025027d48a1213b2a23252c8261d9cb4564027 Gerrit-Change-Number: 12992 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 22 Feb 2019 10:00:13 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 10:59:05 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 22 Feb 2019 10:59:05 +0000 Subject: Change in osmo-hlr[master]: hlr.c: forward GSUP messages between clients Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/13006 Change subject: hlr.c: forward GSUP messages between clients ...................................................................... hlr.c: forward GSUP messages between clients Allow clients to forward any GSUP message between clients. Determine the sender and receiver from the new {source,dest}_name{,_len} IEs. Reject messages with a forged source name or invalid source/dest name lengths. This will be used for the inter-MSC handover. Depends: Ic00b0601eacff6d72927cea51767801142ee75db (libosmocore.git) Related: OS#3793 Change-Id: Ia4f345abc877baaf0a8f73b8988e6514d9589bf5 --- M src/hlr.c 1 file changed, 50 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/06/13006/1 diff --git a/src/hlr.c b/src/hlr.c index c544310..15ebc20 100644 --- a/src/hlr.c +++ b/src/hlr.c @@ -440,6 +440,53 @@ return osmo_gsup_conn_send(conn, msg_out); } +static int read_cb_forward(const struct osmo_gsup_conn *conn, struct msgb *msg, const struct osmo_gsup_message *gsup) +{ + struct msgb *msg_out; + int ret = -EINVAL; + + /* Check for routing IEs */ + if (!gsup->source_name + || !gsup->source_name_len + || !gsup->destination_name + || !gsup->destination_name_len) { + LOGP(DMAIN, LOGL_ERROR, "Can't forward GSUP message for IMSI %s: missing routing IEs\n", gsup->imsi); + goto end; + } + + /* Verify source/dest string length */ + if (gsup->source_name_len < 1 + || gsup->destination_name_len < 1 + || gsup->source_name[gsup->source_name_len - 1] != '\0' + || gsup->destination_name[gsup->destination_name_len - 1] != '\0') + { + LOGP(DMAIN, LOGL_ERROR, "Can't forward GSUP message for IMSI %s: unexpected source/dest length\n", + gsup->imsi); + goto end; + } + + /* Verify source name (e.g. "MSC-00-00-00-00-00-00") */ + if (gsup_route_find(conn->server, gsup->source_name, gsup->source_name_len) != conn) { + LOGP(DMAIN, LOGL_ERROR, "Can't forward GSUP message for IMSI %s: invalid source name '%s'\n", + gsup->imsi, gsup->source_name); + goto end; + } + + /* Forward message without re-encoding (so we don't remove unknown IEs) */ + LOGP(DMAIN, LOGL_DEBUG, "Forwarding GSUP message for IMSI %s from %s to %s\n", gsup->imsi, gsup->source_name, + gsup->destination_name); + msg_out = msgb_alloc_headroom(1024+16, 16, "GSUP FORWARD"); + ret = osmo_gsup_addr_send(g_hlr->gs, gsup->destination_name, gsup->destination_name_len, msg_out); + if (ret) + LOGP(DMAIN, LOGL_ERROR, "Can't forward GSUP message for IMSI %s from %s to %s: destination not" + " connected?\n", gsup->imsi, gsup->source_name, gsup->destination_name); + +end: + /* FIXME: send message back to sender on failure (new GSUP message type?) */ + msgb_free(msg); + return ret; +} + static int read_cb(struct osmo_gsup_conn *conn, struct msgb *msg) { static struct osmo_gsup_message gsup; @@ -456,6 +503,9 @@ if (strlen(gsup.imsi) < 5) return gsup_send_err_reply(conn, gsup.imsi, gsup.message_type, GMM_CAUSE_INV_MAND_INFO); + if (gsup.destination_name_len) + return read_cb_forward(conn, msg, &gsup); + switch (gsup.message_type) { /* requests sent to us */ case OSMO_GSUP_MSGT_SEND_AUTH_INFO_REQUEST: -- To view, visit https://gerrit.osmocom.org/13006 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ia4f345abc877baaf0a8f73b8988e6514d9589bf5 Gerrit-Change-Number: 13006 Gerrit-PatchSet: 1 Gerrit-Owner: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 11:02:27 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 22 Feb 2019 11:02:27 +0000 Subject: Change in osmo-hlr[master]: hlr.c: forward GSUP messages between clients In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/13006 ) Change subject: hlr.c: forward GSUP messages between clients ...................................................................... Patch Set 1: (1 comment) Build fails, because of the dependency that isn't merged to master yet. https://gerrit.osmocom.org/#/c/13006/1/src/hlr.c File src/hlr.c: https://gerrit.osmocom.org/#/c/13006/1/src/hlr.c at 485 PS1, Line 485: /* FIXME: send message back to sender on failure (new GSUP message type?) */ I could not find any MAP message type for "forward failed" or something similar. Can we just invent a new GSUP message type, which is not in MAP, for this use case? -- To view, visit https://gerrit.osmocom.org/13006 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia4f345abc877baaf0a8f73b8988e6514d9589bf5 Gerrit-Change-Number: 13006 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 22 Feb 2019 11:02:27 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 12:16:10 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 22 Feb 2019 12:16:10 +0000 Subject: Change in osmo-sysmon[master]: Update config example In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12992 ) Change subject: Update config example ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/12992/2/doc/examples/osmo-sysmon.cfg File doc/examples/osmo-sysmon.cfg: https://gerrit.osmocom.org/#/c/12992/2/doc/examples/osmo-sysmon.cfg at 14 PS2, Line 14: example.com > Is there any downside if we comment out that line by default? [?] I'm on the fence on this one. On one hand example.com does resolve and ping, so we can tell that we have a connection to the internet. On the other hand the example should choose sane defaults that work for most people and I would guess most would want to change this line. So having it commented out would be good - I'd rather not have an (active) ping in here that doesn't even resolve. -- To view, visit https://gerrit.osmocom.org/12992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I78025027d48a1213b2a23252c8261d9cb4564027 Gerrit-Change-Number: 12992 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 22 Feb 2019 12:16:10 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 12:18:24 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 22 Feb 2019 12:18:24 +0000 Subject: Change in osmo-sysmon[master]: osmo-sysmon -h: s/OsmoHLR/osmo-sysmon/ In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/13005 ) Change subject: osmo-sysmon -h: s/OsmoHLR/osmo-sysmon/ ...................................................................... Patch Set 1: Code-Review+2 I think this is one of the +2 cases -- To view, visit https://gerrit.osmocom.org/13005 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I45d4e43b92833a22ae31d1cdc2b4d397f572ca34 Gerrit-Change-Number: 13005 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 22 Feb 2019 12:18:24 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 12:20:00 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 22 Feb 2019 12:20:00 +0000 Subject: Change in osmo-ci[master]: jobs: osmo-gsm-tester: Add oc2g jobs In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/13002 ) Change subject: jobs: osmo-gsm-tester: Add oc2g jobs ...................................................................... Patch Set 1: Code-Review+1 Looks good, (although/because) I know next to nothing about osmo-gsm-tester -- To view, visit https://gerrit.osmocom.org/13002 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5ea9b783a2a2017cb134e72087e217a4184184b2 Gerrit-Change-Number: 13002 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 22 Feb 2019 12:20:00 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 12:25:31 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 22 Feb 2019 12:25:31 +0000 Subject: Change in libosmocore[master]: select: Call log_reset_context() before calling file descriptor callb... In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12998 ) Change subject: select: Call log_reset_context() before calling file descriptor callbacks ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/#/c/12998/1/src/select.c File src/select.c: https://gerrit.osmocom.org/#/c/12998/1/src/select.c at 222 PS1, Line 222: log_reset_context(); > Probably doesn't change that much in practice, but I think it makes sense to remove it immeditelly A [?] Reading http://projects.osmocom.org/issues/3813 it seems that the log context can also be wrong in the first call of the for_each loop so just setting it after the callback would not help there. -- To view, visit https://gerrit.osmocom.org/12998 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3644c7bc1a9cec5858eb0faf94efc8c3ba7f5d8d Gerrit-Change-Number: 12998 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 22 Feb 2019 12:25:31 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 12:25:47 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 22 Feb 2019 12:25:47 +0000 Subject: Change in osmo-gsm-manuals[master]: chapters/gsup.adoc: move IMEI IEs to right place Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/13007 Change subject: chapters/gsup.adoc: move IMEI IEs to right place ...................................................................... chapters/gsup.adoc: move IMEI IEs to right place Move the "IMEI" and "IMEI Check Result" IEs from the "Session (transaction) management" chapter (which describes session IEs) to the "Information Elements" chapter. Add a comment to prevent this mistake in the future. Related: OS#2541 Change-Id: I6fd66419350e018a763b8fac3daf567b339a2637 --- M common/chapters/gsup.adoc 1 file changed, 23 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-manuals refs/changes/07/13007/1 diff --git a/common/chapters/gsup.adoc b/common/chapters/gsup.adoc index 7a16e64..1fd0bb6 100644 --- a/common/chapters/gsup.adoc +++ b/common/chapters/gsup.adoc @@ -1173,6 +1173,25 @@ and <> IEs. It is used to carry the payload of Supplementary Services encoded according to GSM TS 04.80. +[[gsup-ie-imei]] +==== IMEI + +The IMEI encoded as Called Party BCD Number in 3GPP TS 04.08. + +[[gsup-ie-imei-result]] +==== IMEI Check Result + +Result of the Check IMEI request. A NACK could be sent in theory, if the ME is +not permitted on the network (e.g. because it is on a blacklist). + +.IMEI Check Result +[options="header",cols="10%,90%"] +|=== +|Type|Description +|0x01|ACK +|0x02|NACK +|=== + === Session (transaction) management Unlike TCAP/MAP, GSUP is just a transport layer without the @@ -1316,21 +1335,7 @@ |0x02|Memory Available |=== -[[gsup-ie-imei]] -==== IMEI - -The IMEI encoded as Called Party BCD Number in 3GPP TS 04.08. - -[[gsup-ie-imei-result]] -==== IMEI Check Result - -Result of the Check IMEI request. A NACK could be sent in theory, if the ME is -not permitted on the network (e.g. because it is on a blacklist). - -.IMEI Check Result -[options="header",cols="10%,90%"] -|=== -|Type|Description -|0x01|ACK -|0x02|NACK -|=== +//// +End of "Session (transaction) management" IEs chapter. Remember to place +unrelated IEs at the end of the "Information Elements" chapter, not here! +//// -- To view, visit https://gerrit.osmocom.org/13007 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6fd66419350e018a763b8fac3daf567b339a2637 Gerrit-Change-Number: 13007 Gerrit-PatchSet: 1 Gerrit-Owner: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 12:29:06 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Fri, 22 Feb 2019 12:29:06 +0000 Subject: Change in osmo-sysmon[master]: osmo-sysmon -h: s/OsmoHLR/osmo-sysmon/ In-Reply-To: References: Message-ID: osmith has submitted this change and it was merged. ( https://gerrit.osmocom.org/13005 ) Change subject: osmo-sysmon -h: s/OsmoHLR/osmo-sysmon/ ...................................................................... osmo-sysmon -h: s/OsmoHLR/osmo-sysmon/ Fix program name in help output. Change-Id: I45d4e43b92833a22ae31d1cdc2b4d397f572ca34 --- M src/osysmon_main.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, approved diff --git a/src/osysmon_main.c b/src/osysmon_main.c index 18f6299..c2df6ad 100644 --- a/src/osysmon_main.c +++ b/src/osysmon_main.c @@ -123,7 +123,7 @@ printf(" -s --disable-color Do not print ANSI colors in the log\n"); printf(" -T --timestamp Prefix every log line with a timestamp.\n"); printf(" -e --log-level number Set a global loglevel.\n"); - printf(" -V --version Print the version of OsmoHLR.\n"); + printf(" -V --version Print the version of osmo-sysmon.\n"); } static struct { -- To view, visit https://gerrit.osmocom.org/13005 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I45d4e43b92833a22ae31d1cdc2b4d397f572ca34 Gerrit-Change-Number: 13005 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 12:48:09 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 22 Feb 2019 12:48:09 +0000 Subject: Change in osmo-gsm-manuals[master]: chapters/gsup.adoc: move IMEI IEs to right place In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/13007 ) Change subject: chapters/gsup.adoc: move IMEI IEs to right place ...................................................................... Patch Set 1: Code-Review+1 I didn't know the block comment in asciidoc. You learn something every day -- To view, visit https://gerrit.osmocom.org/13007 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6fd66419350e018a763b8fac3daf567b339a2637 Gerrit-Change-Number: 13007 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 22 Feb 2019 12:48:09 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 13:30:26 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 22 Feb 2019 13:30:26 +0000 Subject: Change in osmo-sysmon[master]: osmo-sysmon -h: s/OsmoHLR/osmo-sysmon/ In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/13005 ) Change subject: osmo-sysmon -h: s/OsmoHLR/osmo-sysmon/ ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13005 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I45d4e43b92833a22ae31d1cdc2b4d397f572ca34 Gerrit-Change-Number: 13005 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 22 Feb 2019 13:30:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 13:32:40 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 22 Feb 2019 13:32:40 +0000 Subject: Change in osmo-ci[master]: jobs: osmo-gsm-tester: Add oc2g jobs In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/13002 ) Change subject: jobs: osmo-gsm-tester: Add oc2g jobs ...................................................................... Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/13002 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5ea9b783a2a2017cb134e72087e217a4184184b2 Gerrit-Change-Number: 13002 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 22 Feb 2019 13:32:40 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 13:34:11 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 22 Feb 2019 13:34:11 +0000 Subject: Change in osmo-gsm-tester[master]: suites: Rename netreg_mass to nitb_netreg_mass In-Reply-To: References: Message-ID: Pau Espin Pedrol has abandoned this change. ( https://gerrit.osmocom.org/11515 ) Change subject: suites: Rename netreg_mass to nitb_netreg_mass ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/11515 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: abandon Gerrit-Change-Id: I5a83f5fd984084e8050edbb4d8224c1ba1d756c8 Gerrit-Change-Number: 11515 Gerrit-PatchSet: 3 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-CC: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 13:36:37 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 22 Feb 2019 13:36:37 +0000 Subject: Change in osmo-mgw[master]: Add option to GSM HR frames to RFC5593 representation In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12979 ) Change subject: Add option to GSM HR frames to RFC5593 representation ...................................................................... Patch Set 3: Code-Review-1 (2 comments) https://gerrit.osmocom.org/#/c/12979/3/src/libosmo-mgcp/mgcp_network.c File src/libosmo-mgcp/mgcp_network.c: https://gerrit.osmocom.org/#/c/12979/3/src/libosmo-mgcp/mgcp_network.c at 676 PS3, Line 676: } else if (*len == GSM_HR_BYTES + sizeof(struct rtp_hdr) + 1) { According to https://tools.ietf.org/html/rfc5993#section-5.2 there can be multiple speech/SID frames in one UDP packet which would then cause multiple TOC bytes to be present as well. Since we don't see this behaviour I don't think we should implement it, but rather ensure that toc & 0x01 == 0 in this case and log an error if the length is different than the two expected values. ----- 0 1 2 3 4 5 6 7 +-+-+-+-+-+-+-+-+ |F| FT |R R R R| +-+-+-+-+-+-+-+-+ F: Follow flag; 1 denotes that more ToC elements follow; 0 denotes the last ToC element. https://gerrit.osmocom.org/#/c/12979/3/src/libosmo-mgcp/mgcp_network.c at 680 PS3, Line 680: } else { LOGP(DRTP, LOGL_ERROR, "Can't figure out how to convert RTP packet\n"); } -- To view, visit https://gerrit.osmocom.org/12979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Gerrit-Change-Number: 12979 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: dexter Gerrit-Reviewer: tnt Gerrit-Comment-Date: Fri, 22 Feb 2019 13:36:37 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 13:41:16 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 22 Feb 2019 13:41:16 +0000 Subject: Change in osmo-gsm-tester[master]: contrib: Add script to build osmo-bts and osmo-pcu for oc2g In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/13003 ) Change subject: contrib: Add script to build osmo-bts and osmo-pcu for oc2g ...................................................................... Patch Set 2: Looks okay as far as I can tell. The build failure is related to some issues in ofono? -- To view, visit https://gerrit.osmocom.org/13003 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7cc8937fb3e6c5d74b56cb049afb293b0b7ed25e Gerrit-Change-Number: 13003 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: daniel Gerrit-Comment-Date: Fri, 22 Feb 2019 13:41:16 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 13:53:32 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 22 Feb 2019 13:53:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RTP_Emulation: check received RTP packets In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/13000 ) Change subject: RTP_Emulation: check received RTP packets ...................................................................... Patch Set 1: Code-Review-1 (2 comments) https://gerrit.osmocom.org/#/c/13000/1/library/RTP_Emulation.ttcn File library/RTP_Emulation.ttcn: https://gerrit.osmocom.org/#/c/13000/1/library/RTP_Emulation.ttcn at 456 PS1, Line 456: if (rx_rtp.msg.rtp.data != g_cfg.rx_fixed_payload) { Since the rx_fixed_payload is optional I think we should check if it is present first. If it isn't we should never increment rx_fixed_payload. So in ttcn3 speak I believe it should be: if (g_cfg.rx_fixed_payload.is_present() && [..]) { https://gerrit.osmocom.org/#/c/13000/1/library/RTP_Emulation.ttcn at 457 PS1, Line 457: g_stats_rtp.num_pkts_rx_err_payload := g_stats_rtp.num_pkts_rx_err_payload + 1 missing semicolon I know it's not required in TTCN3, but I think it's nicer to stay close to C syntax. -- To view, visit https://gerrit.osmocom.org/13000 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id0b125aaf915497d0a4f051af890fc34e09da61d Gerrit-Change-Number: 13000 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 22 Feb 2019 13:53:32 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 13:56:42 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 22 Feb 2019 13:56:42 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: Add testcase to test ts101318/rfc5993 conversion In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/13001 ) Change subject: MGCP_Test: Add testcase to test ts101318/rfc5993 conversion ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/13001 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I96df45fe45b53088e07b26f14173a75498a84143 Gerrit-Change-Number: 13001 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 22 Feb 2019 13:56:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 14:14:57 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 22 Feb 2019 14:14:57 +0000 Subject: Change in libosmocore[master]: gsm0808: make msgb size and headroom configurable In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/13004 ) Change subject: gsm0808: make msgb size and headroom configurable ...................................................................... Patch Set 1: Code-Review-1 (1 comment) https://gerrit.osmocom.org/#/c/13004/1/include/osmocom/gsm/gsm0808.h File include/osmocom/gsm/gsm0808.h: https://gerrit.osmocom.org/#/c/13004/1/include/osmocom/gsm/gsm0808.h at 37 PS1, Line 37: #define BSSMAP_MSG_SIZE (osmo_gsm0808_msg_size ? : BSSMAP_MSG_DEFAULT_SIZE - BSSMAP_MSG_DEFAULT_HEADROOM + BSSMAP_MSG_HEADROOM) I don't really understand what you are trying to do here. It's now possible to allocate less than MSG_DEFAULT_SIZE if you set msg_headroom to something smaller than the default. Is that intentional? osmo_gsm0808_msg_headroom = 32; -> BSSMAP_MSG_HEADROOM == 32 -> BSSMAP_MSG_SIZE == 512 - 128 + 32 == 416 I think you did this to ensure the tailroom doesn't decrease when you increase the headroom, but I think this is a bit strange as BSSMAP_MSG_DEFAULT_SIZE seems to mean how much to allocate for the complete msgb including headroom and now it sort of means how much tailroom you want to have. Rename the _DEFAULT_ or simplify the define? I'd be fine with either. -- To view, visit https://gerrit.osmocom.org/13004 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I95729991eb49555f8bba60c5dc916131b03b6cf2 Gerrit-Change-Number: 13004 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 22 Feb 2019 14:14:57 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 14:15:55 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 22 Feb 2019 14:15:55 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc: update expected results In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12944 ) Change subject: msc: update expected results ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12944 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1151e9333da14bb2714712b57914e03e4d5b785b Gerrit-Change-Number: 12944 Gerrit-PatchSet: 4 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 22 Feb 2019 14:15:55 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Fri Feb 22 15:10:06 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Fri, 22 Feb 2019 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#409?= In-Reply-To: <2132091540.355.1550761806805.JavaMail.jenkins@jenkins.osmocom.org> References: <2132091540.355.1550761806805.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <584522565.394.1550848206754.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.83 KB...] checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs mkdir .libs mkdir .libs mkdir: cannot create directory '.libs': File exists mkdir: cannot create directory '.libs': File exists gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Fri Feb 22 16:42:44 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 22 Feb 2019 16:42:44 +0000 Subject: Change in osmo-pcu[master]: Rewrite Packet Downlink Assignment In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12954 ) Change subject: Rewrite Packet Downlink Assignment ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/#/c/12954/6/src/encoding.cpp File src/encoding.cpp: https://gerrit.osmocom.org/#/c/12954/6/src/encoding.cpp at 104 PS6, Line 104: static inline bool write_tai(bitvec *dest, unsigned& wp, int8_t tai) It's a bit weird that we now have two functions that essentially do the same. Could we wrap one in the other? Something like this looks equivalent for write_tai, but needs knowledge of bitvec internals: dest->cur_bit = wp; write_ta_index(dest, tai); wp = dest->cur_bit; if (tai < 0) return false; else return true; I must admit that I don't understand the idea behind wp since it is that same value as dest->cur_bit (unless I'm missing something). Maybe what's missing is a bitvec function to set and get the current bit cursor position? -- To view, visit https://gerrit.osmocom.org/12954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie180733d2584ebb16fb80b84526d0dbc70e3d441 Gerrit-Change-Number: 12954 Gerrit-PatchSet: 6 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-Reviewer: tnt Gerrit-CC: Vadim Yanitskiy Gerrit-CC: daniel Gerrit-Comment-Date: Fri, 22 Feb 2019 16:42:44 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 16:51:01 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 22 Feb 2019 16:51:01 +0000 Subject: Change in osmo-pcu[master]: Restructure IA Rest Octets encoders In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12959 ) Change subject: Restructure IA Rest Octets encoders ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12959 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0ad1bc786c3a8055ea9666f64ae82c512bd01603 Gerrit-Change-Number: 12959 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Reviewer: tnt Gerrit-Comment-Date: Fri, 22 Feb 2019 16:51:01 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 17:03:46 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 22 Feb 2019 17:03:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC: Verify CSFB INDICATOR is present in CLEAR COMMAND In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/12935 ) Change subject: MSC: Verify CSFB INDICATOR is present in CLEAR COMMAND ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6ce3a34f85aca7143cf7925cb9319bc679e8d395 Gerrit-Change-Number: 12935 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 22 Feb 2019 17:03:46 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 17:56:35 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 22 Feb 2019 17:56:35 +0000 Subject: Change in docker-playground[master]: Fix permissions when collecting logs Message-ID: daniel has uploaded this change for review. ( https://gerrit.osmocom.org/13008 Change subject: Fix permissions when collecting logs ...................................................................... Fix permissions when collecting logs Use the debian-jessie-build container to ensure all files under ${VOL_BASE_DIR} are readable. Call this directly from collect_logs so we handle all ttcn3 jobs. Fixes: OS#3800 Change-Id: I124c554eee69ec5586547d3c96b8ec571e0653a7 --- M jenkins-common.sh 1 file changed, 11 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/08/13008/1 diff --git a/jenkins-common.sh b/jenkins-common.sh index 0dbe8b0..7c8e231 100644 --- a/jenkins-common.sh +++ b/jenkins-common.sh @@ -29,7 +29,18 @@ docker network remove $NET_NAME } +fix_perms() { + docker_images_require debian-jessie-build + echo Fixing permissions + docker run --rm \ + -v $VOL_BASE_DIR:/data \ + --name ${BUILD_TAG}-cleaner \ + $REPO_USER/debian-jessie-build \ + chmod -R a+rX /data/ +} + collect_logs() { + fix_perms cat "$VOL_BASE_DIR"/*/junit-*.log || true } -- To view, visit https://gerrit.osmocom.org/13008 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I124c554eee69ec5586547d3c96b8ec571e0653a7 Gerrit-Change-Number: 13008 Gerrit-PatchSet: 1 Gerrit-Owner: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 17:59:54 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Fri, 22 Feb 2019 17:59:54 +0000 Subject: Change in docker-playground[master]: Fix permissions when collecting logs In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/13008 ) Change subject: Fix permissions when collecting logs ...................................................................... Patch Set 1: Verified+1 I tried it with ttcn3-msc-test and ttcn3-sip-test and ./jenkins.sh ran through -- To view, visit https://gerrit.osmocom.org/13008 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I124c554eee69ec5586547d3c96b8ec571e0653a7 Gerrit-Change-Number: 13008 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 22 Feb 2019 17:59:54 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 20:40:22 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 22 Feb 2019 20:40:22 +0000 Subject: Change in docker-playground[master]: Fix permissions when collecting logs In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/13008 ) Change subject: Fix permissions when collecting logs ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/13008/1/jenkins-common.sh File jenkins-common.sh: https://gerrit.osmocom.org/#/c/13008/1/jenkins-common.sh at 39 PS1, Line 39: chmod -R a+rX /data/ Why not add this line at the end of the docker containers generating the log files? May make more sense. Maybe changing the umask before is enough -- To view, visit https://gerrit.osmocom.org/13008 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I124c554eee69ec5586547d3c96b8ec571e0653a7 Gerrit-Change-Number: 13008 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 22 Feb 2019 20:40:22 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 20:41:31 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 22 Feb 2019 20:41:31 +0000 Subject: Change in osmo-gsm-tester[master]: contrib: Add script to build osmo-bts and osmo-pcu for oc2g In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/13003 ) Change subject: contrib: Add script to build osmo-bts and osmo-pcu for oc2g ...................................................................... Patch Set 2: Code-Review+2 Yes, some late isses with ofono when running through gprs. I still need to check what's going on regarding that topic, but not related to this commit. -- To view, visit https://gerrit.osmocom.org/13003 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7cc8937fb3e6c5d74b56cb049afb293b0b7ed25e Gerrit-Change-Number: 13003 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-CC: daniel Gerrit-Comment-Date: Fri, 22 Feb 2019 20:41:31 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 20:41:34 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Fri, 22 Feb 2019 20:41:34 +0000 Subject: Change in osmo-gsm-tester[master]: contrib: Add script to build osmo-bts and osmo-pcu for oc2g In-Reply-To: References: Message-ID: Pau Espin Pedrol has submitted this change and it was merged. ( https://gerrit.osmocom.org/13003 ) Change subject: contrib: Add script to build osmo-bts and osmo-pcu for oc2g ...................................................................... contrib: Add script to build osmo-bts and osmo-pcu for oc2g Change-Id: I7cc8937fb3e6c5d74b56cb049afb293b0b7ed25e --- A contrib/jenkins-build-osmo-bts-oc2g.sh A contrib/jenkins-build-osmo-pcu-oc2g.sh 2 files changed, 55 insertions(+), 0 deletions(-) Approvals: Pau Espin Pedrol: Looks good to me, approved Jenkins Builder: Verified diff --git a/contrib/jenkins-build-osmo-bts-oc2g.sh b/contrib/jenkins-build-osmo-bts-oc2g.sh new file mode 100755 index 0000000..9ed2099 --- /dev/null +++ b/contrib/jenkins-build-osmo-bts-oc2g.sh @@ -0,0 +1,31 @@ +#!/bin/sh +set -e -x + +_poky_version="$POKY_VERSION" +_poky_path="$POKY_PATH" + +[ -z "$_poky_version" ] && _poky_version="2.3.2" +[ -z "$_poky_path" ] && _poky_path="/opt/poky/$_poky_version" + +. "$_poky_path/environment-setup-armv5te-poky-linux-gnueabi" + +# Cross-compilation: all installations need to be put in the sysmo SDK sysroot +export DESTDIR="$_poky_path/sysroots/armv5te-poky-linux-gnueabi" + +base="$PWD" +name="osmo-bts-oc2g" +prefix="/usr/local/jenkins-build/inst-$name" +prefix_real="$DESTDIR$prefix" +. "$(dirname "$0")/jenkins-build-common.sh" + +prev_git_url="${git_url}" +git_url="https://gitlab.com/nrw_oc2g/" +have_repo "oc2g-fw" "nrw/oc2g" +git_url="${prev_git_url}" +L1_OC2G_HEADERS="$PWD/oc2g-fw/inc" + +build_repo libosmocore --disable-pcsc --disable-doxygen --disable-gnutls +build_repo libosmo-abis +build_repo osmo-bts --disable-sysmocom-bts --enable-oc2g --with-oc2g="$L1_OC2G_HEADERS" + +create_bin_tgz osmo-bts-oc2g diff --git a/contrib/jenkins-build-osmo-pcu-oc2g.sh b/contrib/jenkins-build-osmo-pcu-oc2g.sh new file mode 100755 index 0000000..2164926 --- /dev/null +++ b/contrib/jenkins-build-osmo-pcu-oc2g.sh @@ -0,0 +1,24 @@ +#!/bin/sh +set -e -x + +_poky_version="$POKY_VERSION" +_poky_path="$POKY_PATH" + +[ -z "$_poky_version" ] && _poky_version="2.3.2" +[ -z "$_poky_path" ] && _poky_path="/opt/poky/$_poky_version" + +. "$_poky_path/environment-setup-armv5te-poky-linux-gnueabi" + +# Cross-compilation: all installations need to be put in the sysmo SDK sysroot +export DESTDIR="$_poky_path/sysroots/armv5te-poky-linux-gnueabi" + +base="$PWD" +name="osmo-pcu-oc2g" +prefix="/usr/local/jenkins-build/inst-$name" +prefix_real="$DESTDIR$prefix" +. "$(dirname "$0")/jenkins-build-common.sh" + +build_repo libosmocore --disable-pcsc --disable-doxygen --disable-gnutls +build_repo osmo-pcu --disable-sysmocom-dsp + +create_bin_tgz osmo-pcu -- To view, visit https://gerrit.osmocom.org/13003 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I7cc8937fb3e6c5d74b56cb049afb293b0b7ed25e Gerrit-Change-Number: 13003 Gerrit-PatchSet: 2 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-CC: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 21:22:28 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Feb 2019 21:22:28 +0000 Subject: Change in libosmocore[master]: select: Call log_reset_context() before calling file descriptor callb... In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12998 ) Change subject: select: Call log_reset_context() before calling file descriptor callbacks ...................................................................... select: Call log_reset_context() before calling file descriptor callbacks Make sure to clear any log context before processing the next incoming message as part of some file descriptor callback. This effectively prevents "context leaking" from processing of one message into processing of the next message as part of one iteration through the list of file descriptors here. Change-Id: I3644c7bc1a9cec5858eb0faf94efc8c3ba7f5d8d Closes: OS#3813 --- M src/select.c 1 file changed, 6 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/src/select.c b/src/select.c index b594ca5..4e7be35 100644 --- a/src/select.c +++ b/src/select.c @@ -35,6 +35,7 @@ #include #include #include +#include #include "../config.h" @@ -214,6 +215,11 @@ if (flags) { work = 1; + /* make sure to clear any log context before processing the next incoming message + * as part of some file descriptor callback. This effectively prevents "context + * leaking" from processing of one message into processing of the next message as part + * of one iteration through the list of file descriptors here. See OS#3813 */ + log_reset_context(); ufd->cb(ufd, flags); } /* ugly, ugly hack. If more than one filedescriptor was -- To view, visit https://gerrit.osmocom.org/12998 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I3644c7bc1a9cec5858eb0faf94efc8c3ba7f5d8d Gerrit-Change-Number: 12998 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 21:23:56 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Feb 2019 21:23:56 +0000 Subject: Change in docker-playground[master]: Fix permissions when collecting logs In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13008 ) Change subject: Fix permissions when collecting logs ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/#/c/13008/1/jenkins-common.sh File jenkins-common.sh: https://gerrit.osmocom.org/#/c/13008/1/jenkins-common.sh at 39 PS1, Line 39: chmod -R a+rX /data/ > Why not add this line at the end of the docker containers generating the log files? May make more se [?] "end of docker container": This would require us to have scripts inside the containers rather than simply calling the given osmo-foo program. And it doesn't help if jenkins kills the container altogether. "umask": Has no effect on core files, we discussed that at the office in more detail :/ -- To view, visit https://gerrit.osmocom.org/13008 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I124c554eee69ec5586547d3c96b8ec571e0653a7 Gerrit-Change-Number: 13008 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 22 Feb 2019 21:23:56 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 21:23:58 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Feb 2019 21:23:58 +0000 Subject: Change in docker-playground[master]: Fix permissions when collecting logs In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13008 ) Change subject: Fix permissions when collecting logs ...................................................................... Fix permissions when collecting logs Use the debian-jessie-build container to ensure all files under ${VOL_BASE_DIR} are readable. Call this directly from collect_logs so we handle all ttcn3 jobs. Fixes: OS#3800 Change-Id: I124c554eee69ec5586547d3c96b8ec571e0653a7 --- M jenkins-common.sh 1 file changed, 11 insertions(+), 0 deletions(-) Approvals: daniel: Verified Pau Espin Pedrol: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/jenkins-common.sh b/jenkins-common.sh index 0dbe8b0..7c8e231 100644 --- a/jenkins-common.sh +++ b/jenkins-common.sh @@ -29,7 +29,18 @@ docker network remove $NET_NAME } +fix_perms() { + docker_images_require debian-jessie-build + echo Fixing permissions + docker run --rm \ + -v $VOL_BASE_DIR:/data \ + --name ${BUILD_TAG}-cleaner \ + $REPO_USER/debian-jessie-build \ + chmod -R a+rX /data/ +} + collect_logs() { + fix_perms cat "$VOL_BASE_DIR"/*/junit-*.log || true } -- To view, visit https://gerrit.osmocom.org/13008 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I124c554eee69ec5586547d3c96b8ec571e0653a7 Gerrit-Change-Number: 13008 Gerrit-PatchSet: 1 Gerrit-Owner: daniel Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 21:24:10 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Feb 2019 21:24:10 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC: Verify CSFB INDICATOR is present in CLEAR COMMAND In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12935 ) Change subject: MSC: Verify CSFB INDICATOR is present in CLEAR COMMAND ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6ce3a34f85aca7143cf7925cb9319bc679e8d395 Gerrit-Change-Number: 12935 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 22 Feb 2019 21:24:10 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 21:24:12 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Feb 2019 21:24:12 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MSC: Verify CSFB INDICATOR is present in CLEAR COMMAND In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12935 ) Change subject: MSC: Verify CSFB INDICATOR is present in CLEAR COMMAND ...................................................................... MSC: Verify CSFB INDICATOR is present in CLEAR COMMAND When a CSFB voice call is cleared by the MSC, it must include the CSFB INDICATOR in order to trigger the BSC to perform actions required for Fast Return to LTE. This patch changes TC_sgsap_lu_and_mt_call() and TC_bssap_lu_sgsap_lu_and_mt_call() to ensure the CSFB INDICATOR IE is present as expected. Change-Id: I6ce3a34f85aca7143cf7925cb9319bc679e8d395 --- M library/BSSMAP_Templates.ttcn M msc/BSC_ConnectionHandler.ttcn M msc/MSC_Tests.ttcn 3 files changed, 23 insertions(+), 3 deletions(-) Approvals: Harald Welte: Looks good to me, approved daniel: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index a30b8e7..b538095 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -638,6 +638,21 @@ } } +template PDU_BSSAP tr_BSSMAP_ClearCommandCSFB modifies tr_BSSAP_BSSMAP := { + pdu := { + bssmap := { + clearCommand := { + messageType := '20'O, /* overwritten */ + layer3HeaderInfo := *, + cause := ?, + cSFB_Indication := { + elementIdentifier := '8F'O + } + } + } + } +} + template (value) PDU_BSSAP ts_BSSMAP_ClearComplete modifies ts_BSSAP_BSSMAP := { pdu := { diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn index 7b88192..b041007 100644 --- a/msc/BSC_ConnectionHandler.ttcn +++ b/msc/BSC_ConnectionHandler.ttcn @@ -646,13 +646,18 @@ setverdict(pass); } -function f_call_hangup(inout CallParameters cpars, boolean release_by_ms) +function f_call_hangup(inout CallParameters cpars, boolean release_by_ms, boolean is_csfb := false) runs on BSC_ConnHdlr { var MobileIdentityLV mi; var MNCC_PDU mncc; var MgcpCommand mgcp_cmd; var boolean respond_to_dlcx; + var template PDU_BSSAP t_clear := tr_BSSMAP_ClearCommand; + + if (is_csfb) { + t_clear := tr_BSSMAP_ClearCommandCSFB; + } MNCC.send(ts_MNCC_DISC_req(cpars.mncc_callref, valueof(ts_MNCC_cause(23)))); BSSAP.receive(tr_PDU_DTAP_MT(tr_ML3_MT_CC_DISC(cpars.transaction_id))); @@ -673,7 +678,7 @@ /* clearing of radio channel */ interleave { - [] BSSAP.receive(tr_BSSMAP_ClearCommand) { + [] BSSAP.receive(t_clear) { BSSAP.send(ts_BSSMAP_ClearComplete); BSSAP.receive(BSSAP_Conn_Prim:MSC_CONN_PRIM_DISC_IND); } diff --git a/msc/MSC_Tests.ttcn b/msc/MSC_Tests.ttcn index 00f9bec..7129f81 100644 --- a/msc/MSC_Tests.ttcn +++ b/msc/MSC_Tests.ttcn @@ -4471,7 +4471,7 @@ /* Complete the call, hold it for some time and then tear it down */ f_mt_call_complete(cpars); f_sleep(3.0); - f_call_hangup(cpars, true); + f_call_hangup(cpars, true, is_csfb := true); /* Make sure that subscriber is still present and the SGs association is in tact (ref-counting) */ f_ctrl_get_exp(IPA_CTRL, "fsm.SGs-UE.id.imsi:" & hex2str(g_pars.imsi) & ".state", "SGs-ASSOCIATED"); -- To view, visit https://gerrit.osmocom.org/12935 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I6ce3a34f85aca7143cf7925cb9319bc679e8d395 Gerrit-Change-Number: 12935 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 21:24:23 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Feb 2019 21:24:23 +0000 Subject: Change in osmo-pcu[master]: Restructure IA Rest Octets encoders In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12959 ) Change subject: Restructure IA Rest Octets encoders ...................................................................... Restructure IA Rest Octets encoders In preparation for upcoming patches with 11 bit RACH and TA support, let's restructure existing encoders to simplify further modifications: * move consistency checks to top-level Imm. Ass. encoder * use consistent formatting * constify pointers where appropriate * split SBA and MBA encoders into separate functions Those changes also make it obvious which parameters are necessary for Rest Octets in each specific case (DL, UL-SBA, UL-MBA, UL-SBA-EGPRS, UL-MBA-EGPRS). There're no functional code changes so there's no need to adjust tests. Change-Id: I0ad1bc786c3a8055ea9666f64ae82c512bd01603 Related: OS#1548 --- M src/encoding.cpp 1 file changed, 132 insertions(+), 123 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, but someone else must approve daniel: Looks good to me, approved diff --git a/src/encoding.cpp b/src/encoding.cpp index 2c89819..2648b02 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -87,18 +87,11 @@ bitvec_write_field(dest, &wp, ts, 3); } -static int write_ia_rest_downlink( - gprs_rlcmac_dl_tbf *tbf, - bitvec * dest, unsigned& wp, - bool polling, bool ta_valid, uint32_t fn, - uint8_t alpha, uint8_t gamma, int8_t ta_idx) +static int write_ia_rest_downlink(const gprs_rlcmac_dl_tbf *tbf, bitvec * dest, bool polling, bool ta_valid, + uint32_t fn, uint8_t alpha, uint8_t gamma, int8_t ta_idx, unsigned& wp) { - if (!tbf) { - LOGP(DRLCMACDL, LOGL_ERROR, - "Cannot encode DL IMMEDIATE ASSIGNMENT without TBF\n"); - return -EINVAL; - } - // GSM 04.08 10.5.2.16 IA Rest Octets + int rc = 0; + bitvec_write_field(dest, &wp, 3, 2); // "HH" bitvec_write_field(dest, &wp, 1, 2); // "01" Packet Downlink Assignment bitvec_write_field(dest, &wp,tbf->tlli(),32); // TLLI @@ -127,128 +120,126 @@ // bitvec_write_field(dest, &wp,0x1,1); // P0 not present // bitvec_write_field(dest, &wp,,0xb,4); if (tbf->is_egprs_enabled()) { - /* see GMS 44.018, 10.5.2.16 */ bitvec_write_field(dest, &wp, 1, 1); // "H" write_ws(dest, &wp, tbf->window_size()); // EGPRS Window Size bitvec_write_field(dest, &wp, 0x0, 2); // LINK_QUALITY_MEASUREMENT_MODE bitvec_write_field(dest, &wp, 0, 1); // BEP_PERIOD2 not present } - return 0; + return rc; } -static int write_ia_rest_uplink( - gprs_rlcmac_ul_tbf *tbf, - bitvec * dest, unsigned& wp, - uint8_t usf, uint32_t fn, - uint8_t alpha, uint8_t gamma, int8_t ta_idx) +static int write_ia_rest_uplink_sba(bitvec *dest, uint32_t fn, uint8_t alpha, uint8_t gamma, int8_t ta_idx, + unsigned& wp) { - OSMO_ASSERT(!tbf || !tbf->is_egprs_enabled()); + int rc = 0; - // GMS 04.08 10.5.2.37b 10.5.2.16 - bitvec_write_field(dest, &wp, 3, 2); // "HH" - bitvec_write_field(dest, &wp, 0, 2); // "0" Packet Uplink Assignment - if (tbf == NULL) { - bitvec_write_field(dest, &wp, 0, 1); // Block Allocation : Single Block Allocation - if (alpha) { - bitvec_write_field(dest, &wp,0x1,1); // ALPHA = present - bitvec_write_field(dest, &wp,alpha,4); // ALPHA = present - } else - bitvec_write_field(dest, &wp,0x0,1); // ALPHA = not present - bitvec_write_field(dest, &wp,gamma,5); // GAMMA power control parameter - write_tai(dest, wp, ta_idx); - bitvec_write_field(dest, &wp, 1, 1); // TBF_STARTING_TIME_FLAG - bitvec_write_field(dest, &wp,(fn / (26 * 51)) % 32,5); // T1' - bitvec_write_field(dest, &wp,fn % 51,6); // T3 - bitvec_write_field(dest, &wp,fn % 26,5); // T2 - } else { - bitvec_write_field(dest, &wp, 1, 1); // Block Allocation : Not Single Block Allocation - bitvec_write_field(dest, &wp, tbf->tfi(), 5); // TFI_ASSIGNMENT Temporary Flow Identity - bitvec_write_field(dest, &wp, 0, 1); // POLLING - bitvec_write_field(dest, &wp, 0, 1); // ALLOCATION_TYPE: dynamic - bitvec_write_field(dest, &wp, usf, 3); // USF - bitvec_write_field(dest, &wp, 0, 1); // USF_GRANULARITY - bitvec_write_field(dest, &wp, 0, 1); // "0" power control: Not Present - bitvec_write_field(dest, &wp, tbf->current_cs().to_num()-1, 2); // CHANNEL_CODING_COMMAND - bitvec_write_field(dest, &wp, 1, 1); // TLLI_BLOCK_CHANNEL_CODING - if (alpha) { - bitvec_write_field(dest, &wp,0x1,1); // ALPHA = present - bitvec_write_field(dest, &wp,alpha,4); // ALPHA - } else - bitvec_write_field(dest, &wp,0x0,1); // ALPHA = not present - bitvec_write_field(dest, &wp,gamma,5); // GAMMA power control parameter - /* note: there is no choise for TAI and no starting time */ - bitvec_write_field(dest, &wp, 0, 1); // switch TIMING_ADVANCE_INDEX = off - bitvec_write_field(dest, &wp, 0, 1); // TBF_STARTING_TIME_FLAG - } - return 0; + bitvec_write_field(dest, &wp, 0, 1); // Block Allocation: Single Block Allocation + + if (alpha) { + bitvec_write_field(dest, &wp, 0x1, 1); // ALPHA = present + bitvec_write_field(dest, &wp, alpha, 4); + } else + bitvec_write_field(dest, &wp, 0x0, 1); // ALPHA = not present + + bitvec_write_field(dest, &wp, gamma, 5); // GAMMA power control parameter + write_tai(dest, wp, ta_idx); + bitvec_write_field(dest, &wp, 1, 1); // TBF_STARTING_TIME_FLAG + bitvec_write_field(dest, &wp, (fn / (26 * 51)) % 32, 5); // T1' + bitvec_write_field(dest, &wp, fn % 51, 6); // T3 + bitvec_write_field(dest, &wp, fn % 26, 5); // T2 + + return rc; } -static int write_ia_rest_egprs_uplink( - gprs_rlcmac_ul_tbf *tbf, - bitvec * dest, unsigned& wp, - uint8_t usf, uint32_t fn, - uint8_t alpha, uint8_t gamma, int8_t ta_idx, - enum ph_burst_type burst_type, uint16_t ra) +static int write_ia_rest_uplink_mba(const gprs_rlcmac_ul_tbf *tbf, bitvec *dest, uint8_t usf, + uint8_t alpha, uint8_t gamma, unsigned& wp) { - uint8_t extended_ra = 0; + int rc = 0; - extended_ra = (ra & 0x1F); + bitvec_write_field(dest, &wp, 1, 1); // Block Allocation: Not Single Block Allocation + bitvec_write_field(dest, &wp, tbf->tfi(), 5); // TFI_ASSIGNMENT Temporary Flow Identity + bitvec_write_field(dest, &wp, 0, 1); // POLLING + bitvec_write_field(dest, &wp, 0, 1); // ALLOCATION_TYPE: dynamic + bitvec_write_field(dest, &wp, usf, 3); // USF + bitvec_write_field(dest, &wp, 0, 1); // USF_GRANULARITY + bitvec_write_field(dest, &wp, 0, 1); // "0" power control: Not Present + bitvec_write_field(dest, &wp, tbf->current_cs().to_num() - 1, 2); // CHANNEL_CODING_COMMAND + bitvec_write_field(dest, &wp, 1, 1); // TLLI_BLOCK_CHANNEL_CODING + if (alpha) { + bitvec_write_field(dest, &wp, 0x1, 1); // ALPHA = present + bitvec_write_field(dest, &wp, alpha, 4); // ALPHA + } else + bitvec_write_field(dest, &wp, 0x0, 1); // ALPHA = not present - bitvec_write_field(dest, &wp, 1, 2); /* LH */ - bitvec_write_field(dest, &wp, 0, 2); /* 0 EGPRS Uplink Assignment */ - bitvec_write_field(dest, &wp, extended_ra, 5); /* Extended RA */ - bitvec_write_field(dest, &wp, 0, 1); /* Access technology Request */ + bitvec_write_field(dest, &wp, gamma, 5); // GAMMA power control parameter - if (tbf == NULL) { + /* note: there is no choise for TAI and no starting time */ + bitvec_write_field(dest, &wp, 0, 1); // switch TIMING_ADVANCE_INDEX = off + bitvec_write_field(dest, &wp, 0, 1); // TBF_STARTING_TIME_FLAG - bitvec_write_field(dest, &wp, 0, 1); /* multiblock allocation */ + return rc; +} - if (alpha) { - bitvec_write_field(dest, &wp, 0x1, 1); /* ALPHA =yes */ - bitvec_write_field(dest, &wp, alpha, 4); /* ALPHA */ - } else { - bitvec_write_field(dest, &wp, 0x0, 1); /* ALPHA = no */ - } +static int write_ia_rest_egprs_uplink_mba(bitvec * dest, uint32_t fn, uint8_t alpha, uint8_t gamma, unsigned& wp) +{ + int rc = 0; - bitvec_write_field(dest, &wp, gamma, 5); /* GAMMA power contrl */ - bitvec_write_field(dest, &wp, (fn / (26 * 51)) % 32, 5);/* T1' */ - bitvec_write_field(dest, &wp, fn % 51, 6); /* T3 */ - bitvec_write_field(dest, &wp, fn % 26, 5); /* T2 */ - bitvec_write_field(dest, &wp, 0, 2); /* Radio block allocation */ + bitvec_write_field(dest, &wp, 0, 1); /* multiblock allocation */ - bitvec_write_field(dest, &wp, 0, 1); - + if (alpha) { + bitvec_write_field(dest, &wp, 0x1, 1); /* ALPHA =yes */ + bitvec_write_field(dest, &wp, alpha, 4); /* ALPHA */ } else { - bitvec_write_field(dest, &wp, 1, 1); /* single block alloc */ - bitvec_write_field(dest, &wp, tbf->tfi(), 5);/* TFI assignment */ - bitvec_write_field(dest, &wp, 0, 1); /* polling bit */ - bitvec_write_field(dest, &wp, 0, 1); /* constant */ - bitvec_write_field(dest, &wp, usf, 3); /* USF bit */ - bitvec_write_field(dest, &wp, 0, 1); /* USF granularity */ - bitvec_write_field(dest, &wp, 0, 1); /* P0 */ - /* MCS */ - bitvec_write_field(dest, &wp, tbf->current_cs().to_num()-1, 4); - /* tlli channel block */ - bitvec_write_field(dest, &wp, tbf->tlli(), 1); - bitvec_write_field(dest, &wp, 0, 1); /* BEP period present */ - bitvec_write_field(dest, &wp, 0, 1); /* resegmentation */ - write_ws(dest, &wp, tbf->window_size()); /* EGPRS window size */ - - if (alpha) { - bitvec_write_field(dest, &wp, 0x1, 1); /* ALPHA =yes */ - bitvec_write_field(dest, &wp, alpha, 4); /* ALPHA */ - } else { - bitvec_write_field(dest, &wp, 0x0, 1); /* ALPHA = no */ - } - - bitvec_write_field(dest, &wp, gamma, 5); /* GAMMA power contrl */ - bitvec_write_field(dest, &wp, 0, 1); /* TIMING_ADVANCE_INDEX */ - bitvec_write_field(dest, &wp, 0, 1); /* TBF_STARTING_TIME_FLAG */ - bitvec_write_field(dest, &wp, 0, 1); /* NULL */ + bitvec_write_field(dest, &wp, 0x0, 1); /* ALPHA = no */ } - return 0; + bitvec_write_field(dest, &wp, gamma, 5); /* GAMMA power contrl */ + bitvec_write_field(dest, &wp, (fn / (26 * 51)) % 32, 5);/* T1' */ + bitvec_write_field(dest, &wp, fn % 51, 6); /* T3 */ + bitvec_write_field(dest, &wp, fn % 26, 5); /* T2 */ + bitvec_write_field(dest, &wp, 0, 2); /* Radio block allocation */ + + bitvec_write_field(dest, &wp, 0, 1); + + return rc; +} + +static int write_ia_rest_egprs_uplink_sba(const gprs_rlcmac_ul_tbf *tbf, bitvec * dest, uint8_t usf, + uint8_t alpha, uint8_t gamma, unsigned& wp) +{ + int rc = 0; + + bitvec_write_field(dest, &wp, 1, 1); /* single block allocation */ + bitvec_write_field(dest, &wp, tbf->tfi(), 5); /* TFI assignment */ + bitvec_write_field(dest, &wp, 0, 1); /* polling bit */ + bitvec_write_field(dest, &wp, 0, 1); /* constant */ + bitvec_write_field(dest, &wp, usf, 3); /* USF bit */ + bitvec_write_field(dest, &wp, 0, 1); /* USF granularity */ + bitvec_write_field(dest, &wp, 0, 1); /* P0 */ + + /* MCS */ + bitvec_write_field(dest, &wp, tbf->current_cs().to_num() - 1, 4); + + /* TLLI channel block */ + bitvec_write_field(dest, &wp, tbf->tlli(), 1); + bitvec_write_field(dest, &wp, 0, 1); /* BEP period present */ + bitvec_write_field(dest, &wp, 0, 1); /* resegmentation */ + write_ws(dest, &wp, tbf->window_size()); /* EGPRS window size */ + + if (alpha) { + bitvec_write_field(dest, &wp, 0x1, 1); /* ALPHA = yes */ + bitvec_write_field(dest, &wp, alpha, 4); /* ALPHA */ + } else { + bitvec_write_field(dest, &wp, 0x0, 1); /* ALPHA = no */ + } + + bitvec_write_field(dest, &wp, gamma, 5); /* GAMMA power contrl */ + bitvec_write_field(dest, &wp, 0, 1); /* TIMING_ADVANCE_INDEX */ + bitvec_write_field(dest, &wp, 0, 1); /* TBF_STARTING_TIME_FLAG */ + bitvec_write_field(dest, &wp, 0, 1); /* NULL */ + + return rc; } /* @@ -396,19 +387,37 @@ plen = wp / 8; - if (downlink) - rc = write_ia_rest_downlink(as_dl_tbf(tbf), dest, wp, - polling, gsm48_ta_is_valid(ta), fn, - alpha, gamma, ta_idx); - else if (((burst_type == GSM_L1_BURST_TYPE_ACCESS_1) || - (burst_type == GSM_L1_BURST_TYPE_ACCESS_2))) - rc = write_ia_rest_egprs_uplink(as_ul_tbf(tbf), dest, wp, - usf, fn, - alpha, gamma, ta_idx, burst_type, ra); - else - rc = write_ia_rest_uplink(as_ul_tbf(tbf), dest, wp, - usf, fn, - alpha, gamma, ta_idx); + /* 3GPP TS 44.018 ?10.5.2.16 IA Rest Octets */ + if (downlink) { + if (!as_dl_tbf(tbf)) { + LOGP(DRLCMACDL, LOGL_ERROR, "Cannot encode DL IMMEDIATE ASSIGNMENT without TBF\n"); + return -EINVAL; + } + rc = write_ia_rest_downlink(as_dl_tbf(tbf), dest, polling, gsm48_ta_is_valid(ta), fn, alpha, gamma, + ta_idx, wp); + } else if (((burst_type == GSM_L1_BURST_TYPE_ACCESS_1) || (burst_type == GSM_L1_BURST_TYPE_ACCESS_2))) { + bitvec_write_field(dest, &wp, 1, 2); /* LH */ + bitvec_write_field(dest, &wp, 0, 2); /* 0 EGPRS Uplink Assignment */ + bitvec_write_field(dest, &wp, ra & 0x1F, 5); /* Extended RA */ + bitvec_write_field(dest, &wp, 0, 1); /* Access technology Request */ + + if (as_ul_tbf(tbf) != NULL) { + rc = write_ia_rest_egprs_uplink_sba(as_ul_tbf(tbf), dest, usf, alpha, gamma, wp); + } else { + rc = write_ia_rest_egprs_uplink_mba(dest, fn, alpha, gamma, wp); + } + } else { + OSMO_ASSERT(!tbf || !tbf->is_egprs_enabled()); + + bitvec_write_field(dest, &wp, 3, 2); // "HH" + bitvec_write_field(dest, &wp, 0, 2); // "0" Packet Uplink Assignment + + if (as_ul_tbf(tbf) != NULL) { + rc = write_ia_rest_uplink_mba(as_ul_tbf(tbf), dest, usf, alpha, gamma, wp); + } else { + rc = write_ia_rest_uplink_sba(dest, fn, alpha, gamma, ta_idx, wp); + } + } if (rc < 0) { LOGP(DRLCMAC, LOGL_ERROR, -- To view, visit https://gerrit.osmocom.org/12959 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I0ad1bc786c3a8055ea9666f64ae82c512bd01603 Gerrit-Change-Number: 12959 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Reviewer: tnt -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 21:26:01 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Feb 2019 21:26:01 +0000 Subject: Change in libosmocore[master]: gsm0808: make msgb size and headroom configurable In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13004 ) Change subject: gsm0808: make msgb size and headroom configurable ...................................................................... Patch Set 1: you could simply increae the headroom for all gsm0808 msgb's and even make the #define depend on sizeof(osmo_prim)? -- To view, visit https://gerrit.osmocom.org/13004 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I95729991eb49555f8bba60c5dc916131b03b6cf2 Gerrit-Change-Number: 13004 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-CC: Harald Welte Gerrit-Comment-Date: Fri, 22 Feb 2019 21:26:01 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 21:26:47 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Feb 2019 21:26:47 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc: update expected results In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12944 ) Change subject: msc: update expected results ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12944 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1151e9333da14bb2714712b57914e03e4d5b785b Gerrit-Change-Number: 12944 Gerrit-PatchSet: 4 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 22 Feb 2019 21:26:47 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 21:27:08 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Feb 2019 21:27:08 +0000 Subject: Change in osmo-ci[master]: jobs: osmo-gsm-tester: Add oc2g jobs In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13002 ) Change subject: jobs: osmo-gsm-tester: Add oc2g jobs ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13002 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5ea9b783a2a2017cb134e72087e217a4184184b2 Gerrit-Change-Number: 13002 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Comment-Date: Fri, 22 Feb 2019 21:27:08 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 21:27:10 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Feb 2019 21:27:10 +0000 Subject: Change in osmo-ci[master]: jobs: osmo-gsm-tester: Add oc2g jobs In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13002 ) Change subject: jobs: osmo-gsm-tester: Add oc2g jobs ...................................................................... jobs: osmo-gsm-tester: Add oc2g jobs Change-Id: I5ea9b783a2a2017cb134e72087e217a4184184b2 --- M jobs/osmo-gsm-tester-builder.yml M jobs/osmo-gsm-tester-runner.yml M jobs/osmo-gsm-tester-trigger.yml 3 files changed, 13 insertions(+), 1 deletion(-) Approvals: daniel: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved Pau Espin Pedrol: Verified diff --git a/jobs/osmo-gsm-tester-builder.yml b/jobs/osmo-gsm-tester-builder.yml index 1b522fc..89ca203 100644 --- a/jobs/osmo-gsm-tester-builder.yml +++ b/jobs/osmo-gsm-tester-builder.yml @@ -25,6 +25,10 @@ triggered-by: master-osmo-bts - osmo-pcu-sysmo: triggered-by: master-osmo-pcu + - osmo-bts-oc2g: + triggered-by: master-osmo-bts + - osmo-pcu-oc2g: + triggered-by: master-osmo-pcu triggered-by: 'master-{repo}' jobs: diff --git a/jobs/osmo-gsm-tester-runner.yml b/jobs/osmo-gsm-tester-runner.yml index e0cfe40..c9d84a3 100644 --- a/jobs/osmo-gsm-tester-runner.yml +++ b/jobs/osmo-gsm-tester-runner.yml @@ -82,6 +82,10 @@ repo: osmo-gsm-tester_build-osmo-bts-sysmo - copy_artifact: repo: osmo-gsm-tester_build-osmo-pcu-sysmo + - copy_artifact: + repo: osmo-gsm-tester_build-osmo-bts-oc2g + - copy_artifact: + repo: osmo-gsm-tester_build-osmo-pcu-oc2g - defaults: name: runner @@ -122,6 +126,8 @@ - osmo-gsm-tester_build-osmo-stp - osmo-gsm-tester_build-osmo-bts-sysmo - osmo-gsm-tester_build-osmo-pcu-sysmo + - osmo-gsm-tester_build-osmo-bts-oc2g + - osmo-gsm-tester_build-osmo-pcu-oc2g builders: - copy_artifact_all - shell: !include-raw: osmo-gsm-tester_run-{stage}.sh diff --git a/jobs/osmo-gsm-tester-trigger.yml b/jobs/osmo-gsm-tester-trigger.yml index aa24a4e..43298dc 100644 --- a/jobs/osmo-gsm-tester-trigger.yml +++ b/jobs/osmo-gsm-tester-trigger.yml @@ -26,4 +26,6 @@ osmo-gsm-tester_build-osmo-nitb, osmo-gsm-tester_build-osmo-stp, osmo-gsm-tester_build-osmo-bts-sysmo, - osmo-gsm-tester_build-osmo-pcu-sysmo + osmo-gsm-tester_build-osmo-pcu-sysmo, + osmo-gsm-tester_build-osmo-bts-oc2g, + osmo-gsm-tester_build-osmo-pcu-oc2g -- To view, visit https://gerrit.osmocom.org/13002 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5ea9b783a2a2017cb134e72087e217a4184184b2 Gerrit-Change-Number: 13002 Gerrit-PatchSet: 1 Gerrit-Owner: Pau Espin Pedrol Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 21:28:17 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Feb 2019 21:28:17 +0000 Subject: Change in osmo-sysmon[master]: Update config example In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12992 ) Change subject: Update config example ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I78025027d48a1213b2a23252c8261d9cb4564027 Gerrit-Change-Number: 12992 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith Gerrit-Comment-Date: Fri, 22 Feb 2019 21:28:17 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 21:28:19 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Feb 2019 21:28:19 +0000 Subject: Change in osmo-sysmon[master]: Update config example In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12992 ) Change subject: Update config example ...................................................................... Update config example Add OpenVPN and ping probe entries to example config. Change-Id: I78025027d48a1213b2a23252c8261d9cb4564027 Related: SYS#2655 --- M doc/examples/osmo-sysmon.cfg 1 file changed, 2 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/doc/examples/osmo-sysmon.cfg b/doc/examples/osmo-sysmon.cfg index e3adab9..f944f72 100644 --- a/doc/examples/osmo-sysmon.cfg +++ b/doc/examples/osmo-sysmon.cfg @@ -11,4 +11,6 @@ get-variable gbproxy-state netdev eth0 netdev tun0 +ping example.com +openvpn 127.0.0.1 1234 file os-image /etc/image-datetime -- To view, visit https://gerrit.osmocom.org/12992 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sysmon Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I78025027d48a1213b2a23252c8261d9cb4564027 Gerrit-Change-Number: 12992 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 21:28:44 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Feb 2019 21:28:44 +0000 Subject: Change in libosmocore[master]: Add multipatch capability to osmo-config-merge In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12897 ) Change subject: Add multipatch capability to osmo-config-merge ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I212cbdc3bf6f251c1a3175737ac74242fb004c6d Gerrit-Change-Number: 12897 Gerrit-PatchSet: 4 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Fri, 22 Feb 2019 21:28:44 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 21:28:46 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Feb 2019 21:28:46 +0000 Subject: Change in libosmocore[master]: Add multipatch capability to osmo-config-merge In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12897 ) Change subject: Add multipatch capability to osmo-config-merge ...................................................................... Add multipatch capability to osmo-config-merge That's pretty straightforward and convenient extention: handle all extra positional arguments as patch file names. This makes it similar to 'cp' and other coreutils basic tools. For example: osmo-config-merge base.cfg patch1.cfg patch2.cfg patch3.cfg will apply 3 patches to the base config file. Change-Id: I212cbdc3bf6f251c1a3175737ac74242fb004c6d --- M utils/osmo-config-merge.c 1 file changed, 45 insertions(+), 21 deletions(-) Approvals: Harald Welte: Looks good to me, approved daniel: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/utils/osmo-config-merge.c b/utils/osmo-config-merge.c index afaf86b..477bb02 100644 --- a/utils/osmo-config-merge.c +++ b/utils/osmo-config-merge.c @@ -49,6 +49,7 @@ #include #include #include +#include struct node { struct node *parent; /* back-pointer */ @@ -57,6 +58,11 @@ char *line; }; +struct osmo_patch_entry { + struct llist_head list; + struct node *tree; +}; + /* allocate a new node */ static struct node *node_alloc(void *ctx) { @@ -225,49 +231,67 @@ static void exit_usage(int rc) { - fprintf(stderr, "Usage: osmo-config-merge [--debug]\n"); + fprintf(stderr, "Usage: osmo-config-merge ... [--debug]\n"); exit(rc); } int main(int argc, char **argv) { - const char *base_fname, *patch_fname; - struct node *base_tree, *patch_tree; + struct node *base_tree; + struct osmo_config_list *trees; + struct osmo_patch_entry *entry; bool debug_enabled = false; + unsigned i; void *ctx; if (argc < 3) exit_usage(1); - base_fname = argv[1]; - patch_fname = argv[2]; - - if (argc > 3) { - if (!strcmp(argv[3], "--debug")) - debug_enabled = true; - else - exit_usage(1); - } - ctx = talloc_named_const(NULL, 0, "root"); - base_tree = file_read(ctx, base_fname); - patch_tree = file_read(ctx, patch_fname); - - if (!base_tree || ! patch_tree) { + base_tree = file_read(ctx, argv[1]); + trees = talloc_zero(ctx, struct osmo_config_list); + if (!base_tree || !trees) { talloc_free(ctx); return 2; } + INIT_LLIST_HEAD(&trees->entry); + for (i = 2; i < argc; i++) { + if (!strcmp(argv[i], "--debug")) + debug_enabled = true; + else { + entry = talloc_zero(trees, struct osmo_patch_entry); + if (!entry) { + talloc_free(ctx); + return 3; + } + + entry->tree = file_read(ctx, argv[i]); + if (!entry->tree) { + talloc_free(ctx); + return 4; + } + llist_add_tail(&entry->list, &trees->entry); + } + } + + if (llist_empty(&trees->entry)) + exit_usage(1); + if (debug_enabled) { fprintf(stderr, "====== dumping tree (base)\n"); dump_node(base_tree, stderr, true); - fprintf(stderr, "====== dumping tree (patch)\n"); - dump_node(patch_tree, stderr, true); } - append_patch(base_tree, patch_tree); + llist_for_each_entry(entry, &trees->entry, list) { + append_patch(base_tree, entry->tree); + if (debug_enabled) { + fprintf(stderr, "====== dumping tree (patch)\n"); + dump_node(entry->tree, stderr, true); + } + } if (debug_enabled) fprintf(stderr, "====== dumping tree (patched)\n"); @@ -275,7 +299,7 @@ fflush(stdout); /* make AddressSanitizer / LeakSanitizer happy by recursively freeing the trees */ - talloc_free(patch_tree); + talloc_free(trees); talloc_free(base_tree); talloc_free(ctx); -- To view, visit https://gerrit.osmocom.org/12897 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I212cbdc3bf6f251c1a3175737ac74242fb004c6d Gerrit-Change-Number: 12897 Gerrit-PatchSet: 5 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: daniel Gerrit-CC: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 22:32:23 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Feb 2019 22:32:23 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Move SNS specific functions to PCU_Tests_RAW_SNS.ttcn Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13009 Change subject: PCU: Move SNS specific functions to PCU_Tests_RAW_SNS.ttcn ...................................................................... PCU: Move SNS specific functions to PCU_Tests_RAW_SNS.ttcn Change-Id: Ie41a21b6f2b95f4aaea84d8b717e96efefb704e3 RelateD: OS#3372 --- M pcu/PCU_Tests_RAW.ttcn M pcu/PCU_Tests_RAW_SNS.ttcn 2 files changed, 38 insertions(+), 35 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/09/13009/1 diff --git a/pcu/PCU_Tests_RAW.ttcn b/pcu/PCU_Tests_RAW.ttcn index eb06088..3640b01 100644 --- a/pcu/PCU_Tests_RAW.ttcn +++ b/pcu/PCU_Tests_RAW.ttcn @@ -96,41 +96,6 @@ return nrf.msg; } -/* perform inbound SNS-SIZE procedure */ -function f_incoming_sns_size(template (omit) NsCause cause := omit) runs on RAW_NS_CT { - var PDU_NS rx; - /* expect one single SNS-SIZE with RESET flag; one remote v4 EP; no v6 EP */ - rx := f_ns_exp(tr_SNS_SIZE(mp_nsconfig.nsei, rst_flag := true, max_nsvcs := ?, - num_v4 := 1, num_v6 := omit)); - NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_SIZE_ACK(mp_nsconfig.nsei, cause))); -} - -/* perform outbound SNS-SIZE procedure */ -function f_outgoing_sns_size(template (omit) NsCause cause := omit) runs on RAW_NS_CT { - var PDU_NS rx; - NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_SIZE(mp_nsconfig.nsei, rst_flag := true, max_nsvcs := 1, - num_v4 := 1, num_v6 := omit) - )); - /* expect one single SNS-SIZE with RESET flag; one remote v4 EP; no v6 EP */ - rx := f_ns_exp(tr_SNS_SIZE_ACK(mp_nsconfig.nsei, cause)); -} - -/* perform inbound SNS-CONFIG procedure */ -function f_incoming_sns_config(template (omit) NsCause cause := omit) runs on RAW_NS_CT { - var PDU_NS rx; - rx := f_ns_exp(tr_SNS_CONFIG(mp_nsconfig.nsei, end_flag := true, v4 := ?)); - NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_CONFIG_ACK(mp_nsconfig.nsei, cause))); -} - -/* perform outbound SNS-CONFIG procedure */ -function f_outgoing_sns_config(template (omit) NsCause cause := omit) runs on RAW_NS_CT { - var PDU_NS rx; - var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(mp_nsconfig.local_ip, - mp_nsconfig.local_udp_port) } - NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_CONFIG(mp_nsconfig.nsei, true, v4))); - rx := f_ns_exp(tr_SNS_CONFIG_ACK(mp_nsconfig.nsei, cause)); -} - /* perform outbound NS-ALIVE procedure */ function f_outgoing_ns_alive() runs on RAW_NS_CT { NSCP.send(t_NS_Send(g_ns_conn_id, t_NS_ALIVE)); diff --git a/pcu/PCU_Tests_RAW_SNS.ttcn b/pcu/PCU_Tests_RAW_SNS.ttcn index fa906a8..a306fe4 100644 --- a/pcu/PCU_Tests_RAW_SNS.ttcn +++ b/pcu/PCU_Tests_RAW_SNS.ttcn @@ -3,11 +3,49 @@ import from Osmocom_Types all; import from PCU_Tests all; import from PCU_Tests_RAW all; +import from Osmocom_Gb_Types all; +import from NS_CodecPort all; +import from NS_Types all; /********************************************************************************** * Modern Gb/IP bring-up test cases using IP Sub-Network Service (SNS) **********************************************************************************/ +/* perform inbound SNS-SIZE procedure */ +function f_incoming_sns_size(template (omit) NsCause cause := omit) runs on RAW_NS_CT { + var PDU_NS rx; + /* expect one single SNS-SIZE with RESET flag; one remote v4 EP; no v6 EP */ + rx := f_ns_exp(tr_SNS_SIZE(mp_nsconfig.nsei, rst_flag := true, max_nsvcs := ?, + num_v4 := 1, num_v6 := omit)); + NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_SIZE_ACK(mp_nsconfig.nsei, cause))); +} + +/* perform outbound SNS-SIZE procedure */ +function f_outgoing_sns_size(template (omit) NsCause cause := omit) runs on RAW_NS_CT { + var PDU_NS rx; + NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_SIZE(mp_nsconfig.nsei, rst_flag := true, max_nsvcs := 1, + num_v4 := 1, num_v6 := omit) + )); + /* expect one single SNS-SIZE with RESET flag; one remote v4 EP; no v6 EP */ + rx := f_ns_exp(tr_SNS_SIZE_ACK(mp_nsconfig.nsei, cause)); +} + +/* perform inbound SNS-CONFIG procedure */ +function f_incoming_sns_config(template (omit) NsCause cause := omit) runs on RAW_NS_CT { + var PDU_NS rx; + rx := f_ns_exp(tr_SNS_CONFIG(mp_nsconfig.nsei, end_flag := true, v4 := ?)); + NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_CONFIG_ACK(mp_nsconfig.nsei, cause))); +} + +/* perform outbound SNS-CONFIG procedure */ +function f_outgoing_sns_config(template (omit) NsCause cause := omit) runs on RAW_NS_CT { + var PDU_NS rx; + var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(mp_nsconfig.local_ip, + mp_nsconfig.local_udp_port) } + NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_CONFIG(mp_nsconfig.nsei, true, v4))); + rx := f_ns_exp(tr_SNS_CONFIG_ACK(mp_nsconfig.nsei, cause)); +} + /* PCU-originated SNS-SIZE: successful case */ testcase TC_sns_po_size_success() runs on RAW_NS_CT { f_init_ns_codec(); -- To view, visit https://gerrit.osmocom.org/13009 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie41a21b6f2b95f4aaea84d8b717e96efefb704e3 Gerrit-Change-Number: 13009 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 22:32:24 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Feb 2019 22:32:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Prepare for having multiple Gb connections on tester side Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13010 Change subject: PCU: Prepare for having multiple Gb connections on tester side ...................................................................... PCU: Prepare for having multiple Gb connections on tester side Change-Id: I6de4832bda18b36873f57986a34ba8082af2c853 Related: OS#3372 --- M pcu/PCU_Tests_RAW.ttcn M pcu/PCU_Tests_RAW_SNS.ttcn 2 files changed, 94 insertions(+), 62 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/10/13010/1 diff --git a/pcu/PCU_Tests_RAW.ttcn b/pcu/PCU_Tests_RAW.ttcn index 3640b01..397e895 100644 --- a/pcu/PCU_Tests_RAW.ttcn +++ b/pcu/PCU_Tests_RAW.ttcn @@ -30,8 +30,9 @@ type component RAW_NS_CT { /* UDP port towards the bottom (IUT) */ - port NS_CODEC_PT NSCP; - var ConnectionId g_ns_conn_id := -1; + port NS_CODEC_PT NSCP[4]; + var ConnectionId g_ns_conn_id[4] := {-1, -1, -1, -1}; + var NSConfiguration g_nsconfig[4]; timer g_T_guard; /* PCUIF (we emulate the BTS part) */ @@ -67,28 +68,41 @@ PCU.send(t_SD_PCUIF(g_pcu_conn_id, info_ind)); } -function f_init_ns_codec(float guard_secs := 60.0) runs on RAW_NS_CT { +function f_init_ns_codec(integer idx := 0, float guard_secs := 60.0) runs on RAW_NS_CT { var Result res; - map(self:NSCP, system:NSCP); + + if (not g_T_guard.running) { + g_T_guard.start(guard_secs); + activate(as_Tguard()); + } + + if (not isbound(g_nsconfig) or not isbound(g_nsconfig[idx])) { + /* copy most parts from mp_nsconfig */ + g_nsconfig[idx] := mp_nsconfig; + /* adjust those parts different for each NS-VC */ + g_nsconfig[idx].nsvci := mp_nsconfig.nsvci + idx; + g_nsconfig[idx].local_udp_port := mp_nsconfig.local_udp_port + idx; + } + + map(self:NSCP[idx], system:NSCP); /* Connect the UDP socket */ - res := f_IPL4_connect(NSCP, mp_nsconfig.remote_ip, mp_nsconfig.remote_udp_port, - mp_nsconfig.local_ip, mp_nsconfig.local_udp_port, - 0, { udp := {}}); + log("connecting NSCP[", idx, "] to ", g_nsconfig[idx]); + res := f_IPL4_connect(NSCP[idx], g_nsconfig[idx].remote_ip, g_nsconfig[idx].remote_udp_port, + g_nsconfig[idx].local_ip, g_nsconfig[idx].local_udp_port, 0, { udp := {}}); if (not ispresent(res.connId)) { - setverdict(fail, "Could not connect NS UDP socket, check your configuration"); + setverdict(fail, "Could not connect NS UDP socket, check your configuration ", g_nsconfig[idx]); mtc.stop; } - g_ns_conn_id := res.connId; - g_T_guard.start(guard_secs); - activate(as_Tguard()); + g_ns_conn_id[idx] := res.connId; + } -function f_ns_exp(template PDU_NS exp_rx) runs on RAW_NS_CT return PDU_NS { +function f_ns_exp(template PDU_NS exp_rx, integer idx := 0) runs on RAW_NS_CT return PDU_NS { var NS_RecvFrom nrf; log("f_ns_exp() expecting ", exp_rx); alt { - [] NSCP.receive(t_NS_RecvFrom(exp_rx)) -> value nrf { } - [] NSCP.receive { + [] NSCP[idx].receive(t_NS_RecvFrom(exp_rx)) -> value nrf { } + [] NSCP[idx].receive { setverdict(fail, "Received unexpected NS: ", nrf); mtc.stop; } @@ -97,69 +111,69 @@ } /* perform outbound NS-ALIVE procedure */ -function f_outgoing_ns_alive() runs on RAW_NS_CT { - NSCP.send(t_NS_Send(g_ns_conn_id, t_NS_ALIVE)); +function f_outgoing_ns_alive(integer idx := 0) runs on RAW_NS_CT { + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], t_NS_ALIVE)); alt { - [] NSCP.receive(t_NS_RecvFrom(t_NS_ALIVE_ACK)); - [] NSCP.receive { repeat; } + [] NSCP[idx].receive(t_NS_RecvFrom(t_NS_ALIVE_ACK)); + [] NSCP[idx].receive { repeat; } } } /* perform outbound NS-BLOCK procedure */ -function f_outgoing_ns_block(NsCause cause) runs on RAW_NS_CT { - NSCP.send(t_NS_Send(g_ns_conn_id, ts_NS_BLOCK(cause, mp_nsconfig.nsvci))); +function f_outgoing_ns_block(NsCause cause, integer idx := 0) runs on RAW_NS_CT { + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_NS_BLOCK(cause, g_nsconfig[idx].nsvci))); alt { - [] NSCP.receive(t_NS_RecvFrom(tr_NS_BLOCK_ACK(mp_nsconfig.nsvci))); - [] NSCP.receive { repeat; } + [] NSCP[idx].receive(t_NS_RecvFrom(tr_NS_BLOCK_ACK(g_nsconfig[idx].nsvci))); + [] NSCP[idx].receive { repeat; } } } /* receive NS-ALIVE and ACK it */ -altstep as_rx_alive_tx_ack(boolean oneshot := false) runs on RAW_NS_CT { - [] NSCP.receive(t_NS_RecvFrom(t_NS_ALIVE)) { - NSCP.send(t_NS_Send(g_ns_conn_id, t_NS_ALIVE_ACK)); +altstep as_rx_alive_tx_ack(boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { + [] NSCP[idx].receive(t_NS_RecvFrom(t_NS_ALIVE)) { + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], t_NS_ALIVE_ACK)); if (not oneshot) { repeat; } } } /* Receive a BSSGP RESET for given BVCI and ACK it */ -altstep as_rx_bvc_reset_tx_ack(BssgpBvci bvci, boolean oneshot := false) runs on RAW_NS_CT { +altstep as_rx_bvc_reset_tx_ack(BssgpBvci bvci, boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { var NS_RecvFrom ns_rf; /* FIXME: nail down received cell_id in match */ - [] NSCP.receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, 0, + [] NSCP[idx].receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, 0, decmatch tr_BVC_RESET(?, bvci, ?)))) -> value ns_rf { var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.msg.pDU_NS_Unitdata.nS_SDU); var PDU_BSSGP bssgp_tx := valueof(ts_BVC_RESET_ACK(bvci, mp_gb_cfg.cell_id)); - NSCP.send(t_NS_Send(g_ns_conn_id, ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx)))); + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx)))); if (not oneshot) { repeat; } } } /* Receive a BSSGP UNBLOCK for given BVCI and ACK it */ -altstep as_rx_bvc_unblock_tx_ack(BssgpBvci bvci, boolean oneshot := false) runs on RAW_NS_CT { +altstep as_rx_bvc_unblock_tx_ack(BssgpBvci bvci, boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { var NS_RecvFrom ns_rf; - [] NSCP.receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, 0, + [] NSCP[idx].receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, 0, decmatch t_BVC_UNBLOCK(bvci)))) -> value ns_rf { var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.msg.pDU_NS_Unitdata.nS_SDU); var PDU_BSSGP bssgp_tx := valueof(t_BVC_UNBLOCK_ACK(bvci)); - NSCP.send(t_NS_Send(g_ns_conn_id, ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx)))); + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx)))); if (not oneshot) { repeat; } } } /* Receive a BSSGP FLOW-CONTROL-BVC and ACK it */ -altstep as_rx_bvc_fc_tx_ack(BssgpBvci bvci, boolean oneshot := false) runs on RAW_NS_CT { +altstep as_rx_bvc_fc_tx_ack(BssgpBvci bvci, boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { var NS_RecvFrom ns_rf; - [] NSCP.receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, bvci, + [] NSCP[idx].receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, bvci, decmatch tr_BVC_FC_BVC))) -> value ns_rf { var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.msg.pDU_NS_Unitdata.nS_SDU); var OCT1 tag := bssgp_rx.pDU_BSSGP_FLOW_CONTROL_BVC.tag.unstructured_Value; var PDU_BSSGP bssgp_tx := valueof(t_BVC_FC_BVC_ACK(tag)); - NSCP.send(t_NS_Send(g_ns_conn_id, ts_NS_UNITDATA(t_SduCtrlB, bvci, enc_PDU_BSSGP(bssgp_tx)))); + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_NS_UNITDATA(t_SduCtrlB, bvci, enc_PDU_BSSGP(bssgp_tx)))); if (not oneshot) { repeat; } } } @@ -169,19 +183,20 @@ **********************************************************************************/ /* Receive a NS-RESET and ACK it */ -private altstep as_rx_ns_reset_ack(boolean oneshot := false) runs on RAW_NS_CT { +private altstep as_rx_ns_reset_ack(boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { var NS_RecvFrom ns_rf; - [] NSCP.receive(t_NS_RecvFrom(tr_NS_RESET(NS_CAUSE_OM_INTERVENTION, mp_nsconfig.nsvci, - mp_nsconfig.nsei))) -> value ns_rf { - NSCP.send(t_NS_Send(g_ns_conn_id, ts_NS_RESET_ACK(mp_nsconfig.nsvci, mp_nsconfig.nsei))); + [] NSCP[idx].receive(t_NS_RecvFrom(tr_NS_RESET(NS_CAUSE_OM_INTERVENTION, g_nsconfig[idx].nsvci, + g_nsconfig[idx].nsei))) -> value ns_rf { + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_NS_RESET_ACK(g_nsconfig[idx].nsvci, + g_nsconfig[idx].nsei))); if (not oneshot) { repeat; } } } /* Receive a NS-UNBLOCK and ACK it */ -private altstep as_rx_ns_unblock_ack(boolean oneshot := false) runs on RAW_NS_CT { +private altstep as_rx_ns_unblock_ack(boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { var NS_RecvFrom ns_rf; - [] NSCP.receive(t_NS_RecvFrom(t_NS_UNBLOCK)) -> value ns_rf { - NSCP.send(t_NS_Send(g_ns_conn_id, t_NS_UNBLOCK_ACK)); + [] NSCP[idx].receive(t_NS_RecvFrom(t_NS_UNBLOCK)) -> value ns_rf { + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], t_NS_UNBLOCK_ACK)); if (not oneshot) { repeat; } } } @@ -204,8 +219,8 @@ var integer i; for (i := 0; i < 3; i := i+1) { - NSCP.receive(t_NS_RecvFrom(tr_NS_RESET(NS_CAUSE_OM_INTERVENTION, - mp_nsconfig.nsvci, mp_nsconfig.nsei))); + NSCP[0].receive(t_NS_RecvFrom(tr_NS_RESET(NS_CAUSE_OM_INTERVENTION, + g_nsconfig[0].nsvci, g_nsconfig[0].nsei))); } /* Expect inbound NS-RESET procedure */ @@ -228,19 +243,19 @@ /* Test for NS-RESET after NS-ALIVE timeout */ testcase TC_ns_alive_timeout_reset() runs on RAW_NS_CT { - f_init_ns_codec(100.0); + f_init_ns_codec(guard_secs := 100.0); f_init_pcuif(); /* Expect inbound NS-RESET procedure */ as_rx_ns_reset_ack(oneshot := true); /* wait for at least one NS-ALIVE */ - NSCP.receive(t_NS_RecvFrom(t_NS_ALIVE)); + NSCP[0].receive(t_NS_RecvFrom(t_NS_ALIVE)); /* wait for NS-RESET to re-appear, ignoring any NS-ALIVE until then */ alt { [] as_rx_ns_reset_ack(oneshot := true) { setverdict(pass); } - [] NSCP.receive(t_NS_RecvFrom(t_NS_ALIVE)) { repeat; } + [] NSCP[0].receive(t_NS_RecvFrom(t_NS_ALIVE)) { repeat; } } } @@ -273,7 +288,7 @@ activate(as_rx_alive_tx_ack()); /* wait for first NS-UNBLOCK, don't respond */ - NSCP.receive(t_NS_RecvFrom(t_NS_UNBLOCK)); + NSCP[0].receive(t_NS_RecvFrom(t_NS_UNBLOCK)); /* wait for re-transmission of NS-UNBLOCK */ as_rx_ns_unblock_ack(oneshot := true); diff --git a/pcu/PCU_Tests_RAW_SNS.ttcn b/pcu/PCU_Tests_RAW_SNS.ttcn index a306fe4..3e4ef2c 100644 --- a/pcu/PCU_Tests_RAW_SNS.ttcn +++ b/pcu/PCU_Tests_RAW_SNS.ttcn @@ -12,40 +12,57 @@ **********************************************************************************/ /* perform inbound SNS-SIZE procedure */ -function f_incoming_sns_size(template (omit) NsCause cause := omit) runs on RAW_NS_CT { +function f_incoming_sns_size(template (omit) NsCause cause := omit, integer idx := 0) +runs on RAW_NS_CT { var PDU_NS rx; /* expect one single SNS-SIZE with RESET flag; one remote v4 EP; no v6 EP */ - rx := f_ns_exp(tr_SNS_SIZE(mp_nsconfig.nsei, rst_flag := true, max_nsvcs := ?, - num_v4 := 1, num_v6 := omit)); - NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_SIZE_ACK(mp_nsconfig.nsei, cause))); + rx := f_ns_exp(tr_SNS_SIZE(g_nsconfig[idx].nsei, rst_flag := true, max_nsvcs := 8, + num_v4 := 4, num_v6 := omit), idx); + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_SIZE_ACK(g_nsconfig[idx].nsei, cause))); } /* perform outbound SNS-SIZE procedure */ -function f_outgoing_sns_size(template (omit) NsCause cause := omit) runs on RAW_NS_CT { +function f_outgoing_sns_size(template (omit) NsCause cause := omit, integer idx:= 0) +runs on RAW_NS_CT { var PDU_NS rx; - NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_SIZE(mp_nsconfig.nsei, rst_flag := true, max_nsvcs := 1, + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_SIZE(g_nsconfig[idx].nsei, rst_flag := true, max_nsvcs := 1, num_v4 := 1, num_v6 := omit) )); /* expect one single SNS-SIZE with RESET flag; one remote v4 EP; no v6 EP */ - rx := f_ns_exp(tr_SNS_SIZE_ACK(mp_nsconfig.nsei, cause)); + rx := f_ns_exp(tr_SNS_SIZE_ACK(g_nsconfig[idx].nsei, cause), idx); } /* perform inbound SNS-CONFIG procedure */ -function f_incoming_sns_config(template (omit) NsCause cause := omit) runs on RAW_NS_CT { +function f_incoming_sns_config(template (omit) NsCause cause := omit, integer idx := 0) +runs on RAW_NS_CT { var PDU_NS rx; - rx := f_ns_exp(tr_SNS_CONFIG(mp_nsconfig.nsei, end_flag := true, v4 := ?)); - NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_CONFIG_ACK(mp_nsconfig.nsei, cause))); + rx := f_ns_exp(tr_SNS_CONFIG(g_nsconfig[idx].nsei, end_flag := true, v4 := ?), idx); + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause))); } /* perform outbound SNS-CONFIG procedure */ -function f_outgoing_sns_config(template (omit) NsCause cause := omit) runs on RAW_NS_CT { +function f_outgoing_sns_config(template (omit) NsCause cause := omit, integer idx := 0) +runs on RAW_NS_CT { var PDU_NS rx; - var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(mp_nsconfig.local_ip, - mp_nsconfig.local_udp_port) } - NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_CONFIG(mp_nsconfig.nsei, true, v4))); - rx := f_ns_exp(tr_SNS_CONFIG_ACK(mp_nsconfig.nsei, cause)); + var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[idx].local_ip, + g_nsconfig[idx].local_udp_port) } + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, v4))); + rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause), idx); } +/* perform outbound SNS-CONFIG procedure (separate endpoints: 1 for control, 1 for user */ +function f_outgoing_sns_config_1c1u(template (omit) NsCause cause := omit, integer idx := 0) +runs on RAW_NS_CT { + var PDU_NS rx; + var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[0].local_ip, + g_nsconfig[0].local_udp_port, 1, 0), + ts_SNS_IPv4(g_nsconfig[1].local_ip, + g_nsconfig[1].local_udp_port, 0, 1) }; + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, v4))); + rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause), idx); +} + + /* PCU-originated SNS-SIZE: successful case */ testcase TC_sns_po_size_success() runs on RAW_NS_CT { f_init_ns_codec(); -- To view, visit https://gerrit.osmocom.org/13010 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6de4832bda18b36873f57986a34ba8082af2c853 Gerrit-Change-Number: 13010 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 22:32:24 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Feb 2019 22:32:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Add a bit more logging/tracing to ease debugging of SNS tests Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13011 Change subject: PCU: Add a bit more logging/tracing to ease debugging of SNS tests ...................................................................... PCU: Add a bit more logging/tracing to ease debugging of SNS tests Change-Id: Ic558f02f3c3ddbde0f16a7656b84486a8462b0a4 Related: OS#3372 --- M pcu/PCU_Tests_RAW_SNS.ttcn 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/11/13011/1 diff --git a/pcu/PCU_Tests_RAW_SNS.ttcn b/pcu/PCU_Tests_RAW_SNS.ttcn index 3e4ef2c..fb4d8f7 100644 --- a/pcu/PCU_Tests_RAW_SNS.ttcn +++ b/pcu/PCU_Tests_RAW_SNS.ttcn @@ -14,6 +14,7 @@ /* perform inbound SNS-SIZE procedure */ function f_incoming_sns_size(template (omit) NsCause cause := omit, integer idx := 0) runs on RAW_NS_CT { + log("f_incoming_sns_size(idx=", idx, ")"); var PDU_NS rx; /* expect one single SNS-SIZE with RESET flag; one remote v4 EP; no v6 EP */ rx := f_ns_exp(tr_SNS_SIZE(g_nsconfig[idx].nsei, rst_flag := true, max_nsvcs := 8, @@ -24,6 +25,7 @@ /* perform outbound SNS-SIZE procedure */ function f_outgoing_sns_size(template (omit) NsCause cause := omit, integer idx:= 0) runs on RAW_NS_CT { + log("f_outgoing_sns_size(idx=", idx, ")"); var PDU_NS rx; NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_SIZE(g_nsconfig[idx].nsei, rst_flag := true, max_nsvcs := 1, num_v4 := 1, num_v6 := omit) @@ -35,6 +37,7 @@ /* perform inbound SNS-CONFIG procedure */ function f_incoming_sns_config(template (omit) NsCause cause := omit, integer idx := 0) runs on RAW_NS_CT { + log("f_incoming_sns_config(idx=", idx, ")"); var PDU_NS rx; rx := f_ns_exp(tr_SNS_CONFIG(g_nsconfig[idx].nsei, end_flag := true, v4 := ?), idx); NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause))); @@ -43,6 +46,7 @@ /* perform outbound SNS-CONFIG procedure */ function f_outgoing_sns_config(template (omit) NsCause cause := omit, integer idx := 0) runs on RAW_NS_CT { + log("f_outgoing_sns_config(idx=", idx, ")"); var PDU_NS rx; var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[idx].local_ip, g_nsconfig[idx].local_udp_port) } @@ -53,6 +57,7 @@ /* perform outbound SNS-CONFIG procedure (separate endpoints: 1 for control, 1 for user */ function f_outgoing_sns_config_1c1u(template (omit) NsCause cause := omit, integer idx := 0) runs on RAW_NS_CT { + log("f_outgoing_sns_config_1c1u(idx=", idx, ")"); var PDU_NS rx; var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[0].local_ip, g_nsconfig[0].local_udp_port, 1, 0), -- To view, visit https://gerrit.osmocom.org/13011 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic558f02f3c3ddbde0f16a7656b84486a8462b0a4 Gerrit-Change-Number: 13011 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 22:32:24 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Feb 2019 22:32:24 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Add tests for SNS with separate signalling/data NS-VC, ADD, DEL Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13012 Change subject: PCU: Add tests for SNS with separate signalling/data NS-VC, ADD, DEL ...................................................................... PCU: Add tests for SNS with separate signalling/data NS-VC, ADD, DEL Change-Id: Ie1d14a901b354daa4e3796fe66e7390d87c7e778 Related: OS#3617 --- M library/Osmocom_Gb_Types.ttcn M pcu/PCU_Tests_RAW_SNS.ttcn 2 files changed, 220 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/12/13012/1 diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 86b4d49..a0242c3 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -116,6 +116,41 @@ return ret; } + function ts_SNS_IP_ADDR(template (omit) IPAddress ip) return template (omit) IP_Address_NS { + var template (omit) IP_Address_NS ret; + if (istemplatekind(ip, "omit")) { + return omit; + } else { + ret.iEI := '0B'O; + ret.ipAddress := ip; + if (ischosen(ip.ip4Address)) { + ret.addressType := '01'O; + } else { + ret.addressType := '02'O; + } + } + return ret; + } + function tr_SNS_IP_ADDR(template IPAddress ip) return template IP_Address_NS { + var template IP_Address_NS ret; + ret.iEI := '0B'O; + if (istemplatekind(ip, "omit")) { + return omit; + } else if (istemplatekind(ip, "*")) { + return *; + } else if (istemplatekind(ip, "?")) { + return ?; + } else { + ret.ipAddress := ip; + if (ischosen(ip.ip4Address)) { + ret.addressType := '01'O; + } else { + ret.addressType := '02'O; + } + } + return ret; + } + private function f_oct_or_wc(template integer inp, integer len) return template octetstring { if (istemplatekind(inp, "omit")) { return omit; @@ -475,6 +510,8 @@ var template ListofIP6Elements r; if (istemplatekind(elem, "omit")) { return omit; + } else if (istemplatekind(elem, "*")) { + return *; } else { r := { iEI := '06'O, @@ -526,6 +563,92 @@ } } + template (value) PDU_NS ts_SNS_ADD(Nsei nsei, uint8_t trans_id, + template (omit) IP4_Elements v4, + template (omit) IP6_Elements v6 := omit) := { + pDU_SNS_Add := { + nsPduType := '0D'O, + nSEI_NS := ts_NS_IE_NSEI(nsei), + transactionID := trans_id, + listofIP4Elements := ts_SNS_IE_ListIP4(v4), + listofIP6Elements := ts_SNS_IE_ListIP6(v6) + } + } + template PDU_NS tr_SNS_ADD(template Nsei nsei, template uint8_t trans_id, + template IP4_Elements v4, + template IP6_Elements v6 := omit) := { + pDU_SNS_Add := { + nsPduType := '0D'O, + nSEI_NS := tr_NS_IE_NSEI(nsei), + transactionID := trans_id, + listofIP4Elements := tr_SNS_IE_ListIP4(v4), + listofIP6Elements := tr_SNS_IE_ListIP6(v6) + } + } + + template (value) PDU_NS ts_SNS_DEL(Nsei nsei, uint8_t trans_id, + template (omit) IPAddress ip_sns, + template (omit) IP4_Elements v4, + template (omit) IP6_Elements v6 := omit) := { + pDU_SNS_Delete := { + nsPduType := '11'O, + nSEI_NS := ts_NS_IE_NSEI(nsei), + transactionID := trans_id, + iP_Address_NS := ts_SNS_IP_ADDR(ip_sns), + listofIP4Elements := ts_SNS_IE_ListIP4(v4), + listofIP6Elements := ts_SNS_IE_ListIP6(v6) + } + } + template PDU_NS tr_SNS_DEL(template Nsei nsei, template uint8_t trans_id, + template IPAddress ip_sns, + template IP4_Elements v4, + template IP6_Elements v6 := omit) := { + pDU_SNS_Delete := { + nsPduType := '11'O, + nSEI_NS := tr_NS_IE_NSEI(nsei), + transactionID := trans_id, + iP_Address_NS := tr_SNS_IP_ADDR(ip_sns), + listofIP4Elements := tr_SNS_IE_ListIP4(v4), + listofIP6Elements := tr_SNS_IE_ListIP6(v6) + } + } + + + template (value) PDU_NS ts_SNS_ACK(Nsei nsei, uint8_t trans_id, + template (omit) NsCause cause := omit, + template (omit) IP4_Elements v4 := omit, + template (omit) IP6_Elements v6 := omit) := { + pDU_SNS_Ack := { + nsPduType := '0C'O, + nSEI_NS := ts_NS_IE_NSEI(nsei), + transactionID := trans_id, + causeNS := ts_NS_IE_CAUSE_omit(cause), + iP_Address_NS := omit, + listofIP4Elements := ts_SNS_IE_ListIP4(v4), + listofIP6Elements := ts_SNS_IE_ListIP6(v6) + } + } + template PDU_NS tr_SNS_ACK(template Nsei nsei, template uint8_t trans_id := ?, + template NsCause cause := omit, + template IP4_Elements v4 := *, + template IP6_Elements v6 := *) := { + pDU_SNS_Ack := { + nsPduType := '0C'O, + nSEI_NS := tr_NS_IE_NSEI(nsei), + transactionID := trans_id, + causeNS := tr_NS_IE_CAUSE(cause), + iP_Address_NS := omit, + listofIP4Elements := tr_SNS_IE_ListIP4(v4), + listofIP6Elements := tr_SNS_IE_ListIP6(v6) + } + } + + + + + + + type record BssgpCellId { RoutingAreaIdentification ra_id, CellIdentity cell_id diff --git a/pcu/PCU_Tests_RAW_SNS.ttcn b/pcu/PCU_Tests_RAW_SNS.ttcn index fb4d8f7..41a4059 100644 --- a/pcu/PCU_Tests_RAW_SNS.ttcn +++ b/pcu/PCU_Tests_RAW_SNS.ttcn @@ -67,6 +67,29 @@ rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause), idx); } +function f_outgoing_sns_add(integer idx_add, uint8_t w_sig := 1, uint8_t w_user := 1, integer idx := 0) +runs on RAW_NS_CT { + log("f_outgoing_sns_add(idx_add=", idx_add, ")"); + var PDU_NS rx; + var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[idx_add].local_ip, + g_nsconfig[idx_add].local_udp_port, + w_sig, w_user) }; + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_ADD(g_nsconfig[idx].nsei, 23, v4))); + rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 23, omit, v4)); +} + +function f_outgoing_sns_del(integer idx_del, uint8_t w_sig := 1, uint8_t w_user := 1, integer idx := 0) +runs on RAW_NS_CT { + log("f_outgoing_sns_del(idx_del=", idx_del, ")"); + var PDU_NS rx; + var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[idx_del].local_ip, + g_nsconfig[idx_del].local_udp_port, + w_sig, w_user) }; + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_DEL(g_nsconfig[idx].nsei, 24, omit, v4))); + rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 24, omit, v4)); +} + + /* PCU-originated SNS-SIZE: successful case */ testcase TC_sns_po_size_success() runs on RAW_NS_CT { @@ -130,17 +153,89 @@ as_rx_bvc_unblock_tx_ack(mp_gb_cfg.bvci, oneshot := true); /* wait for one FLOW-CONTROL BVC and then ACK any further in the future */ - as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvci, oneshot := true); - activate(as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvci)); + as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvci, oneshot := true, idx := 1); + activate(as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvci, idx := 1)); setverdict(pass); } +private function f_sns_bringup_1c1u() runs on RAW_NS_CT { + /* Activate two NS codec ports */ + f_init_ns_codec(); + f_init_ns_codec(1); + f_init_pcuif(); + /* Perform Size + BSS-originated config */ + f_incoming_sns_size(); + f_incoming_sns_config(); + /* perform SGSN-originated config using idx==0 for signalling and idx==1 for user traffic */ + f_outgoing_sns_config_1c1u(); + + /* wait for one ALIVE cycle, then ACK any further ALIVE in the background + * for both NS-VCs */ + as_rx_alive_tx_ack(oneshot := true, idx := 0); + activate(as_rx_alive_tx_ack(idx := 0)); + as_rx_alive_tx_ack(oneshot := true, idx := 1); + activate(as_rx_alive_tx_ack(idx := 1)); + + /* perform outgoing ALIVE procedure for both NS-VCs */ + f_outgoing_ns_alive(0); + f_outgoing_ns_alive(1); + + /* Expect BVC-RESET for signaling (0) and ptp BVCI */ + as_rx_bvc_reset_tx_ack(0, oneshot := true); + as_rx_bvc_reset_tx_ack(mp_gb_cfg.bvci, oneshot := true); + /* Expect UNBLOCK for ptp BVCI on signaling NS-VC (idx==0) */ + as_rx_bvc_unblock_tx_ack(mp_gb_cfg.bvci, oneshot := true); + + /* wait for one FLOW-CONTROL BVC and then ACK any further in the future. Flow + * control happens on the p-t-p BVCI and hence on index 1 */ + as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvci, oneshot := true, idx := 1); + activate(as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvci, idx := 1)); +} + +/* Test full IP-SNS bring-up with two NS-VCs, one sig-only and one user-only */ +testcase TC_sns_1c1u() runs on RAW_NS_CT { + f_sns_bringup_1c1u(); + setverdict(pass); +} + +/* Test adding new IP endpoints at runtime */ +testcase TC_sns_add() runs on RAW_NS_CT { + f_sns_bringup_1c1u(); + + /* crate another NS codec port on the tester side */ + f_init_ns_codec(2); + + f_outgoing_sns_add(idx_add := 2, w_sig := 0, w_user := 1, idx := 0); + + /* wait for one ALIVE cycle, then ACK any further ALIVE in the background */ + as_rx_alive_tx_ack(oneshot := true, idx := 2); + activate(as_rx_alive_tx_ack(idx := 2)); + + f_outgoing_ns_alive(2); + /* TODO: Should we expect FLOW-CONTROL BVC here too? */ + setverdict(pass); +} + +/* Test deleting IP endpoints at runtime */ +testcase TC_sns_del() runs on RAW_NS_CT { + f_sns_bringup_1c1u(); + + f_outgoing_sns_del(idx_del := 1, w_sig := 0, w_user := 1, idx := 0); + /* FIXME: ensure we don't receive anything on just-deleted NS-VC anymore */ + setverdict(pass); +} + + + control { execute( TC_sns_po_size_success() ); execute( TC_sns_po_size_nack() ); execute( TC_sns_po_config_success() ); execute( TC_sns_po_config_nack() ); execute( TC_sns_so_config_success() ); + execute( TC_sns_1c1u() ); + execute( TC_sns_add() ); + execute( TC_sns_del() ); } } -- To view, visit https://gerrit.osmocom.org/13012 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie1d14a901b354daa4e3796fe66e7390d87c7e778 Gerrit-Change-Number: 13012 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 22:33:12 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Feb 2019 22:33:12 +0000 Subject: Change in libosmocore[master]: gprs_ns: Add code for SNS-SIZE and SNS-CONFIG encoding Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13013 Change subject: gprs_ns: Add code for SNS-SIZE and SNS-CONFIG encoding ...................................................................... gprs_ns: Add code for SNS-SIZE and SNS-CONFIG encoding Modern NS specifications contain a SNS (Sub Network Service) for negotiating IP/port/weight parameters of NS-over-IP links dynamically. This patch adds message encoding routines for SNS-CONFIG, SNS-SIZE and their respective acknowledgements. Related: OS#3372 Change-Id: I5c47e1c3c10deb89a7470ee2c03adfc174accc93 --- M include/osmocom/gprs/protocol/gsm_08_16.h M src/gb/Makefile.am A src/gb/gb_internal.h M src/gb/gprs_ns.c 4 files changed, 205 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/13/13013/1 diff --git a/include/osmocom/gprs/protocol/gsm_08_16.h b/include/osmocom/gprs/protocol/gsm_08_16.h index fc74336..15d92d3 100644 --- a/include/osmocom/gprs/protocol/gsm_08_16.h +++ b/include/osmocom/gprs/protocol/gsm_08_16.h @@ -17,6 +17,15 @@ uint8_t data[0]; /*!< variable-length payload */ } __attribute__((packed)); + +/*! Section 10.3.2c List of IP4 Elements */ +struct gprs_ns_ie_ip4_elem { + uint32_t ip_addr; + uint16_t udp_port; + uint8_t sig_weight; + uint8_t data_weight; +} __attribute__ ((packed)); + extern const struct value_string gprs_ns_pdu_strings[]; /*! NS PDU Type (TS 08.16, Section 10.3.7, Table 14) */ diff --git a/src/gb/Makefile.am b/src/gb/Makefile.am index 65b73fe..d074092 100644 --- a/src/gb/Makefile.am +++ b/src/gb/Makefile.am @@ -6,7 +6,7 @@ AM_CFLAGS = -Wall ${GCC_FVISIBILITY_HIDDEN} -fno-strict-aliasing $(TALLOC_CFLAGS) # FIXME: this should eventually go into a milenage/Makefile.am -noinst_HEADERS = common_vty.h +noinst_HEADERS = common_vty.h gb_internal.h if ENABLE_GB lib_LTLIBRARIES = libosmogb.la diff --git a/src/gb/gb_internal.h b/src/gb/gb_internal.h new file mode 100644 index 0000000..c1fa8e1 --- /dev/null +++ b/src/gb/gb_internal.h @@ -0,0 +1,19 @@ +#pragma once + +#include +#include +#include + +int gprs_ns_tx_sns_ack(struct gprs_nsvc *nsvc, uint8_t trans_id, uint8_t *cause, + const struct gprs_ns_ie_ip4_elem *ip4_elems,unsigned int num_ip4_elems); + +int gprs_ns_tx_sns_config(struct gprs_nsvc *nsvc, bool end_flag, + const struct gprs_ns_ie_ip4_elem *ip4_elems, + unsigned int num_ip4_elems); + +int gprs_ns_tx_sns_config_ack(struct gprs_nsvc *nsvc, uint8_t *cause); + +int gprs_ns_tx_sns_size(struct gprs_nsvc *nsvc, bool reset_flag, uint16_t max_nr_nsvc, + uint16_t *ip4_ep_nr, uint16_t *ip6_ep_nr); + +int gprs_ns_tx_sns_size_ack(struct gprs_nsvc *nsvc, uint8_t *cause); diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c index 54964d3..816d2db 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -2,7 +2,7 @@ * GPRS Networks Service (NS) messages on the Gb interface. * 3GPP TS 08.16 version 8.0.1 Release 1999 / ETSI TS 101 299 V8.0.1 (2002-05). */ /* - * (C) 2009-2017 by Harald Welte + * (C) 2009-2018 by Harald Welte * (C) 2016-2017 sysmocom - s.f.m.c. GmbH * * All Rights Reserved @@ -86,6 +86,7 @@ #include #include "common_vty.h" +#include "gb_internal.h" #define ns_set_state(ns_, st_) ns_set_state_with_log(ns_, st_, false, __FILE__, __LINE__) #define ns_set_remote_state(ns_, st_) ns_set_state_with_log(ns_, st_, true, __FILE__, __LINE__) @@ -99,6 +100,12 @@ [NS_IE_PDU] = { TLV_TYPE_TvLV, 0 }, [NS_IE_BVCI] = { TLV_TYPE_TvLV, 0 }, [NS_IE_NSEI] = { TLV_TYPE_TvLV, 0 }, + [NS_IE_IPv4_LIST] = { TLV_TYPE_TvLV, 0 }, + [NS_IE_IPv6_LIST] = { TLV_TYPE_TvLV, 0 }, + [NS_IE_MAX_NR_NSVC] = { TLV_TYPE_FIXED, 2 }, + [NS_IE_IPv4_EP_NR] = { TLV_TYPE_FIXED, 2 }, + [NS_IE_IPv6_EP_NR] = { TLV_TYPE_FIXED, 2 }, + [NS_IE_RESET_FLAG] = { TLV_TYPE_TV, 0 }, }, }; @@ -743,6 +750,174 @@ return gprs_ns_tx(nsvc, msg); } +/*! Encode + Transmit a SNS-ACK as per Section 9.3.1. + * \param[in] nsvc NS-VC through which to transmit the ACK + * \param[in] trans_id Transaction ID which to acknowledge + * \param[in] cause Pointer to cause value (NULL if no cause to be sent) + * \param[in] ip4_elems Array of IPv4 Elements + * \param[in] num_ip4_elems number of ip4_elems + * \returns 0 on success; negative in case of error */ +int gprs_ns_tx_sns_ack(struct gprs_nsvc *nsvc, uint8_t trans_id, uint8_t *cause, + const struct gprs_ns_ie_ip4_elem *ip4_elems, + unsigned int num_ip4_elems) +{ + struct msgb *msg = gprs_ns_msgb_alloc(); + struct gprs_ns_hdr *nsh; + uint16_t nsei; + + log_set_context(LOG_CTX_GB_NSVC, nsvc); + if (!msg) + return -ENOMEM; + + nsei = osmo_htons(nsvc->nsei); + + msg->l2h = msgb_put(msg, sizeof(*nsh)); + nsh = (struct gprs_ns_hdr *) msg->l2h; + + nsh->pdu_type = SNS_PDUT_ACK; + msgb_tvlv_put(msg, NS_IE_NSEI, 2, (uint8_t *)&nsei); + msgb_v_put(msg, trans_id); + if (cause) + msgb_tvlv_put(msg, NS_IE_CAUSE, 1, cause); + if (ip4_elems) { + /* List of IP4 Elements 10.3.2c */ + msgb_tvlv_put(msg, NS_IE_IPv4_LIST, + num_ip4_elems*sizeof(struct gprs_ns_ie_ip4_elem), + (const uint8_t *)ip4_elems); + } + /* FIXME: List of IP6 elements 10.3.2d */ + return gprs_ns_tx(nsvc, msg); +} + +/*! Encode + Transmit a SNS-CONFIG as per Section 9.3.4. + * \param[in] nsvc NS-VC through which to transmit the SNS-CONFIG + * \param[in] end_flag Whether or not this is the last SNS-CONFIG + * \param[in] ip4_elems Array of IPv4 Elements + * \param[in] num_ip4_elems number of ip4_elems + * \returns 0 on success; negative in case of error */ +int gprs_ns_tx_sns_config(struct gprs_nsvc *nsvc, bool end_flag, + const struct gprs_ns_ie_ip4_elem *ip4_elems, + unsigned int num_ip4_elems) +{ + struct msgb *msg = gprs_ns_msgb_alloc(); + struct gprs_ns_hdr *nsh; + uint16_t nsei; + + log_set_context(LOG_CTX_GB_NSVC, nsvc); + if (!msg) + return -ENOMEM; + + nsei = osmo_htons(nsvc->nsei); + + msg->l2h = msgb_put(msg, sizeof(*nsh)); + nsh = (struct gprs_ns_hdr *) msg->l2h; + + nsh->pdu_type = SNS_PDUT_CONFIG; + + msgb_v_put(msg, end_flag ? 0x01 : 0x00); + msgb_tvlv_put(msg, NS_IE_NSEI, 2, (uint8_t *)&nsei); + + /* List of IP4 Elements 10.3.2c */ + msgb_tvlv_put(msg, NS_IE_IPv4_LIST, num_ip4_elems*sizeof(struct gprs_ns_ie_ip4_elem), + (const uint8_t *)ip4_elems); + /* FIXME: List of IP6 elements 10.3.2d */ + + return gprs_ns_tx(nsvc, msg); +} + +/*! Encode + Transmit a SNS-CONFIG-ACK as per Section 9.3.5. + * \param[in] nsvc NS-VC through which to transmit the SNS-CONFIG-ACK + * \param[in] cause Pointer to cause value (NULL if no cause to be sent) + * \returns 0 on success; negative in case of error */ +int gprs_ns_tx_sns_config_ack(struct gprs_nsvc *nsvc, uint8_t *cause) +{ + struct msgb *msg = gprs_ns_msgb_alloc(); + struct gprs_ns_hdr *nsh; + uint16_t nsei; + + log_set_context(LOG_CTX_GB_NSVC, nsvc); + if (!msg) + return -ENOMEM; + + nsei = osmo_htons(nsvc->nsei); + + msg->l2h = msgb_put(msg, sizeof(*nsh)); + nsh = (struct gprs_ns_hdr *) msg->l2h; + + nsh->pdu_type = SNS_PDUT_CONFIG_ACK; + + msgb_tvlv_put(msg, NS_IE_NSEI, 2, (uint8_t *)&nsei); + if (cause) + msgb_tvlv_put(msg, NS_IE_CAUSE, 1, cause); + + return gprs_ns_tx(nsvc, msg); +} + + +/*! Encode + transmit a SNS-SIZE as per Section 9.3.7. + * \param[in] nsvc NS-VC through which to transmit the SNS-SIZE + * \param[in] reset_flag Whether or not to add a RESET flag + * \param[in] max_nr_nsvc Maximum number of NS-VCs + * \param[in] ip4_ep_nr Number of IPv4 endpoints (NULL if none) + * \param[in] ip6_ep_nr Number of IPv6 endpoints (NULL if none) + * \returns 0 on success; negative in case of error */ +int gprs_ns_tx_sns_size(struct gprs_nsvc *nsvc, bool reset_flag, uint16_t max_nr_nsvc, + uint16_t *ip4_ep_nr, uint16_t *ip6_ep_nr) +{ + struct msgb *msg = gprs_ns_msgb_alloc(); + struct gprs_ns_hdr *nsh; + uint16_t nsei; + + log_set_context(LOG_CTX_GB_NSVC, nsvc); + if (!msg) + return -ENOMEM; + + nsei = osmo_htons(nsvc->nsei); + + msg->l2h = msgb_put(msg, sizeof(*nsh)); + nsh = (struct gprs_ns_hdr *) msg->l2h; + + nsh->pdu_type = SNS_PDUT_SIZE; + + msgb_tvlv_put(msg, NS_IE_NSEI, 2, (uint8_t *)&nsei); + msgb_tv_put(msg, NS_IE_RESET_FLAG, reset_flag ? 0x01 : 0x00); + msgb_tv16_put(msg, NS_IE_MAX_NR_NSVC, max_nr_nsvc); + if (ip4_ep_nr) + msgb_tv16_put(msg, NS_IE_IPv4_EP_NR, *ip4_ep_nr); + if (ip6_ep_nr) + msgb_tv16_put(msg, NS_IE_IPv6_EP_NR, *ip6_ep_nr); + + return gprs_ns_tx(nsvc, msg); +} + +/*! Encode + Transmit a SNS-SIZE-ACK as per Section 9.3.8. + * \param[in] nsvc NS-VC through which to transmit the SNS-SIZE-ACK + * \param[in] cause Pointer to cause value (NULL if no cause to be sent) + * \returns 0 on success; negative in case of error */ +int gprs_ns_tx_sns_size_ack(struct gprs_nsvc *nsvc, uint8_t *cause) +{ + struct msgb *msg = gprs_ns_msgb_alloc(); + struct gprs_ns_hdr *nsh; + uint16_t nsei; + + log_set_context(LOG_CTX_GB_NSVC, nsvc); + if (!msg) + return -ENOMEM; + + nsei = osmo_htons(nsvc->nsei); + + msg->l2h = msgb_put(msg, sizeof(*nsh)); + nsh = (struct gprs_ns_hdr *) msg->l2h; + + nsh->pdu_type = SNS_PDUT_SIZE_ACK; + + msgb_tvlv_put(msg, NS_IE_NSEI, 2, (uint8_t *)&nsei); + if (cause) + msgb_tvlv_put(msg, NS_IE_CAUSE, 1, cause); + + return gprs_ns_tx(nsvc, msg); +} + /*! High-level function for transmitting a NS-UNITDATA messsage * \param[in] nsi NS-instance on which we shall transmit * \param[in] msg struct msgb to be trasnmitted -- To view, visit https://gerrit.osmocom.org/13013 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5c47e1c3c10deb89a7470ee2c03adfc174accc93 Gerrit-Change-Number: 13013 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 22:33:13 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Feb 2019 22:33:13 +0000 Subject: Change in libosmocore[master]: WIP: Add support for GPRS NS IP Sub-Network-Service (SNS) Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13014 Change subject: WIP: Add support for GPRS NS IP Sub-Network-Service (SNS) ...................................................................... WIP: Add support for GPRS NS IP Sub-Network-Service (SNS) Related: OS#3372 Change-Id: I84786c3b43a8ae34ef3b3ba84b33c90042d234ea --- M include/osmocom/gprs/gprs_msgb.h M include/osmocom/gprs/gprs_ns.h M include/osmocom/gprs/protocol/gsm_08_16.h M src/gb/Makefile.am M src/gb/gb_internal.h M src/gb/gprs_ns.c A src/gb/gprs_ns_sns.c M src/gb/gprs_ns_vty.c M src/gb/libosmogb.map 9 files changed, 895 insertions(+), 24 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/14/13014/1 diff --git a/include/osmocom/gprs/gprs_msgb.h b/include/osmocom/gprs/gprs_msgb.h index 43471e2..3f48b5b 100644 --- a/include/osmocom/gprs/gprs_msgb.h +++ b/include/osmocom/gprs/gprs_msgb.h @@ -3,19 +3,19 @@ #pragma once #include -/* the data structure stored in msgb->cb for libgb apps */ +/*! the data structure stored in msgb->cb for libgb apps */ struct libgb_msgb_cb { unsigned char *bssgph; unsigned char *llch; - /* Cell Identifier */ + /*! Cell Identifier */ unsigned char *bssgp_cell_id; - /* Identifiers of a BTS, equal to 'struct bssgp_bts_ctx' */ + /*! Identifiers of a BTS, equal to 'struct bssgp_bts_ctx' */ uint16_t nsei; uint16_t bvci; - /* Identifier of a MS (inside BTS), equal to 'struct sgsn_mm_ctx' */ + /*! Identifier of a MS (inside BTS), equal to 'struct sgsn_mm_ctx' */ uint32_t tlli; } __attribute__((packed, may_alias)); #define LIBGB_MSGB_CB(__msgb) ((struct libgb_msgb_cb *)&((__msgb)->cb[0])) diff --git a/include/osmocom/gprs/gprs_ns.h b/include/osmocom/gprs/gprs_ns.h index 1c99ed0..c62ef98 100644 --- a/include/osmocom/gprs/gprs_ns.h +++ b/include/osmocom/gprs/gprs_ns.h @@ -14,8 +14,8 @@ #include -#define NS_TIMERS_COUNT 7 -#define NS_TIMERS "(tns-block|tns-block-retries|tns-reset|tns-reset-retries|tns-test|tns-alive|tns-alive-retries)" +#define NS_TIMERS_COUNT 8 +#define NS_TIMERS "(tns-block|tns-block-retries|tns-reset|tns-reset-retries|tns-test|tns-alive|tns-alive-retries|tsns-prov)" #define NS_TIMERS_HELP \ "(un)blocking Timer (Tns-block) timeout\n" \ "(un)blocking Timer (Tns-block) number of retries\n" \ @@ -23,7 +23,8 @@ "Reset Timer (Tns-reset) number of retries\n" \ "Test Timer (Tns-test) timeout\n" \ "Alive Timer (Tns-alive) timeout\n" \ - "Alive Timer (Tns-alive) number of retries\n" + "Alive Timer (Tns-alive) number of retries\n" \ + "SNS Provision Timer (Tsns-prov) timeout\n" /* Educated guess - LLC user payload is 1500 bytes plus possible headers */ #define NS_ALLOC_SIZE 3072 @@ -37,6 +38,7 @@ NS_TOUT_TNS_TEST, NS_TOUT_TNS_ALIVE, NS_TOUT_TNS_ALIVE_RETRIES, + NS_TOUT_TSNS_PROV, }; #define NSE_S_BLOCKED 0x0001 @@ -102,6 +104,8 @@ uint32_t local_ip; unsigned int enabled:1; } frgre; + + struct osmo_fsm_inst *bss_sns_fi; }; enum nsvc_timer_mode { @@ -150,6 +154,10 @@ struct sockaddr_in bts_addr; } frgre; }; + /*! signalling weight. 0 = don't use for signalling (BVCI == 0)*/ + uint8_t sig_weight; + /*! signaling weight. 0 = don't use for user data (BVCI != 0) */ + uint8_t data_weight; }; /* Create a new NS protocol instance */ @@ -169,6 +177,9 @@ struct sockaddr_in *dest, uint16_t nsei, uint16_t nsvci); +/* Establish a connection (from the BSS) to the SGSN using IP SNS */ +struct gprs_nsvc *gprs_ns_nsip_connect_sns(struct gprs_ns_inst *nsi, struct sockaddr_in *dest, + uint16_t nsei, uint16_t nsvci); struct sockaddr_in; @@ -185,9 +196,12 @@ int gprs_ns_frgre_listen(struct gprs_ns_inst *nsi); struct gprs_nsvc *gprs_nsvc_create(struct gprs_ns_inst *nsi, uint16_t nsvci); +struct gprs_nsvc *gprs_nsvc_create2(struct gprs_ns_inst *nsi, uint16_t nsvci, + uint8_t sig_weight, uint8_t data_weight); void gprs_nsvc_delete(struct gprs_nsvc *nsvc); struct gprs_nsvc *gprs_nsvc_by_nsei(struct gprs_ns_inst *nsi, uint16_t nsei); struct gprs_nsvc *gprs_nsvc_by_nsvci(struct gprs_ns_inst *nsi, uint16_t nsvci); +struct gprs_nsvc *gprs_nsvc_by_rem_addr(struct gprs_ns_inst *nsi, const struct sockaddr_in *sin); /* Initiate a RESET procedure (including timer start, ...)*/ int gprs_nsvc_reset(struct gprs_nsvc *nsvc, uint8_t cause); @@ -213,6 +227,7 @@ S_NS_ALIVE_EXP, /* Tns-alive expired more than N times */ S_NS_REPLACED, /* nsvc object is replaced (sets old_nsvc) */ S_NS_MISMATCH, /* got an unexpected IE (sets msg, pdu_type, ie_type) */ + S_SNS_CONFIGURED, /* IP-SNS configuration completed */ }; extern const struct value_string gprs_ns_signal_ns_names[]; diff --git a/include/osmocom/gprs/protocol/gsm_08_16.h b/include/osmocom/gprs/protocol/gsm_08_16.h index 15d92d3..95efcb6 100644 --- a/include/osmocom/gprs/protocol/gsm_08_16.h +++ b/include/osmocom/gprs/protocol/gsm_08_16.h @@ -66,6 +66,7 @@ NS_IE_IPv6_EP_NR = 0x09, NS_IE_RESET_FLAG = 0x0a, NS_IE_IP_ADDR = 0x0b, + NS_IE_TRANS_ID = 0xff, /* osmocom. Spec has this IE but without IEI! */ }; /*! NS Cause (TS 08.16, Section 10.3.2, Table 13) */ diff --git a/src/gb/Makefile.am b/src/gb/Makefile.am index d074092..3180f9c 100644 --- a/src/gb/Makefile.am +++ b/src/gb/Makefile.am @@ -17,7 +17,7 @@ $(top_builddir)/src/vty/libosmovty.la \ $(top_builddir)/src/gsm/libosmogsm.la -libosmogb_la_SOURCES = gprs_ns.c gprs_ns_frgre.c gprs_ns_vty.c \ +libosmogb_la_SOURCES = gprs_ns.c gprs_ns_frgre.c gprs_ns_vty.c gprs_ns_sns.c \ gprs_bssgp.c gprs_bssgp_util.c gprs_bssgp_vty.c \ gprs_bssgp_bss.c common_vty.c endif diff --git a/src/gb/gb_internal.h b/src/gb/gb_internal.h index c1fa8e1..d9eb0e0 100644 --- a/src/gb/gb_internal.h +++ b/src/gb/gb_internal.h @@ -4,6 +4,16 @@ #include #include +/* gprs_ns_sns.c */ +int gprs_ns_rx_sns(struct gprs_ns_inst *nsi, struct msgb *msg, struct tlv_parsed *tp); + +struct osmo_fsm_inst *gprs_sns_bss_fsm_alloc(void *ctx, struct gprs_nsvc *nsvc, const char *id); +int gprs_sns_bss_fsm_start(struct gprs_ns_inst *nsi); + +int gprs_sns_init(void); + +/* gprs_ns.c */ +void gprs_start_alive_all_nsvcs(struct gprs_ns_inst *nsi); int gprs_ns_tx_sns_ack(struct gprs_nsvc *nsvc, uint8_t trans_id, uint8_t *cause, const struct gprs_ns_ie_ip4_elem *ip4_elems,unsigned int num_ip4_elems); diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c index 816d2db..8be6146 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -71,6 +71,7 @@ #include #include +#include #include #include #include @@ -92,6 +93,18 @@ #define ns_set_remote_state(ns_, st_) ns_set_state_with_log(ns_, st_, true, __FILE__, __LINE__) #define ns_mark_blocked(ns_) ns_set_state(ns_, (ns_)->state | NSE_S_BLOCKED) #define ns_mark_unblocked(ns_) ns_set_state(ns_, (ns_)->state & (~NSE_S_BLOCKED)); +#define ns_mark_alive(ns_) ns_set_state(ns_, (ns_)->state | NSE_S_ALIVE) +#define ns_mark_dead(ns_) ns_set_state(ns_, (ns_)->state & (~NSE_S_ALIVE)); + +#define ERR_IF_NSVC_USES_SNS(nsvc, reason) \ + do { \ + if ((nsvc)->nsi->bss_sns_fi) { \ + LOGP(DNS, LOGL_ERROR, "NSEI=%u Asked to %s. Rejected on IP-SNS\n", \ + nsvc->nsei, reason); \ + osmo_log_backtrace(DNS, LOGL_ERROR); \ + return -EIO; \ + } \ + } while (0) static const struct tlv_definition ns_att_tlvdef = { .def = { @@ -106,6 +119,7 @@ [NS_IE_IPv4_EP_NR] = { TLV_TYPE_FIXED, 2 }, [NS_IE_IPv6_EP_NR] = { TLV_TYPE_FIXED, 2 }, [NS_IE_RESET_FLAG] = { TLV_TYPE_TV, 0 }, + [NS_IE_IP_ADDR] = { TLV_TYPE_FIXED, 4 }, }, }; @@ -170,6 +184,7 @@ { S_NS_ALIVE_EXP, "NS-ALIVE expired" }, { S_NS_REPLACED, "NSVC replaced" }, { S_NS_MISMATCH, "Unexpected IE" }, + { S_SNS_CONFIGURED, "SNS Configured" }, { 0, NULL } }; @@ -236,11 +251,20 @@ return NULL; } +/*! Determine active NS-VC for given NSEI + BVCI. + * Use this function to determine which of the NS-VCs inside the NS Instance + * shall be used to transmit data for given NSEI + BVCI */ static struct gprs_nsvc *gprs_active_nsvc_by_nsei(struct gprs_ns_inst *nsi, - uint16_t nsei) + uint16_t nsei, uint16_t bvci) { struct gprs_nsvc *nsvc; llist_for_each_entry(nsvc, &nsi->gprs_nsvcs, list) { + /* if signalling BVCI, skip any NSVC with signalling weight == 0 */ + if (bvci == 0 && nsvc->sig_weight == 0) + continue; + /* if point-to-point BVCI, skip any NSVC with data weight == 0 */ + if (bvci != 0 && nsvc->data_weight == 0) + continue; if (nsvc->nsei == nsei) { if (!(nsvc->state & NSE_S_BLOCKED) && nsvc->state & NSE_S_ALIVE) @@ -250,9 +274,11 @@ return NULL; } -/* Lookup struct gprs_nsvc based on remote peer socket addr */ -static struct gprs_nsvc *nsvc_by_rem_addr(struct gprs_ns_inst *nsi, - struct sockaddr_in *sin) +/*! Lookup NS-VC based on specified remote peer socket addr. + * \param[in] nsi NS Instance within which we shall look up the NS-VC + * \param[in] sin Remote peer Socket Address (IP + UDP Port) + * \returns NS-VC matching the given peer; NULL in case of none */ +struct gprs_nsvc *gprs_nsvc_by_rem_addr(struct gprs_ns_inst *nsi, const struct sockaddr_in *sin) { struct gprs_nsvc *nsvc; llist_for_each_entry(nsvc, &nsi->gprs_nsvcs, list) { @@ -266,27 +292,52 @@ static void gprs_ns_timer_cb(void *data); -struct gprs_nsvc *gprs_nsvc_create(struct gprs_ns_inst *nsi, uint16_t nsvci) +/*! Create a new NS-VC (Virtual Circuit) within given instance + * \param[in] nsi NS Instance in which to create the NSVC + * \param[in] nsvci] NS Virtual Connection Identifier for this NSVC + * \param[in] sig_weight Signalling Weight of this NS-VC. Use "0" for no signalling + * \param[in] data_weight Data WEight of this NS-VC. Use "0" for no data + * \returns newly-created gprs_nsvc within nsi. NULL on error. */ +struct gprs_nsvc *gprs_nsvc_create2(struct gprs_ns_inst *nsi, uint16_t nsvci, + uint8_t sig_weight, uint8_t data_weight) { struct gprs_nsvc *nsvc; + if (gprs_nsvc_by_nsvci(nsi, nsvci)) { + LOGP(DNS, LOGL_ERROR, "Cannot create NS-VC for already-existing NSVCI=%u\n", nsvci); + return NULL; + } + LOGP(DNS, LOGL_INFO, "NSVCI=%u Creating NS-VC\n", nsvci); nsvc = talloc_zero(nsi, struct gprs_nsvc); + if (!nsvc) + return NULL; nsvc->nsvci = nsvci; nsvc->nsvci_is_valid = 1; /* before RESET procedure: BLOCKED and DEAD */ - ns_set_state(nsvc, NSE_S_BLOCKED); + if (nsi->bss_sns_fi) + ns_set_state(nsvc, 0); + else + ns_set_state(nsvc, NSE_S_BLOCKED); nsvc->nsi = nsi; osmo_timer_setup(&nsvc->timer, gprs_ns_timer_cb, nsvc); nsvc->ctrg = rate_ctr_group_alloc(nsvc, &nsvc_ctrg_desc, nsvci); nsvc->statg = osmo_stat_item_group_alloc(nsvc, &nsvc_statg_desc, nsvci); + nsvc->sig_weight = sig_weight; + nsvc->data_weight = data_weight; llist_add(&nsvc->list, &nsi->gprs_nsvcs); return nsvc; } +/*! Old API for creating a NS-VC. Uses gprs_nsvc_create2 with fixed weights. */ +struct gprs_nsvc *gprs_nsvc_create(struct gprs_ns_inst *nsi, uint16_t nsvci) +{ + return gprs_nsvc_create2(nsi, nsvci, 1, 1); +} + /*! Delete given NS-VC * \param[in] nsvc gprs_nsvc to be deleted */ @@ -442,13 +493,16 @@ */ int gprs_ns_tx_reset(struct gprs_nsvc *nsvc, uint8_t cause) { - struct msgb *msg = gprs_ns_msgb_alloc(); + struct msgb *msg; struct gprs_ns_hdr *nsh; uint16_t nsvci = osmo_htons(nsvc->nsvci); uint16_t nsei = osmo_htons(nsvc->nsei); log_set_context(LOG_CTX_GB_NSVC, nsvc); + ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS RESET"); + + msg = gprs_ns_msgb_alloc(); if (!msg) return -ENOMEM; @@ -528,12 +582,15 @@ */ int gprs_ns_tx_block(struct gprs_nsvc *nsvc, uint8_t cause) { - struct msgb *msg = gprs_ns_msgb_alloc(); + struct msgb *msg; struct gprs_ns_hdr *nsh; uint16_t nsvci = osmo_htons(nsvc->nsvci); log_set_context(LOG_CTX_GB_NSVC, nsvc); + ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS BLOCK"); + + msg = gprs_ns_msgb_alloc(); if (!msg) return -ENOMEM; @@ -566,6 +623,8 @@ log_set_context(LOG_CTX_GB_NSVC, nsvc); + ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS BLOCK ACK"); + msg = gprs_ns_msgb_alloc(); if (!msg) return -ENOMEM; @@ -589,6 +648,9 @@ int gprs_ns_tx_unblock(struct gprs_nsvc *nsvc) { log_set_context(LOG_CTX_GB_NSVC, nsvc); + + ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS UNBLOCK"); + LOGP(DNS, LOGL_INFO, "NSEI=%u Tx NS UNBLOCK (NSVCI=%u)\n", nsvc->nsei, nsvc->nsvci); @@ -679,16 +741,21 @@ nsvc->alive_retries++; if (nsvc->alive_retries > nsvc->nsi->timeout[NS_TOUT_TNS_ALIVE_RETRIES]) { - /* mark as dead and blocked */ - ns_set_state(nsvc, NSE_S_BLOCKED); - rate_ctr_inc(&nsvc->ctrg->ctr[NS_CTR_BLOCKED]); + /* mark as dead (and blocked unless IP-SNS) */ rate_ctr_inc(&nsvc->ctrg->ctr[NS_CTR_DEAD]); + if (!nsvc->nsi->bss_sns_fi) { + ns_set_state(nsvc, NSE_S_BLOCKED); + rate_ctr_inc(&nsvc->ctrg->ctr[NS_CTR_BLOCKED]); + } else + ns_set_state(nsvc, 0); LOGP(DNS, LOGL_NOTICE, "NSEI=%u Tns-alive expired more then " "%u times, blocking NS-VC\n", nsvc->nsei, nsvc->nsi->timeout[NS_TOUT_TNS_ALIVE_RETRIES]); ns_osmo_signal_dispatch(nsvc, S_NS_ALIVE_EXP, 0); - ns_osmo_signal_dispatch(nsvc, S_NS_BLOCK, NS_CAUSE_NSVC_BLOCKED); + /* FIXME: should we send this signal in case of SNS? */ + if (nsvc->nsi->bss_sns_fi) + ns_osmo_signal_dispatch(nsvc, S_NS_BLOCK, NS_CAUSE_NSVC_BLOCKED); return; } /* Tns-test case: send NS-ALIVE PDU */ @@ -725,11 +792,15 @@ /* Section 9.2.6 */ static int gprs_ns_tx_reset_ack(struct gprs_nsvc *nsvc) { - struct msgb *msg = gprs_ns_msgb_alloc(); + struct msgb *msg; struct gprs_ns_hdr *nsh; uint16_t nsvci, nsei; log_set_context(LOG_CTX_GB_NSVC, nsvc); + + ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS RESET ACK"); + + msg = gprs_ns_msgb_alloc(); if (!msg) return -ENOMEM; @@ -769,6 +840,13 @@ if (!msg) return -ENOMEM; + if (!nsvc->nsi->bss_sns_fi) { + LOGP(DNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n", + nsvc->nsei); + msgb_free(msg); + return -EIO; + } + nsei = osmo_htons(nsvc->nsei); msg->l2h = msgb_put(msg, sizeof(*nsh)); @@ -807,6 +885,13 @@ if (!msg) return -ENOMEM; + if (!nsvc->nsi->bss_sns_fi) { + LOGP(DNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n", + nsvc->nsei); + msgb_free(msg); + return -EIO; + } + nsei = osmo_htons(nsvc->nsei); msg->l2h = msgb_put(msg, sizeof(*nsh)); @@ -839,6 +924,13 @@ if (!msg) return -ENOMEM; + if (!nsvc->nsi->bss_sns_fi) { + LOGP(DNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n", + nsvc->nsei); + msgb_free(msg); + return -EIO; + } + nsei = osmo_htons(nsvc->nsei); msg->l2h = msgb_put(msg, sizeof(*nsh)); @@ -872,6 +964,13 @@ if (!msg) return -ENOMEM; + if (!nsvc->nsi->bss_sns_fi) { + LOGP(DNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n", + nsvc->nsei); + msgb_free(msg); + return -EIO; + } + nsei = osmo_htons(nsvc->nsei); msg->l2h = msgb_put(msg, sizeof(*nsh)); @@ -904,6 +1003,13 @@ if (!msg) return -ENOMEM; + if (!nsvc->nsi->bss_sns_fi) { + LOGP(DNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n", + nsvc->nsei); + msgb_free(msg); + return -EIO; + } + nsei = osmo_htons(nsvc->nsei); msg->l2h = msgb_put(msg, sizeof(*nsh)); @@ -934,7 +1040,7 @@ struct gprs_ns_hdr *nsh; uint16_t bvci = msgb_bvci(msg); - nsvc = gprs_active_nsvc_by_nsei(nsi, msgb_nsei(msg)); + nsvc = gprs_active_nsvc_by_nsei(nsi, msgb_nsei(msg), msgb_bvci(msg)); if (!nsvc) { int rc; if (gprs_nsvc_by_nsei(nsi, msgb_nsei(msg))) { @@ -1352,7 +1458,7 @@ int rc = 0; /* look up the NSVC based on source address */ - nsvc = nsvc_by_rem_addr(nsi, saddr); + nsvc = gprs_nsvc_by_rem_addr(nsi, saddr); if (!nsvc) { struct gprs_nsvc *fallback_nsvc; @@ -1566,6 +1672,7 @@ struct gprs_nsvc **nsvc) { struct gprs_ns_hdr *nsh = (struct gprs_ns_hdr *) msg->l2h; + struct tlv_parsed tp; int rc = 0; msgb_nsei(msg) = (*nsvc)->nsei; @@ -1588,6 +1695,7 @@ rc = gprs_ns_tx_alive_ack(*nsvc); break; case NS_PDUT_ALIVE_ACK: + ns_mark_alive(*nsvc); if ((*nsvc)->timer_mode == NSVC_TIMER_TNS_ALIVE) osmo_stat_item_set((*nsvc)->statg->items[NS_STAT_ALIVE_DELAY], nsvc_timer_elapsed_ms(*nsvc)); @@ -1642,15 +1750,68 @@ /* mark remote NS-VC as blocked + active */ ns_set_remote_state(*nsvc, NSE_S_BLOCKED | NSE_S_ALIVE); break; + case SNS_PDUT_CONFIG: + if (!nsi->bss_sns_fi) + goto unexpected_sns; + /* one additional byte ('end flag') before the TLV part starts */ + rc = tlv_parse(&tp, &ns_att_tlvdef, nsh->data+1, + msgb_l2len(msg) - sizeof(*nsh)-1, 0, 0); + if (rc < 0) { + LOGPC(DNS, LOGL_NOTICE, "Error during TLV Parse in %s\n", msgb_hexdump(msg)); + return rc; + } + /* All sub-network service related message types */ + rc = gprs_ns_rx_sns(nsi, msg, &tp); + break; + case SNS_PDUT_ACK: + case SNS_PDUT_ADD: + case SNS_PDUT_CHANGE_WEIGHT: + case SNS_PDUT_DELETE: + if (!nsi->bss_sns_fi) + goto unexpected_sns; + /* weird layout: NSEI TLV, then value-only transaction IE, then TLV again */ + rc = tlv_parse(&tp, &ns_att_tlvdef, nsh->data+5, + msgb_l2len(msg) - sizeof(*nsh)-5, 0, 0); + if (rc < 0) { + LOGPC(DNS, LOGL_NOTICE, "Error during TLV Parse in %s\n", msgb_hexdump(msg)); + return rc; + } + tp.lv[NS_IE_NSEI].val = nsh->data+2; + tp.lv[NS_IE_NSEI].len = 2; + tp.lv[NS_IE_TRANS_ID].val = nsh->data+4; + tp.lv[NS_IE_TRANS_ID].len = 1; + rc = gprs_ns_rx_sns(nsi, msg, &tp); + break; + case SNS_PDUT_CONFIG_ACK: + case SNS_PDUT_SIZE: + case SNS_PDUT_SIZE_ACK: + if (!nsi->bss_sns_fi) + goto unexpected_sns; + rc = tlv_parse(&tp, &ns_att_tlvdef, nsh->data, + msgb_l2len(msg) - sizeof(*nsh), 0, 0); + if (rc < 0) { + LOGPC(DNS, LOGL_NOTICE, "Error during TLV Parse in %s\n", msgb_hexdump(msg)); + return rc; + } + /* All sub-network service related message types */ + rc = gprs_ns_rx_sns(nsi, msg, &tp); + break; default: LOGP(DNS, LOGL_NOTICE, "NSEI=%u Rx Unknown NS PDU type 0x%02x\n", (*nsvc)->nsei, nsh->pdu_type); rc = -EINVAL; break; +unexpected_sns: + LOGP(DNS, LOGL_NOTICE, "NSEI=%u Rx %s for NS Instance that has no SNS!\n", + (*nsvc)->nsei, get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); + rc = -EINVAL; + break; } return rc; } +static bool gprs_sns_fsm_registered = false; + /*! Create a new GPRS NS instance * \param[in] cb Call-back function for incoming BSSGP data * \returns dynamically allocated gprs_ns_inst @@ -1659,6 +1820,11 @@ { struct gprs_ns_inst *nsi = talloc_zero(ctx, struct gprs_ns_inst); + if (!gprs_sns_fsm_registered) { + gprs_sns_init(); + gprs_sns_fsm_registered = true; + } + nsi->cb = cb; INIT_LLIST_HEAD(&nsi->gprs_nsvcs); nsi->timeout[NS_TOUT_TNS_BLOCK] = 3; @@ -1668,6 +1834,7 @@ nsi->timeout[NS_TOUT_TNS_TEST] = 30; nsi->timeout[NS_TOUT_TNS_ALIVE] = 3; nsi->timeout[NS_TOUT_TNS_ALIVE_RETRIES] = 10; + nsi->timeout[NS_TOUT_TSNS_PROV] = 3; /* 1..10 */ /* Create the dummy NSVC that we use for sending * messages to non-existant/unknown NS-VC's */ @@ -1869,6 +2036,8 @@ { int rc; + ERR_IF_NSVC_USES_SNS(nsvc, "RESET procedure based on API request"); + LOGP(DNS, LOGL_INFO, "NSEI=%u RESET procedure based on API request\n", nsvc->nsei); @@ -1903,7 +2072,7 @@ { struct gprs_nsvc *nsvc; - nsvc = nsvc_by_rem_addr(nsi, dest); + nsvc = gprs_nsvc_by_rem_addr(nsi, dest); if (!nsvc) nsvc = gprs_nsvc_create(nsi, nsvci); nsvc->ip.bts_addr = *dest; @@ -1914,6 +2083,47 @@ return nsvc; } +/*! Establish a NS connection (from the BSS) to the SGSN using SNS auto-configuration + * \param nsi NS-instance + * \param[in] dest Destination IP/Port + * \param[in] nsei NSEI of the to-be-established NS-VC + * \param[in] nsvci NSVCI of the to-be-established NS-VC + * \returns struct gprs_nsvc representing the new NS-VC + * + * This function will establish a single NS/UDP/IP connection in uplink + * (BSS to SGSN) direction. It will start with the SNS-SIZE procedure, + * followed by BSS-originated SNS-CONFIG, then SGSN-originated SNS-CONFIG. + * + * Once configuration completes, the user will be notified by the S_SNS_CONFIGURED signal, + * at which point he typically would want to initiate NS-RESET by means of gprs_nsvc_reset(). + */ +struct gprs_nsvc *gprs_ns_nsip_connect_sns(struct gprs_ns_inst *nsi, + struct sockaddr_in *dest, uint16_t nsei, + uint16_t nsvci) +{ + struct gprs_nsvc *nsvc; + + /* FIXME: We are getting the order wrong here. Normally, one would want + * to start the SNS FSM *before* creating any NS-VC and then create the NS-VC + * after the SNS layer has established the IP/port/etc. However, this would + * require some massive code and API changes compared to existing libosmogb, + * so let's keep the old logic. */ + nsvc = gprs_nsvc_by_rem_addr(nsi, dest); + if (!nsvc) + nsvc = gprs_nsvc_create(nsi, nsvci); + nsvc->ip.bts_addr = *dest; + nsvc->nsei = nsei; + nsvc->remote_end_is_sgsn = 1; + /* NSVCs are always UNBLOCKED in IP-SNS */ + ns_set_state(nsvc, 0); + + if (nsi->bss_sns_fi) + osmo_fsm_inst_term(nsi->bss_sns_fi, OSMO_FSM_TERM_REQUEST, NULL); + nsi->bss_sns_fi = gprs_sns_bss_fsm_alloc(nsi, nsvc, "NSIP"); + gprs_sns_bss_fsm_start(nsi); + return nsvc; +} + void gprs_ns_set_log_ss(int ss) { DNS = ss; @@ -1941,4 +2151,15 @@ return s; } +/*! Start the ALIVE timer procedure in all NS-VCs part of this NS Instance */ +void gprs_start_alive_all_nsvcs(struct gprs_ns_inst *nsi) +{ + struct gprs_nsvc *nsvc; + llist_for_each_entry(nsvc, &nsi->gprs_nsvcs, list) { + /* start the test procedure */ + gprs_ns_tx_alive(nsvc); + nsvc_start_timer(nsvc, NSVC_TIMER_TNS_TEST); + } +} + /*! @} */ diff --git a/src/gb/gprs_ns_sns.c b/src/gb/gprs_ns_sns.c new file mode 100644 index 0000000..159e136 --- /dev/null +++ b/src/gb/gprs_ns_sns.c @@ -0,0 +1,617 @@ +/* Implementation of 3GPP TS 48.016 NS IP Sub-Network Service */ +/* (C) 2018 by Harald Welte */ + +/* The BSS NSE only has one SGSN IP address configured, and it will use the SNS procedures + * to communicated its local IPs/ports as well as all the SGSN side IPs/ports and + * associated weights. In theory, the BSS then uses this to establish a full mesh + * of NSVCs between all BSS-side IPs/ports and SGSN-side IPs/ports */ + +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "common_vty.h" +#include "gb_internal.h" + +#define S(x) (1 << (x)) + +struct gprs_sns_state { + struct gprs_ns_inst *nsi; + struct gprs_nsvc *nsvc_hack; + + /* local configuration to send to the remote end */ + struct gprs_ns_ie_ip4_elem *ip4_local; + size_t num_ip4_local; + + /* local configuration about our capabilities in terms of connections to + * remote (SGSN) side */ + size_t num_max_nsvcs; + size_t num_max_ip4_remote; + + /* remote configuration as received */ + struct gprs_ns_ie_ip4_elem *ip4_remote; + unsigned int num_ip4_remote; +}; + +static inline struct gprs_ns_inst *ns_inst_from_fi(struct osmo_fsm_inst *fi) +{ + struct gprs_sns_state *gss = (struct gprs_sns_state *) fi->priv; + return gss->nsi; +} + +/* helper function to compute the sum of all (data or signaling) weights */ +static int ip4_weight_sum(const struct gprs_ns_ie_ip4_elem *ip4, unsigned int num, + bool data_weight) +{ + unsigned int i; + int weight_sum = 0; + + for (i = 0; i < num; i++) { + if (data_weight) + weight_sum += ip4[i].data_weight; + else + weight_sum += ip4[i].sig_weight; + } + return weight_sum; +} +#define ip4_weight_sum_data(x,y) ip4_weight_sum(x, y, true) +#define ip4_weight_sum_sig(x,y) ip4_weight_sum(x, y, false) + +static struct gprs_nsvc *nsvc_by_ip4_elem(struct gprs_ns_inst *nsi, + const struct gprs_ns_ie_ip4_elem *ip4) +{ + struct sockaddr_in sin; + /* copy over. Both data structures use network byte order */ + sin.sin_addr.s_addr = ip4->ip_addr; + sin.sin_port = ip4->udp_port; + return gprs_nsvc_by_rem_addr(nsi, &sin); +} + +static struct gprs_nsvc *gprs_nsvc_create_ip4(struct gprs_ns_inst *nsi, + const struct gprs_ns_ie_ip4_elem *ip4) +{ + struct gprs_sns_state *gss = (struct gprs_sns_state *) nsi->bss_sns_fi->priv; + struct gprs_nsvc *nsvc; + struct sockaddr_in sin; + /* copy over. Both data structures use network byte order */ + sin.sin_addr.s_addr = ip4->ip_addr; + sin.sin_port = ip4->udp_port; + + nsvc = gprs_nsvc_create2(nsi, 0xFFFF, ip4->sig_weight, ip4->data_weight); + if (!nsvc) + return NULL; + + nsvc->nsei = gss->nsvc_hack->nsei; + nsvc->nsvci_is_valid = 0; + nsvc->ip.bts_addr = sin; + + return nsvc; +} + +static int create_missing_nsvcs(struct osmo_fsm_inst *fi) +{ + struct gprs_sns_state *gss = (struct gprs_sns_state *) fi->priv; + struct gprs_ns_inst *nsi = ns_inst_from_fi(fi); + unsigned int i; + + for (i = 0; i < gss->num_ip4_remote; i++) { + const struct gprs_ns_ie_ip4_elem *ip4 = &gss->ip4_remote[i]; + struct gprs_nsvc *nsvc = nsvc_by_ip4_elem(nsi, ip4); + if (!nsvc) { + /* create, if it doesn't exist */ + nsvc = gprs_nsvc_create_ip4(nsi, ip4); + if (!nsvc) { + LOGPFSML(fi, LOGL_ERROR, "SNS-CONFIG: Failed to create NSVC\n"); + continue; + } + } else { + /* update data / signalling weight */ + nsvc->data_weight = ip4->data_weight; + nsvc->sig_weight = ip4->sig_weight; + } + LOGPFSML(fi, LOGL_INFO, "NS-VC %s data_weight=%u, sig_weight=%u\n", + gprs_ns_ll_str(nsvc), nsvc->data_weight, nsvc->sig_weight); + } + + return 0; +} + +static int do_sns_change_weight(struct osmo_fsm_inst *fi, const struct gprs_ns_ie_ip4_elem *ip4) +{ + struct gprs_ns_inst *nsi = ns_inst_from_fi(fi); + struct gprs_nsvc *nsvc = nsvc_by_ip4_elem(nsi, ip4); + if (!nsvc) + return -ENODEV; + nsvc->data_weight = ip4->data_weight; + nsvc->sig_weight = ip4->sig_weight; + LOGPFSML(fi, LOGL_INFO, "CHANGE-WEIGHT NS-VC %s data_weight=%u, sig_weight=%u\n", + gprs_ns_ll_str(nsvc), nsvc->data_weight, nsvc->sig_weight); + return 0; +} + +static int do_sns_add(struct osmo_fsm_inst *fi, const struct gprs_ns_ie_ip4_elem *ip4) +{ + struct gprs_ns_inst *nsi = ns_inst_from_fi(fi); + struct gprs_nsvc *nsvc = nsvc_by_ip4_elem(nsi, ip4); + if (nsvc) + return -EEXIST; + + nsvc = gprs_nsvc_create_ip4(nsi, ip4); + if (!nsvc) { + LOGPFSML(fi, LOGL_ERROR, "SNS-ADD: Failed to create NSVC\n"); + return -1; + } + + LOGPFSML(fi, LOGL_INFO, "ADD NS-VC %s data_weight=%u, sig_weight=%u\n", + gprs_ns_ll_str(nsvc), nsvc->data_weight, nsvc->sig_weight); + return 0; +} + +static int do_sns_delete(struct osmo_fsm_inst *fi, const struct gprs_ns_ie_ip4_elem *ip4) +{ + struct gprs_ns_inst *nsi = ns_inst_from_fi(fi); + struct gprs_nsvc *nsvc = nsvc_by_ip4_elem(nsi, ip4); + if (!nsvc) + return -ENODEV; + LOGPFSML(fi, LOGL_INFO, "DELETE NS-VC %s\n", gprs_ns_ll_str(nsvc)); + gprs_nsvc_delete(nsvc); + /* FIXME: remove from gss->ip4_remote */ + return 0; +} + + +/*********************************************************************** + * BSS-side FSM for IP Sub-Network Service + ***********************************************************************/ + +enum gprs_sns_bss_state { + GPRS_SNS_ST_UNCONFIGURED, + GPRS_SNS_ST_SIZE, /*!< SNS-SIZE procedure ongoing */ + GPRS_SNS_ST_CONFIG_BSS, /*!< SNS-CONFIG procedure (BSS->SGSN) ongoing */ + GPRS_SNS_ST_CONFIG_SGSN, /*!< SNS-CONFIG procedure (SGSN->BSS) ongoing */ + GPRS_SNS_ST_CONFIGURED, +}; + +enum gprs_sns_event { + GPRS_SNS_EV_START, + GPRS_SNS_EV_SIZE, + GPRS_SNS_EV_SIZE_ACK, + GPRS_SNS_EV_CONFIG, + GPRS_SNS_EV_CONFIG_END, /*!< SNS-CONFIG with end flag received */ + GPRS_SNS_EV_CONFIG_ACK, + GPRS_SNS_EV_ADD, + GPRS_SNS_EV_DELETE, + GPRS_SNS_EV_CHANGE_WEIGHT, +}; + +static const struct value_string gprs_sns_event_names[] = { + { GPRS_SNS_EV_START, "START" }, + { GPRS_SNS_EV_SIZE, "SIZE" }, + { GPRS_SNS_EV_SIZE_ACK, "SIZE_ACK" }, + { GPRS_SNS_EV_CONFIG, "CONFIG" }, + { GPRS_SNS_EV_CONFIG_END, "CONFIG_END" }, + { GPRS_SNS_EV_CONFIG_ACK, "CONFIG_ACK" }, + { 0, NULL } +}; + +static void gprs_sns_st_unconfigured(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gprs_ns_inst *nsi = ns_inst_from_fi(fi); + switch (event) { + case GPRS_SNS_EV_START: + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_SIZE, nsi->timeout[NS_TOUT_TSNS_PROV], 1); + break; + default: + OSMO_ASSERT(0); + } +} + +static void gprs_sns_st_size(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gprs_ns_inst *nsi = ns_inst_from_fi(fi); + struct tlv_parsed *tp = NULL; + + switch (event) { + case GPRS_SNS_EV_SIZE_ACK: + tp = data; + if (TLVP_VAL_MINLEN(tp, NS_IE_CAUSE, 1)) { + LOGPFSML(fi, LOGL_ERROR, "SNS-SIZE-ACK with cause %s\n", + gprs_ns_cause_str(*TLVP_VAL(tp, NS_IE_CAUSE))); + /* FIXME: What to do? */ + } else { + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_CONFIG_BSS, + nsi->timeout[NS_TOUT_TSNS_PROV], 2); + } + break; + default: + OSMO_ASSERT(0); + } +} +static void gprs_sns_st_size_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) +{ + struct gprs_sns_state *gss = (struct gprs_sns_state *) fi->priv; + uint16_t num_max_ip4_remote = gss->num_max_ip4_remote; + + gprs_ns_tx_sns_size(gss->nsvc_hack, true, gss->num_max_nsvcs, &num_max_ip4_remote, NULL); +} + + +static void gprs_sns_st_config_bss(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + //struct gprs_sns_state *gss = (struct gprs_sns_state *) fi->priv; + //struct gprs_ns_inst *nsi = ns_inst_from_fi(fi); + struct tlv_parsed *tp = NULL; + + switch (event) { + case GPRS_SNS_EV_CONFIG_ACK: + tp = data; + if (TLVP_VAL_MINLEN(tp, NS_IE_CAUSE, 1)) { + LOGPFSML(fi, LOGL_ERROR, "SNS-CONFIG-ACK with cause %s\n", + gprs_ns_cause_str(*TLVP_VAL(tp, NS_IE_CAUSE))); + /* FIXME: What to do? */ + } else { + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_CONFIG_SGSN, 0, 0); + } + break; + default: + OSMO_ASSERT(0); + } +} +static void gprs_sns_st_config_bss_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) +{ + struct gprs_sns_state *gss = (struct gprs_sns_state *) fi->priv; + /* Transmit SNS-CONFIG */ + gprs_ns_tx_sns_config(gss->nsvc_hack, true, gss->ip4_local, gss->num_ip4_local); +} + +static void gprs_sns_st_config_sgsn(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gprs_sns_state *gss = (struct gprs_sns_state *) fi->priv; + struct tlv_parsed *tp = NULL; + struct gprs_ns_inst *nsi = ns_inst_from_fi(fi); + const struct gprs_ns_ie_ip4_elem *v4_list; + unsigned int num_v4; + uint8_t cause; + + switch (event) { + case GPRS_SNS_EV_CONFIG_END: + case GPRS_SNS_EV_CONFIG: + tp = data; +#if 0 /* part of incoming SNS-SIZE (doesn't happen on BSS side */ + if (TLVP_PRESENT(tp, NS_IE_RESET_FLAG)) { + /* reset all existing config */ + if (gss->ip4_remote) + talloc_free(gss->ip4_remote); + gss->num_ip4_remote = 0; + } +#endif + if (!TLVP_PRESENT(tp, NS_IE_IPv4_LIST)) { + cause = NS_CAUSE_INVAL_NR_IPv4_EP; + gprs_ns_tx_sns_config_ack(gss->nsvc_hack, &cause); + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_UNCONFIGURED, 0, 0); + break; + } + v4_list = (const struct gprs_ns_ie_ip4_elem *) TLVP_VAL(tp, NS_IE_IPv4_LIST); + num_v4 = TLVP_LEN(tp, NS_IE_IPv4_LIST) / sizeof(*v4_list); + /* realloc to the new size */ + gss->ip4_remote = talloc_realloc(gss, gss->ip4_remote, + struct gprs_ns_ie_ip4_elem, + gss->num_ip4_remote+num_v4); + /* append the new entries to the end of the list */ + memcpy(&gss->ip4_remote[gss->num_ip4_remote], v4_list, num_v4*sizeof(*v4_list)); + gss->num_ip4_remote += num_v4; + + LOGPFSML(fi, LOGL_INFO, "Rx SNS-CONFIG: Remote IPv4 list now %u entries\n", + gss->num_ip4_remote); + if (event == GPRS_SNS_EV_CONFIG_END) { + /* check if sum of data / sig weights == 0 */ + if (ip4_weight_sum_data(gss->ip4_remote, gss->num_ip4_remote) == 0 || + ip4_weight_sum_sig(gss->ip4_remote, gss->num_ip4_remote) == 0) { + cause = NS_CAUSE_INVAL_WEIGH; + gprs_ns_tx_sns_config_ack(gss->nsvc_hack, &cause); + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_UNCONFIGURED, 0, 0); + break; + } + create_missing_nsvcs(fi); + gprs_ns_tx_sns_config_ack(gss->nsvc_hack, NULL); + /* start the test procedure on ALL NSVCs! */ + gprs_start_alive_all_nsvcs(nsi); + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_CONFIGURED, 0, 0); + } else { + /* just send CONFIG-ACK */ + gprs_ns_tx_sns_config_ack(gss->nsvc_hack, NULL); + } + break; + default: + OSMO_ASSERT(0); + } +} + +static void gprs_sns_st_configured(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gprs_sns_state *gss = (struct gprs_sns_state *) fi->priv; + struct tlv_parsed *tp = NULL; + const struct gprs_ns_ie_ip4_elem *v4_list = NULL; + unsigned int num_v4 = 0; + uint8_t trans_id; + uint8_t cause = 0xff; + unsigned int i; + int rc; + + switch (event) { + case GPRS_SNS_EV_ADD: + tp = data; + trans_id = *TLVP_VAL(tp, NS_IE_TRANS_ID); + if (TLVP_PRESENT(tp, NS_IE_IPv4_LIST)) { + v4_list = (const struct gprs_ns_ie_ip4_elem *) TLVP_VAL(tp, NS_IE_IPv4_LIST); + num_v4 = TLVP_LEN(tp, NS_IE_IPv4_LIST) / sizeof(*v4_list); + for (i = 0; i < num_v4; i++) { + rc = do_sns_add(fi, &v4_list[i]); + if (rc < 0) { + cause = NS_CAUSE_EQUIP_FAIL; + /* continue to add others */ + } + } + if (cause != 0xff) { + gprs_ns_tx_sns_ack(gss->nsvc_hack, trans_id, &cause, NULL, 0); + break; + } + } else { + cause = NS_CAUSE_INVAL_NR_IPv4_EP; + gprs_ns_tx_sns_ack(gss->nsvc_hack, trans_id, &cause, NULL, 0); + break; + } + gprs_ns_tx_sns_ack(gss->nsvc_hack, trans_id, NULL, v4_list, num_v4); + break; + case GPRS_SNS_EV_DELETE: + tp = data; + trans_id = *TLVP_VAL(tp, NS_IE_TRANS_ID); + if (TLVP_PRESENT(tp, NS_IE_IPv4_LIST)) { + v4_list = (const struct gprs_ns_ie_ip4_elem *) TLVP_VAL(tp, NS_IE_IPv4_LIST); + num_v4 = TLVP_LEN(tp, NS_IE_IPv4_LIST) / sizeof(*v4_list); + for (i = 0; i < num_v4; i++) { + rc = do_sns_delete(fi, &v4_list[i]); + if (rc < 0) { + cause = NS_CAUSE_EQUIP_FAIL; + /* continue to delete others */ + } + } + if (cause != 0xff) { + gprs_ns_tx_sns_ack(gss->nsvc_hack, trans_id, &cause, NULL, 0); + break; + } + } else if (TLVP_PRESENT(tp, NS_IE_IP_ADDR)) { + /* FIXME */ + } else { + cause = NS_CAUSE_INVAL_NR_IPv4_EP; + gprs_ns_tx_sns_ack(gss->nsvc_hack, trans_id, &cause, NULL, 0); + break; + } + gprs_ns_tx_sns_ack(gss->nsvc_hack, trans_id, NULL, v4_list, num_v4); + break; + case GPRS_SNS_EV_CHANGE_WEIGHT: + tp = data; + trans_id = *TLVP_VAL(tp, NS_IE_TRANS_ID); + if (TLVP_PRESENT(tp, NS_IE_IPv4_LIST)) { + v4_list = (const struct gprs_ns_ie_ip4_elem *) TLVP_VAL(tp, NS_IE_IPv4_LIST); + num_v4 = TLVP_LEN(tp, NS_IE_IPv4_LIST) / sizeof(*v4_list); + for (i = 0; i < num_v4; i++) { + rc = do_sns_change_weight(fi, &v4_list[i]); + if (rc < 0) { + cause = NS_CAUSE_EQUIP_FAIL; + /* continue to others */ + } + } + if (cause != 0xff) { + gprs_ns_tx_sns_ack(gss->nsvc_hack, trans_id, &cause, NULL, 0); + break; + } + } else { + cause = NS_CAUSE_INVAL_NR_IPv4_EP; + gprs_ns_tx_sns_ack(gss->nsvc_hack, trans_id, &cause, NULL, 0); + break; + } + gprs_ns_tx_sns_ack(gss->nsvc_hack, trans_id, &cause, v4_list, num_v4); + break; + } +} + +static void gprs_sns_st_configured_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) +{ + struct ns_signal_data nssd = {0}; + osmo_signal_dispatch(SS_L_NS, S_SNS_CONFIGURED, &nssd); +} + +static const struct osmo_fsm_state gprs_sns_bss_states[] = { + [GPRS_SNS_ST_UNCONFIGURED] = { + .in_event_mask = S(GPRS_SNS_EV_START), + .out_state_mask = S(GPRS_SNS_ST_SIZE), + .name = "UNCONFIGURED", + .action = gprs_sns_st_unconfigured, + }, + [GPRS_SNS_ST_SIZE] = { + .in_event_mask = S(GPRS_SNS_EV_SIZE_ACK), + .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | + S(GPRS_SNS_ST_SIZE) | + S(GPRS_SNS_ST_CONFIG_BSS), + .name = "SIZE", + .action = gprs_sns_st_size, + .onenter = gprs_sns_st_size_onenter, + }, + [GPRS_SNS_ST_CONFIG_BSS] = { + .in_event_mask = S(GPRS_SNS_EV_CONFIG_ACK), + .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | + S(GPRS_SNS_ST_CONFIG_BSS) | + S(GPRS_SNS_ST_CONFIG_SGSN), + .name = "CONFIG_BSS", + .action = gprs_sns_st_config_bss, + .onenter = gprs_sns_st_config_bss_onenter, + }, + [GPRS_SNS_ST_CONFIG_SGSN] = { + .in_event_mask = S(GPRS_SNS_EV_CONFIG) | + S(GPRS_SNS_EV_CONFIG_END), + .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | + S(GPRS_SNS_ST_CONFIG_SGSN) | + S(GPRS_SNS_ST_CONFIGURED), + .name = "CONFIG_SGSN", + .action = gprs_sns_st_config_sgsn, + }, + [GPRS_SNS_ST_CONFIGURED] = { + .in_event_mask = S(GPRS_SNS_EV_ADD) | + S(GPRS_SNS_EV_DELETE) | + S(GPRS_SNS_EV_CHANGE_WEIGHT), + .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED), + .name = "CONFIGURED", + .action = gprs_sns_st_configured, + .onenter = gprs_sns_st_configured_onenter, + }, +}; + +static int gprs_sns_fsm_bss_timer_cb(struct osmo_fsm_inst *fi) +{ + struct gprs_ns_inst *nsi = ns_inst_from_fi(fi); + + switch (fi->T) { + case 1: + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_SIZE, nsi->timeout[NS_TOUT_TSNS_PROV], 1); + break; + case 2: + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_CONFIG_BSS, nsi->timeout[NS_TOUT_TSNS_PROV], 2); + break; + } + return 0; +} + +static struct osmo_fsm gprs_sns_bss_fsm = { + .name = "GPRS-SNS-BSS", + .states = gprs_sns_bss_states, + .num_states = ARRAY_SIZE(gprs_sns_bss_states), + .allstate_event_mask = 0, + .allstate_action = NULL, + .cleanup = NULL, + .timer_cb = gprs_sns_fsm_bss_timer_cb, + /* .log_subsys = DNS, "is not constant" */ + .event_names = gprs_sns_event_names, + .pre_term = NULL, +}; + +struct osmo_fsm_inst *gprs_sns_bss_fsm_alloc(void *ctx, struct gprs_nsvc *nsvc, + const char *id) +{ + struct osmo_fsm_inst *fi; + struct gprs_sns_state *gss; + struct gprs_ns_ie_ip4_elem *ip4; + struct gprs_ns_inst *nsi = nsvc->nsi; + + fi = osmo_fsm_inst_alloc(&gprs_sns_bss_fsm, ctx, NULL, LOGL_DEBUG, id); + if (!fi) + return fi; + + gss = talloc_zero(fi, struct gprs_sns_state); + if (!gss) + goto err; + + fi->priv = gss; + gss->nsi = nsi; + /* FIXME: we shouldn't use 'nsvc' here but only gprs_ns_inst */ + gss->nsvc_hack = nsvc; + + /* create IPv4 list from the one IP/port the NS instance has */ + ip4 = talloc_zero(gss, struct gprs_ns_ie_ip4_elem); + if (!ip4) + goto err; + if (nsi->nsip.local_ip) + ip4->ip_addr = htonl(nsi->nsip.local_ip); + else { + /* unspecified local address. Figure out which address the kernel would use if we + * wanted to send a packet to the remote_ip */ + char local_ip[32]; + struct in_addr in = { .s_addr = htonl(nsi->nsip.remote_ip) }; + osmo_sock_local_ip(local_ip, inet_ntoa(in)); + ip4->ip_addr = inet_addr(local_ip); + } + ip4->udp_port = htons(gss->nsi->nsip.local_port); + ip4->sig_weight = 2; + ip4->data_weight = 1; + gss->ip4_local = ip4; + gss->num_ip4_local = 1; + gss->num_max_nsvcs = 8; + gss->num_max_ip4_remote = 4; + + return fi; +err: + osmo_fsm_inst_term(fi, OSMO_FSM_TERM_ERROR, NULL); + return NULL; +} + +int gprs_sns_bss_fsm_start(struct gprs_ns_inst *nsi) +{ + return osmo_fsm_inst_dispatch(nsi->bss_sns_fi, GPRS_SNS_EV_START, NULL); +} + +/* main entry point for receiving SNS messages from the network */ +int gprs_ns_rx_sns(struct gprs_ns_inst *nsi, struct msgb *msg, struct tlv_parsed *tp) +{ + struct gprs_ns_hdr *nsh = (struct gprs_ns_hdr *) msg->l2h; + uint16_t nsei = msgb_nsei(msg); + struct osmo_fsm_inst *fi; + + LOGP(DNS, LOGL_DEBUG, "NSEI=%u Rx SNS PDU type %s\n", nsei, + get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); + + /* FIXME: how to resolve SNS FSM Instance by NSEI (SGSN)? */ + fi = nsi->bss_sns_fi; + + switch (nsh->pdu_type) { + case SNS_PDUT_SIZE: + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SIZE, tp); + break; + case SNS_PDUT_SIZE_ACK: + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SIZE_ACK, tp); + break; + case SNS_PDUT_CONFIG: + if (nsh->data[0] & 0x01) + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_CONFIG_END, tp); + else + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_CONFIG, tp); + break; + case SNS_PDUT_CONFIG_ACK: + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_CONFIG_ACK, tp); + break; + case SNS_PDUT_ADD: + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_ADD, tp); + break; + case SNS_PDUT_DELETE: + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_DELETE, tp); + break; + case SNS_PDUT_CHANGE_WEIGHT: + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_CHANGE_WEIGHT, tp); + break; + case SNS_PDUT_ACK: + LOGP(DNS, LOGL_NOTICE, "NSEI=%u Rx unsupported SNS PDU type %s\n", nsei, + get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); + break; + default: + LOGP(DNS, LOGL_ERROR, "NSEI=%u Rx unknown SNS PDU type %s\n", nsei, + get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); + return -EINVAL; + } + + return 0; +} + +int gprs_sns_init(void) +{ + /* "DNS" is not a constant/#define, but an integer variable set by the client app */ + gprs_sns_bss_fsm.log_subsys = DNS; + return osmo_fsm_register(&gprs_sns_bss_fsm); +} diff --git a/src/gb/gprs_ns_vty.c b/src/gb/gprs_ns_vty.c index 667db7d..a108b71 100644 --- a/src/gb/gprs_ns_vty.c +++ b/src/gb/gprs_ns_vty.c @@ -555,6 +555,12 @@ return CMD_WARNING; } + if (nsvc->nsi->bss_sns_fi) { + vty_out(vty, "A NS Instance using the IP Sub-Network doesn't use BLOCK/UNBLOCK/RESET%s", + VTY_NEWLINE); + return CMD_WARNING; + } + if (!strcmp(operation, "block")) gprs_ns_tx_block(nsvc, NS_CAUSE_OM_INTERVENTION); else if (!strcmp(operation, "unblock")) diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index ec69670..2ad3ff7 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -52,6 +52,7 @@ gprs_ns_instantiate; gprs_ns_nsip_listen; gprs_ns_nsip_connect; +gprs_ns_nsip_connect_sns; gprs_ns_rcvmsg; gprs_ns_sendmsg; gprs_ns_set_log_ss; -- To view, visit https://gerrit.osmocom.org/13014 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I84786c3b43a8ae34ef3b3ba84b33c90042d234ea Gerrit-Change-Number: 13014 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 22:35:16 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Feb 2019 22:35:16 +0000 Subject: Change in osmo-ttcn3-hacks[master]: msc: update expected results In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12944 ) Change subject: msc: update expected results ...................................................................... msc: update expected results Change-Id: I1151e9333da14bb2714712b57914e03e4d5b785b --- M msc/expected-results.xml 1 file changed, 23 insertions(+), 69 deletions(-) Approvals: Jenkins Builder: Verified daniel: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/msc/expected-results.xml b/msc/expected-results.xml index efe7219..86e8a89 100644 --- a/msc/expected-results.xml +++ b/msc/expected-results.xml @@ -1,5 +1,5 @@ - + @@ -60,12 +60,6 @@ - - Tguard timeout - MSC_Tests.ttcn:MASKED MSC_Tests control part - MSC_Tests.ttcn:MASKED TC_gsup_mt_multi_part_sms testcase - - @@ -75,71 +69,31 @@ Dynamic test case error: testcase.stop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Error in CTRL GET "fsm.SGs-UE.id.imsi:262420000002145.state": "Error" - MSC_Tests.ttcn:MASKED MSC_Tests control part - MSC_Tests.ttcn:MASKED TC_sgsap_unexp_ud testcase - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + Tguard timeout MSC_Tests.ttcn:MASKED MSC_Tests control part - MSC_Tests.ttcn:MASKED TC_mo_cc_bssmap_clear testcase + MSC_Tests.ttcn:MASKED TC_gsup_mt_multi_part_sms testcase + -- To view, visit https://gerrit.osmocom.org/12944 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I1151e9333da14bb2714712b57914e03e4d5b785b Gerrit-Change-Number: 12944 Gerrit-PatchSet: 5 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 22:36:25 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Feb 2019 22:36:25 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Move SNS specific functions to PCU_Tests_RAW_SNS.ttcn In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13009 ) Change subject: PCU: Move SNS specific functions to PCU_Tests_RAW_SNS.ttcn ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13009 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie41a21b6f2b95f4aaea84d8b717e96efefb704e3 Gerrit-Change-Number: 13009 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Fri, 22 Feb 2019 22:36:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 22:36:49 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Feb 2019 22:36:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Prepare for having multiple Gb connections on tester side In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13010 ) Change subject: PCU: Prepare for having multiple Gb connections on tester side ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13010 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6de4832bda18b36873f57986a34ba8082af2c853 Gerrit-Change-Number: 13010 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Fri, 22 Feb 2019 22:36:49 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Fri Feb 22 22:36:50 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Fri, 22 Feb 2019 22:36:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Add a bit more logging/tracing to ease debugging of SNS tests In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13011 ) Change subject: PCU: Add a bit more logging/tracing to ease debugging of SNS tests ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13011 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic558f02f3c3ddbde0f16a7656b84486a8462b0a4 Gerrit-Change-Number: 13011 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Fri, 22 Feb 2019 22:36:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sat Feb 23 00:47:12 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 23 Feb 2019 00:47:12 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-bts_=C2=BB_trx?= =?UTF-8?Q?,master,0,default,osmocom-master-debian9_#1851?= Message-ID: <1048181818.403.1550882832756.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 35.11 KB...] checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /bin/dd checking how to truncate binary pipes... /bin/dd bs=4096 count=1 checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... no checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for ANSI C header files... (cached) yes checking execinfo.h usability... yes checking execinfo.h presence... yes checking for execinfo.h... yes checking sys/select.h usability... yes checking sys/select.h presence... yes checking for sys/select.h... yes checking sys/socket.h usability... yes checking sys/socket.h presence... yes checking for sys/socket.h... yes checking sys/timerfd.h usability... yes checking sys/timerfd.h presence... yes checking for sys/timerfd.h... yes checking syslog.h usability... yes checking syslog.h presence... yes checking for syslog.h... yes checking ctype.h usability... yes checking ctype.h presence... yes checking for ctype.h... yes checking netinet/tcp.h usability... yes checking netinet/tcp.h presence... yes checking for netinet/tcp.h... yes checking for size_t... yes checking for working alloca.h... yes checking for alloca... yes checking for library containing dlopen... -ldl checking for library containing dlsym... -ldl checking for backtrace in -lexecinfo... no checking for library containing clock_gettime... none required checking for doxygen... /usr/bin/doxygen checking whether SYS_getrandom is declared... yes checking if gcc supports -fvisibility=hidden... yes checking for clock_gettime... yes checking for localtime_r... yes checking whether struct tm has tm_gmtoff member... yes checking for TALLOC... yes checking for PCSC... yes checking for LIBGNUTLS... yes checking whether to enable VTY/CTRL tests... no checking whether C compiler accepts -mavx2... yes checking whether C compiler accepts -mssse3... yes checking whether C compiler accepts -msse4.1... yes checking whether gcc has __builtin_cpu_supports built-in... yes CFLAGS="-g -O2 -DBUILDING_LIBOSMOCORE -Wall" CPPFLAGS=" -DBUILDING_LIBOSMOCORE -Wall" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmocore.pc config.status: creating libosmocodec.pc config.status: creating libosmocoding.pc config.status: creating libosmovty.pc config.status: creating libosmogsm.pc config.status: creating libosmogb.pc config.status: creating libosmoctrl.pc config.status: creating libosmosim.pc config.status: creating include/Makefile config.status: creating src/Makefile config.status: creating src/vty/Makefile config.status: creating src/codec/Makefile config.status: creating src/coding/Makefile config.status: creating src/sim/Makefile config.status: creating src/gsm/Makefile config.status: creating src/gb/Makefile config.status: creating src/ctrl/Makefile config.status: creating src/pseudotalloc/Makefile config.status: creating tests/Makefile config.status: creating tests/atlocal config.status: creating utils/Makefile config.status: creating Doxyfile.core config.status: creating Doxyfile.gsm config.status: creating Doxyfile.vty config.status: creating Doxyfile.codec config.status: creating Doxyfile.coding config.status: creating Doxyfile.gb config.status: creating Doxyfile.ctrl config.status: creating Makefile config.status: creating config.h config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands configure: WARNING: unrecognized options: --with-systemdsystemunitdir + make -j 8 install echo 1.0.1.50-2e71 > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory ' Making install in include make[2]: Entering directory ' GEN osmocom/gsm/gsm0503.h Generating header file... Generate 'xcch' declaration Generate 'rach' declaration Generate 'rach_ext' declaration Generate 'sch' declaration Generate 'cs2' declaration Generate 'cs3' declaration Generate 'cs2_np' declaration Generate 'cs3_np' declaration Generate 'tch_afs_12_2' declaration Generate 'tch_afs_10_2' declaration Generate 'tch_afs_7_95' declaration Generate 'tch_afs_7_4' declaration Generate 'tch_afs_6_7' declaration Generate 'tch_afs_5_9' declaration Generate 'tch_afs_5_15' declaration Generate 'tch_afs_4_75' declaration Generate 'tch_fr' declaration Generate 'tch_hr' declaration Generate 'tch_ahs_7_95' declaration Generate 'tch_ahs_7_4' declaration Generate 'tch_ahs_6_7' declaration Generate 'tch_ahs_5_9' declaration Generate 'tch_ahs_5_15' declaration Generate 'tch_ahs_4_75' declaration Generate 'mcs1_dl_hdr' declaration Generate 'mcs1_ul_hdr' declaration Generate 'mcs1' declaration Generate 'mcs2' declaration Generate 'mcs3' declaration Generate 'mcs4' declaration Generate 'mcs5_dl_hdr' declaration Generate 'mcs5_ul_hdr' declaration Generate 'mcs5' declaration Generate 'mcs6' declaration Generate 'mcs7_dl_hdr' declaration Generate 'mcs7_ul_hdr' declaration Generate 'mcs7' declaration Generate 'mcs8' declaration Generate 'mcs9' declaration Generation complete. make install-am make[3]: Entering directory ' GEN osmocom/core/bit32gen.h GEN osmocom/core/crc16gen.h GEN osmocom/core/bit64gen.h GEN osmocom/core/crc32gen.h GEN osmocom/core/crc64gen.h GEN osmocom/core/bit16gen.h GEN osmocom/core/crc8gen.h GEN osmocom/core/bit32gen.h GEN osmocom/core/crc16gen.h GEN osmocom/core/bit64gen.h GEN osmocom/core/crc8gen.h GEN osmocom/core/crc64gen.h GEN osmocom/core/crc32gen.h GEN osmocom/core/bit16gen.h make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/core/application.h osmocom/core/backtrace.h osmocom/core/bit16gen.h osmocom/core/bit32gen.h osmocom/core/bit64gen.h osmocom/core/bits.h osmocom/core/bitvec.h osmocom/core/bitcomp.h osmocom/core/byteswap.h osmocom/core/conv.h osmocom/core/counter.h osmocom/core/crc16.h osmocom/core/crc16gen.h osmocom/core/crc32gen.h osmocom/core/crc64gen.h osmocom/core/crc8gen.h osmocom/core/crcgen.h osmocom/core/endian.h osmocom/core/defs.h osmocom/core/fsm.h osmocom/core/gsmtap.h osmocom/core/gsmtap_util.h osmocom/core/isdnhdlc.h osmocom/core/linuxlist.h osmocom/core/linuxrbtree.h osmocom/core/logging.h osmocom/core/loggingrb.h osmocom/core/stats.h osmocom/core/macaddr.h osmocom/core/msgb.h osmocom/core/panic.h osmocom/core/prbs.h osmocom/core/prim.h osmocom/core/process.h osmocom/core/rate_ctr.h osmocom/core/stat_item.h osmocom/core/select.h osmocom/core/sercomm.h osmocom/core/signal.h osmocom/core/socket.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/gsm/a5.h osmocom/gsm/abis_nm.h osmocom/gsm/apn.h osmocom/gsm/bts_features.h osmocom/gsm/comp128.h osmocom/gsm/comp128v23.h osmocom/gsm/bitvec_gsm.h osmocom/gsm/gan.h osmocom/gsm/gsm0341.h osmocom/gsm/gsm0411_smc.h osmocom/gsm/gsm0411_smr.h osmocom/gsm/gsm0411_utils.h osmocom/gsm/gsm0480.h osmocom/gsm/gsm0502.h osmocom/gsm/gsm0503.h osmocom/gsm/gsm0808.h osmocom/gsm/gsm29205.h osmocom/gsm/gsm0808_utils.h osmocom/gsm/gsm23003.h osmocom/gsm/gsm29118.h osmocom/gsm/gsm48.h osmocom/gsm/gsm48_arfcn_range_encode.h osmocom/gsm/gsm48_ie.h osmocom/gsm/gsm48_rest_octets.h osmocom/gsm/gsm_utils.h osmocom/gsm/gsup.h osmocom/gsm/gsup_sms.h osmocom/gsm/ipa.h osmocom/gsm/lapd_core.h osmocom/gsm/lapdm.h osmocom/gsm/meas_rep.h osmocom/gsm/mncc.h osmocom/gsm/prim.h osmocom/gsm/l1sap.h osmocom/gsm/oap.h osmocom/gsm/oap_client.h osmocom/gsm/rsl.h osmocom/gsm/rxlev_stat.h osmocom/gsm/sysinfo.h osmocom/gsm/tlv.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/coding/gsm0503_tables.h osmocom/coding/gsm0503_parity.h osmocom/coding/gsm0503_mapping.h osmocom/coding/gsm0503_interleaving.h osmocom/coding/gsm0503_coding.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/core/statistics.h osmocom/core/strrb.h osmocom/core/talloc.h osmocom/core/tdef.h osmocom/core/timer.h osmocom/core/timer_compat.h osmocom/core/utils.h osmocom/core/write_queue.h osmocom/core/plugin.h osmocom/core/msgfile.h osmocom/core/serial.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/vty/buffer.h osmocom/vty/command.h osmocom/vty/logging.h osmocom/vty/stats.h osmocom/vty/misc.h osmocom/vty/telnet_interface.h osmocom/vty/vector.h osmocom/vty/vty.h osmocom/vty/ports.h osmocom/vty/tdef_vty.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/gsm/protocol/gsm_03_40.h osmocom/gsm/protocol/gsm_03_41.h osmocom/gsm/protocol/gsm_04_08.h osmocom/gsm/protocol/gsm_04_08_gprs.h osmocom/gsm/protocol/gsm_04_11.h osmocom/gsm/protocol/gsm_04_12.h osmocom/gsm/protocol/gsm_04_14.h osmocom/gsm/protocol/gsm_04_80.h osmocom/gsm/protocol/gsm_08_08.h osmocom/gsm/protocol/gsm_08_58.h osmocom/gsm/protocol/gsm_09_02.h osmocom/gsm/protocol/gsm_12_21.h osmocom/gsm/protocol/gsm_23_003.h osmocom/gsm/protocol/gsm_29_118.h osmocom/gsm/protocol/gsm_44_318.h osmocom/gsm/protocol/ipaccess.h osmocom/gsm/protocol/smpp34_osmocom.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/sim/class_tables.h osmocom/sim/sim.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/gprs/gprs_bssgp.h osmocom/gprs/gprs_bssgp_bss.h osmocom/gprs/gprs_msgb.h osmocom/gprs/gprs_ns.h osmocom/gprs/gprs_ns_frgre.h osmocom/gprs/gprs_rlc.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/crypt/auth.h osmocom/crypt/gprs_cipher.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/ctrl/control_cmd.h osmocom/ctrl/control_if.h osmocom/ctrl/ports.h osmocom/ctrl/control_vty.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/gprs/protocol/gsm_04_60.h osmocom/gprs/protocol/gsm_08_16.h osmocom/gprs/protocol/gsm_08_18.h ' /bin/mkdir -p ' /usr/bin/install -c -m 644 osmocom/codec/ecu.h osmocom/codec/codec.h osmocom/codec/gsm610_bits.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in src make[2]: Entering directory ' GEN crc16gen.c GEN crc8gen.c GEN crc32gen.c GEN crc64gen.c make install-am make[3]: Entering directory ' CC timer_clockgettime.lo CC select.lo CC bitvec.lo CC msgb.lo CC signal.lo CC timer.lo CC timer_gettimeofday.lo CC bits.lo /bin/bash: line 2: 23126 Segmentation fault /bin/bash ../libtool --silent --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../include -DBUILDING_LIBOSMOCORE -Wall -Wall -g -O2 -DBUILDING_LIBOSMOCORE -Wall -MT timer_gettimeofday.lo -MD -MP -MF $depbase.Tpo -c -o timer_gettimeofday.lo timer_gettimeofday.c Makefile:562: recipe for target 'timer_gettimeofday.lo' failed make[3]: *** [timer_gettimeofday.lo] Error 139 make[3]: *** Waiting for unfinished jobs.... make[3]: Leaving directory ' Makefile:666: recipe for target 'install' failed make[2]: *** [install] Error 2 make[2]: Leaving directory ' Makefile:625: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:924: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Sat Feb 23 08:52:18 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sat, 23 Feb 2019 08:52:18 +0000 Subject: Change in osmo-msc[master]: libmsc/ran_conn.c: add missing 'break' to OSMO_RAT_EUTRAN_SGS Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/13015 Change subject: libmsc/ran_conn.c: add missing 'break' to OSMO_RAT_EUTRAN_SGS ...................................................................... libmsc/ran_conn.c: add missing 'break' to OSMO_RAT_EUTRAN_SGS Change-Id: I18dfd08ea0857f2751164a295dd9de20a2024ac3 Fixes: CID#190874 --- M src/libmsc/ran_conn.c 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/15/13015/1 diff --git a/src/libmsc/ran_conn.c b/src/libmsc/ran_conn.c index be6bde0..79709c6 100644 --- a/src/libmsc/ran_conn.c +++ b/src/libmsc/ran_conn.c @@ -683,6 +683,7 @@ break; case OSMO_RAT_EUTRAN_SGS: conn->log_subsys = DSGS; + break; default: conn->log_subsys = DMSC; break; -- To view, visit https://gerrit.osmocom.org/13015 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I18dfd08ea0857f2751164a295dd9de20a2024ac3 Gerrit-Change-Number: 13015 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 09:05:50 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sat, 23 Feb 2019 09:05:50 +0000 Subject: Change in osmo-msc[master]: libmsc/sgs_iface.c: fix SGS_STATE_NS11 counter reference Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/13016 Change subject: libmsc/sgs_iface.c: fix SGS_STATE_NS11 counter reference ...................................................................... libmsc/sgs_iface.c: fix SGS_STATE_NS11 counter reference The SGS_STATE_TS11 is not for counters, it's for timers! Change-Id: Ifbb1a37e644ae8bf8e7959f6f6cd6403ac1f2f1b Fixes: CID#190872 --- M src/libmsc/sgs_iface.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/16/13016/1 diff --git a/src/libmsc/sgs_iface.c b/src/libmsc/sgs_iface.c index 1c2146a..4f262a5 100644 --- a/src/libmsc/sgs_iface.c +++ b/src/libmsc/sgs_iface.c @@ -1129,7 +1129,7 @@ mme->ns11_remaining--; } else { LOGMME(mme, LOGL_ERROR, "Ts11 expired more than %u (Ns11) times, giving up\n", - sgs->cfg.counter[SGS_STATE_TS11]); + sgs->cfg.counter[SGS_STATE_NS11]); osmo_fsm_inst_state_chg(fi, SGS_VLRR_ST_NULL, 0, 0); } break; -- To view, visit https://gerrit.osmocom.org/13016 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ifbb1a37e644ae8bf8e7959f6f6cd6403ac1f2f1b Gerrit-Change-Number: 13016 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 09:18:33 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sat, 23 Feb 2019 09:18:33 +0000 Subject: Change in osmo-msc[master]: libmsc/sgs_iface.c: fix SGS_STATE_NS11 counter reference In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/13016 to look at the new patch set (#2). Change subject: libmsc/sgs_iface.c: fix SGS_STATE_NS11 counter reference ...................................................................... libmsc/sgs_iface.c: fix SGS_STATE_NS11 counter reference The SGS_STATE_TS11 is not for counters, it's for timers! Change-Id: Ifbb1a37e644ae8bf8e7959f6f6cd6403ac1f2f1b Fixes: CID#190872 Out-of-bounds read (OVERRUN) --- M src/libmsc/sgs_iface.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/16/13016/2 -- To view, visit https://gerrit.osmocom.org/13016 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ifbb1a37e644ae8bf8e7959f6f6cd6403ac1f2f1b Gerrit-Change-Number: 13016 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 09:18:34 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sat, 23 Feb 2019 09:18:34 +0000 Subject: Change in osmo-msc[master]: libmsc/sgs_vty.c: fix dead array comparation against null Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/13017 Change subject: libmsc/sgs_vty.c: fix dead array comparation against null ...................................................................... libmsc/sgs_vty.c: fix dead array comparation against null Comparing an array to null is not useful: sgs->cfg.vlr_name, since the expression will always evaluate as true. Change-Id: If045e42fca0315b0777eb86c44bf934ce58b340b Fixes: CID#190871 Array compared against 0 (NO_EFFECT) --- M src/libmsc/sgs_vty.c 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/17/13017/1 diff --git a/src/libmsc/sgs_vty.c b/src/libmsc/sgs_vty.c index 5b26178..cbe9370 100644 --- a/src/libmsc/sgs_vty.c +++ b/src/libmsc/sgs_vty.c @@ -160,9 +160,9 @@ vty_out(vty, "sgs%s", VTY_NEWLINE); if (sgs->cfg.local_port != SGS_PORT_DEFAULT) vty_out(vty, " local-port %u%s", sgs->cfg.local_port, VTY_NEWLINE); - if (sgs->cfg.local_addr) + if (strcmp(sgs->cfg.local_addr, DEFAULT_SGS_SERVER_IP)) vty_out(vty, " local-ip %s%s", sgs->cfg.local_addr, VTY_NEWLINE); - if (sgs->cfg.vlr_name) + if (strcmp(sgs->cfg.vlr_name, DEFAULT_SGS_SERVER_VLR_NAME)) vty_out(vty, " vlr-name %s%s", sgs->cfg.vlr_name, VTY_NEWLINE); for (i = 0; i < ARRAY_SIZE(sgs->cfg.timer); i++) { -- To view, visit https://gerrit.osmocom.org/13017 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: If045e42fca0315b0777eb86c44bf934ce58b340b Gerrit-Change-Number: 13017 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 09:54:23 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sat, 23 Feb 2019 09:54:23 +0000 Subject: Change in osmo-msc[master]: libmsc/sgs_vty.c: fix dead array comparation against null In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/13017 ) Change subject: libmsc/sgs_vty.c: fix dead array comparation against null ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/13017/1/src/libmsc/sgs_vty.c File src/libmsc/sgs_vty.c: https://gerrit.osmocom.org/#/c/13017/1/src/libmsc/sgs_vty.c at 163 PS1, Line 163: if (strcmp(sgs->cfg.local_addr, DEFAULT_SGS_SERVER_IP)) I think it makes more sense to drop these conditions and print default values too, as we do in the 'hlr' section. The VTY tests expect default values to be printed, excluding port. -- To view, visit https://gerrit.osmocom.org/13017 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If045e42fca0315b0777eb86c44bf934ce58b340b Gerrit-Change-Number: 13017 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Sat, 23 Feb 2019 09:54:23 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 10:02:49 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sat, 23 Feb 2019 10:02:49 +0000 Subject: Change in osmo-msc[master]: libmsc/msc_vty.c: drop dead comparison against null Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/13018 Change subject: libmsc/msc_vty.c: drop dead comparison against null ...................................................................... libmsc/msc_vty.c: drop dead comparison against null Since vsub->sgs.mme_name is allocated statically, comparing it to null doesn't make sense - it's always != NULL. Change-Id: Ib2933a20471ebff9dfe1d9fdddf39d177504c951 Fixes: CID#178166 Array compared against 0 (NO_EFFECT) --- M src/libmsc/msc_vty.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/18/13018/1 diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c index 5aa533b..2adb2a4 100644 --- a/src/libmsc/msc_vty.c +++ b/src/libmsc/msc_vty.c @@ -749,7 +749,7 @@ /* SGs related */ vty_out(vty, " SGs-state: %s%s", osmo_fsm_inst_state_name(vsub->sgs_fsm), VTY_NEWLINE); - if (vsub->sgs.mme_name && strlen(vsub->sgs.mme_name)) + if (strlen(vsub->sgs.mme_name)) vty_out(vty, " SGs-MME: %s%s", vsub->sgs.mme_name, VTY_NEWLINE); else vty_out(vty, " SGs-MME: (none)%s", VTY_NEWLINE); -- To view, visit https://gerrit.osmocom.org/13018 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib2933a20471ebff9dfe1d9fdddf39d177504c951 Gerrit-Change-Number: 13018 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 10:22:53 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sat, 23 Feb 2019 10:22:53 +0000 Subject: Change in libosmocore[master]: vty/tdef_vty.c: drop redundant comparison Message-ID: Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/13019 Change subject: vty/tdef_vty.c: drop redundant comparison ...................................................................... vty/tdef_vty.c: drop redundant comparison The amount of arguments is already being checked a few lines before: /* If any arguments are missing, redirect to 'show' */ if (argc < 3) return show_timer(self, vty, argc, argv); so we cannot reach the expression NULL inside this statement: group_arg = argc > 0 ? argv[0] : NULL; Change-Id: Ice59d1a46c2080cd02060e3410706c502db4ce0b Fixes: CID#190873 Logically dead code (DEADCODE) --- M src/vty/tdef_vty.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/19/13019/1 diff --git a/src/vty/tdef_vty.c b/src/vty/tdef_vty.c index 1c6af70..bcf7e67 100644 --- a/src/vty/tdef_vty.c +++ b/src/vty/tdef_vty.c @@ -274,7 +274,7 @@ return show_timer(self, vty, argc, argv); /* If all arguments are passed, this is configuring a timer. */ - group_arg = argc > 0 ? argv[0] : NULL; + group_arg = argv[0]; timer_args = argv + 1; osmo_tdef_groups_for_each(g, global_tdef_groups) { if (strcmp(g->name, group_arg)) -- To view, visit https://gerrit.osmocom.org/13019 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ice59d1a46c2080cd02060e3410706c502db4ce0b Gerrit-Change-Number: 13019 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 10:28:12 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Sat, 23 Feb 2019 10:28:12 +0000 Subject: Change in osmocom-bb[master]: trxcon/scheduler: count number of measurements In-Reply-To: References: Message-ID: Vadim Yanitskiy has submitted this change and it was merged. ( https://gerrit.osmocom.org/12990 ) Change subject: trxcon/scheduler: count number of measurements ...................................................................... trxcon/scheduler: count number of measurements Instead of counting both RSSI and ToA measurements separately, let's have a single counter in trx_lchan_state.meas struct. Change-Id: I45454a3ac92b8cc85dd74092e4ab6eb350f20c9a --- M src/host/trxcon/sched_lchan_common.c M src/host/trxcon/sched_lchan_pdtch.c M src/host/trxcon/sched_lchan_tchf.c M src/host/trxcon/sched_lchan_tchh.c M src/host/trxcon/sched_lchan_xcch.c M src/host/trxcon/sched_trx.h 6 files changed, 8 insertions(+), 14 deletions(-) Approvals: Jenkins Builder: Verified Vadim Yanitskiy: Looks good to me, approved Max: Looks good to me, but someone else must approve diff --git a/src/host/trxcon/sched_lchan_common.c b/src/host/trxcon/sched_lchan_common.c index 921c466..615d81c 100644 --- a/src/host/trxcon/sched_lchan_common.c +++ b/src/host/trxcon/sched_lchan_common.c @@ -99,9 +99,9 @@ dl_hdr.num_biterr = bit_error_count; /* Convert average RSSI to RX level */ - if (lchan->meas.rssi_num) { + if (lchan->meas.num) { /* RX level: 0 .. 63 in typical GSM notation (dBm + 110) */ - dbm_avg = lchan->meas.rssi_sum / lchan->meas.rssi_num; + dbm_avg = lchan->meas.rssi_sum / lchan->meas.num; dl_hdr.rx_level = dbm2rxlev(dbm_avg); } else { /* No measurements, assuming the worst */ diff --git a/src/host/trxcon/sched_lchan_pdtch.c b/src/host/trxcon/sched_lchan_pdtch.c index aa9cb6a..845ef64 100644 --- a/src/host/trxcon/sched_lchan_pdtch.c +++ b/src/host/trxcon/sched_lchan_pdtch.c @@ -75,8 +75,7 @@ /* Update measurements */ lchan->meas.toa256_sum += toa256; lchan->meas.rssi_sum += rssi; - lchan->meas.toa256_num++; - lchan->meas.rssi_num++; + lchan->meas.num++; /* Copy burst to buffer of 4 bursts */ offset = buffer + bid * 116; diff --git a/src/host/trxcon/sched_lchan_tchf.c b/src/host/trxcon/sched_lchan_tchf.c index 5bebe49..cec7daf 100644 --- a/src/host/trxcon/sched_lchan_tchf.c +++ b/src/host/trxcon/sched_lchan_tchf.c @@ -77,8 +77,7 @@ /* Update mask and RSSI */ lchan->meas.rssi_sum += rssi; lchan->meas.toa256_sum += toa256; - lchan->meas.rssi_num++; - lchan->meas.toa256_num++; + lchan->meas.num++; /* Copy burst to end of buffer of 8 bursts */ offset = buffer + bid * 116 + 464; diff --git a/src/host/trxcon/sched_lchan_tchh.c b/src/host/trxcon/sched_lchan_tchh.c index 5b7daa3..172f54b 100644 --- a/src/host/trxcon/sched_lchan_tchh.c +++ b/src/host/trxcon/sched_lchan_tchh.c @@ -243,8 +243,7 @@ */ lchan->meas.rssi_sum += rssi; lchan->meas.toa256_sum += toa256; - lchan->meas.rssi_num++; - lchan->meas.toa256_num++; + lchan->meas.num++; /* Copy burst to the end of buffer of 6 bursts */ offset = buffer + bid * 116 + 464; diff --git a/src/host/trxcon/sched_lchan_xcch.c b/src/host/trxcon/sched_lchan_xcch.c index 825fc58..71eb38d 100644 --- a/src/host/trxcon/sched_lchan_xcch.c +++ b/src/host/trxcon/sched_lchan_xcch.c @@ -74,8 +74,7 @@ /* Update measurements */ lchan->meas.rssi_sum += rssi; lchan->meas.toa256_sum += toa256; - lchan->meas.rssi_num++; - lchan->meas.toa256_num++; + lchan->meas.num++; /* Copy burst to buffer of 4 bursts */ offset = buffer + bid * 116; diff --git a/src/host/trxcon/sched_trx.h b/src/host/trxcon/sched_trx.h index f914eee..72d9549 100644 --- a/src/host/trxcon/sched_trx.h +++ b/src/host/trxcon/sched_trx.h @@ -181,12 +181,10 @@ uint8_t ul_facch_blocks; struct { - /*! \brief Number of RSSI values */ - uint8_t rssi_num; + /*! \brief Number of measurements */ + unsigned int num; /*! \brief Sum of RSSI values */ float rssi_sum; - /*! \brief Number of TOA values */ - uint8_t toa256_num; /*! \brief Sum of TOA values */ int32_t toa256_sum; } meas; -- To view, visit https://gerrit.osmocom.org/12990 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmocom-bb Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I45454a3ac92b8cc85dd74092e4ab6eb350f20c9a Gerrit-Change-Number: 12990 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 10:38:07 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Feb 2019 10:38:07 +0000 Subject: Change in libosmocore[master]: NS: Don't print information about FR/GRE if not enabled! Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13020 Change subject: NS: Don't print information about FR/GRE if not enabled! ...................................................................... NS: Don't print information about FR/GRE if not enabled! Change-Id: I9209ee4ba5ebfc4f96b4c1d42840e1906455bae7 --- M src/gb/gprs_ns_vty.c 1 file changed, 4 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/20/13020/1 diff --git a/src/gb/gprs_ns_vty.c b/src/gb/gprs_ns_vty.c index 667db7d..1524763 100644 --- a/src/gb/gprs_ns_vty.c +++ b/src/gb/gprs_ns_vty.c @@ -198,9 +198,10 @@ vty_out(vty, "Encapsulation NS-UDP-IP Local IP: %s, UDP Port: %u%s", inet_ntoa(ia), vty_nsi->nsip.local_port, VTY_NEWLINE); - ia.s_addr = osmo_htonl(vty_nsi->frgre.local_ip); - vty_out(vty, "Encapsulation NS-FR-GRE-IP Local IP: %s%s", - inet_ntoa(ia), VTY_NEWLINE); + if (nsi->frgre.enabled) { + ia.s_addr = osmo_htonl(vty_nsi->frgre.local_ip); + vty_out(vty, "Encapsulation NS-FR-GRE-IP Local IP: %s%s", inet_ntoa(ia), VTY_NEWLINE); + } llist_for_each_entry(nsvc, &nsi->gprs_nsvcs, list) { if (nsvc == nsi->unknown_nsvc) -- To view, visit https://gerrit.osmocom.org/13020 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I9209ee4ba5ebfc4f96b4c1d42840e1906455bae7 Gerrit-Change-Number: 13020 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 13:59:38 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Feb 2019 13:59:38 +0000 Subject: Change in libosmocore[master]: NS: Add missing NS Cause strings Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13021 Change subject: NS: Add missing NS Cause strings ...................................................................... NS: Add missing NS Cause strings When I added the definitions for the IP-SNS in commit f030b210e8c13314d361a6b721a0cbcc72935219 back in 2010, I forgot to update the string definitions in ns_cause_str[]. Let's fix that Change-Id: I419ccc482d99b01263a60aede83dacd2d9de56ab --- M src/gb/gprs_ns.c 1 file changed, 7 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/21/13021/1 diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c index 54964d3..976a101 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -365,6 +365,13 @@ { NS_CAUSE_PROTO_ERR_UNSPEC, "Protocol error, unspecified" }, { NS_CAUSE_INVAL_ESSENT_IE, "Invalid essential IE" }, { NS_CAUSE_MISSING_ESSENT_IE, "Missing essential IE" }, + { NS_CAUSE_INVAL_NR_IPv4_EP, "Invalid Number of IPv4 Endpoints" }, + { NS_CAUSE_INVAL_NR_IPv6_EP, "Invalid Number of IPv6 Endpoints" }, + { NS_CAUSE_INVAL_NR_NS_VC, "Invalid Number of NS-VCs" }, + { NS_CAUSE_INVAL_WEIGH, "Invalid Weights" }, + { NS_CAUSE_UNKN_IP_EP, "Unknown IP Endpoint" }, + { NS_CAUSE_UNKN_IP_ADDR, "Unknown IP Address" }, + { NS_CAUSE_UNKN_IP_TEST_FAILED, "IP Test Failed" }, { 0, NULL } }; -- To view, visit https://gerrit.osmocom.org/13021 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I419ccc482d99b01263a60aede83dacd2d9de56ab Gerrit-Change-Number: 13021 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 13:59:39 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Feb 2019 13:59:39 +0000 Subject: Change in libosmocore[master]: GPRS: Doxygen documentation for 'struct libgb_msgb_cb' Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13022 Change subject: GPRS: Doxygen documentation for 'struct libgb_msgb_cb' ...................................................................... GPRS: Doxygen documentation for 'struct libgb_msgb_cb' Change-Id: I4144506feee74a8219bd3736087c30cc6323ec1d --- M include/osmocom/gprs/gprs_msgb.h 1 file changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/22/13022/1 diff --git a/include/osmocom/gprs/gprs_msgb.h b/include/osmocom/gprs/gprs_msgb.h index 43471e2..3f48b5b 100644 --- a/include/osmocom/gprs/gprs_msgb.h +++ b/include/osmocom/gprs/gprs_msgb.h @@ -3,19 +3,19 @@ #pragma once #include -/* the data structure stored in msgb->cb for libgb apps */ +/*! the data structure stored in msgb->cb for libgb apps */ struct libgb_msgb_cb { unsigned char *bssgph; unsigned char *llch; - /* Cell Identifier */ + /*! Cell Identifier */ unsigned char *bssgp_cell_id; - /* Identifiers of a BTS, equal to 'struct bssgp_bts_ctx' */ + /*! Identifiers of a BTS, equal to 'struct bssgp_bts_ctx' */ uint16_t nsei; uint16_t bvci; - /* Identifier of a MS (inside BTS), equal to 'struct sgsn_mm_ctx' */ + /*! Identifier of a MS (inside BTS), equal to 'struct sgsn_mm_ctx' */ uint32_t tlli; } __attribute__((packed, may_alias)); #define LIBGB_MSGB_CB(__msgb) ((struct libgb_msgb_cb *)&((__msgb)->cb[0])) -- To view, visit https://gerrit.osmocom.org/13022 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I4144506feee74a8219bd3736087c30cc6323ec1d Gerrit-Change-Number: 13022 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 13:59:39 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Feb 2019 13:59:39 +0000 Subject: Change in libosmocore[master]: NS: Factor out gprs_nsvc_start_test() and use it Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13023 Change subject: NS: Factor out gprs_nsvc_start_test() and use it ...................................................................... NS: Factor out gprs_nsvc_start_test() and use it This function performs sending a NS-ALIVE PDU and starting Tns-Test, let's use it in all places where we used to do that. As part of this, also fix a bug where the sendto() return value (number of bytes sent) would actually propagate up all thw ay to gprs_ns_rx_reset() return value, which in turn affects the test results on stdout. Change-Id: I4d303117f77fabb74bbb91887b9914a81c2a084a --- M src/gb/gb_internal.h M src/gb/gprs_ns.c M tests/gb/gprs_ns_test.ok 3 files changed, 21 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/23/13023/1 diff --git a/src/gb/gb_internal.h b/src/gb/gb_internal.h index c1fa8e1..72d940f 100644 --- a/src/gb/gb_internal.h +++ b/src/gb/gb_internal.h @@ -4,6 +4,7 @@ #include #include +void gprs_nsvc_start_test(struct gprs_nsvc *nsvc); int gprs_ns_tx_sns_ack(struct gprs_nsvc *nsvc, uint8_t trans_id, uint8_t *cause, const struct gprs_ns_ie_ip4_elem *ip4_elems,unsigned int num_ip4_elems); diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c index de550ea..c48ab9c 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -1170,8 +1170,7 @@ rc = gprs_ns_tx_reset_ack(*nsvc); /* start the test procedure */ - gprs_ns_tx_alive(*nsvc); - nsvc_start_timer((*nsvc), NSVC_TIMER_TNS_TEST); + gprs_nsvc_start_test(*nsvc); return rc; } @@ -1294,10 +1293,9 @@ osmo_timer_del(&(*nsvc)->timer); } /* Initiate TEST proc.: Send ALIVE and start timer */ - rc = gprs_ns_tx_alive(*nsvc); - nsvc_start_timer(*nsvc, NSVC_TIMER_TNS_TEST); + gprs_nsvc_start_test(*nsvc); - return rc; + return 0; } static int gprs_ns_rx_block(struct gprs_nsvc *nsvc, struct msgb *msg) @@ -1948,4 +1946,11 @@ return s; } +/*! Start the ALIVE timer procedure in all NS-VCs part of this NS Instance */ +void gprs_nsvc_start_test(struct gprs_nsvc *nsvc) +{ + gprs_ns_tx_alive(nsvc); + nsvc_start_timer(nsvc, NSVC_TIMER_TNS_TEST); +} + /*! @} */ diff --git a/tests/gb/gprs_ns_test.ok b/tests/gb/gprs_ns_test.ok index 3cb1dfc..57ae188 100644 --- a/tests/gb/gprs_ns_test.ok +++ b/tests/gb/gprs_ns_test.ok @@ -344,7 +344,7 @@ MESSAGE to BSS, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 Current NS-VCIs: VCI 0x2001, NSEI 0x2000, peer 0x01020304:2222, ALIVE, UNBLOCKED, UNRESET @@ -365,7 +365,7 @@ MESSAGE to BSS, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 Current NS-VCIs: VCI 0x2001, NSEI 0x2000, peer 0x00000000:0, DEAD, BLOCKED, RESET @@ -386,7 +386,7 @@ MESSAGE to BSS, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 Current NS-VCIs: VCI 0x2001, NSEI 0x2000, peer 0x00000000:0, DEAD, BLOCKED, RESET @@ -534,7 +534,7 @@ MESSAGE to BSS, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 Current NS-VCIs: VCI 0xf001, NSEI 0x1000, peer 0x00000000:0, ALIVE, BLOCKED, UNRESET @@ -557,7 +557,7 @@ MESSAGE to BSS, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 Current NS-VCIs: VCI 0xf001, NSEI 0x1000, peer 0x01020304:2222, ALIVE, BLOCKED, UNRESET @@ -641,7 +641,7 @@ MESSAGE to BSS, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 Current NS-VCIs: VCI 0xf001, NSEI 0x1000, peer 0x00000000:0, ALIVE, BLOCKED, UNRESET @@ -666,7 +666,7 @@ MESSAGE to SGSN, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -818,7 +818,7 @@ MESSAGE to SGSN, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -898,7 +898,7 @@ MESSAGE to SGSN, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -956,7 +956,7 @@ MESSAGE to SGSN, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b -- To view, visit https://gerrit.osmocom.org/13023 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I4d303117f77fabb74bbb91887b9914a81c2a084a Gerrit-Change-Number: 13023 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 14:07:35 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Feb 2019 14:07:35 +0000 Subject: Change in osmo-pcu[master]: Mark gprs_ns_reconnect() as static (not used outside of C file) Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13024 Change subject: Mark gprs_ns_reconnect() as static (not used outside of C file) ...................................................................... Mark gprs_ns_reconnect() as static (not used outside of C file) Change-Id: I95138adedacdc2d953284cff57f79ecb33616f0f --- M src/gprs_bssgp_pcu.cpp M src/gprs_bssgp_pcu.h 2 files changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/24/13024/1 diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index 100e33d..8bf6b7f 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -47,6 +47,7 @@ extern bool spoof_mnc_3_digits; static void bvc_timeout(void *_priv); +static int gprs_ns_reconnect(struct gprs_nsvc *nsvc); static int parse_imsi(struct tlv_parsed *tp, char *imsi) { @@ -857,7 +858,7 @@ osmo_timer_schedule(&the_pcu.bvc_timer, the_pcu.bts->fc_interval, 0); } -int gprs_ns_reconnect(struct gprs_nsvc *nsvc) +static int gprs_ns_reconnect(struct gprs_nsvc *nsvc) { struct gprs_nsvc *nsvc2; diff --git a/src/gprs_bssgp_pcu.h b/src/gprs_bssgp_pcu.h index 4127244..e8ae1a9 100644 --- a/src/gprs_bssgp_pcu.h +++ b/src/gprs_bssgp_pcu.h @@ -81,7 +81,6 @@ uint16_t lac, uint16_t rac, uint16_t cell_id); void gprs_bssgp_destroy(void); -int gprs_ns_reconnect(struct gprs_nsvc *nsvc); struct bssgp_bvc_ctx *gprs_bssgp_pcu_current_bctx(void); -- To view, visit https://gerrit.osmocom.org/13024 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I95138adedacdc2d953284cff57f79ecb33616f0f Gerrit-Change-Number: 13024 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 14:07:35 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Feb 2019 14:07:35 +0000 Subject: Change in osmo-pcu[master]: Optionally Use the NS Sub-Network-Service (SNS) on Gb Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13025 Change subject: Optionally Use the NS Sub-Network-Service (SNS) on Gb ...................................................................... Optionally Use the NS Sub-Network-Service (SNS) on Gb This change add support for the recently-introduced GPRS Gb interface auto-configuration using the NS IP Sub-Network Service (SNS) procedures. It requires a Change-Id I84786c3b43a8ae34ef3b3ba84b33c90042d234ea of libosmocore. Related: OS#3372 Depends: I84786c3b43a8ae34ef3b3ba84b33c90042d234ea (libosmcore) Change-Id: I256b40ac592d3b6e75dd581bf7b9512f69b11e83 --- M src/bts.h M src/gprs_bssgp_pcu.cpp M src/pcu_vty.c 3 files changed, 50 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/25/13025/1 diff --git a/src/bts.h b/src/bts.h index 51760e2..578cece 100644 --- a/src/bts.h +++ b/src/bts.h @@ -159,6 +159,9 @@ /* Path to be used for the pcu-bts socket */ char *pcu_sock_path; + + /* Are we talking Gb with IP-SNS (true) or classic Gb? */ + bool gb_dialect_sns; }; #ifdef __cplusplus diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index 8bf6b7f..b18c29a 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -541,12 +541,20 @@ return -EINVAL; nssd = (struct ns_signal_data *)signal_data; - if (nssd->nsvc != the_pcu.nsvc) { + if (signal != S_SNS_CONFIGURED && nssd->nsvc != the_pcu.nsvc) { LOGP(DPCU, LOGL_ERROR, "Signal received of unknown NSVC\n"); return -EINVAL; } switch (signal) { + case S_SNS_CONFIGURED: + the_pcu.bvc_sig_reset = 0; + the_pcu.bvc_reset = 0; + /* There's no NS-RESET / NS-UNBLOCK procedure on IP SNS based NS-VCs */ + the_pcu.nsvc_unblocked = 1; + LOGP(DPCU, LOGL_NOTICE, "NS-VC %d is unblocked.\n", the_pcu.nsvc->nsvci); + bvc_timeout(NULL); + break; case S_NS_UNBLOCK: if (!the_pcu.nsvc_unblocked) { the_pcu.nsvc_unblocked = 1; @@ -872,9 +880,10 @@ return -EBADF; } - nsvc2 = gprs_ns_nsip_connect(bssgp_nsi, &nsvc->ip.bts_addr, - nsvc->nsei, nsvc->nsvci); - + if (the_pcu.bts->gb_dialect_sns) + nsvc2 = gprs_ns_nsip_connect_sns(bssgp_nsi, &nsvc->ip.bts_addr, nsvc->nsei, nsvc->nsvci); + else + nsvc2 = gprs_ns_nsip_connect(bssgp_nsi, &nsvc->ip.bts_addr, nsvc->nsei, nsvc->nsvci); if (!nsvc2) { LOGP(DBSSGP, LOGL_ERROR, "Failed to reconnect NSVC\n"); return -EIO; @@ -905,8 +914,13 @@ return NULL; } gprs_ns_vty_init(bssgp_nsi); - bssgp_nsi->nsip.remote_port = sgsn_port; - bssgp_nsi->nsip.remote_ip = sgsn_ip; + /* don't specify remote IP/port if SNS dialect is in use; Doing so would + * issue a connect() on the socket, which prevents us to dynamically communicate + * with any number of IP-SNS endpoints on the SGSN side */ + if (!bts->gb_dialct_sns) { + bssgp_nsi->nsip.remote_port = sgsn_port; + bssgp_nsi->nsip.remote_ip = sgsn_ip; + } bssgp_nsi->nsip.local_port = local_port; rc = gprs_ns_nsip_listen(bssgp_nsi); if (rc < 0) { @@ -920,7 +934,10 @@ dest.sin_port = htons(sgsn_port); dest.sin_addr.s_addr = htonl(sgsn_ip); - the_pcu.nsvc = gprs_ns_nsip_connect(bssgp_nsi, &dest, nsei, nsvci); + if (bts->gb_dialect_sns) + the_pcu.nsvc = gprs_ns_nsip_connect_sns(bssgp_nsi, &dest, nsei, nsvci); + else + the_pcu.nsvc = gprs_ns_nsip_connect(bssgp_nsi, &dest, nsei, nsvci); if (!the_pcu.nsvc) { LOGP(DBSSGP, LOGL_ERROR, "Failed to create NSVCt\n"); gprs_ns_destroy(bssgp_nsi); diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 6f50bf1..960c90d 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -265,6 +265,11 @@ } } + if (bts->gb_dialect_sns) + vty_out(vty, " gb-dialect ip-sns%s", VTY_NEWLINE); + else + vty_out(vty, " gb-dialect classic%s", VTY_NEWLINE); + return CMD_SUCCESS; } @@ -1059,6 +1064,23 @@ return CMD_SUCCESS; } +DEFUN(cfg_pcu_gb_dialect, + cfg_pcu_gb_dialect_cmd, + "gb-dialect (classic|ip-sns)", + "Select which Gb interface dialect to use\n" + "Classic Gb interface with NS-{RESET,BLOCK,UNBLOCK} and static configuration\n" + "Modern Gb interface with IP-SNS (Sub Network Service) and dynamic configuration\n") +{ + struct gprs_rlcmac_bts *bts = bts_main_data(); + + if (!strcmp(argv[0], "ip-sns")) + bts->gb_dialect_sns = true; + else + bts->gb_dialect_sns = false; + + return CMD_SUCCESS; +} + DEFUN(show_tbf, show_tbf_cmd, "show tbf all", @@ -1189,6 +1211,7 @@ install_element(PCU_NODE, &cfg_pcu_gsmtap_categ_cmd); install_element(PCU_NODE, &cfg_pcu_no_gsmtap_categ_cmd); install_element(PCU_NODE, &cfg_pcu_sock_cmd); + install_element(PCU_NODE, &cfg_pcu_gb_dialect_cmd); install_element_ve(&show_bts_stats_cmd); install_element_ve(&show_tbf_cmd); -- To view, visit https://gerrit.osmocom.org/13025 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I256b40ac592d3b6e75dd581bf7b9512f69b11e83 Gerrit-Change-Number: 13025 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 14:20:40 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Feb 2019 14:20:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Change PCU-side port to 22000 Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13026 Change subject: PCU: Change PCU-side port to 22000 ...................................................................... PCU: Change PCU-side port to 22000 This way the tester and PCU can run on the same ip address without conflicts. Change-Id: I0e98877db8f0300a98f7694744a063c1143b89f3 --- M pcu/PCU_Tests.cfg 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/26/13026/1 diff --git a/pcu/PCU_Tests.cfg b/pcu/PCU_Tests.cfg index 2dfce51..6ea5a5a 100644 --- a/pcu/PCU_Tests.cfg +++ b/pcu/PCU_Tests.cfg @@ -11,7 +11,7 @@ local_ip := "127.0.0.1", local_udp_port := 23000, remote_ip := "127.0.0.1", - remote_udp_port := 23001, + remote_udp_port := 22000, nsvci := 1234, nsei := 1234 } -- To view, visit https://gerrit.osmocom.org/13026 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I0e98877db8f0300a98f7694744a063c1143b89f3 Gerrit-Change-Number: 13026 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 14:20:40 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Feb 2019 14:20:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Add test for SNS Change Weight procedure Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13027 Change subject: PCU: Add test for SNS Change Weight procedure ...................................................................... PCU: Add test for SNS Change Weight procedure Change-Id: Ia63865139f63969ccde010b01ddb8fb073209f3a --- M library/Osmocom_Gb_Types.ttcn M pcu/PCU_Tests_RAW_SNS.ttcn 2 files changed, 46 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/27/13027/1 diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index a0242c3..780c768 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -613,6 +613,29 @@ } } + template (value) PDU_NS ts_SNS_CHG_WEIGHT(Nsei nsei, uint8_t trans_id, + template (omit) IP4_Elements v4, + template (omit) IP6_Elements v6 := omit) := { + pDU_SNS_ChangeWeight := { + nsPduType := '0E'O, + nSEI_NS := ts_NS_IE_NSEI(nsei), + transactionID := trans_id, + listofIP4Elements := ts_SNS_IE_ListIP4(v4), + listofIP6Elements := ts_SNS_IE_ListIP6(v6) + } + } + template PDU_NS tr_SNS_CHG_WEIGHT(template Nsei nsei, template uint8_t trans_id, + template IP4_Elements v4, + template IP6_Elements v6 := omit) := { + pDU_SNS_ChangeWeight := { + nsPduType := '0E'O, + nSEI_NS := tr_NS_IE_NSEI(nsei), + transactionID := trans_id, + listofIP4Elements := tr_SNS_IE_ListIP4(v4), + listofIP6Elements := tr_SNS_IE_ListIP6(v6) + } + } + template (value) PDU_NS ts_SNS_ACK(Nsei nsei, uint8_t trans_id, template (omit) NsCause cause := omit, diff --git a/pcu/PCU_Tests_RAW_SNS.ttcn b/pcu/PCU_Tests_RAW_SNS.ttcn index 41a4059..2369b04 100644 --- a/pcu/PCU_Tests_RAW_SNS.ttcn +++ b/pcu/PCU_Tests_RAW_SNS.ttcn @@ -89,6 +89,19 @@ rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 24, omit, v4)); } +function f_outgoing_sns_chg_weight(integer idx_chg, uint8_t w_sig, uint8_t w_user, integer idx := 0) +runs on RAW_NS_CT { + log("f_outgoing_sns_chg_weight(idx_chg=", idx_chg, ")"); + var PDU_NS rx; + var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[idx_chg].local_ip, + g_nsconfig[idx_chg].local_udp_port, + w_sig, w_user) }; + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CHG_WEIGHT(g_nsconfig[idx].nsei, 25, v4))); + rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 25, omit, v4)); +} + + + /* PCU-originated SNS-SIZE: successful case */ @@ -225,6 +238,15 @@ setverdict(pass); } +/* Test changing weights at runtime */ +testcase TC_sns_chg_weight() runs on RAW_NS_CT { + f_sns_bringup_1c1u(); + + /* change w_user from 1 to 200 */ + f_outgoing_sns_chg_weight(idx_chg := 1, w_sig := 0, w_user := 200, idx := 0); + setverdict(pass); +} + control { @@ -236,6 +258,7 @@ execute( TC_sns_1c1u() ); execute( TC_sns_add() ); execute( TC_sns_del() ); + execute( TC_sns_chg_weight() ); } } -- To view, visit https://gerrit.osmocom.org/13027 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ia63865139f63969ccde010b01ddb8fb073209f3a Gerrit-Change-Number: 13027 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 14:49:27 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Feb 2019 14:49:27 +0000 Subject: Change in osmo-bsc[master]: OML: Fix encoded length value of OML GET ATTRIBUTES In-Reply-To: References: Message-ID: Hello Pau Espin Pedrol, daniel, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12890 to look at the new patch set (#2). Change subject: OML: Fix encoded length value of OML GET ATTRIBUTES ...................................................................... OML: Fix encoded length value of OML GET ATTRIBUTES Before this patch, all OML GET ATTRIBUTES messages were encoded with an erroneous OML header length value. The length value was always three bytes less than the actual message length. This patch fixes the problem. Change-Id: I56068de0bb14a99ec39be587e542e27cddb7d1df Closes: OS#3799 --- M src/osmo-bsc/abis_nm.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/90/12890/2 -- To view, visit https://gerrit.osmocom.org/12890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I56068de0bb14a99ec39be587e542e27cddb7d1df Gerrit-Change-Number: 12890 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-CC: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 14:50:00 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Feb 2019 14:50:00 +0000 Subject: Change in osmo-bsc[master]: OML: Fix encoded length value of OML GET ATTRIBUTES In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12890 ) Change subject: OML: Fix encoded length value of OML GET ATTRIBUTES ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I56068de0bb14a99ec39be587e542e27cddb7d1df Gerrit-Change-Number: 12890 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-CC: Max Gerrit-Comment-Date: Sat, 23 Feb 2019 14:50:00 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 14:59:46 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Feb 2019 14:59:46 +0000 Subject: Change in osmo-bts[master]: OML: Store merged attributes of IPA OML Managed Objects In-Reply-To: References: Message-ID: Hello Pau Espin Pedrol, daniel, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12893 to look at the new patch set (#2). Change subject: OML: Store merged attributes of IPA OML Managed Objects ...................................................................... OML: Store merged attributes of IPA OML Managed Objects For the TS 12.21 standard OML attributes, we store a copy of the most-recently set value for each attribute in "mo->nm_attr". This somehow was missed when adding support for the IPA specific MOs like those relevant for GPRS. Change-Id: I75ebda46da9c1fcecc484311bf3833f31c536ee1 --- M src/common/oml.c 1 file changed, 10 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/93/12893/2 -- To view, visit https://gerrit.osmocom.org/12893 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I75ebda46da9c1fcecc484311bf3833f31c536ee1 Gerrit-Change-Number: 12893 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-CC: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 15:00:07 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Feb 2019 15:00:07 +0000 Subject: Change in osmo-bts[master]: OML: Store merged attributes of IPA OML Managed Objects In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12893 ) Change subject: OML: Store merged attributes of IPA OML Managed Objects ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12893 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I75ebda46da9c1fcecc484311bf3833f31c536ee1 Gerrit-Change-Number: 12893 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-CC: Max Gerrit-Comment-Date: Sat, 23 Feb 2019 15:00:07 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 15:00:49 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Feb 2019 15:00:49 +0000 Subject: Change in osmo-bts[master]: OML: Don't advertise baseband transceiver as UNLOCKED at startup In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12892 ) Change subject: OML: Don't advertise baseband transceiver as UNLOCKED at startup ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12892 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id505594b9f224567566caac84dae2e2ae4477fae Gerrit-Change-Number: 12892 Gerrit-PatchSet: 4 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-Comment-Date: Sat, 23 Feb 2019 15:00:49 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sat Feb 23 15:10:05 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 23 Feb 2019 15:10:05 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#410?= In-Reply-To: <584522565.394.1550848206754.JavaMail.jenkins@jenkins.osmocom.org> References: <584522565.394.1550848206754.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <688009311.417.1550934605379.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.67 KB...] + ./configure checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 4 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Sat Feb 23 15:12:45 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Feb 2019 15:12:45 +0000 Subject: Change in osmo-bts[master]: OML: Store merged attributes of IPA OML Managed Objects In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12893 ) Change subject: OML: Store merged attributes of IPA OML Managed Objects ...................................................................... OML: Store merged attributes of IPA OML Managed Objects For the TS 12.21 standard OML attributes, we store a copy of the most-recently set value for each attribute in "mo->nm_attr". This somehow was missed when adding support for the IPA specific MOs like those relevant for GPRS. Change-Id: I75ebda46da9c1fcecc484311bf3833f31c536ee1 --- M src/common/oml.c 1 file changed, 10 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/common/oml.c b/src/common/oml.c index e544b57..b04caf6 100644 --- a/src/common/oml.c +++ b/src/common/oml.c @@ -1308,8 +1308,8 @@ static int oml_ipa_set_attr(struct gsm_bts *bts, struct msgb *msg) { struct abis_om_fom_hdr *foh = msgb_l3(msg); - const struct gsm_abis_mo *mo; - struct tlv_parsed tp; + struct gsm_abis_mo *mo; + struct tlv_parsed tp, *tp_merged; void *obj; int rc; @@ -1334,6 +1334,14 @@ return oml_fom_ack_nack(msg, NM_NACK_OBJINST_UNKN); rc = oml_ipa_mo_set_attr(bts, mo, obj, &tp); + if (rc == 0) { + /* Success: replace old MO attributes with new */ + /* merge existing MO attributes with new attributes */ + tp_merged = osmo_tlvp_copy(mo->nm_attr, bts); + osmo_tlvp_merge(tp_merged, &tp); + talloc_free(mo->nm_attr); + mo->nm_attr = tp_merged; + } return oml_fom_ack_nack(msg, rc); } -- To view, visit https://gerrit.osmocom.org/12893 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I75ebda46da9c1fcecc484311bf3833f31c536ee1 Gerrit-Change-Number: 12893 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-CC: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 15:12:46 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Feb 2019 15:12:46 +0000 Subject: Change in osmo-bts[master]: OML: Don't advertise baseband transceiver as UNLOCKED at startup In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12892 ) Change subject: OML: Don't advertise baseband transceiver as UNLOCKED at startup ...................................................................... OML: Don't advertise baseband transceiver as UNLOCKED at startup For some strange historical reason, the baseband transceiver MO was brought up in state "UNLOCKED". The object should come up in "locked" state until it's explicitly unlocked by the BSC. See Section 6.8.2 of TS 12.21: "If there is yet no administrative state value explicitly set by the BSC (e.g., at an initialization time), the object shall be presumed to be administratively locked by default" Change-Id: Id505594b9f224567566caac84dae2e2ae4477fae Closes: OS#3790 --- M src/common/gsm_data_shared.c 1 file changed, 0 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved daniel: Looks good to me, approved Pau Espin Pedrol: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/common/gsm_data_shared.c b/src/common/gsm_data_shared.c index 58b2503..6703095 100644 --- a/src/common/gsm_data_shared.c +++ b/src/common/gsm_data_shared.c @@ -226,8 +226,6 @@ gsm_mo_init(&trx->mo, bts, NM_OC_RADIO_CARRIER, bts->nr, trx->nr, 0xff); - /* FIXME: Why would the TRX come up unlocked? */ - trx->mo.nm_state.administrative = NM_STATE_UNLOCKED; gsm_mo_init(&trx->bb_transc.mo, bts, NM_OC_BASEB_TRANSC, bts->nr, trx->nr, 0xff); -- To view, visit https://gerrit.osmocom.org/12892 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Id505594b9f224567566caac84dae2e2ae4477fae Gerrit-Change-Number: 12892 Gerrit-PatchSet: 4 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 15:14:02 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Feb 2019 15:14:02 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12625 ) Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... Patch Set 12: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 12 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: dexter Gerrit-Reviewer: tnt Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Sat, 23 Feb 2019 15:14:02 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 15:14:04 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Feb 2019 15:14:04 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: fix channel allocator preferences In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12625 ) Change subject: assignment_fsm: fix channel allocator preferences ...................................................................... assignment_fsm: fix channel allocator preferences When the MSC allocates a channel through the ASSIGNMENT REQUEST, it may ask for a TCH/H and a TCH/F at the same time and tell which of the two types it prefers. The process of channel allocation currently selects, based on the BTS, MSC and MS capabilites exactly one apropriate codec/rate (e.g. TCH/H) and then tries to allocate it. If that allocation fails, there is no way to try the second choice and the assignment fails. For example: The MSC asks for TCH/F and TCH/H, prefering TCH/F, then the channel allocator will try TCH/F and if it fails (all TCH/F are currently in use), then TCH/H is never tried. Since the BSC currently only trys the first best codec/rate that is supported it also ignores the preference. Lets fix those problems by including the preference information and both possible codec/rate settings into the channel allocation decision. Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Related: OS#3503 --- M include/osmocom/bsc/codec_pref.h M include/osmocom/bsc/gsm_data.h M src/osmo-bsc/assignment_fsm.c M src/osmo-bsc/bsc_vty.c M src/osmo-bsc/codec_pref.c M src/osmo-bsc/handover_fsm.c M src/osmo-bsc/osmo_bsc_bssap.c M tests/codec_pref/codec_pref_test.c 8 files changed, 321 insertions(+), 113 deletions(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/include/osmocom/bsc/codec_pref.h b/include/osmocom/bsc/codec_pref.h index 51340c1..adefe04 100644 --- a/include/osmocom/bsc/codec_pref.h +++ b/include/osmocom/bsc/codec_pref.h @@ -9,14 +9,19 @@ struct bts_codec_conf; struct bsc_msc_data; struct gsm_bts; +struct channel_mode_and_rate; -int match_codec_pref(enum gsm48_chan_mode *chan_mode, - bool *full_rate, - uint16_t *s15_s0, +enum rate_pref { + RATE_PREF_NONE, + RATE_PREF_HR, + RATE_PREF_FR, +}; + +int match_codec_pref(struct channel_mode_and_rate *ch_mode_rate, const struct gsm0808_channel_type *ct, const struct gsm0808_speech_codec_list *scl, const struct bsc_msc_data *msc, - const struct gsm_bts *bts); + const struct gsm_bts *bts, enum rate_pref rate_pref); void gen_bss_supported_codec_list(struct gsm0808_speech_codec_list *scl, const struct bsc_msc_data *msc, diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h index f6c5129..4d27a2e 100644 --- a/include/osmocom/bsc/gsm_data.h +++ b/include/osmocom/bsc/gsm_data.h @@ -99,6 +99,12 @@ SUBSCR_SCCP_ST_CONNECTED }; +struct channel_mode_and_rate { + enum gsm48_chan_mode chan_mode; + bool full_rate; + uint16_t s15_s0; +}; + /* Information retrieved during an Assignment Request from the MSC. This is storage of the Assignment instructions * parsed from the Assignment Request message, to pass on until the gscon and assignment FSMs have decided whether an * Assignment is actually going to be carried out. Should remain unchanged after initial decoding. */ @@ -110,9 +116,12 @@ char msc_rtp_addr[INET_ADDRSTRLEN]; uint16_t msc_rtp_port; - enum gsm48_chan_mode chan_mode; - bool full_rate; - uint16_t s15_s0; + /* Prefered rate/codec setting (mandatory) */ + struct channel_mode_and_rate ch_mode_rate_pref; + + /* Alternate rate/codec setting (optional) */ + bool ch_mode_rate_alt_present; + struct channel_mode_and_rate ch_mode_rate_alt; }; /* State of an ongoing Assignment, while the assignment_fsm is still busy. This serves as state separation to keep the @@ -629,6 +638,13 @@ struct gsm48_req_ref *rqd_ref; struct gsm_subscriber_connection *conn; + + /* Depending on the preferences that where submitted together with + * the assignment and the current channel load, the BSC has to select + * one of the offered codec/rates. The final selection by the BSC is + * stored here and is used when sending the assignment complete or + * when performing a handover procedure. */ + struct channel_mode_and_rate ch_mode_rate; }; /* One Timeslot in a TRX */ diff --git a/src/osmo-bsc/assignment_fsm.c b/src/osmo-bsc/assignment_fsm.c index 2ad3959..67937d6 100644 --- a/src/osmo-bsc/assignment_fsm.c +++ b/src/osmo-bsc/assignment_fsm.c @@ -170,7 +170,7 @@ if (gscon_is_aoip(conn)) { /* Extrapolate speech codec from speech mode */ gsm0808_speech_codec_from_chan_type(&sc, perm_spch); - sc.cfg = conn->assignment.req.s15_s0; + sc.cfg = conn->lchan->ch_mode_rate.s15_s0; sc_ptr = ≻ } } @@ -248,9 +248,11 @@ new_lchan->nr); } -static bool lchan_type_compat_with_mode(enum gsm_chan_t type, - enum gsm48_chan_mode chan_mode, int full_rate) +static bool lchan_type_compat_with_mode(enum gsm_chan_t type, const struct channel_mode_and_rate *ch_mode_rate) { + enum gsm48_chan_mode chan_mode = ch_mode_rate->chan_mode; + bool full_rate = ch_mode_rate->full_rate; + switch (chan_mode) { case GSM48_CMODE_SIGN: switch (type) { @@ -293,6 +295,107 @@ OSMO_ASSERT(osmo_fsm_register(&assignment_fsm) == 0); } +static int check_requires_voice(bool *requires_voice, enum gsm48_chan_mode chan_mode) +{ + *requires_voice = false; + + switch (chan_mode) { + case GSM48_CMODE_SPEECH_V1: + case GSM48_CMODE_SPEECH_EFR: + case GSM48_CMODE_SPEECH_AMR: + *requires_voice = true; + break; + case GSM48_CMODE_SIGN: + *requires_voice = false; + break; + default: + return -EINVAL; + } + + return 0; +} + +/* Check if the incoming assignment requests requires a voice stream or not, + * we will look at the preferred and the alternate channel mode and also make + * sure that both are consistent. */ +static int check_requires_voice_stream(struct gsm_subscriber_connection *conn) +{ + bool result_requires_voice_alt; + bool result_requires_voice_pref; + struct assignment_request *req = &conn->assignment.req; + struct osmo_fsm_inst *fi = conn->fi; + int rc; + + /* When the assignment request indicates that there is an alternate + * rate available (e.g. "Full or Half rate channel, Half rate + * preferred..."), then both must be either voice or either signalling, + * a mismatch is not permitted */ + + /* Check the prefered setting */ + rc = check_requires_voice(&result_requires_voice_pref, req->ch_mode_rate_pref.chan_mode); + if (rc < 0) { + assignment_fail(GSM0808_CAUSE_REQ_CODEC_TYPE_OR_CONFIG_NOT_SUPP, + "Prefered channel mode not supported: %s", + gsm48_chan_mode_name(req->ch_mode_rate_pref.chan_mode)); + return -EINVAL; + } + conn->assignment.requires_voice_stream = result_requires_voice_pref; + + /* If there is an alternate setting, check that one as well */ + if (!req->ch_mode_rate_alt_present) + return 0; + rc = check_requires_voice(&result_requires_voice_alt, req->ch_mode_rate_alt.chan_mode); + if (rc < 0) { + assignment_fail(GSM0808_CAUSE_REQ_CODEC_TYPE_OR_CONFIG_NOT_SUPP, + "Alternate channel mode not supported: %s", + gsm48_chan_mode_name(req->ch_mode_rate_alt.chan_mode)); + return -EINVAL; + } + + /* Make sure both settings match */ + if (result_requires_voice_pref != result_requires_voice_alt) { + assignment_fail(GSM0808_CAUSE_REQ_CODEC_TYPE_OR_CONFIG_NOT_SUPP, + "Inconsistent channel modes: %s != %s", + gsm48_chan_mode_name(req->ch_mode_rate_pref.chan_mode), + gsm48_chan_mode_name(req->ch_mode_rate_alt.chan_mode)); + return -EINVAL; + } + + return 0; +} + +/* Check if the conn is already associated with an lchan. If yes, we will check + * if that lchan is compatible with the preferred rate/codec. If the lchan + * turns out to be incompatible we try with the alternate rate/codec. */ +static bool reuse_existing_lchan(struct gsm_subscriber_connection *conn) +{ + struct assignment_request *req = &conn->assignment.req; + + if (!conn->lchan) + return false; + + /* Check if the currently existing lchan is compatible with the + * preferred rate/codec. */ + if (lchan_type_compat_with_mode(conn->lchan->type, &req->ch_mode_rate_pref)) + conn->lchan->ch_mode_rate = req->ch_mode_rate_pref; + else if (req->ch_mode_rate_alt_present + && lchan_type_compat_with_mode(conn->lchan->type, &req->ch_mode_rate_alt)) + conn->lchan->ch_mode_rate = req->ch_mode_rate_alt; + else + return false; + + if (conn->lchan->tch_mode != conn->lchan->ch_mode_rate.chan_mode) { + /* FIXME: send Channel Mode Modify to put the current lchan in the right mode, and kick + * off its RTP stream setup code path. See gsm48_lchan_modify() and + * gsm48_rx_rr_modif_ack(), and see lchan_fsm.h LCHAN_EV_CHAN_MODE_MODIF_* */ + LOG_ASSIGNMENT(conn, LOGL_DEBUG, + "Current lchan would be compatible, but Channel Mode Modify is not implemented\n"); + return false; + } + + return true; +} + void assignment_fsm_start(struct gsm_subscriber_connection *conn, struct gsm_bts *bts, struct assignment_request *req) { @@ -311,75 +414,77 @@ conn->assignment.fi = fi; fi->priv = conn; + /* Create a copy of the request data and use that copy from now on. */ conn->assignment.req = *req; + req = &conn->assignment.req; - switch (req->chan_mode) { + /* Check if we need a voice stream. If yes, set the approriate struct + * members in conn */ + if (check_requires_voice_stream(conn) < 0) + return; - case GSM48_CMODE_SPEECH_V1: - case GSM48_CMODE_SPEECH_EFR: - case GSM48_CMODE_SPEECH_AMR: - conn->assignment.requires_voice_stream = true; - /* Select an lchan below. */ - break; + /* There may be an already existing lchan, if yes, try to work with + * the existing lchan */ + if (reuse_existing_lchan(conn)) { + LOG_ASSIGNMENT(conn, LOGL_DEBUG, + "Current lchan is compatible with requested chan_mode," + " sending BSSMAP Assignment Complete directly." + " requested chan_mode=%s; current lchan is %s\n", + gsm48_chan_mode_name(conn->lchan->ch_mode_rate.chan_mode), + gsm_lchan_name(conn->lchan)); - case GSM48_CMODE_SIGN: - conn->assignment.requires_voice_stream = false; - /* Select an lchan below. */ - break; - - default: - assignment_fail(GSM0808_CAUSE_REQ_CODEC_TYPE_OR_CONFIG_NOT_SUPP, - "Channel mode not supported: %s", - gsm48_chan_mode_name(req->chan_mode)); + send_assignment_complete(conn); + /* If something went wrong during send_assignment_complete(), the fi will be gone from + * error handling in there. */ + if (conn->assignment.fi) { + assignment_count_result(BSC_CTR_ASSIGNMENT_COMPLETED); + osmo_fsm_inst_term(conn->assignment.fi, OSMO_FSM_TERM_REGULAR, 0); + } return; } - if (conn->lchan - && lchan_type_compat_with_mode(conn->lchan->type, req->chan_mode, req->full_rate)) { + /* Try to allocate a new lchan with the preferred codec/rate choice */ + conn->assignment.new_lchan = + lchan_select_by_chan_mode(bts, req->ch_mode_rate_pref.chan_mode, req->ch_mode_rate_pref.full_rate); + conn->lchan->ch_mode_rate = req->ch_mode_rate_pref; - if (conn->lchan->tch_mode == req->chan_mode) { - /* current lchan suffices and already is in the right mode. We're done. */ - LOG_ASSIGNMENT(conn, LOGL_DEBUG, - "Current lchan is compatible with requested chan_mode," - " sending BSSMAP Assignment Complete directly." - " requested chan_mode=%s; current lchan is %s\n", - gsm48_chan_mode_name(req->chan_mode), - gsm_lchan_name(conn->lchan)); - send_assignment_complete(conn); - return; - } - - /* FIXME: send Channel Mode Modify to put the current lchan in the right mode, and kick - * off its RTP stream setup code path. See gsm48_lchan_modify() and - * gsm48_rx_rr_modif_ack(), and see lchan_fsm.h LCHAN_EV_CHAN_MODE_MODIF_* */ - LOG_ASSIGNMENT(conn, LOGL_ERROR, - "NOT IMPLEMENTED:" - " Current lchan would be compatible, we should send Channel Mode Modify\n"); + /* In case the lchan allocation fails, we try with the alternat codec/ + * rate choice (if possible) */ + if (!conn->assignment.new_lchan && req->ch_mode_rate_alt_present) { + conn->assignment.new_lchan = + lchan_select_by_chan_mode(bts, req->ch_mode_rate_alt.chan_mode, req->ch_mode_rate_alt.full_rate); + conn->lchan->ch_mode_rate = req->ch_mode_rate_alt; } - conn->assignment.new_lchan = lchan_select_by_chan_mode(bts, req->chan_mode, req->full_rate); - + /* Check whether the lchan allocation was successful or not and tear + * down the assignment in case of failure. */ if (!conn->assignment.new_lchan) { assignment_count_result(BSC_CTR_ASSIGNMENT_NO_CHANNEL); assignment_fail(GSM0808_CAUSE_NO_RADIO_RESOURCE_AVAILABLE, "BSSMAP Assignment Command:" - " No lchan available for: chan_mode=%s, full_rate=%i\n", - get_value_string(gsm48_chan_mode_names, req->chan_mode), req->full_rate); + " No lchan available for: preferred=%s%s / alternate=%s%s\n", + gsm48_chan_mode_name(req->ch_mode_rate_pref.chan_mode), + req->ch_mode_rate_pref.full_rate ? ",FR" : ",HR", + req->ch_mode_rate_alt_present ? + gsm48_chan_mode_name(req->ch_mode_rate_alt.chan_mode) : "none", + req->ch_mode_rate_alt_present ? + (req->ch_mode_rate_alt.full_rate ? ",FR" : ",HR") : ""); return; } assignment_fsm_update_id(conn); LOG_ASSIGNMENT(conn, LOGL_INFO, "Starting Assignment: chan_mode=%s, full_rate=%d," " aoip=%s MSC-rtp=%s:%u\n", - gsm48_chan_mode_name(req->chan_mode), req->full_rate, + gsm48_chan_mode_name(conn->lchan->ch_mode_rate.chan_mode), + conn->lchan->ch_mode_rate.full_rate, req->aoip ? "yes" : "no", req->msc_rtp_addr, req->msc_rtp_port); assignment_fsm_state_chg(ASSIGNMENT_ST_WAIT_LCHAN_ACTIVE); info = (struct lchan_activate_info){ .activ_for = FOR_ASSIGNMENT, .for_conn = conn, - .chan_mode = req->chan_mode, - .s15_s0 = req->s15_s0, + .chan_mode = conn->lchan->ch_mode_rate.chan_mode, + .s15_s0 = conn->lchan->ch_mode_rate.s15_s0, .requires_voice_stream = conn->assignment.requires_voice_stream, .msc_assigned_cic = req->msc_assigned_cic, .re_use_mgw_endpoint_from_lchan = conn->lchan, diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index 357ee9e..9413d36 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -4802,6 +4802,7 @@ ts = vty_get_ts(vty, argv[0], argv[1], argv[2]); if (!ts) return CMD_WARNING; + lchan = &ts->lchan[ss_nr]; if (!lchan->fi) return CMD_WARNING; diff --git a/src/osmo-bsc/codec_pref.c b/src/osmo-bsc/codec_pref.c index c99c383..a94d6a8 100644 --- a/src/osmo-bsc/codec_pref.c +++ b/src/osmo-bsc/codec_pref.c @@ -266,21 +266,18 @@ /*! Match the codec preferences from local config with a received codec preferences IEs received from the * MSC and the BTS' codec configuration. - * \param[out] chan_mode GSM 04.08 channel mode. - * \param[out] full_rate true if full-rate. - * \param[out] s15_s0 codec configuration bits S15-S0 (AMR) + * \param[out] ch_mode_rate resulting codec and rate information * \param[in] ct GSM 08.08 channel type received from MSC. * \param[in] scl GSM 08.08 speech codec list received from MSC (optional). * \param[in] msc associated msc (current codec settings). * \param[in] bts associated bts (current codec settings). + * \param[in] pref selected rate preference (full, half or none). * \returns 0 on success, -1 in case no match was found */ -int match_codec_pref(enum gsm48_chan_mode *chan_mode, - bool *full_rate, - uint16_t *s15_s0, +int match_codec_pref(struct channel_mode_and_rate *ch_mode_rate, const struct gsm0808_channel_type *ct, const struct gsm0808_speech_codec_list *scl, const struct bsc_msc_data *msc, - const struct gsm_bts *bts) + const struct gsm_bts *bts, enum rate_pref rate_pref) { unsigned int i; uint8_t perm_spch; @@ -297,6 +294,18 @@ /* Pick a permitted speech value from the global codec configuration list */ perm_spch = audio_support_to_gsm88(msc->audio_support[i]); + /* Determine if the result is a half or full rate codec */ + rc = full_rate_from_perm_spch(&ch_mode_rate->full_rate, perm_spch); + if (rc < 0) + return -EINVAL; + + /* If we have a preference for FR or HR in our request, we + * discard the potential match */ + if (rate_pref == RATE_PREF_HR && ch_mode_rate->full_rate) + continue; + if (rate_pref == RATE_PREF_FR && !ch_mode_rate->full_rate) + continue; + /* Check this permitted speech value against the BTS specific parameters. * if the BTS does not support the codec, try the next one */ if (!test_codec_support_bts(bts, perm_spch)) @@ -312,19 +321,14 @@ /* Exit without result, in case no match can be deteched */ if (!match) { - *full_rate = false; - *chan_mode = GSM48_CMODE_SIGN; - *s15_s0 = 0; + ch_mode_rate->full_rate = false; + ch_mode_rate->chan_mode = GSM48_CMODE_SIGN; + ch_mode_rate->s15_s0 = 0; return -1; } - /* Determine if the result is a half or full rate codec */ - rc = full_rate_from_perm_spch(full_rate, perm_spch); - if (rc < 0) - return -EINVAL; - /* Lookup a channel mode for the selected codec */ - *chan_mode = gsm88_to_chan_mode(perm_spch); + ch_mode_rate->chan_mode = gsm88_to_chan_mode(perm_spch); /* Special handling for AMR */ if (perm_spch == GSM0808_PERM_HR3 || perm_spch == GSM0808_PERM_FR3) { @@ -337,9 +341,9 @@ * result */ amr_s15_s0_supported = gen_bss_supported_amr_s15_s0(msc, bts, (perm_spch == GSM0808_PERM_HR3)); if (sc_match) - *s15_s0 = sc_match->cfg & amr_s15_s0_supported; + ch_mode_rate->s15_s0 = sc_match->cfg & amr_s15_s0_supported; else - *s15_s0 = amr_s15_s0_supported; + ch_mode_rate->s15_s0 = amr_s15_s0_supported; /* NOTE: The function test_codec_pref() will populate the * sc_match pointer from the searched speech codec list. For @@ -349,7 +353,7 @@ * However s15_s0 is always populated with a meaningful value, * regardless if AoIP is in use or not. */ } else - *s15_s0 = 0; + ch_mode_rate->s15_s0 = 0; return 0; } diff --git a/src/osmo-bsc/handover_fsm.c b/src/osmo-bsc/handover_fsm.c index 578cff3..30297f6 100644 --- a/src/osmo-bsc/handover_fsm.c +++ b/src/osmo-bsc/handover_fsm.c @@ -521,10 +521,8 @@ struct bsc_msc_data *msc = conn->sccp.msc; struct handover_in_req *req = &ho->inter_bsc_in; int match_idx; - enum gsm48_chan_mode mode; - bool full_rate = false; - uint16_t s15_s0; struct osmo_fsm_inst *fi; + struct channel_mode_and_rate ch_mode_rate = {}; handover_fsm_alloc(conn); @@ -562,7 +560,7 @@ bts->nr, req->cell_id_target_name); /* Figure out channel type */ - if (match_codec_pref(&mode, &full_rate, &s15_s0, &req->ct, &req->scl, msc, bts)) { + if (match_codec_pref(&ch_mode_rate, &req->ct, &req->scl, msc, bts, RATE_PREF_NONE)) { LOG_HO(conn, LOGL_DEBUG, "BTS %u has no matching channel codec (%s, speech codec list len = %u)\n", bts->nr, gsm0808_channel_type_name(&req->ct), req->scl.len); @@ -570,10 +568,10 @@ } LOG_HO(conn, LOGL_DEBUG, "BTS %u: Found matching audio type: %s %s (for %s)\n", - bts->nr, gsm48_chan_mode_name(mode), full_rate? "full-rate" : "half-rate", + bts->nr, gsm48_chan_mode_name(ch_mode_rate.chan_mode), ch_mode_rate.full_rate? "full-rate" : "half-rate", gsm0808_channel_type_name(&req->ct)); - lchan = lchan_select_by_chan_mode(bts, mode, full_rate); + lchan = lchan_select_by_chan_mode(bts, ch_mode_rate.chan_mode, ch_mode_rate.full_rate); if (!lchan) { LOG_HO(conn, LOGL_DEBUG, "BTS %u has no matching free channels\n", bts->nr); continue; @@ -605,9 +603,9 @@ info = (struct lchan_activate_info){ .activ_for = FOR_HANDOVER, .for_conn = conn, - .chan_mode = mode, - .s15_s0 = s15_s0, - .requires_voice_stream = chan_mode_is_tch(mode), + .chan_mode = ch_mode_rate.chan_mode, + .s15_s0 = ch_mode_rate.s15_s0, + .requires_voice_stream = chan_mode_is_tch(ch_mode_rate.chan_mode), .msc_assigned_cic = req->msc_assigned_cic, }; @@ -715,7 +713,7 @@ if (gscon_is_aoip(conn)) { /* Extrapolate speech codec from speech mode */ gsm0808_speech_codec_from_chan_type(&sc, ho_perf_params.speech_version_chosen); - sc.cfg = conn->lchan->s15_s0; + sc.cfg = conn->lchan->ch_mode_rate.s15_s0; memcpy(&ho_perf_params.speech_codec_chosen, &sc, sizeof(sc)); ho_perf_params.speech_codec_chosen_present = true; } diff --git a/src/osmo-bsc/osmo_bsc_bssap.c b/src/osmo-bsc/osmo_bsc_bssap.c index ab7f79c..85aab22 100644 --- a/src/osmo-bsc/osmo_bsc_bssap.c +++ b/src/osmo-bsc/osmo_bsc_bssap.c @@ -616,6 +616,101 @@ return 0; } +/* Select a prefered and an alternative codec rate depending on the available + * capabilities. This decision does not include the actual channel load yet, + * this is also the reason why the result is a prefered and an alternate + * setting. The final decision is made in assignment_fsm.c when the actual + * lchan is requested. The preferred lchan will be requested first. If we + * find an alternate setting here, this one will be tried secondly if our + * primary coice fails. */ +static int select_codecs(struct assignment_request *req, struct gsm0808_channel_type *ct, + struct gsm_subscriber_connection *conn) +{ + int rc; + struct bsc_msc_data *msc; + + msc = conn->sccp.msc; + req->ch_mode_rate_alt_present = false; + + switch (ct->ch_rate_type) { + case GSM0808_SPEECH_FULL_BM: + rc = match_codec_pref(&req->ch_mode_rate_pref, ct, &conn->codec_list, msc, conn_get_bts(conn), + RATE_PREF_FR); + break; + case GSM0808_SPEECH_HALF_LM: + rc = match_codec_pref(&req->ch_mode_rate_pref, ct, &conn->codec_list, msc, conn_get_bts(conn), + RATE_PREF_HR); + break; + case GSM0808_SPEECH_PERM: + case GSM0808_SPEECH_PERM_NO_CHANGE: + case GSM0808_SPEECH_FULL_PREF_NO_CHANGE: + case GSM0808_SPEECH_FULL_PREF: + rc = match_codec_pref(&req->ch_mode_rate_pref, ct, &conn->codec_list, msc, conn_get_bts(conn), + RATE_PREF_FR); + if (rc < 0) { + rc = match_codec_pref(&req->ch_mode_rate_pref, ct, &conn->codec_list, msc, conn_get_bts(conn), + RATE_PREF_HR); + break; + } + rc = match_codec_pref(&req->ch_mode_rate_alt, ct, &conn->codec_list, msc, conn_get_bts(conn), + RATE_PREF_HR); + if (rc == 0) + req->ch_mode_rate_alt_present = true; + rc = 0; + break; + case GSM0808_SPEECH_HALF_PREF_NO_CHANGE: + case GSM0808_SPEECH_HALF_PREF: + rc = match_codec_pref(&req->ch_mode_rate_pref, ct, &conn->codec_list, msc, conn_get_bts(conn), + RATE_PREF_HR); + + if (rc < 0) { + rc = match_codec_pref(&req->ch_mode_rate_pref, ct, &conn->codec_list, msc, conn_get_bts(conn), + RATE_PREF_FR); + break; + } + rc = match_codec_pref(&req->ch_mode_rate_alt, ct, &conn->codec_list, msc, conn_get_bts(conn), + RATE_PREF_FR); + if (rc == 0) + req->ch_mode_rate_alt_present = true; + rc = 0; + break; + default: + rc = -EINVAL; + break; + } + + if (rc < 0) { + LOGP(DMSC, LOGL_ERROR, "No supported audio type found for channel_type =" + " { ch_indctr=0x%x, ch_rate_type=0x%x, perm_spch=[%s] }\n", + ct->ch_indctr, ct->ch_rate_type, osmo_hexdump(ct->perm_spch, ct->perm_spch_len)); + /* TODO: actually output codec names, e.g. implement + * gsm0808_permitted_speech_names[] and iterate perm_spch. */ + return -EINVAL; + } + + if (req->ch_mode_rate_alt_present) { + DEBUGP(DMSC, "Found matching audio type (preferred): %s %s for channel_type =" + " { ch_indctr=0x%x, ch_rate_type=0x%x, perm_spch=[ %s] }\n", + req->ch_mode_rate_pref.full_rate ? "full rate" : "half rate", + get_value_string(gsm48_chan_mode_names, req->ch_mode_rate_pref.chan_mode), + ct->ch_indctr, ct->ch_rate_type, osmo_hexdump(ct->perm_spch, ct->perm_spch_len)); + DEBUGP(DMSC, "Found matching audio type (alternative): %s %s for channel_type =" + " { ch_indctr=0x%x, ch_rate_type=0x%x, perm_spch=[ %s] }\n", + req->ch_mode_rate_alt.full_rate ? "full rate" : "half rate", + get_value_string(gsm48_chan_mode_names, req->ch_mode_rate_alt.chan_mode), + ct->ch_indctr, ct->ch_rate_type, osmo_hexdump(ct->perm_spch, ct->perm_spch_len)); + } else { + DEBUGP(DMSC, "Found matching audio type: %s %s for channel_type =" + " { ch_indctr=0x%x, ch_rate_type=0x%x, perm_spch=[ %s] }\n", + req->ch_mode_rate_pref.full_rate ? "full rate" : "half rate", + get_value_string(gsm48_chan_mode_names, req->ch_mode_rate_pref.chan_mode), + ct->ch_indctr, ct->ch_rate_type, osmo_hexdump(ct->perm_spch, ct->perm_spch_len)); + + } + + return 0; +} + /* * Handle the assignment request message. * @@ -625,18 +720,15 @@ struct msgb *msg, unsigned int length) { struct msgb *resp; - struct bsc_msc_data *msc; struct tlv_parsed tp; uint16_t cic = 0; - enum gsm48_chan_mode chan_mode = GSM48_CMODE_SIGN; - bool full_rate = false; - uint16_t s15_s0 = 0; bool aoip = false; struct sockaddr_storage rtp_addr; struct gsm0808_channel_type ct; uint8_t cause; int rc; struct assignment_request req = {}; + struct channel_mode_and_rate ch_mode_rate_pref = {}; if (!conn) { LOGP(DMSC, LOGL_ERROR, @@ -644,7 +736,6 @@ return -1; } - msc = conn->sccp.msc; aoip = gscon_is_aoip(conn); tlv_parse(&tp, gsm0808_att_tlvdef(), msg->l4h + 1, length - 1, 0, 0); @@ -732,33 +823,19 @@ goto reject; } + req = (struct assignment_request){ + .aoip = aoip, + .msc_assigned_cic = cic, + }; + /* Match codec information from the assignment command against the * local preferences of the BSC and BTS */ - rc = match_codec_pref(&chan_mode, &full_rate, &s15_s0, &ct, &conn->codec_list, - msc, conn_get_bts(conn)); + rc = select_codecs(&req, &ct, conn); if (rc < 0) { - LOGP(DMSC, LOGL_ERROR, "No supported audio type found for channel_type =" - " { ch_indctr=0x%x, ch_rate_type=0x%x, perm_spch=[ %s] }\n", - ct.ch_indctr, ct.ch_rate_type, osmo_hexdump(ct.perm_spch, ct.perm_spch_len)); - /* TODO: actually output codec names, e.g. implement - * gsm0808_permitted_speech_names[] and iterate perm_spch. */ cause = GSM0808_CAUSE_REQ_CODEC_TYPE_OR_CONFIG_UNAVAIL; goto reject; } - DEBUGP(DMSC, "Found matching audio type: %s %s for channel_type =" - " { ch_indctr=0x%x, ch_rate_type=0x%x, perm_spch=[ %s] }\n", - full_rate? "full rate" : "half rate", - get_value_string(gsm48_chan_mode_names, chan_mode), - ct.ch_indctr, ct.ch_rate_type, osmo_hexdump(ct.perm_spch, ct.perm_spch_len)); - - req = (struct assignment_request){ - .aoip = aoip, - .msc_assigned_cic = cic, - .chan_mode = chan_mode, - .full_rate = full_rate, - .s15_s0 = s15_s0 - }; if (aoip) { unsigned int rc = osmo_sockaddr_to_str_and_uint(req.msc_rtp_addr, sizeof(req.msc_rtp_addr), @@ -772,9 +849,13 @@ } break; case GSM0808_CHAN_SIGN: + ch_mode_rate_pref = (struct channel_mode_and_rate) { + .chan_mode = GSM48_CMODE_SIGN, + }; + req = (struct assignment_request){ .aoip = aoip, - .chan_mode = chan_mode, + .ch_mode_rate_pref = ch_mode_rate_pref, }; break; default: diff --git a/tests/codec_pref/codec_pref_test.c b/tests/codec_pref/codec_pref_test.c index 534b99e..bb5468a 100644 --- a/tests/codec_pref/codec_pref_test.c +++ b/tests/codec_pref/codec_pref_test.c @@ -380,9 +380,7 @@ { int rc; unsigned int i; - bool full_rate; - enum gsm48_chan_mode chan_mode; - uint16_t s15_s0; + struct channel_mode_and_rate ch_mode_rate = { }; printf("Determining channel mode and rate:\n"); @@ -407,9 +405,9 @@ printf(" codec->efr=%u\n", bts->codec.efr); printf(" codec->amr=%u\n", bts->codec.amr); - rc = match_codec_pref(&chan_mode, &full_rate, &s15_s0, ct, scl, msc, bts); + rc = match_codec_pref(&ch_mode_rate, ct, scl, msc, bts, RATE_PREF_NONE); printf(" * result: rc=%i, full_rate=%i, s15_s0=%04x, chan_mode=%s\n", - rc, full_rate, s15_s0, gsm48_chan_mode_name(chan_mode)); + rc, ch_mode_rate.full_rate, ch_mode_rate.s15_s0, gsm48_chan_mode_name(ch_mode_rate.chan_mode)); printf("\n"); -- To view, visit https://gerrit.osmocom.org/12625 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5239e05c1cfbcb8af28f43373a58fa6c2d216c51 Gerrit-Change-Number: 12625 Gerrit-PatchSet: 12 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: dexter Gerrit-Reviewer: tnt Gerrit-CC: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sat Feb 23 15:20:49 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 23 Feb 2019 15:20:49 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-bts_?= =?UTF-8?Q?=C2=BB_trx,master,0,default,osmocom-master-debian9_#1852?= In-Reply-To: <1048181818.403.1550882832756.JavaMail.jenkins@jenkins.osmocom.org> References: <1048181818.403.1550882832756.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1917856428.418.1550935249532.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Sat Feb 23 16:01:07 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Sat, 23 Feb 2019 16:01:07 +0000 Subject: Change in osmo-gsm-tester[master]: ms_driver: Rename method to hopefully be more clear Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/13028 Change subject: ms_driver: Rename method to hopefully be more clear ...................................................................... ms_driver: Rename method to hopefully be more clear This is finding min/max in a dataset. Call it like this and update the caller. Change-Id: Ic7f5cd34639f897e460ca1edcb4f9b6df44683e9 --- M src/osmo_ms_driver/location_update_test.py 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/28/13028/1 diff --git a/src/osmo_ms_driver/location_update_test.py b/src/osmo_ms_driver/location_update_test.py index 90e405e..8500607 100644 --- a/src/osmo_ms_driver/location_update_test.py +++ b/src/osmo_ms_driver/location_update_test.py @@ -198,7 +198,7 @@ def all_completed(self): return self._outstanding == 0 - def results_min_max(self, results): + def find_min_max(self, results): min_value = max_value = None for result in results: if min_value is None or result.lu_delay() < min_value: @@ -209,7 +209,7 @@ def print_stats(self): all_completed = self.all_completed() - min_value, max_value = self.results_min_max(filter(lambda x: x.has_lu_time(), self._results.values())) + min_value, max_value = self.find_min_max(filter(lambda x: x.has_lu_time(), self._results.values())) self.log("Tests done", all_completed=all_completed, min=min_value, max=max_value) -- To view, visit https://gerrit.osmocom.org/13028 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic7f5cd34639f897e460ca1edcb4f9b6df44683e9 Gerrit-Change-Number: 13028 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 16:01:07 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Sat, 23 Feb 2019 16:01:07 +0000 Subject: Change in osmo-gsm-tester[master]: nitb_netreg_mass: Add code to declare a run successful/failure Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/13029 Change subject: nitb_netreg_mass: Add code to declare a run successful/failure ...................................................................... nitb_netreg_mass: Add code to declare a run successful/failure Change-Id: I49a821e8e4656466259e519ef901726cbb76ef86 --- M src/osmo_gsm_tester/ms_driver.py M src/osmo_ms_driver/location_update_test.py M suites/nitb_netreg_mass/register_default_mass.py 3 files changed, 70 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/29/13029/1 diff --git a/src/osmo_gsm_tester/ms_driver.py b/src/osmo_gsm_tester/ms_driver.py index e8e543c..de2f967 100644 --- a/src/osmo_gsm_tester/ms_driver.py +++ b/src/osmo_gsm_tester/ms_driver.py @@ -146,6 +146,18 @@ """ self._test_case.print_stats() + def get_stats(self): + """ + Returns a statistical summary of the test. + """ + return self._test_case.get_stats() + + def get_result_values(self): + """ + Returns the raw result values of the test run in any order. + """ + return self._test_case.get_result_values() + def cleanup(self): """ Cleans up the driver (e.g. AF_UNIX files). diff --git a/src/osmo_ms_driver/location_update_test.py b/src/osmo_ms_driver/location_update_test.py index 8500607..f14bd28 100644 --- a/src/osmo_ms_driver/location_update_test.py +++ b/src/osmo_ms_driver/location_update_test.py @@ -23,9 +23,11 @@ from datetime import timedelta +import collections import time class LUResult(Results): + """Representation of a Location Updating Result.""" def __init__(self, name): super().__init__(name) @@ -44,6 +46,10 @@ def lu_delay(self): return self.lu_time() - self.start_time() + +LUStats = collections.namedtuple("LUStats", ["num_attempted", "num_completed", + "min_latency", "max_latency"]) + class MassUpdateLocationTest(log.Origin): """ A test to launch a configurable amount of MS and make them @@ -207,9 +213,24 @@ max_value = result.lu_delay() return min_value, max_value + def get_result_values(self): + """ + Returns the raw result values of the test run in any order. + """ + return self._results.values() + + def get_stats(self): + """ + Returns a statistical summary of the test. + """ + attempted = self._number_of_ms + completed = attempted - self._outstanding + min_latency, max_latency = self.find_min_max(filter(lambda x: x.has_lu_time(), self._results.values())) + return LUStats(attempted, completed, min_latency, max_latency) + def print_stats(self): - all_completed = self.all_completed() - min_value, max_value = self.find_min_max(filter(lambda x: x.has_lu_time(), self._results.values())) + stats = self.get_stats() + all_completed = stats.num_attempted == stats.num_completed self.log("Tests done", all_completed=all_completed, - min=min_value, max=max_value) + min=stats.min_latency, max=stats.max_latency) diff --git a/suites/nitb_netreg_mass/register_default_mass.py b/suites/nitb_netreg_mass/register_default_mass.py index ede2b74..860a244 100644 --- a/suites/nitb_netreg_mass/register_default_mass.py +++ b/suites/nitb_netreg_mass/register_default_mass.py @@ -1,16 +1,17 @@ #!/usr/bin/env python3 """ -Run a network registration with a 'massive' amount of MS +Runs a network registration with a 'massive' amount of MS using the ms_driver infrastructure. """ from osmo_gsm_tester.testenv import * +from datetime import timedelta -print('use resources...') +print('Claiming resources for the test') nitb = suite.nitb() bts = suite.bts() ms_driver = suite.ms_driver() -print('start nitb and bts...') +print('Launching a simple network') nitb.bts_add(bts) nitb.start() bts.start() @@ -23,5 +24,34 @@ # Run the base test. ms_driver.run_test() -# Print stats +# Print the stats of the run. ms_driver.print_stats() + +# Evaluate if this run was successful or not. Our initial acceptance criteria +# is quite basic but it should allow us to scale to a larger number of MS and +# reasons (e.g. have a full BCCH). +# +# 99% of LUs should complete +# 99% of successful LUs should complete within 10s. +stats = ms_driver.get_stats() +completion_ratio = stats.num_attempted / stats.num_completed + +# Verify that 99% of LUs completed. +if completion_ratio < 0.99: + raise Exception("Completion ratio of %f%% lower than threshold." % (completion_ratio * 100.0)) + +# Check how many results are below our threshold. +acceptable_delay = timedelta(seconds=20) +count = 0 +quick_enough = 0 +for result in ms_driver.get_result_values(): + count = count + 1 + if not result.has_lu_time(): + continue + if timedelta(seconds=result.lu_delay()) >= acceptable_delay: + continue + quick_enough = quick_enough + 1 + +latency_ratio = quick_enough / count +if latency_ratio < 0.99: + raise Exception("Latency ratio of %f%% lower than threshold." % (latency_ratio * 100.0)) -- To view, visit https://gerrit.osmocom.org/13029 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I49a821e8e4656466259e519ef901726cbb76ef86 Gerrit-Change-Number: 13029 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 18:11:30 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Sat, 23 Feb 2019 18:11:30 +0000 Subject: Change in libosmocore[master]: gsm0808: make msgb size and headroom configurable In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/13004 ) Change subject: gsm0808: make msgb size and headroom configurable ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/13004/1/include/osmocom/gsm/gsm0808.h File include/osmocom/gsm/gsm0808.h: https://gerrit.osmocom.org/#/c/13004/1/include/osmocom/gsm/gsm0808.h at 37 PS1, Line 37: #define BSSMAP_MSG_SIZE (osmo_gsm0808_msg_size ? : BSSMAP_MSG_DEFAULT_SIZE - BSSMAP_MSG_DEFAULT_HEADROOM + BSSMAP_MSG_HEADROOM) > I don't really understand what you are trying to do here. [?] this weirdness comes from the weirdness of msgb_alloc_headroom() that includes the headroom in the msg size; and from the previous #defines doing the same. What I want to do here is to change headroom independently from the remaining message size, maybe a bad idea to change the semantics indeed -- To view, visit https://gerrit.osmocom.org/13004 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I95729991eb49555f8bba60c5dc916131b03b6cf2 Gerrit-Change-Number: 13004 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: daniel Gerrit-CC: Harald Welte Gerrit-Comment-Date: Sat, 23 Feb 2019 18:11:30 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 18:14:25 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Sat, 23 Feb 2019 18:14:25 +0000 Subject: Change in libosmocore[master]: gsm0808: make msgb size and headroom configurable In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/13004 ) Change subject: gsm0808: make msgb size and headroom configurable ...................................................................... Patch Set 1: > Patch Set 1: > > you could simply increae the headroom for all gsm0808 msgb's and even make the #define depend on sizeof(osmo_prim)? ok. For some reason I thought it's not an option to change the overall gsm0808 message size. Not sure why. I think I had a desire to make the message size configurable in the first place, to cut out the entire "libosmocore has the wrong size" scenario. -- To view, visit https://gerrit.osmocom.org/13004 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I95729991eb49555f8bba60c5dc916131b03b6cf2 Gerrit-Change-Number: 13004 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: daniel Gerrit-CC: Harald Welte Gerrit-Comment-Date: Sat, 23 Feb 2019 18:14:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 19:12:49 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Sat, 23 Feb 2019 19:12:49 +0000 Subject: Change in libosmocore[master]: gsm0808: make msgb size and headroom configurable In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/13004 ) Change subject: gsm0808: make msgb size and headroom configurable ...................................................................... Patch Set 1: > make the #define depend on sizeof(osmo_prim)? Actually doesn't work: it would need to be struct osmo_scu_prim, which is defined in libosmo-sccp's sccp_sap.h. I still kind of prefer a way where we can use libosmocore for any headroom size any gsm0808 user might need, instead of picking a constant that's hopefully enough... -- To view, visit https://gerrit.osmocom.org/13004 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I95729991eb49555f8bba60c5dc916131b03b6cf2 Gerrit-Change-Number: 13004 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: daniel Gerrit-CC: Harald Welte Gerrit-Comment-Date: Sat, 23 Feb 2019 19:12:49 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 20:43:01 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Feb 2019 20:43:01 +0000 Subject: Change in libosmocore[master]: NS: Add support for GPRS NS IP Sub-Network-Service (SNS) In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13014 ) Change subject: NS: Add support for GPRS NS IP Sub-Network-Service (SNS) ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/13014 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I84786c3b43a8ae34ef3b3ba84b33c90042d234ea Gerrit-Change-Number: 13014 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Sat, 23 Feb 2019 20:43:01 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 20:43:11 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sat, 23 Feb 2019 20:43:11 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Add tests for our new IP Sub-Network-Service (SNS) Gb interface In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12985 ) Change subject: PCU: Add tests for our new IP Sub-Network-Service (SNS) Gb interface ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/12985 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0fe3d4579960bab0494c294ec7ab8032feed4fb2 Gerrit-Change-Number: 12985 Gerrit-PatchSet: 4 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: daniel Gerrit-Comment-Date: Sat, 23 Feb 2019 20:43:11 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 22:39:36 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sat, 23 Feb 2019 22:39:36 +0000 Subject: Change in osmo-gsm-tester[master]: ms_driver: Rename method to hopefully be more clear In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/13028 ) Change subject: ms_driver: Rename method to hopefully be more clear ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13028 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic7f5cd34639f897e460ca1edcb4f9b6df44683e9 Gerrit-Change-Number: 13028 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sat, 23 Feb 2019 22:39:36 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 22:44:24 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sat, 23 Feb 2019 22:44:24 +0000 Subject: Change in osmo-gsm-tester[master]: nitb_netreg_mass: Add code to declare a run successful/failure In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/13029 ) Change subject: nitb_netreg_mass: Add code to declare a run successful/failure ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/13029/1/suites/nitb_netreg_mass/register_default_mass.py File suites/nitb_netreg_mass/register_default_mass.py: https://gerrit.osmocom.org/#/c/13029/1/suites/nitb_netreg_mass/register_default_mass.py at 48 PS1, Line 48: count = count + 1 do we really need "count"? It's just len(ms_driver.get_result_values()) -- To view, visit https://gerrit.osmocom.org/13029 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I49a821e8e4656466259e519ef901726cbb76ef86 Gerrit-Change-Number: 13029 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sat, 23 Feb 2019 22:44:24 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 22:46:33 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sat, 23 Feb 2019 22:46:33 +0000 Subject: Change in osmo-msc[master]: libmsc/ran_conn.c: add missing 'break' to OSMO_RAT_EUTRAN_SGS In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/13015 ) Change subject: libmsc/ran_conn.c: add missing 'break' to OSMO_RAT_EUTRAN_SGS ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13015 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I18dfd08ea0857f2751164a295dd9de20a2024ac3 Gerrit-Change-Number: 13015 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sat, 23 Feb 2019 22:46:33 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 22:47:12 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sat, 23 Feb 2019 22:47:12 +0000 Subject: Change in osmo-msc[master]: libmsc/sgs_iface.c: fix SGS_STATE_NS11 counter reference In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/13016 ) Change subject: libmsc/sgs_iface.c: fix SGS_STATE_NS11 counter reference ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/13016 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifbb1a37e644ae8bf8e7959f6f6cd6403ac1f2f1b Gerrit-Change-Number: 13016 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sat, 23 Feb 2019 22:47:12 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 22:48:50 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sat, 23 Feb 2019 22:48:50 +0000 Subject: Change in osmo-msc[master]: libmsc/msc_vty.c: drop dead comparison against null In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/13018 ) Change subject: libmsc/msc_vty.c: drop dead comparison against null ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/13018 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib2933a20471ebff9dfe1d9fdddf39d177504c951 Gerrit-Change-Number: 13018 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sat, 23 Feb 2019 22:48:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 22:50:21 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sat, 23 Feb 2019 22:50:21 +0000 Subject: Change in libosmocore[master]: vty/tdef_vty.c: drop redundant comparison In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/13019 ) Change subject: vty/tdef_vty.c: drop redundant comparison ...................................................................... Patch Set 1: Code-Review+1 (1 comment) https://gerrit.osmocom.org/#/c/13019/1/src/vty/tdef_vty.c File src/vty/tdef_vty.c: https://gerrit.osmocom.org/#/c/13019/1/src/vty/tdef_vty.c at 277 PS1, Line 277: group_arg = argv[0]; I think it's basically because IMHO you cannot have argc=0 in a program, it's always at least argc >=1. -- To view, visit https://gerrit.osmocom.org/13019 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ice59d1a46c2080cd02060e3410706c502db4ce0b Gerrit-Change-Number: 13019 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sat, 23 Feb 2019 22:50:21 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 22:51:37 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sat, 23 Feb 2019 22:51:37 +0000 Subject: Change in libosmocore[master]: NS: Don't print information about FR/GRE if not enabled! In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/13020 ) Change subject: NS: Don't print information about FR/GRE if not enabled! ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/13020 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9209ee4ba5ebfc4f96b4c1d42840e1906455bae7 Gerrit-Change-Number: 13020 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sat, 23 Feb 2019 22:51:37 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 22:59:54 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sat, 23 Feb 2019 22:59:54 +0000 Subject: Change in libosmocore[master]: NS: Add missing NS Cause strings In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/13021 ) Change subject: NS: Add missing NS Cause strings ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/13021 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I419ccc482d99b01263a60aede83dacd2d9de56ab Gerrit-Change-Number: 13021 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sat, 23 Feb 2019 22:59:54 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 23:06:19 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sat, 23 Feb 2019 23:06:19 +0000 Subject: Change in libosmocore[master]: NS: Factor out gprs_nsvc_start_test() and use it In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/13023 ) Change subject: NS: Factor out gprs_nsvc_start_test() and use it ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/13023/1/src/gb/gprs_ns.c File src/gb/gprs_ns.c: https://gerrit.osmocom.org/#/c/13023/1/src/gb/gprs_ns.c at 1952 PS1, Line 1952: gprs_ns_tx_alive(nsvc); We are losing posible error condition here. Would make sense to return negative on error o 0 on success, and use that return code in gprs_ns_rx_reset_ack. -- To view, visit https://gerrit.osmocom.org/13023 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4d303117f77fabb74bbb91887b9914a81c2a084a Gerrit-Change-Number: 13023 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Sat, 23 Feb 2019 23:06:19 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 23:07:43 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sat, 23 Feb 2019 23:07:43 +0000 Subject: Change in libosmocore[master]: GPRS: Doxygen documentation for 'struct libgb_msgb_cb' In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/13022 ) Change subject: GPRS: Doxygen documentation for 'struct libgb_msgb_cb' ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/13022 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4144506feee74a8219bd3736087c30cc6323ec1d Gerrit-Change-Number: 13022 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sat, 23 Feb 2019 23:07:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 23:10:15 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sat, 23 Feb 2019 23:10:15 +0000 Subject: Change in osmo-pcu[master]: Mark gprs_ns_reconnect() as static (not used outside of C file) In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/13024 ) Change subject: Mark gprs_ns_reconnect() as static (not used outside of C file) ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13024 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I95138adedacdc2d953284cff57f79ecb33616f0f Gerrit-Change-Number: 13024 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Sat, 23 Feb 2019 23:10:15 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 23:14:52 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sat, 23 Feb 2019 23:14:52 +0000 Subject: Change in osmo-pcu[master]: Optionally Use the NS Sub-Network-Service (SNS) on Gb In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/13025 ) Change subject: Optionally Use the NS Sub-Network-Service (SNS) on Gb ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/13025/1/src/bts.h File src/bts.h: https://gerrit.osmocom.org/#/c/13025/1/src/bts.h at 164 PS1, Line 164: bool gb_dialect_sns; May it make sense to have an enum here with different options? -- To view, visit https://gerrit.osmocom.org/13025 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I256b40ac592d3b6e75dd581bf7b9512f69b11e83 Gerrit-Change-Number: 13025 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Sat, 23 Feb 2019 23:14:52 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 23:25:49 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sat, 23 Feb 2019 23:25:49 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Add test for SNS Change Weight procedure In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/13027 ) Change subject: PCU: Add test for SNS Change Weight procedure ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/13027/1/pcu/PCU_Tests_RAW_SNS.ttcn File pcu/PCU_Tests_RAW_SNS.ttcn: https://gerrit.osmocom.org/#/c/13027/1/pcu/PCU_Tests_RAW_SNS.ttcn at 99 PS1, Line 99: NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CHG_WEIGHT(g_nsconfig[idx].nsei, 25, v4))); Is g_nsconfig[idx].nsei correct? Shouldn't it be g_nsconfig[idx_chg].nsei? Or idx is the old one and idx_chg is the new one? Same in line below. -- To view, visit https://gerrit.osmocom.org/13027 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia63865139f63969ccde010b01ddb8fb073209f3a Gerrit-Change-Number: 13027 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Sat, 23 Feb 2019 23:25:49 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sat Feb 23 23:29:11 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Sat, 23 Feb 2019 23:29:11 +0000 Subject: Change in osmo-bsc[master]: OML: Fix encoded length value of OML GET ATTRIBUTES In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/12890 ) Change subject: OML: Fix encoded length value of OML GET ATTRIBUTES ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12890 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I56068de0bb14a99ec39be587e542e27cddb7d1df Gerrit-Change-Number: 12890 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: daniel Gerrit-CC: Max Gerrit-Comment-Date: Sat, 23 Feb 2019 23:29:11 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sat Feb 23 23:58:53 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sat, 23 Feb 2019 23:58:53 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-o?= =?UTF-8?Q?penbsc_=C2=BB_--disable-iu,--disable-m?= =?UTF-8?Q?gcp-transcoding,--enable-smpp,def?= =?UTF-8?Q?ault,osmocom-master-debian9_#3933?= Message-ID: <1835546331.420.1550966333705.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 194.38 KB...] You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b new_branch_name HEAD is now at 5b5c1ed... OsmoSTP: enable statsd support + git rev-parse HEAD 5b5c1ed63caa7787193a9b4922f7fcb266c18045 + cd libosmo-sccp + mkdir -p /build/deps/install/stow + autoreconf --install --force libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `.'. libtoolize: copying file `./ltmain.sh' libtoolize: Consider adding `AC_CONFIG_MACRO_DIR([m4])' to configure.ac and libtoolize: rerunning libtoolize, to keep the correct libtool macros in-tree. libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am. configure.ac:21: installing './compile' configure.ac:23: installing './config.guess' configure.ac:23: installing './config.sub' configure.ac:9: installing './install-sh' configure.ac:9: installing './missing' examples/Makefile.am: installing './depcomp' tests/sccp/Makefile.am:8: warning: source file '$(top_srcdir)/src/sccp.c' is in a subdirectory, tests/sccp/Makefile.am:8: but option 'subdir-objects' is disabled automake: warning: possible forward-incompatibility. automake: At least a source file is in a subdirectory, but the 'subdir-objects' automake: automake option hasn't been enabled. For now, the corresponding output automake: object file(s) will be placed in the top-level directory. However, automake: this behaviour will change in future Automake versions: they will automake: unconditionally cause object files to be placed in the same subdirectory automake: of the corresponding sources. automake: You are advised to start using 'subdir-objects' option throughout your automake: project, to avoid future incompatibilities. + ./configure --prefix=/build/deps/install/stow/libosmo-sccp --with-systemdsystemunitdir=/build/deps/install/stow/libosmo-sccp/lib/systemd/system checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking whether make sets $(MAKE)... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for LIBOSMOCORE... yes checking for LIBOSMOVTY... yes checking for LIBOSMOGSM... yes checking for LIBOSMONETIF... yes checking for library containing sctp_send... -lsctp checking if gcc supports -fvisibility=hidden... yes checking for doxygen... /usr/bin/doxygen checking whether to enable VTY/CTRL tests... no CFLAGS="-g -O2 -Wall" CPPFLAGS=" -Wall" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating libosmo-sigtran.pc config.status: creating libosmo-sccp.pc config.status: creating libosmo-mtp.pc config.status: creating libosmo-xua.pc config.status: creating include/osmocom/Makefile config.status: creating include/osmocom/sccp/Makefile config.status: creating include/osmocom/mtp/Makefile config.status: creating include/osmocom/sigtran/Makefile config.status: creating include/Makefile config.status: creating src/Makefile config.status: creating tests/Makefile config.status: creating tests/sccp/Makefile config.status: creating tests/mtp/Makefile config.status: creating tests/m2ua/Makefile config.status: creating tests/xua/Makefile config.status: creating tests/ss7/Makefile config.status: creating tests/vty/Makefile config.status: creating examples/Makefile config.status: creating stp/Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating doc/manuals/Makefile config.status: creating contrib/Makefile config.status: creating contrib/systemd/Makefile config.status: creating Doxyfile config.status: creating Makefile config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands + make -j 8 install echo 1.0.0.3-5b5c > .version-t && mv .version-t .version make install-recursive make[1]: Entering directory '/build/deps/libosmo-sccp' Making install in include make[2]: Entering directory '/build/deps/libosmo-sccp/include' Making install in osmocom make[3]: Entering directory '/build/deps/libosmo-sccp/include/osmocom' Making install in mtp make[4]: Entering directory '/build/deps/libosmo-sccp/include/osmocom/mtp' make[5]: Entering directory '/build/deps/libosmo-sccp/include/osmocom/mtp' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/deps/install/stow/libosmo-sccp/include/osmocom/mtp' /usr/bin/install -c -m 644 mtp_level3.h mtp_pcap.h '/build/deps/install/stow/libosmo-sccp/include/osmocom/mtp' make[5]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom/mtp' make[4]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom/mtp' Making install in sccp make[4]: Entering directory '/build/deps/libosmo-sccp/include/osmocom/sccp' make[5]: Entering directory '/build/deps/libosmo-sccp/include/osmocom/sccp' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/deps/install/stow/libosmo-sccp/include/osmocom/sccp' /usr/bin/install -c -m 644 sccp_types.h sccp.h '/build/deps/install/stow/libosmo-sccp/include/osmocom/sccp' make[5]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom/sccp' make[4]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom/sccp' Making install in sigtran make[4]: Entering directory '/build/deps/libosmo-sccp/include/osmocom/sigtran' make[5]: Entering directory '/build/deps/libosmo-sccp/include/osmocom/sigtran' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p '/build/deps/install/stow/libosmo-sccp/include/osmocom/sigtran' /bin/mkdir -p '/build/deps/install/stow/libosmo-sccp/include/osmocom/sigtran/protocol' /usr/bin/install -c -m 644 xua_types.h xua_msg.h m2ua_types.h sccp_sap.h sigtran_sap.h sccp_helpers.h mtp_sap.h osmo_ss7.h '/build/deps/install/stow/libosmo-sccp/include/osmocom/sigtran' /usr/bin/install -c -m 644 protocol/sua.h protocol/m3ua.h protocol/mtp.h '/build/deps/install/stow/libosmo-sccp/include/osmocom/sigtran/protocol' make[5]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom/sigtran' make[4]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom/sigtran' make[4]: Entering directory '/build/deps/libosmo-sccp/include/osmocom' make[5]: Entering directory '/build/deps/libosmo-sccp/include/osmocom' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom' make[4]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom' make[3]: Leaving directory '/build/deps/libosmo-sccp/include/osmocom' make[3]: Entering directory '/build/deps/libosmo-sccp/include' make[4]: Entering directory '/build/deps/libosmo-sccp/include' make[4]: Nothing to be done for 'install-exec-am'. make[4]: Nothing to be done for 'install-data-am'. make[4]: Leaving directory '/build/deps/libosmo-sccp/include' make[3]: Leaving directory '/build/deps/libosmo-sccp/include' make[2]: Leaving directory '/build/deps/libosmo-sccp/include' Making install in src make[2]: Entering directory '/build/deps/libosmo-sccp/src' CC sccp.o CC libxua_a-xua_msg.o CC sccp_sap.lo CC mtp_pcap.o CC sua.lo CC m3ua.lo CC xua_msg.lo CC sccp_helpers.lo In file included from /usr/include/x86_64-linux-gnu/bits/string2.h:1273:0, from /usr/include/string.h:635, from sccp.c:27: /usr/include/stdlib.h:470:1: internal compiler error: Segmentation fault __END_NAMESPACE_STD ^ Please submit a full bug report, with preprocessed source if appropriate. See for instructions. CC sccp2sua.lo CC sccp_scrc.lo CC sccp_sclc.lo CC sccp_user.lo CC sccp_scoc.lo CC xua_rkm.lo The bug is not reproducible, so it is likely a hardware or OS problem. Makefile:548: recipe for target 'sccp.o' failed make[2]: *** [sccp.o] Error 1 make[2]: *** Waiting for unfinished jobs.... sccp_scoc.c: In function 'scoc_fsm_active': sccp_scoc.c:1032:9: note: #pragma message: TODO: internal disco: send N-DISCONNECT.ind to user #pragma message ("TODO: internal disco: send N-DISCONNECT.ind to user") ^ make[2]: Leaving directory '/build/deps/libosmo-sccp/src' Makefile:488: recipe for target 'install-recursive' failed make[1]: Leaving directory '/build/deps/libosmo-sccp' make[1]: *** [install-recursive] Error 1 make: *** [install] Error 2 Makefile:787: recipe for target 'install' failed Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Sun Feb 24 00:00:16 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sun, 24 Feb 2019 00:00:16 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-pcu_=C2=BB_ma?= =?UTF-8?Q?ster,1,osmocom-master-debian9,none,False_#1285?= Message-ID: <1156977231.421.1550966416693.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 154.11 KB...] make[3]: Entering directory ' make[3]: Leaving directory ' (cd manuals && make top_distdir=../../osmo-pcu-0.6.0.7-0160 distdir=../../osmo-pcu-0.6.0.7-0160/doc/manuals \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[3]: Entering directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' (cd tests && make top_distdir=../osmo-pcu-0.6.0.7-0160 distdir=../osmo-pcu-0.6.0.7-0160/tests \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[2]: Entering directory ' :;{ \ echo '# Signature of the current package.' && \ echo 'm4_define([AT_PACKAGE_NAME],' && \ echo ' [osmo-pcu])' && \ echo 'm4_define([AT_PACKAGE_TARNAME],' && \ echo ' [osmo-pcu])' && \ echo 'm4_define([AT_PACKAGE_VERSION],' && \ echo ' [0.6.0.7-0160])' && \ echo 'm4_define([AT_PACKAGE_STRING],' && \ echo ' [osmo-pcu 0.6.0.7-0160])' && \ echo 'm4_define([AT_PACKAGE_BUGREPORT],' && \ echo ' [osmocom-net-gprs at lists.osmocom.org])'; \ echo 'm4_define([AT_PACKAGE_URL],' && \ echo ' [])'; \ } >'./package.m4' /bin/bash ../missing --run autom4te --language=autotest -I '.' -o testsuite.tmp testsuite.at mv testsuite.tmp testsuite make[2]: Leaving directory ' (cd contrib && make top_distdir=../osmo-pcu-0.6.0.7-0160 distdir=../osmo-pcu-0.6.0.7-0160/contrib \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[2]: Entering directory ' (cd systemd && make top_distdir=../../osmo-pcu-0.6.0.7-0160 distdir=../../osmo-pcu-0.6.0.7-0160/contrib/systemd \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[3]: Entering directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' test -n "" \ || find "osmo-pcu-0.6.0.7-0160" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec /bin/bash -c -m a+r {} {} \; \ || chmod -R a+r "osmo-pcu-0.6.0.7-0160" tardir=osmo-pcu-0.6.0.7-0160 && ${TAR-tar} chof - "$tardir" | BZIP2=${BZIP2--9} bzip2 -c >osmo-pcu-0.6.0.7-0160.tar.bz2 tardir=osmo-pcu-0.6.0.7-0160 && ${TAR-tar} chof - "$tardir" | GZIP=--best gzip -c >osmo-pcu-0.6.0.7-0160.tar.gz make[1]: Leaving directory ' if test -d "osmo-pcu-0.6.0.7-0160"; then find "osmo-pcu-0.6.0.7-0160" -type d ! -perm -200 -exec chmod u+w {} ';' && rm -rf "osmo-pcu-0.6.0.7-0160" || { sleep 5 && rm -rf "osmo-pcu-0.6.0.7-0160"; }; else :; fi case 'osmo-pcu-0.6.0.7-0160.tar.gz osmo-pcu-0.6.0.7-0160.tar.bz2' in \ *.tar.gz*) \ GZIP=--best gzip -dc osmo-pcu-0.6.0.7-0160.tar.gz | ${TAR-tar} xf - ;;\ *.tar.bz2*) \ bzip2 -dc osmo-pcu-0.6.0.7-0160.tar.bz2 | ${TAR-tar} xf - ;;\ *.tar.lz*) \ lzip -dc osmo-pcu-0.6.0.7-0160.tar.lz | ${TAR-tar} xf - ;;\ *.tar.xz*) \ xz -dc osmo-pcu-0.6.0.7-0160.tar.xz | ${TAR-tar} xf - ;;\ *.tar.Z*) \ uncompress -c osmo-pcu-0.6.0.7-0160.tar.Z | ${TAR-tar} xf - ;;\ *.shar.gz*) \ GZIP=--best gzip -dc osmo-pcu-0.6.0.7-0160.shar.gz | unshar ;;\ *.zip*) \ unzip osmo-pcu-0.6.0.7-0160.zip ;;\ esac chmod -R a-w osmo-pcu-0.6.0.7-0160 chmod u+w osmo-pcu-0.6.0.7-0160 mkdir osmo-pcu-0.6.0.7-0160/_build osmo-pcu-0.6.0.7-0160/_build/sub osmo-pcu-0.6.0.7-0160/_inst chmod a-w osmo-pcu-0.6.0.7-0160 test -d osmo-pcu-0.6.0.7-0160/_build || exit 0; \ dc_install_base=`CDPATH="${ZSH_VERSION+.}:" && cd osmo-pcu-0.6.0.7-0160/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="${TMPDIR-/tmp}/am-dc-$$/" \ && am__cwd=`pwd` \ && CDPATH="${ZSH_VERSION+.}:" && cd osmo-pcu-0.6.0.7-0160/_build/sub \ && ../../configure \ --with-systemdsystemunitdir=$dc_install_base//lib/systemd/system \ --enable-werror --enable-sanitize --enable-manuals \ --srcdir=../.. --prefix="$dc_install_base" \ && make \ && make dvi \ && make check \ && make install \ && make installcheck \ && make uninstall \ && make distuninstallcheck_dir="$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$dc_destdir") \ && make DESTDIR="$dc_destdir" install \ && make DESTDIR="$dc_destdir" uninstall \ && make DESTDIR="$dc_destdir" \ distuninstallcheck_dir="$dc_destdir" distuninstallcheck; \ } || { rm -rf "$dc_destdir"; exit 1; }) \ && rm -rf "$dc_destdir" \ && make dist \ && rm -rf osmo-pcu-0.6.0.7-0160.tar.gz osmo-pcu-0.6.0.7-0160.tar.bz2 \ && make distcleancheck \ && cd "$am__cwd" \ || exit 1 checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking whether make supports nested variables... (cached) yes checking whether make sets $(MAKE)... (cached) yes checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking for style of include used by make... GNU checking dependency style of gcc... gcc3 checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for ar... ar checking for archiver @FILE support... @ checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking for sysroot... no checking for a working dd... /bin/dd checking how to truncate binary pipes... /bin/dd bs=4096 count=1 checking for mt... mt checking if mt is a manifest tool... no checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking how to run the C++ preprocessor... g++ -E checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC -DPIC checking if g++ PIC flag -fPIC -DPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking if g++ supports -c -o file.o... (cached) yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... (cached) GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking for pkg-config... /usr/bin/pkg-config checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.20... yes checking for ANSI C header files... (cached) yes checking for LIBOSMOCORE... yes checking for LIBOSMOVTY... yes checking for LIBOSMOGSM... yes checking for LIBOSMOGB... yes checking whether to enable direct DSP access for PDCH of sysmocom-bts... unset checking whether to enable direct PHY access for PDCH of NuRAN Wireless Litecell 1.5 BTS... no checking whether to enable VTY tests... no checking for OSMO_GSM_MANUALS_DIR... (from pkg-conf) All dependencies installed! CPPFLAGS=" -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp" CFLAGS="-g -O2 -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp" CXXFLAGS="-g -O2 -fsanitize=address -fsanitize=undefined" LDFLAGS=" -fsanitize=address -fsanitize=undefined" checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating include/Makefile config.status: creating src/Makefile config.status: creating doc/Makefile config.status: creating doc/examples/Makefile config.status: creating tests/Makefile config.status: creating doc/manuals/Makefile config.status: creating contrib/Makefile config.status: creating contrib/systemd/Makefile config.status: creating Makefile config.status: executing tests/atconfig commands config.status: executing depfiles commands config.status: executing libtool commands make[1]: Entering directory ' Making all in include make[2]: Entering directory ' make[2]: Nothing to be done for 'all'. make[2]: Leaving directory ' Making all in src make[2]: Entering directory ' CXX gprs_debug.lo CXX csn1.lo CXX gsm_rlcmac.lo CXX gprs_bssgp_pcu.lo ../../../src/gprs_bssgp_pcu.cpp:982:2: warning: #warning "This causes ASAN to complain. It is not critical for normal operation but should be fixed nevertheless" [-Wcpp] #warning "This causes ASAN to complain. It is not critical for normal operation but should be fixed nevertheless" ^~~~~~~ CXX gprs_rlcmac.lo /bin/bash: line 2: 17463 Segmentation fault /bin/bash ../libtool --silent --tag=CXX --mode=compile g++ -DPACKAGE_NAME=\"osmo-pcu\" -DPACKAGE_TARNAME=\"osmo-pcu\" -DPACKAGE_VERSION=\"0.6.0.7-0160\" -DPACKAGE_STRING=\"osmo-pcu\ 0.6.0.7-0160\" -DPACKAGE_BUGREPORT=\"osmocom-net-gprs at lists.osmocom.org\" -DPACKAGE_URL=\"\" -DPACKAGE=\"osmo-pcu\" -DVERSION=\"0.6.0.7-0160\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DSTDC_HEADERS=1 -I. -I../../../src -I../../../include -Wall -I -I -fno-strict-aliasing -I -fsanitize=address -fsanitize=undefined -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp -Wall -ldl -pthread -g -O2 -fsanitize=address -fsanitize=undefined -MT gprs_rlcmac.lo -MD -MP -MF $depbase.Tpo -c -o gprs_rlcmac.lo ../../../src/gprs_rlcmac.cpp Makefile:751: recipe for target 'gprs_rlcmac.lo' failed make[2]: *** [gprs_rlcmac.lo] Error 139 make[2]: Leaving directory ' Makefile:410: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:615: recipe for target 'distcheck' failed make: *** [distcheck] Error 1 + cat-testlogs.sh Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Sun Feb 24 00:18:36 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sun, 24 Feb 2019 00:18:36 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_m?= =?UTF-8?Q?aster-openbsc_=C2=BB_--disable-iu,--disa?= =?UTF-8?Q?ble-mgcp-transcoding,--enable-smpp,?= =?UTF-8?Q?default,osmocom-master-debian9_#3934?= In-Reply-To: <1835546331.420.1550966333705.JavaMail.jenkins@jenkins.osmocom.org> References: <1835546331.420.1550966333705.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <376980373.422.1550967516806.JavaMail.jenkins@jenkins.osmocom.org> See From jenkins at lists.osmocom.org Sun Feb 24 07:32:10 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sun, 24 Feb 2019 07:32:10 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-pcu_?= =?UTF-8?Q?=C2=BB_master,1,osmocom-master-debian9,none,False_#1286?= In-Reply-To: <1156977231.421.1550966416693.JavaMail.jenkins@jenkins.osmocom.org> References: <1156977231.421.1550966416693.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1911792915.435.1550993530401.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Sun Feb 24 08:46:58 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Feb 2019 08:46:58 +0000 Subject: Change in osmo-ccid-firmware[master]: Support for sysmoOCTSIM NCN8025/SX1503 control Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13030 Change subject: Support for sysmoOCTSIM NCN8025/SX1503 control ...................................................................... Support for sysmoOCTSIM NCN8025/SX1503 control This adds an I2C bit-banging layer, defines the four busses on the sysmoOCTSIM and adds some high-level functions to control the NCN8025 for each SIM slot. Change-Id: Ic5287cf80d2be2070c504e9d40f7c6fc0d37d8b9 --- M sysmoOCTSIM/gcc/Makefile A sysmoOCTSIM/i2c_bitbang.c A sysmoOCTSIM/i2c_bitbang.h M sysmoOCTSIM/main.c A sysmoOCTSIM/ncn8025.c A sysmoOCTSIM/ncn8025.h A sysmoOCTSIM/octsim_i2c.c A sysmoOCTSIM/octsim_i2c.h 8 files changed, 438 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/30/13030/1 diff --git a/sysmoOCTSIM/gcc/Makefile b/sysmoOCTSIM/gcc/Makefile index 572fb21..5e3c38c 100644 --- a/sysmoOCTSIM/gcc/Makefile +++ b/sysmoOCTSIM/gcc/Makefile @@ -70,6 +70,9 @@ gcc/gcc/startup_same54.o \ hal/src/hal_usb_device.o \ main.o \ +i2c_bitbang.o \ +octsim_i2c.o \ +ncn8025.o \ hpl/osc32kctrl/hpl_osc32kctrl.o \ examples/driver_examples.o \ driver_init.o \ @@ -108,6 +111,9 @@ "gcc/gcc/startup_same54.o" \ "hal/src/hal_usb_device.o" \ "main.o" \ +"i2c_bitbang.o" \ +"octsim_i2c.o" \ +"ncn8025.o" \ "hpl/osc32kctrl/hpl_osc32kctrl.o" \ "examples/driver_examples.o" \ "driver_init.o" \ @@ -152,6 +158,9 @@ "hal/src/hal_usart_async.d" \ "hpl/osc32kctrl/hpl_osc32kctrl.d" \ "main.d" \ +"i2c_bitbang.d" \ +"octsim_i2c.d" \ +"ncn8025.d" \ "examples/driver_examples.d" \ "hal/src/hal_cache.d" \ "hal/src/hal_sleep.d" \ diff --git a/sysmoOCTSIM/i2c_bitbang.c b/sysmoOCTSIM/i2c_bitbang.c new file mode 100644 index 0000000..b1a9a62 --- /dev/null +++ b/sysmoOCTSIM/i2c_bitbang.c @@ -0,0 +1,189 @@ +/* Bit-banging I2C layer, inspired to a large extent from Linux kernel + * i2c-algo-bit.c code (C) 1995-2000 Simon G. Vogl. This particular + * implementation is (C) 2019 by Harald Welte + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include +#include +#include +#include "i2c_bitbang.h" + +#define setsda(adap, val) gpio_set_pin_level((adap)->pin_sda, val) +#define setscl(adap, val) gpio_set_pin_level((adap)->pin_scl, val) + +static int getsda(const struct i2c_adapter *adap) +{ + int rc; + gpio_set_pin_direction(adap->pin_sda, GPIO_DIRECTION_IN); + rc = gpio_get_pin_level(adap->pin_sda); + gpio_set_pin_direction(adap->pin_sda, GPIO_DIRECTION_OUT); + return rc; +} + +static int getscl(const struct i2c_adapter *adap) +{ + int rc; + gpio_set_pin_direction(adap->pin_scl, GPIO_DIRECTION_IN); + rc = gpio_get_pin_level(adap->pin_scl); + gpio_set_pin_direction(adap->pin_scl, GPIO_DIRECTION_OUT); + return rc; +} + +static inline void sdalo(const struct i2c_adapter *adap) +{ + setsda(adap, 0); + delay_us((adap->udelay+1) / 2); +} + +static inline void sdahi(const struct i2c_adapter *adap) +{ + setsda(adap, 1); + delay_us((adap->udelay+1) / 2); +} + +static inline void scllo(const struct i2c_adapter *adap) +{ + setscl(adap, 0); + delay_us(adap->udelay / 2); +} + + +static int sclhi(const struct i2c_adapter *adap) +{ + setscl(adap, 1); + + /* wait for slow slaves' clock stretching to complete */ + while (!getscl(adap)) { + /* FIXME: abort at some point */ + } + return 0; +} + +static void i2c_start(const struct i2c_adapter *adap) +{ + /* Assert: SCL + SDA are high */ + setsda(adap, 0); /* set SDA to low */ + delay_us(adap->udelay); /* delay */ + scllo(adap); /* Set SCL to low */ +} + +static void i2c_repstart(const struct i2c_adapter *adap) +{ + /* Assert: SCL is low */ + sdahi(adap); + sclhi(adap); + setsda(adap, 0); + delay_us(adap->udelay); + scllo(adap); +} + +static void i2c_stop(const struct i2c_adapter *adap) +{ + /* Assert: SCL is low */ + sdalo(adap); /* set SDA low */ + sclhi(adap); /* set SCL to high */ + setsda(adap, 1); /* set SDA to high */ + delay_us(adap->udelay); /* delay */ +} + +static int i2c_outb(const struct i2c_adapter *adap, uint8_t outdata) +{ + uint8_t sb; + int ack, i; + + /* Assert: SCL is low */ + for (i = 7; i >= 0; i--) { + sb = (outdata >> i) & 1; + setsda(adap, sb); + delay_us((adap->udelay + 1) / 2); + if (sclhi(adap) < 0) + return -ERR_TIMEOUT; + scllo(adap); + } + sdahi(adap); + if (sclhi(adap) < 0) + return -ERR_TIMEOUT; + ack = !getsda(adap); + scllo(adap); + return ack; +} + +static int i2c_inb(const struct i2c_adapter *adap) +{ + uint8_t indata = 0; + int i; + + /* Assert: CSL is low */ + sdahi(adap); + for (i = 0; i < 8; i++) { + /* SCL high */ + if (sclhi(adap) < 0) + return -ERR_TIMEOUT; + indata = indata << 1; + if (getsda(adap)) + indata |= 0x01; + setscl(adap, 0); + if (i == 7) + delay_us(adap->udelay / 2); + else + delay_us(adap->udelay); + } + /* Assert: SCL is low */ + return indata; +} + +/*! Single-byte register write. Assumes 8bit register address + 8bit values */ +int i2c_write_reg(const struct i2c_adapter *adap, uint8_t addr, uint8_t reg, uint8_t val) +{ + int rc; + + i2c_start(adap); + rc = i2c_outb(adap, addr << 1); + if (rc < 0) + goto out_stop; + rc = i2c_outb(adap, reg); + if (rc < 0) + goto out_stop; + rc = i2c_outb(adap, val); +out_stop: + i2c_stop(adap); + return rc; +} + +/*! Single-byte register read. Assumes 8bit register address + 8bit values */ +int i2c_read_reg(const struct i2c_adapter *adap, uint8_t addr, uint8_t reg) +{ + int rc; + + i2c_start(adap); + rc = i2c_outb(adap, addr << 1); + if (rc < 0) + goto out_stop; + rc = i2c_outb(adap, reg); + if (rc < 0) + goto out_stop; + i2c_repstart(adap); + rc = i2c_outb(adap, addr << 1 | 1); + if (rc < 0) + goto out_stop; + rc = i2c_inb(adap); +out_stop: + i2c_stop(adap); + return rc; +} + +/*! Initialize a given I2C adapter/bus */ +int i2c_init(const struct i2c_adapter *adap) +{ + gpio_set_pin_direction(adap->pin_sda, GPIO_DIRECTION_OUT); + gpio_set_pin_direction(adap->pin_scl, GPIO_DIRECTION_OUT); + + /* Bring bus to a known state. Looks like STOP if bus is not free yet */ + setscl(adap, 1); + delay_us(adap->udelay); + setsda(adap, 1); + + return 0; +} diff --git a/sysmoOCTSIM/i2c_bitbang.h b/sysmoOCTSIM/i2c_bitbang.h new file mode 100644 index 0000000..7157c2e --- /dev/null +++ b/sysmoOCTSIM/i2c_bitbang.h @@ -0,0 +1,13 @@ +#pragma once +#include + +struct i2c_adapter { + uint8_t pin_scl; + uint8_t pin_sda; + uint32_t udelay; +}; + +int i2c_init(const struct i2c_adapter *adap); +int i2c_write_reg(const struct i2c_adapter *adap, uint8_t addr, uint8_t reg, uint8_t val); +int i2c_read_reg(const struct i2c_adapter *adap, uint8_t addr, uint8_t reg); +int i2c_init(const struct i2c_adapter *adap); diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c index d74153d..40f2147 100644 --- a/sysmoOCTSIM/main.c +++ b/sysmoOCTSIM/main.c @@ -19,6 +19,10 @@ #include "atmel_start.h" #include "atmel_start_pins.h" +#include "i2c_bitbang.h" +#include "octsim_i2c.h" +#include "ncn8025.h" + volatile static bool data_arrived = false; static void tx_cb_UART_debug(const struct usart_async_descriptor *const io_descr) @@ -34,6 +38,18 @@ data_arrived = true; } +static void board_init() +{ + int i; + + for (i = 0; i < 4; i++) + i2c_init(&i2c[i]); + + /* only 7 slots, as last slot is debug uart! */ + for (i = 0; i < 7; i++) + ncn8025_init(i); +} + int main(void) { atmel_start_init(); @@ -44,6 +60,8 @@ usb_start(); + board_init(); + const char* welcome = "\r\n\r\nsysmocom sysmoOCTSIM\r\n"; while (io_write(&UART_debug.io, (const uint8_t*)welcome, strlen(welcome)) != strlen(welcome)); // print welcome message while (true) { // main loop diff --git a/sysmoOCTSIM/ncn8025.c b/sysmoOCTSIM/ncn8025.c new file mode 100644 index 0000000..0dd4dd2 --- /dev/null +++ b/sysmoOCTSIM/ncn8025.c @@ -0,0 +1,136 @@ +/* Access functions for the per-SIM-slot NCN8025 chip card interface, + * which is controlled via (half) a SX1503 I2C GPIO expander. + * + * (C) 2019 by Harald Welte + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include +#include +#include +#include +#include "octsim_i2c.h" +#include "ncn8025.h" + +#define SX1503_ADDR 0x20 + +/*! translate from ncn8025_settings into SX1503 register value */ +static uint8_t ncn8025_encode(const struct ncn8025_settings *set) +{ + uint8_t reg = 0; + if (set->rstin) + reg |= 0x01; + if (!set->cmdvcc) + reg |= 0x02; + if (set->clkdiv & 1) + reg |= 0x04; + if (set->clkdiv & 2) + reg |= 0x08; + if (set->vsel & 1) + reg |= 0x10; + if (set->vsel & 2) + reg |= 0x20; + if (set->led) + reg |= 0x80; + return reg; +} + +/*! translate from register value to ncn8025_settings */ +static int ncn8025_decode(uint8_t reg, struct ncn8025_settings *set) +{ + memset(set, 0, sizeof(*set)); + + if (reg & 0x01) + set->rstin = true; + if (!(reg & 0x02)) + set->cmdvcc = true; + if (reg & 0x04) + set->clkdiv |= 0x01; + if (reg & 0x08) + set->clkdiv |= 0x02; + if (reg & 0x10) + set->vsel |= 0x01; + if (reg & 0x20) + set->vsel |= 0x02; + if (!(reg & 0x40)) + set->simpres = true; + if (!(reg & 0x80)) + set->led = true; + + return 0; +} + +static const struct i2c_adapter *slot2adapter(unsigned int slot) +{ + unsigned int idx = slot / 2; + ASSERT(idx < ARRAY_SIZE(i2c)); + return &i2c[idx]; +} + + +static const uint8_t slot2data_reg(unsigned int slot) +{ + if (slot & 1) + return 0x00; + else + return 0x01; +} + +static const uint8_t slot2dir_reg(unsigned int slot) +{ + if (slot & 1) + return 0x02; + else + return 0x03; +} + + +/*! Set a given NCN8025 as described in 'set'. + * \param[in] slot Slot number (0..7) + * \param[in] set Settings that shall be written + * \returns 0 on success; negative on error */ +int ncn8025_set(uint8_t slot, const struct ncn8025_settings *set) +{ + const struct i2c_adapter *adap = slot2adapter(slot); + uint8_t reg = slot2data_reg(slot); + uint8_t raw = ncn8025_encode(set); + return i2c_write_reg(adap, SX1503_ADDR, reg, raw); +} + +/*! Get a given NCN8025 state from the chip. + * \param[in] slot Slot number (0..7) + * \param[out] set Settings that are retrieved + * \returns 0 on success; negative on error */ +int ncn8025_get(uint8_t slot, struct ncn8025_settings *set) +{ + const struct i2c_adapter *adap = slot2adapter(slot); + uint8_t reg = slot2data_reg(slot); + int rc; + rc = i2c_read_reg(adap, SX1503_ADDR, reg); + if (rc < 0) + return rc; + return ncn8025_decode(rc, set); +} + +/*! default settings we use at start-up: powered off, in reset, slowest clock, 3V */ +static const struct ncn8025_settings def_settings = { + .rstin = true, + .cmdvcc = false, + .led = false, + .clkdiv = SIM_CLKDIV_8, + .vsel = SIM_VOLT_3V0, +}; + +/*! Initialize a given NCN8025/slot. */ +int ncn8025_init(unsigned int slot) +{ + const struct i2c_adapter *adap = slot2adapter(slot); + uint8_t reg = slot2dir_reg(slot); + int rc; + /* IO6 of each bank is input (!PRESENT), rest are outputs */ + rc = i2c_write_reg(adap, SX1503_ADDR, reg, 0x40); + if (rc < 0) + return rc; + return ncn8025_set(slot, &def_settings); +} diff --git a/sysmoOCTSIM/ncn8025.h b/sysmoOCTSIM/ncn8025.h new file mode 100644 index 0000000..a392c5d --- /dev/null +++ b/sysmoOCTSIM/ncn8025.h @@ -0,0 +1,28 @@ +#pragma once +#include + +enum ncn8025_sim_voltage { + SIM_VOLT_3V0 = 0, + SIM_VOLT_5V0 = 2, + SIM_VOLT_1V8 = 3 +}; + +enum ncn8025_sim_clkdiv { + SIM_CLKDIV_1 = 1, + SIM_CLKDIV_2 = 3, + SIM_CLKDIV_4 = 2, + SIM_CLKDIV_8 = 0, +}; + +struct ncn8025_settings { + bool rstin; /* high: active */ + bool cmdvcc; /* high: active */ + bool simpres; /* high: active */ + bool led; /* high: active */ + enum ncn8025_sim_clkdiv clkdiv; /* raw 2bit value */ + enum ncn8025_sim_voltage vsel; /* raw 2bit value */ +}; + +int ncn8025_set(uint8_t slot, const struct ncn8025_settings *set); +int ncn8025_get(uint8_t slot, struct ncn8025_settings *set); +int ncn8025_init(unsigned int slot); diff --git a/sysmoOCTSIM/octsim_i2c.c b/sysmoOCTSIM/octsim_i2c.c new file mode 100644 index 0000000..c552794 --- /dev/null +++ b/sysmoOCTSIM/octsim_i2c.c @@ -0,0 +1,41 @@ +#include "atmel_start_pins.h" +#include "i2c_bitbang.h" + +#define I2C_DELAY_US 5 /* 100 kHz */ + +#ifndef SDA1 +/* We should define those pins in Atmel START. Until they are, define them here */ +#define SDA1 GPIO(GPIO_PORTB, 15) +#define SCL1 GPIO(GPIO_PORTB, 14) +#define SDA2 GPIO(GPIO_PORTB, 3) +#define SCL2 GPIO(GPIO_PORTB, 2) +#define SDA3 GPIO(GPIO_PORTB, 7) +#define SCL3 GPIO(GPIO_PORTB, 6) +#define SDA4 GPIO(GPIO_PORTC, 28) +#define SCL4 GPIO(GPIO_PORTC, 27) +#endif + +/* Unfortunately the schematics count I2C busses from '1', not from '0' :( + * In software, we [obviously] count from '0' upwards. */ +const struct i2c_adapter i2c[4] = { + [0] = { + .pin_sda = SDA1, + .pin_scl = SCL1, + .udelay = I2C_DELAY_US, + }, + [1] = { + .pin_sda = SDA2, + .pin_scl = SCL2, + .udelay = I2C_DELAY_US, + }, + [2] = { + .pin_sda = SDA3, + .pin_scl = SCL3, + .udelay = I2C_DELAY_US, + }, + [3] = { + .pin_sda = SDA4, + .pin_scl = SCL4, + .udelay = I2C_DELAY_US, + } +}; diff --git a/sysmoOCTSIM/octsim_i2c.h b/sysmoOCTSIM/octsim_i2c.h new file mode 100644 index 0000000..5e20ea0 --- /dev/null +++ b/sysmoOCTSIM/octsim_i2c.h @@ -0,0 +1,4 @@ +#pragma once +#include "i2c_bitbang.h" + +extern const struct i2c_adapter i2c[4]; -- To view, visit https://gerrit.osmocom.org/13030 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic5287cf80d2be2070c504e9d40f7c6fc0d37d8b9 Gerrit-Change-Number: 13030 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 24 09:00:09 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Feb 2019 09:00:09 +0000 Subject: Change in osmo-ccid-firmware[master]: Support for sysmoOCTSIM NCN8025/SX1503 control In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/13030 to look at the new patch set (#2). Change subject: Support for sysmoOCTSIM NCN8025/SX1503 control ...................................................................... Support for sysmoOCTSIM NCN8025/SX1503 control This adds an I2C bit-banging layer, defines the four busses on the sysmoOCTSIM and adds some high-level functions to control the NCN8025 for each SIM slot. Change-Id: Ic5287cf80d2be2070c504e9d40f7c6fc0d37d8b9 --- M sysmoOCTSIM/gcc/Makefile A sysmoOCTSIM/i2c_bitbang.c A sysmoOCTSIM/i2c_bitbang.h M sysmoOCTSIM/main.c A sysmoOCTSIM/ncn8025.c A sysmoOCTSIM/ncn8025.h A sysmoOCTSIM/octsim_i2c.c A sysmoOCTSIM/octsim_i2c.h 8 files changed, 440 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/30/13030/2 -- To view, visit https://gerrit.osmocom.org/13030 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ic5287cf80d2be2070c504e9d40f7c6fc0d37d8b9 Gerrit-Change-Number: 13030 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 24 13:33:20 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Feb 2019 13:33:20 +0000 Subject: Change in osmo-ccid-firmware[master]: update from Atmel Start (just loading + re-exporting the project) Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13031 Change subject: update from Atmel Start (just loading + re-exporting the project) ...................................................................... update from Atmel Start (just loading + re-exporting the project) Change-Id: I59b2442a95871b8052bfdfdac6d77a7207d8b70a --- M sysmoOCTSIM/AtmelStart.gpdsc M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/hal/include/hpl_spi_m_async.h M sysmoOCTSIM/hal/include/hpl_spi_m_dma.h M sysmoOCTSIM/hal/include/hpl_spi_m_sync.h M sysmoOCTSIM/hal/include/hpl_spi_s_async.h M sysmoOCTSIM/hal/include/hpl_spi_s_sync.h 7 files changed, 73 insertions(+), 12 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/31/13031/1 diff --git a/sysmoOCTSIM/AtmelStart.gpdsc b/sysmoOCTSIM/AtmelStart.gpdsc index 51851db..6546fb5 100644 --- a/sysmoOCTSIM/AtmelStart.gpdsc +++ b/sysmoOCTSIM/AtmelStart.gpdsc @@ -67,11 +67,6 @@ - - - - - @@ -169,6 +164,11 @@ + + + + + diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index 975423d..58f05f6 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -2,12 +2,12 @@ name: sysmoOCTSIM versions: api: '1.0' - backend: 1.4.93 - commit: 9c29f8365cf76e9937d19b1e765a83bc7a80e4e9 - content: 1.0.1340 + backend: 1.5.122 + commit: 820baecf7dd115d94b0d42ee3b0b9d6ba2da7113 + content: 1.0.1405 content_pack_name: acme-packs-all format: '2' - frontend: 1.4.1810 + frontend: 1.5.1826 board: identifier: CustomBoard device: SAME54N19A-AF @@ -773,6 +773,8 @@ nodes: - name: CPU input: CPU + external: false + external_frequency: 0 configuration: {} OSC32KCTRL: user_label: OSC32KCTRL @@ -981,8 +983,12 @@ nodes: - name: Core input: Generic clock generator 2 + external: false + external_frequency: 0 - name: Slow input: Generic clock generator 3 + external: false + external_frequency: 0 configuration: core_gclk_selection: Generic clock generator 2 slow_gclk_selection: Generic clock generator 3 @@ -1024,8 +1030,12 @@ nodes: - name: Core input: Generic clock generator 2 + external: false + external_frequency: 0 - name: Slow input: Generic clock generator 3 + external: false + external_frequency: 0 configuration: core_gclk_selection: Generic clock generator 2 slow_gclk_selection: Generic clock generator 3 @@ -1067,8 +1077,12 @@ nodes: - name: Core input: Generic clock generator 2 + external: false + external_frequency: 0 - name: Slow input: Generic clock generator 3 + external: false + external_frequency: 0 configuration: core_gclk_selection: Generic clock generator 2 slow_gclk_selection: Generic clock generator 3 @@ -1110,8 +1124,12 @@ nodes: - name: Core input: Generic clock generator 2 + external: false + external_frequency: 0 - name: Slow input: Generic clock generator 3 + external: false + external_frequency: 0 configuration: core_gclk_selection: Generic clock generator 2 slow_gclk_selection: Generic clock generator 3 @@ -1153,8 +1171,12 @@ nodes: - name: Core input: Generic clock generator 2 + external: false + external_frequency: 0 - name: Slow input: Generic clock generator 3 + external: false + external_frequency: 0 configuration: core_gclk_selection: Generic clock generator 2 slow_gclk_selection: Generic clock generator 3 @@ -1196,8 +1218,12 @@ nodes: - name: Core input: Generic clock generator 2 + external: false + external_frequency: 0 - name: Slow input: Generic clock generator 3 + external: false + external_frequency: 0 configuration: core_gclk_selection: Generic clock generator 2 slow_gclk_selection: Generic clock generator 3 @@ -1239,8 +1265,12 @@ nodes: - name: Core input: Generic clock generator 2 + external: false + external_frequency: 0 - name: Slow input: Generic clock generator 3 + external: false + external_frequency: 0 configuration: core_gclk_selection: Generic clock generator 2 slow_gclk_selection: Generic clock generator 3 @@ -1284,8 +1314,12 @@ nodes: - name: Core input: Generic clock generator 2 + external: false + external_frequency: 0 - name: Slow input: Generic clock generator 3 + external: false + external_frequency: 0 configuration: core_gclk_selection: Generic clock generator 2 slow_gclk_selection: Generic clock generator 3 @@ -1328,6 +1362,8 @@ nodes: - name: USB input: Generic clock generator 1 + external: false + external_frequency: 0 configuration: usb_gclk_selection: Generic clock generator 1 pads: diff --git a/sysmoOCTSIM/hal/include/hpl_spi_m_async.h b/sysmoOCTSIM/hal/include/hpl_spi_m_async.h index 69dd435..8d3555e 100644 --- a/sysmoOCTSIM/hal/include/hpl_spi_m_async.h +++ b/sysmoOCTSIM/hal/include/hpl_spi_m_async.h @@ -60,6 +60,10 @@ #define _spi_m_async_dev_cb_xfer_t _spi_async_dev_cb_xfer_t /** + * \name HPL functions + */ +//@{ +/** * \brief Initialize SPI for access with interrupts * It will load default hardware configuration and software struct. * \param[in, out] dev Pointer to the SPI device instance. @@ -229,6 +233,7 @@ */ void _spi_m_async_set_irq_state(struct _spi_m_async_dev *const device, const enum _spi_m_async_dev_cb_type type, const bool state); +//@} #ifdef __cplusplus } diff --git a/sysmoOCTSIM/hal/include/hpl_spi_m_dma.h b/sysmoOCTSIM/hal/include/hpl_spi_m_dma.h index f481fb8..2b48300 100644 --- a/sysmoOCTSIM/hal/include/hpl_spi_m_dma.h +++ b/sysmoOCTSIM/hal/include/hpl_spi_m_dma.h @@ -54,6 +54,10 @@ #define _spi_m_dma_dev_cb_type _spi_dma_dev_cb_type /** + * \name HPL functions + */ +//@{ +/** * \brief Initialize SPI for access with interrupts * It will load default hardware configuration and software struct. * \param[in, out] dev Pointer to the SPI device instance. @@ -168,6 +172,7 @@ */ int32_t _spi_m_dma_transfer(struct _spi_m_dma_dev *dev, uint8_t const *txbuf, uint8_t *const rxbuf, const uint16_t length); +//@} #ifdef __cplusplus } diff --git a/sysmoOCTSIM/hal/include/hpl_spi_m_sync.h b/sysmoOCTSIM/hal/include/hpl_spi_m_sync.h index 01e8fc3..38df15b 100644 --- a/sysmoOCTSIM/hal/include/hpl_spi_m_sync.h +++ b/sysmoOCTSIM/hal/include/hpl_spi_m_sync.h @@ -47,10 +47,14 @@ extern "C" { #endif -/** Uses common SPI async device driver. */ +/** Uses common SPI sync device driver. */ #define _spi_m_sync_dev _spi_sync_dev /** + * \name HPL functions + */ +//@{ +/** * \brief Initialize SPI for access without interrupts * It will load default hardware configuration and software struct. * \param[in, out] dev Pointer to the SPI device instance. @@ -118,7 +122,7 @@ int32_t _spi_m_sync_set_baudrate(struct _spi_m_sync_dev *dev, const uint32_t baud_val); /** - * \brief Set SPI baudrate + * \brief Set SPI char size * \param[in, out] dev Pointer to the SPI device instance. * \param[in] char_size The character size, see \ref spi_char_size. * \return Operation status. @@ -152,6 +156,7 @@ * \retval >=0 Number of characters transferred. */ int32_t _spi_m_sync_trans(struct _spi_m_sync_dev *dev, const struct spi_msg *msg); +//@} #ifdef __cplusplus } diff --git a/sysmoOCTSIM/hal/include/hpl_spi_s_async.h b/sysmoOCTSIM/hal/include/hpl_spi_s_async.h index 2892e2c..5647243 100644 --- a/sysmoOCTSIM/hal/include/hpl_spi_s_async.h +++ b/sysmoOCTSIM/hal/include/hpl_spi_s_async.h @@ -59,6 +59,10 @@ #define _spi_s_async_dev_cb_xfer_t _spi_async_dev_cb_xfer_t /** + * \name HPL functions + */ +//@{ +/** * \brief Initialize SPI for access with interrupts * It will load default hardware configuration and software struct. * \param[in, out] dev Pointer to the SPI device instance. @@ -218,6 +222,7 @@ */ void _spi_s_async_set_irq_state(struct _spi_s_async_dev *const device, const enum _spi_async_dev_cb_type type, const bool state); +//@} #ifdef __cplusplus } diff --git a/sysmoOCTSIM/hal/include/hpl_spi_s_sync.h b/sysmoOCTSIM/hal/include/hpl_spi_s_sync.h index 4fda095..ff4c811 100644 --- a/sysmoOCTSIM/hal/include/hpl_spi_s_sync.h +++ b/sysmoOCTSIM/hal/include/hpl_spi_s_sync.h @@ -46,10 +46,14 @@ extern "C" { #endif -/** Uses common SPI async device driver. */ +/** Uses common SPI sync device driver. */ #define _spi_s_sync_dev _spi_sync_dev /** + * \name HPL functions + */ +//@{ +/** * \brief Initialize SPI for access without interrupts * It will load default hardware configuration and software struct. * \param[in, out] dev Pointer to the SPI device instance. @@ -218,6 +222,7 @@ * \retval false Error not detected */ bool _spi_s_sync_is_error(struct _spi_s_sync_dev *dev); +//@} #ifdef __cplusplus } -- To view, visit https://gerrit.osmocom.org/13031 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I59b2442a95871b8052bfdfdac6d77a7207d8b70a Gerrit-Change-Number: 13031 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 24 13:33:21 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Feb 2019 13:33:21 +0000 Subject: Change in osmo-ccid-firmware[master]: Update from AtmelStart: Define all used GPIO pins Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13032 Change subject: Update from AtmelStart: Define all used GPIO pins ...................................................................... Update from AtmelStart: Define all used GPIO pins Change-Id: I2cb67fd01f6e8602af16bbdb4960427586cdd9a4 --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/atmel_start_pins.h M sysmoOCTSIM/driver_init.c 3 files changed, 366 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/32/13032/1 diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index 58f05f6..a301385 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -1367,6 +1367,66 @@ configuration: usb_gclk_selection: Generic clock generator 1 pads: + SIM0_INT: + name: PC00 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC00 + mode: Digital input + user_label: SIM0_INT + configuration: null + SIM1_INT: + name: PC01 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC01 + mode: Digital input + user_label: SIM1_INT + configuration: null + SIM2_INT: + name: PC02 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC02 + mode: Digital input + user_label: SIM2_INT + configuration: null + SIM3_INT: + name: PC03 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC03 + mode: Digital input + user_label: SIM3_INT + configuration: null + SIM4_INT: + name: PA02 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA02 + mode: Digital input + user_label: SIM4_INT + configuration: null + SIM5_INT: + name: PA03 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA03 + mode: Digital input + user_label: SIM5_INT + configuration: null + SIM6_INT: + name: PB04 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB04 + mode: Digital input + user_label: SIM6_INT + configuration: null + SIM7_INT: + name: PB05 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB05 + mode: Digital input + user_label: SIM7_INT + configuration: null + SCL3: + name: PB06 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB06 + mode: Digital output + user_label: SCL3 + configuration: null + SDA3: + name: PB07 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB07 + mode: Digital output + user_label: SDA3 + configuration: null SIM4_IO: name: PB08 definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB08 @@ -1395,12 +1455,30 @@ pad_function: M pad_initial_level: Low pad_pull_config: 'Off' + SCL1: + name: PB14 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB14 + mode: Digital output + user_label: SCL1 + configuration: null + SDA1: + name: PB15 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB15 + mode: Digital output + user_label: SDA1 + configuration: null SWITCH: name: PC14 definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC14 mode: Digital input user_label: SWITCH configuration: null + MUX_SSTAT: + name: PC15 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC15 + mode: Digital input + user_label: MUX_SSTAT + configuration: null SIM1_IO: name: PA16 definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA16 @@ -1467,6 +1545,18 @@ mode: Digital output user_label: USER_LED configuration: null + SCL4: + name: PC27 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC27 + mode: Digital output + user_label: SCL4 + configuration: null + SDA4: + name: PC28 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC28 + mode: Digital output + user_label: SDA4 + configuration: null UART_TX: name: PB30 definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB30 @@ -1479,4 +1569,16 @@ mode: Peripheral IO user_label: UART_RX configuration: null + SCL2: + name: PB02 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB02 + mode: Digital output + user_label: SCL2 + configuration: null + SDA2: + name: PB03 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB03 + mode: Digital output + user_label: SDA2 + configuration: null toolchain_options: [] diff --git a/sysmoOCTSIM/atmel_start_pins.h b/sysmoOCTSIM/atmel_start_pins.h index ad5f27b..60b70bb 100644 --- a/sysmoOCTSIM/atmel_start_pins.h +++ b/sysmoOCTSIM/atmel_start_pins.h @@ -27,6 +27,8 @@ #define GPIO_PIN_FUNCTION_M 12 #define GPIO_PIN_FUNCTION_N 13 +#define SIM4_INT GPIO(GPIO_PORTA, 2) +#define SIM5_INT GPIO(GPIO_PORTA, 3) #define SIM0_IO GPIO(GPIO_PORTA, 4) #define SIM2_IO GPIO(GPIO_PORTA, 9) #define SIMCLK_20MHZ GPIO(GPIO_PORTA, 11) @@ -37,13 +39,28 @@ #define VB3 GPIO(GPIO_PORTA, 23) #define USBUP_D_N GPIO(GPIO_PORTA, 24) #define USBUP_D_P GPIO(GPIO_PORTA, 25) +#define SCL2 GPIO(GPIO_PORTB, 2) +#define SDA2 GPIO(GPIO_PORTB, 3) +#define SIM6_INT GPIO(GPIO_PORTB, 4) +#define SIM7_INT GPIO(GPIO_PORTB, 5) +#define SCL3 GPIO(GPIO_PORTB, 6) +#define SDA3 GPIO(GPIO_PORTB, 7) #define SIM4_IO GPIO(GPIO_PORTB, 8) +#define SCL1 GPIO(GPIO_PORTB, 14) +#define SDA1 GPIO(GPIO_PORTB, 15) #define SIM5_IO GPIO(GPIO_PORTB, 16) #define SIM3_IO GPIO(GPIO_PORTB, 20) #define UART_TX GPIO(GPIO_PORTB, 30) #define UART_RX GPIO(GPIO_PORTB, 31) +#define SIM0_INT GPIO(GPIO_PORTC, 0) +#define SIM1_INT GPIO(GPIO_PORTC, 1) +#define SIM2_INT GPIO(GPIO_PORTC, 2) +#define SIM3_INT GPIO(GPIO_PORTC, 3) #define SWITCH GPIO(GPIO_PORTC, 14) +#define MUX_SSTAT GPIO(GPIO_PORTC, 15) #define SIM6_IO GPIO(GPIO_PORTC, 16) #define USER_LED GPIO(GPIO_PORTC, 26) +#define SCL4 GPIO(GPIO_PORTC, 27) +#define SDA4 GPIO(GPIO_PORTC, 28) #endif // ATMEL_START_PINS_H_INCLUDED diff --git a/sysmoOCTSIM/driver_init.c b/sysmoOCTSIM/driver_init.c index a196791..1a58ad9 100644 --- a/sysmoOCTSIM/driver_init.c +++ b/sysmoOCTSIM/driver_init.c @@ -470,6 +470,36 @@ { init_mcu(); + // GPIO on PA02 + + // Set pin direction to input + gpio_set_pin_direction(SIM4_INT, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(SIM4_INT, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(SIM4_INT, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PA03 + + // Set pin direction to input + gpio_set_pin_direction(SIM5_INT, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(SIM5_INT, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(SIM5_INT, GPIO_PIN_FUNCTION_OFF); + // GPIO on PA11 gpio_set_pin_direction(SIMCLK_20MHZ, @@ -577,6 +607,180 @@ gpio_set_pin_function(VB3, GPIO_PIN_FUNCTION_OFF); + // GPIO on PB02 + + gpio_set_pin_level(SCL2, + // Initial level + // pad_initial_level + // Low + // High + false); + + // Set pin direction to output + gpio_set_pin_direction(SCL2, GPIO_DIRECTION_OUT); + + gpio_set_pin_function(SCL2, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PB03 + + gpio_set_pin_level(SDA2, + // Initial level + // pad_initial_level + // Low + // High + false); + + // Set pin direction to output + gpio_set_pin_direction(SDA2, GPIO_DIRECTION_OUT); + + gpio_set_pin_function(SDA2, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PB04 + + // Set pin direction to input + gpio_set_pin_direction(SIM6_INT, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(SIM6_INT, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(SIM6_INT, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PB05 + + // Set pin direction to input + gpio_set_pin_direction(SIM7_INT, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(SIM7_INT, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(SIM7_INT, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PB06 + + gpio_set_pin_level(SCL3, + // Initial level + // pad_initial_level + // Low + // High + false); + + // Set pin direction to output + gpio_set_pin_direction(SCL3, GPIO_DIRECTION_OUT); + + gpio_set_pin_function(SCL3, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PB07 + + gpio_set_pin_level(SDA3, + // Initial level + // pad_initial_level + // Low + // High + false); + + // Set pin direction to output + gpio_set_pin_direction(SDA3, GPIO_DIRECTION_OUT); + + gpio_set_pin_function(SDA3, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PB14 + + gpio_set_pin_level(SCL1, + // Initial level + // pad_initial_level + // Low + // High + false); + + // Set pin direction to output + gpio_set_pin_direction(SCL1, GPIO_DIRECTION_OUT); + + gpio_set_pin_function(SCL1, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PB15 + + gpio_set_pin_level(SDA1, + // Initial level + // pad_initial_level + // Low + // High + false); + + // Set pin direction to output + gpio_set_pin_direction(SDA1, GPIO_DIRECTION_OUT); + + gpio_set_pin_function(SDA1, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PC00 + + // Set pin direction to input + gpio_set_pin_direction(SIM0_INT, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(SIM0_INT, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(SIM0_INT, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PC01 + + // Set pin direction to input + gpio_set_pin_direction(SIM1_INT, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(SIM1_INT, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(SIM1_INT, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PC02 + + // Set pin direction to input + gpio_set_pin_direction(SIM2_INT, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(SIM2_INT, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(SIM2_INT, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PC03 + + // Set pin direction to input + gpio_set_pin_direction(SIM3_INT, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(SIM3_INT, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(SIM3_INT, GPIO_PIN_FUNCTION_OFF); + // GPIO on PC14 // Set pin direction to input @@ -592,6 +796,21 @@ gpio_set_pin_function(SWITCH, GPIO_PIN_FUNCTION_OFF); + // GPIO on PC15 + + // Set pin direction to input + gpio_set_pin_direction(MUX_SSTAT, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(MUX_SSTAT, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(MUX_SSTAT, GPIO_PIN_FUNCTION_OFF); + // GPIO on PC26 gpio_set_pin_level(USER_LED, @@ -606,6 +825,34 @@ gpio_set_pin_function(USER_LED, GPIO_PIN_FUNCTION_OFF); + // GPIO on PC27 + + gpio_set_pin_level(SCL4, + // Initial level + // pad_initial_level + // Low + // High + false); + + // Set pin direction to output + gpio_set_pin_direction(SCL4, GPIO_DIRECTION_OUT); + + gpio_set_pin_function(SCL4, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PC28 + + gpio_set_pin_level(SDA4, + // Initial level + // pad_initial_level + // Low + // High + false); + + // Set pin direction to output + gpio_set_pin_direction(SDA4, GPIO_DIRECTION_OUT); + + gpio_set_pin_function(SDA4, GPIO_PIN_FUNCTION_OFF); + SIM0_init(); SIM1_init(); SIM2_init(); -- To view, visit https://gerrit.osmocom.org/13032 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I2cb67fd01f6e8602af16bbdb4960427586cdd9a4 Gerrit-Change-Number: 13032 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 24 13:33:21 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Feb 2019 13:33:21 +0000 Subject: Change in osmo-ccid-firmware[master]: Enable cache via CMCC for higher performance Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13033 Change subject: Enable cache via CMCC for higher performance ...................................................................... Enable cache via CMCC for higher performance Change-Id: I7a243a8d964fea3d3decc6c73c16e07036e4ee93 --- M sysmoOCTSIM/main.c 1 file changed, 6 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/33/13033/1 diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c index 40f2147..09d766e 100644 --- a/sysmoOCTSIM/main.c +++ b/sysmoOCTSIM/main.c @@ -16,6 +16,9 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ +#include +#include + #include "atmel_start.h" #include "atmel_start_pins.h" @@ -48,6 +51,9 @@ /* only 7 slots, as last slot is debug uart! */ for (i = 0; i < 7; i++) ncn8025_init(i); + + cache_init(); + cache_enable(CMCC); } int main(void) -- To view, visit https://gerrit.osmocom.org/13033 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I7a243a8d964fea3d3decc6c73c16e07036e4ee93 Gerrit-Change-Number: 13033 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 24 13:33:22 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Feb 2019 13:33:22 +0000 Subject: Change in osmo-ccid-firmware[master]: PA11: Increase drive strength to 8mA Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13034 Change subject: PA11: Increase drive strength to 8mA ...................................................................... PA11: Increase drive strength to 8mA It has been observed that the 20 MHz clock signal doesn't even remotely resemble a square shape unless DRVSTR=1 is set using this patch. Change-Id: I1366e13442eda829756aa4121be81eb15135c73e --- M sysmoOCTSIM/main.c 1 file changed, 5 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/34/13034/1 diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c index 09d766e..50e82c6 100644 --- a/sysmoOCTSIM/main.c +++ b/sysmoOCTSIM/main.c @@ -18,6 +18,7 @@ #include #include +#include #include "atmel_start.h" #include "atmel_start_pins.h" @@ -54,6 +55,10 @@ cache_init(); cache_enable(CMCC); + + /* increase drive strength of 20Mhz SIM clock output to 8mA + * (there are 8 inputs + traces to drive!) */ + hri_port_set_PINCFG_DRVSTR_bit(PORT, 0, 11); } int main(void) -- To view, visit https://gerrit.osmocom.org/13034 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I1366e13442eda829756aa4121be81eb15135c73e Gerrit-Change-Number: 13034 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Sun Feb 24 14:18:35 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sun, 24 Feb 2019 14:18:35 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-trx_=C2=BB_--with-ss?= =?UTF-8?Q?e,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#903?= Message-ID: <1708930441.438.1551017915143.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 107.97 KB...] Searching INPUT for files to process... Reading and parsing tag files Parsing files Building group list... Building directory list... Building namespace list... Building file list... Building class list... Associating documentation with classes... Computing nesting relations for classes... Building example list... Searching for enumerations... Searching for documented typedefs... Searching for members imported via using declarations... Searching for included using directives... Searching for documented variables... Building interface member list... Building member list... Searching for friends... Searching for documented defines... Computing class inheritance relations... Computing class usage relations... Flushing cached template relations that have become invalid... Computing class relations... Add enum values to enums... Searching for member function documentation... Creating members for template instances... Building page list... Search for main page... Computing page relations... Determining the scope of groups... Sorting lists... Freeing entry tree Determining which enums are documented Computing member relations... Building full member lists recursively... Adding members to member groups. Computing member references... Inheriting documentation... Generating disk names... Adding source references... Adding xrefitems... Sorting member lists... Computing dependencies between directories... Generating citations page... Counting data structures... Resolving user defined references... Finding anchors and sections in the documentation... Transferring function references... Combining using relations... Adding members to index pages... Generating style sheet... Generating search indices... Generating example documentation... Generating file sources... Generating file documentation... Generating page documentation... Generating group documentation... Generating class documentation... Generating namespace index... Generating graph info page... Generating directory documentation... Generating index page... Generating page index... Generating module index... Generating namespace index... Generating namespace member index... Generating annotated compound index... Generating alphabetical compound index... Generating hierarchical class index... Generating graphical class hierarchy... Generating member index... Generating file index... Generating file member index... Generating example index... finalizing index lists... writing tag file... Running dot... Running dot for graph 1/1 lookup cache used 0/65536 hits=0 misses=0 finished... make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_guide.html cp -r html /usr/bin/install -c -m 644 ../README ' make[5]: Leaving directory ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in firmware make[2]: Entering directory ' Making install in include make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_i2c_addr.h usrp_spi_defs.h fpga_regs_common.h fpga_regs_standard.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' Making install in lib make[3]: Entering directory ' sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c delay.c -o delay.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c fx2utils.c -o fx2utils.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c i2c.c -o i2c.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c isr.c -o isr.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c timer.c -o timer.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c usb_common.c -o usb_common.rel usb_common.c:65: warning 196: pointer target lost const qualifier usb_common.c:66: warning 196: pointer target lost const qualifier usb_common.c:67: warning 196: pointer target lost const qualifier usb_common.c:68: warning 196: pointer target lost const qualifier usb_common.c:71: warning 196: pointer target lost const qualifier usb_common.c:72: warning 196: pointer target lost const qualifier usb_common.c:73: warning 196: pointer target lost const qualifier usb_common.c:74: warning 196: pointer target lost const qualifier timer.c:45: warning 158: overflow in implicit constant conversion isr.c:73: warning 94: comparison is always false due to limited range of data type -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'int fixed' to type 'volatile-unsigned-char xdata* xdata' isr.c:100: warning 94: comparison is always false due to limited range of data type usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:217: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:226: warning 126: unreachable code usb_common.c:184: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG usb_common.c:315: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG rm -f libfx2.lib touch libfx2.lib for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done make[3]: Leaving directory ' Making install in src make[3]: Entering directory ' Making install in common make[4]: Entering directory ' make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory ' make[4]: Leaving directory ' Making install in usrp2 make[4]: Entering directory ' test -f `basename 'eeprom_boot.a51'` || ln -s 'eeprom_boot.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_init.rel `test -f 'eeprom_init.c' || echo './'`eeprom_init.c test -f `basename '_startup.a51'` || ln -s '_startup.a51' . test -f `basename 'vectors.a51'` || ln -s 'vectors.a51' . srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_common.rel `test -f 'usrp_common.c' || echo './'`usrp_common.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o board_specific.rel `test -f 'board_specific.c' || echo './'`board_specific.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_load.rel `test -f 'fpga_load.c' || echo './'`fpga_load.c test -f ../common/`basename 'eeprom_boot.a51'` -o \ \! -f `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` \ || ln -s `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` ../common/`basename 'eeprom_boot.a51'` test -f ../common/`basename 'vectors.a51'` -o \ \! -f `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` \ || ln -s `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` ../common/`basename 'vectors.a51'` test -f ../common/`basename '_startup.a51'` -o \ \! -f `dirname '_startup.a51'`/../common/`basename '_startup.a51'` \ || ln -s `dirname '_startup.a51'`/../common/`basename '_startup.a51'` ../common/`basename '_startup.a51'` sdas8051 -plosgff `basename 'eeprom_boot.a51'` sdas8051 -plosgff `basename '_startup.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_rev2.rel `test -f 'fpga_rev2.c' || echo './'`fpga_rev2.c sdas8051 -plosgff `basename 'vectors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o init_gpif.rel `test -f 'init_gpif.c' || echo './'`init_gpif.c srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h ../common/fpga_load.c:139: warning 85: in function clock_out_config_byte unreferenced function argument : 'bits' board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'bits' board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'mask' ../common/fpga_load.c:181: warning 126: unreachable code test -f `basename 'usb_descriptors.a51'` || ln -s 'usb_descriptors.a51' . test -f ../common/`basename 'usb_descriptors.a51'` -o \ \! -f `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` \ || ln -s `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` ../common/`basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o spi.rel `test -f 'spi.c' || echo './'`spi.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_io.rel `test -f 'eeprom_io.c' || echo './'`eeprom_io.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_main.rel `test -f 'usrp_main.c' || echo './'`usrp_main.c sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o eeprom_boot.ihx eeprom_boot.rel eeprom_init.rel _startup.rel sdas8051 -plosgff `basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_gpif.rel `test -f 'usrp_gpif.c' || echo './'`usrp_gpif.c ./../common/build_eeprom.py -p -r2 eeprom_boot.ihx > burn-usrp2-eeprom ./../common/build_eeprom.py -p -r4 eeprom_boot.ihx > burn-usrp4-eeprom usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion chmod +x burn-usrp2-eeprom chmod +x burn-usrp4-eeprom usrp_main.c:223: warning 112: function 'setup_flowstate_common' implicit declaration usrp_main.c:260: warning 112: function 'setup_flowstate_write' implicit declaration usrp_main.c:282: warning 112: function 'setup_flowstate_read' implicit declaration usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o std.ihx vectors.rel usrp_main.rel usrp_common.rel board_specific.rel fpga_load.rel fpga_rev2.rel init_gpif.rel usrp_gpif.rel usb_descriptors.rel spi.rel eeprom_io.rel _startup.rel ?ASlink-Warning-Undefined Global '_setup_flowstate_read' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_write' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_common' referenced by module 'usrp_main' Makefile:688: recipe for target 'std.ihx' failed make[4]: *** [std.ihx] Error 1 make[4]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[3]: *** [install-recursive] Error 1 make[3]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[2]: *** [install-recursive] Error 1 make[2]: Leaving directory ' Makefile:628: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:925: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Sun Feb 24 15:10:06 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Sun, 24 Feb 2019 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#411?= In-Reply-To: <688009311.417.1550934605379.JavaMail.jenkins@jenkins.osmocom.org> References: <688009311.417.1550934605379.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <866406779.439.1551021006763.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.69 KB...] + ./configure checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Sun Feb 24 20:40:21 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Feb 2019 20:40:21 +0000 Subject: Change in osmo-ccid-firmware[master]: Switch SERCOM7 (Debug UART) to sync mode + add STDIO Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13035 Change subject: Switch SERCOM7 (Debug UART) to sync mode + add STDIO ...................................................................... Switch SERCOM7 (Debug UART) to sync mode + add STDIO this will allow us to do printf() Change-Id: Ibf4ba961d4bbf8d787558f38f3d557422587aad3 --- M sysmoOCTSIM/AtmelStart.gpdsc M sysmoOCTSIM/atmel_start.c M sysmoOCTSIM/atmel_start.h M sysmoOCTSIM/atmel_start_config.atstart A sysmoOCTSIM/config/stdio_redirect_config.h A sysmoOCTSIM/documentation/stdio.rst M sysmoOCTSIM/driver_init.c M sysmoOCTSIM/driver_init.h M sysmoOCTSIM/examples/driver_examples.c M sysmoOCTSIM/gcc/Makefile M sysmoOCTSIM/hpl/sercom/hpl_sercom.c M sysmoOCTSIM/main.c A sysmoOCTSIM/stdio_redirect/gcc/read.c A sysmoOCTSIM/stdio_redirect/gcc/write.c A sysmoOCTSIM/stdio_redirect/iar/read.c A sysmoOCTSIM/stdio_redirect/iar/write.c A sysmoOCTSIM/stdio_redirect/keil/Retarget.c A sysmoOCTSIM/stdio_redirect/stdio_io.c A sysmoOCTSIM/stdio_redirect/stdio_io.h A sysmoOCTSIM/stdio_start.c A sysmoOCTSIM/stdio_start.h 21 files changed, 769 insertions(+), 131 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/35/13035/1 diff --git a/sysmoOCTSIM/AtmelStart.gpdsc b/sysmoOCTSIM/AtmelStart.gpdsc index 6546fb5..5d35944 100644 --- a/sysmoOCTSIM/AtmelStart.gpdsc +++ b/sysmoOCTSIM/AtmelStart.gpdsc @@ -36,6 +36,14 @@ + + + + + + + + @@ -43,6 +51,7 @@ #define ATMEL_START + @@ -155,6 +164,14 @@ + + + + + + + + @@ -162,6 +179,7 @@ + @@ -172,6 +190,7 @@ + @@ -191,6 +210,8 @@ + + @@ -204,6 +225,7 @@ + @@ -229,6 +251,9 @@ + + + diff --git a/sysmoOCTSIM/atmel_start.c b/sysmoOCTSIM/atmel_start.c index 9a5f36c..fc6016a 100644 --- a/sysmoOCTSIM/atmel_start.c +++ b/sysmoOCTSIM/atmel_start.c @@ -7,4 +7,5 @@ { system_init(); usb_init(); + stdio_redirect_init(); } diff --git a/sysmoOCTSIM/atmel_start.h b/sysmoOCTSIM/atmel_start.h index 953f947..92afa47 100644 --- a/sysmoOCTSIM/atmel_start.h +++ b/sysmoOCTSIM/atmel_start.h @@ -7,6 +7,7 @@ #include "driver_init.h" #include "usb_start.h" +#include "stdio_start.h" /** * Initializes MCU, drivers and middleware in the project diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index a301385..1bbad8f 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -82,6 +82,14 @@ dependencies: USB Device Stack Core Instance: USB_DEVICE_STACK_CORE_INSTANCE USB Class CDC: USB_CLASS_CDC + STDIO_REDIRECT_0: + user_label: STDIO_REDIRECT_0 + configuration: {} + definition: Atmel:STDIO_redirect:0.0.1::STDIO_Redirect + functionality: STDIO_Redirect + api: STDIO:Redirect:IO + dependencies: + Target IO: UART_debug drivers: CMCC: user_label: CMCC @@ -1276,9 +1284,9 @@ slow_gclk_selection: Generic clock generator 3 UART_debug: user_label: UART_debug - definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM7::driver_config_definition::UART::HAL:Driver:USART.Async + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM7::driver_config_definition::UART::HAL:Driver:USART.Sync functionality: USART - api: HAL:Driver:USART_Async + api: HAL:Driver:USART_Sync configuration: usart_advanced: false usart_arch_clock_mode: USART with internal clock diff --git a/sysmoOCTSIM/config/stdio_redirect_config.h b/sysmoOCTSIM/config/stdio_redirect_config.h new file mode 100644 index 0000000..3515c0c --- /dev/null +++ b/sysmoOCTSIM/config/stdio_redirect_config.h @@ -0,0 +1,9 @@ +/* Auto-generated config file stdio_redirect_config.h */ +#ifndef STDIO_REDIRECT_CONFIG_H +#define STDIO_REDIRECT_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// <<< end of configuration section >>> + +#endif // STDIO_REDIRECT_CONFIG_H diff --git a/sysmoOCTSIM/documentation/stdio.rst b/sysmoOCTSIM/documentation/stdio.rst new file mode 100644 index 0000000..2864b49 --- /dev/null +++ b/sysmoOCTSIM/documentation/stdio.rst @@ -0,0 +1,34 @@ +STDIO redirection +================= + +The STDIO redirection provides means to redirect standard input/output to HAL +IO. + +On initialization, the HAL IO descriptor is assigned so that all input and +output is redirected to access it. The IO descriptor can also be changed +through stdio_io_set_io(). All stdin or stdout access is redirected to the +IO descriptor. When the IO descriptor is set to NULL, all input and output +are discarded. + +For GCC redirection, the stdout and stdin buffer are turned off, the +standard _read() and _write() are overridden. + +For IAR redirection, the __read() and __write() are overridden. + +For Keil redirection, the Retarget.c are modified to override fputc(), fgetc(), +etc. + +Features +-------- + +* Standard input/output redirection (e.g., printf to EDBG COM port) + +Dependencies +------------ + +* HAL IO driver + +Limitations +----------- + +* IO read/write operation should be synchronous diff --git a/sysmoOCTSIM/driver_init.c b/sysmoOCTSIM/driver_init.c index 1a58ad9..5808f01 100644 --- a/sysmoOCTSIM/driver_init.c +++ b/sysmoOCTSIM/driver_init.c @@ -32,9 +32,6 @@ /*! The buffer size for USART */ #define SIM6_BUFFER_SIZE 16 -/*! The buffer size for USART */ -#define UART_DEBUG_BUFFER_SIZE 16 - struct usart_async_descriptor SIM0; struct usart_async_descriptor SIM1; struct usart_async_descriptor SIM2; @@ -42,7 +39,6 @@ struct usart_async_descriptor SIM4; struct usart_async_descriptor SIM5; struct usart_async_descriptor SIM6; -struct usart_async_descriptor UART_debug; static uint8_t SIM0_buffer[SIM0_BUFFER_SIZE]; static uint8_t SIM1_buffer[SIM1_BUFFER_SIZE]; @@ -51,7 +47,8 @@ static uint8_t SIM4_buffer[SIM4_BUFFER_SIZE]; static uint8_t SIM5_buffer[SIM5_BUFFER_SIZE]; static uint8_t SIM6_buffer[SIM6_BUFFER_SIZE]; -static uint8_t UART_debug_buffer[UART_DEBUG_BUFFER_SIZE]; + +struct usart_sync_descriptor UART_debug; /** * \brief USART Clock initialization function @@ -312,26 +309,7 @@ SIM6_PORT_init(); } -/** - * \brief USART Clock initialization function - * - * Enables register interface and peripheral clock - */ -void UART_debug_CLOCK_init() -{ - - hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM7_GCLK_ID_CORE, CONF_GCLK_SERCOM7_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); - hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM7_GCLK_ID_SLOW, CONF_GCLK_SERCOM7_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); - - hri_mclk_set_APBDMASK_SERCOM7_bit(MCLK); -} - -/** - * \brief USART pinmux initialization function - * - * Set each required pin to USART functionality - */ -void UART_debug_PORT_init() +void UART_debug_PORT_init(void) { gpio_set_pin_function(UART_TX, PINMUX_PB30C_SERCOM7_PAD0); @@ -339,15 +317,18 @@ gpio_set_pin_function(UART_RX, PINMUX_PB31C_SERCOM7_PAD1); } -/** - * \brief USART initialization function - * - * Enables USART peripheral, clocks and initializes USART driver - */ +void UART_debug_CLOCK_init(void) +{ + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM7_GCLK_ID_CORE, CONF_GCLK_SERCOM7_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM7_GCLK_ID_SLOW, CONF_GCLK_SERCOM7_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + + hri_mclk_set_APBDMASK_SERCOM7_bit(MCLK); +} + void UART_debug_init(void) { UART_debug_CLOCK_init(); - usart_async_init(&UART_debug, SERCOM7, UART_debug_buffer, UART_DEBUG_BUFFER_SIZE, (void *)NULL); + usart_sync_init(&UART_debug, SERCOM7, (void *)NULL); UART_debug_PORT_init(); } @@ -860,6 +841,7 @@ SIM4_init(); SIM5_init(); SIM6_init(); + UART_debug_init(); USB_DEVICE_INSTANCE_init(); diff --git a/sysmoOCTSIM/driver_init.h b/sysmoOCTSIM/driver_init.h index a0fbb88..d809db8 100644 --- a/sysmoOCTSIM/driver_init.h +++ b/sysmoOCTSIM/driver_init.h @@ -28,7 +28,8 @@ #include #include #include -#include + +#include #include "hal_usb_device.h" @@ -39,7 +40,8 @@ extern struct usart_async_descriptor SIM4; extern struct usart_async_descriptor SIM5; extern struct usart_async_descriptor SIM6; -extern struct usart_async_descriptor UART_debug; + +extern struct usart_sync_descriptor UART_debug; void SIM0_PORT_init(void); void SIM0_CLOCK_init(void); diff --git a/sysmoOCTSIM/examples/driver_examples.c b/sysmoOCTSIM/examples/driver_examples.c index 14f1ae5..4ab0ef4 100644 --- a/sysmoOCTSIM/examples/driver_examples.c +++ b/sysmoOCTSIM/examples/driver_examples.c @@ -215,29 +215,12 @@ /** * Example of using UART_debug to write "Hello World" using the IO abstraction. - * - * Since the driver is asynchronous we need to use statically allocated memory for string - * because driver initiates transfer and then returns before the transmission is completed. - * - * Once transfer has been completed the tx_cb function will be called. */ - -static uint8_t example_UART_debug[12] = "Hello World!"; - -static void tx_cb_UART_debug(const struct usart_async_descriptor *const io_descr) -{ - /* Transfer completed */ -} - void UART_debug_example(void) { struct io_descriptor *io; + usart_sync_get_io_descriptor(&UART_debug, &io); + usart_sync_enable(&UART_debug); - usart_async_register_callback(&UART_debug, USART_ASYNC_TXC_CB, tx_cb_UART_debug); - /*usart_async_register_callback(&UART_debug, USART_ASYNC_RXC_CB, rx_cb); - usart_async_register_callback(&UART_debug, USART_ASYNC_ERROR_CB, err_cb);*/ - usart_async_get_io_descriptor(&UART_debug, &io); - usart_async_enable(&UART_debug); - - io_write(io, example_UART_debug, 12); + io_write(io, (uint8_t *)"Hello World!", 12); } diff --git a/sysmoOCTSIM/gcc/Makefile b/sysmoOCTSIM/gcc/Makefile index 5e3c38c..1c90257 100644 --- a/sysmoOCTSIM/gcc/Makefile +++ b/sysmoOCTSIM/gcc/Makefile @@ -26,32 +26,37 @@ # List the subdirectories for creating object files SUB_DIRS += \ \ -hpl/pm \ +hal/src \ +hpl/ramecc \ +examples \ +hpl/oscctrl \ +stdio_redirect/gcc \ gcc \ hpl/osc32kctrl \ -hpl/ramecc \ +usb \ hpl/dmac \ usb/class/cdc/device \ -hal/src \ -hpl/mclk \ -usb \ +stdio_redirect \ hal/utils/src \ -hpl/sercom \ -examples \ -hpl/gclk \ -usb/device \ -hpl/oscctrl \ -gcc/gcc \ hpl/usb \ -hpl/core \ -hpl/cmcc +hpl/pm \ +hpl/cmcc \ +hpl/gclk \ +gcc/gcc \ +hpl/mclk \ +usb/device \ +hpl/sercom \ +hpl/core # List the object files OBJS += \ hal/src/hal_io.o \ +stdio_redirect/stdio_io.o \ +stdio_redirect/gcc/write.o \ hpl/core/hpl_core_m4.o \ usb/class/cdc/device/cdcdf_acm.o \ hal/utils/src/utils_syscalls.o \ +stdio_redirect/gcc/read.o \ usb_start.o \ gcc/system_same54.o \ hpl/usb/hpl_usb.o \ @@ -63,8 +68,10 @@ hal/utils/src/utils_assert.o \ hpl/dmac/hpl_dmac.o \ hpl/oscctrl/hpl_oscctrl.o \ +hal/src/hal_usart_sync.o \ hpl/mclk/hpl_mclk.o \ hpl/ramecc/hpl_ramecc.o \ +stdio_start.o \ usb/usb_protocol.o \ hal/src/hal_init.o \ gcc/gcc/startup_same54.o \ @@ -90,9 +97,12 @@ OBJS_AS_ARGS += \ "hal/src/hal_io.o" \ +"stdio_redirect/stdio_io.o" \ +"stdio_redirect/gcc/write.o" \ "hpl/core/hpl_core_m4.o" \ "usb/class/cdc/device/cdcdf_acm.o" \ "hal/utils/src/utils_syscalls.o" \ +"stdio_redirect/gcc/read.o" \ "usb_start.o" \ "gcc/system_same54.o" \ "hpl/usb/hpl_usb.o" \ @@ -104,8 +114,10 @@ "hal/utils/src/utils_assert.o" \ "hpl/dmac/hpl_dmac.o" \ "hpl/oscctrl/hpl_oscctrl.o" \ +"hal/src/hal_usart_sync.o" \ "hpl/mclk/hpl_mclk.o" \ "hpl/ramecc/hpl_ramecc.o" \ +"stdio_start.o" \ "usb/usb_protocol.o" \ "hal/src/hal_init.o" \ "gcc/gcc/startup_same54.o" \ @@ -133,12 +145,14 @@ DEPS := $(OBJS:%.o=%.d) DEPS_AS_ARGS += \ +"stdio_redirect/stdio_io.d" \ "hal/utils/src/utils_event.d" \ "hal/src/hal_io.d" \ "hpl/ramecc/hpl_ramecc.d" \ "hpl/core/hpl_core_m4.d" \ "hal/utils/src/utils_syscalls.d" \ "usb/class/cdc/device/cdcdf_acm.d" \ +"stdio_redirect/gcc/write.d" \ "gcc/gcc/startup_same54.d" \ "hpl/usb/hpl_usb.d" \ "hal/utils/src/utils_list.d" \ @@ -149,12 +163,15 @@ "hpl/core/hpl_init.d" \ "hpl/pm/hpl_pm.d" \ "usb/usb_protocol.d" \ +"stdio_start.d" \ "hpl/gclk/hpl_gclk.d" \ "hal/src/hal_usb_device.d" \ "usb_start.d" \ "hal/src/hal_init.d" \ +"hal/src/hal_usart_sync.d" \ "hpl/mclk/hpl_mclk.d" \ "driver_init.d" \ +"stdio_redirect/gcc/read.d" \ "hal/src/hal_usart_async.d" \ "hpl/osc32kctrl/hpl_osc32kctrl.d" \ "main.d" \ @@ -218,7 +235,7 @@ @echo ARM/GNU C Compiler $(QUOTE)arm-none-eabi-gcc$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ -D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ --I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include" \ +-I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../config" -I"../stdio_redirect" -I"../" -I"../CMSIS/Include" -I"../include" \ -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" @echo Finished building: $< @@ -227,7 +244,7 @@ @echo ARM/GNU Assembler $(QUOTE)arm-none-eabi-as$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ -D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ --I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include" \ +-I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../config" -I"../stdio_redirect" -I"../" -I"../CMSIS/Include" -I"../include" \ -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" @echo Finished building: $< @@ -236,7 +253,7 @@ @echo ARM/GNU Preprocessing Assembler $(QUOTE)arm-none-eabi-gcc$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ -D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ --I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include" \ +-I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../config" -I"../stdio_redirect" -I"../" -I"../CMSIS/Include" -I"../include" \ -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" @echo Finished building: $< diff --git a/sysmoOCTSIM/hpl/sercom/hpl_sercom.c b/sysmoOCTSIM/hpl/sercom/hpl_sercom.c index f235115..b14e720 100644 --- a/sysmoOCTSIM/hpl/sercom/hpl_sercom.c +++ b/sysmoOCTSIM/hpl/sercom/hpl_sercom.c @@ -177,8 +177,6 @@ static struct _usart_async_device *_sercom6_dev = NULL; -static struct _usart_async_device *_sercom7_dev = NULL; - static uint8_t _get_sercom_index(const void *const hw); static uint8_t _sercom_get_irq_num(const void *const hw); static void _sercom_init_irq_param(const void *const hw, void *dev); @@ -667,10 +665,6 @@ if (hw == SERCOM6) { _sercom6_dev = (struct _usart_async_device *)dev; } - - if (hw == SERCOM7) { - _sercom7_dev = (struct _usart_async_device *)dev; - } } /** @@ -2634,35 +2628,6 @@ _sercom_usart_interrupt_handler(_sercom6_dev); } -/** - * \internal Sercom interrupt handler - */ -void SERCOM7_0_Handler(void) -{ - _sercom_usart_interrupt_handler(_sercom7_dev); -} -/** - * \internal Sercom interrupt handler - */ -void SERCOM7_1_Handler(void) -{ - _sercom_usart_interrupt_handler(_sercom7_dev); -} -/** - * \internal Sercom interrupt handler - */ -void SERCOM7_2_Handler(void) -{ - _sercom_usart_interrupt_handler(_sercom7_dev); -} -/** - * \internal Sercom interrupt handler - */ -void SERCOM7_3_Handler(void) -{ - _sercom_usart_interrupt_handler(_sercom7_dev); -} - int32_t _spi_m_sync_init(struct _spi_m_sync_dev *dev, void *const hw) { const struct sercomspi_regs_cfg *regs = _spi_get_regs((uint32_t)hw); diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c index 50e82c6..c79d5aa 100644 --- a/sysmoOCTSIM/main.c +++ b/sysmoOCTSIM/main.c @@ -27,20 +27,6 @@ #include "octsim_i2c.h" #include "ncn8025.h" -volatile static bool data_arrived = false; - -static void tx_cb_UART_debug(const struct usart_async_descriptor *const io_descr) -{ - /* Transfer completed */ - //gpio_toggle_pin_level(LED_system); -} - -static void rx_cb_UART_debug(const struct usart_async_descriptor *const io_descr) -{ - /* Receive completed */ - gpio_toggle_pin_level(USER_LED); - data_arrived = true; -} static void board_init() { @@ -65,23 +51,18 @@ { atmel_start_init(); - usart_async_register_callback(&UART_debug, USART_ASYNC_TXC_CB, tx_cb_UART_debug); - usart_async_register_callback(&UART_debug, USART_ASYNC_RXC_CB, rx_cb_UART_debug); - usart_async_enable(&UART_debug); + usart_sync_enable(&UART_debug); usb_start(); board_init(); - const char* welcome = "\r\n\r\nsysmocom sysmoOCTSIM\r\n"; - while (io_write(&UART_debug.io, (const uint8_t*)welcome, strlen(welcome)) != strlen(welcome)); // print welcome message + printf("\r\n\r\nsysmocom sysmoOCTSIM\r\n"); while (true) { // main loop - if (data_arrived) { // input on UART debug - data_arrived = false; // clear flag - uint8_t recv_char; // to store the input - while (io_read(&UART_debug.io, &recv_char, 1) == 1) { // read input - while (io_write(&UART_debug.io, &recv_char, 1) != 1); // echo back to output - } + if (usart_sync_is_rx_not_empty(&UART_debug)) { + gpio_toggle_pin_level(USER_LED); + int c = getchar(); + putchar(c); } } } diff --git a/sysmoOCTSIM/stdio_redirect/gcc/read.c b/sysmoOCTSIM/stdio_redirect/gcc/read.c new file mode 100644 index 0000000..90e4618 --- /dev/null +++ b/sysmoOCTSIM/stdio_redirect/gcc/read.c @@ -0,0 +1,53 @@ +/** + * \file + * + * \brief STDIO redirection + * + * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries. + * + * \asf_license_start + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip + * software and any derivatives exclusively with Microchip products. + * It is your responsibility to comply with third party license terms applicable + * to your use of third party software (including open source software) that + * may accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, + * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, + * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE + * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL + * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE + * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE + * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT + * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY + * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, + * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + * + * \asf_license_stop + * + */ + +#include +#include + +int __attribute__((weak)) _read(int file, char *ptr, int len); /* Remove GCC compiler warning */ + +int __attribute__((weak)) _read(int file, char *ptr, int len) +{ + int n = 0; + + if (file != 0) { + return -1; + } + + n = stdio_io_read((uint8_t *)ptr, len); + if (n < 0) { + return -1; + } + + return n; +} diff --git a/sysmoOCTSIM/stdio_redirect/gcc/write.c b/sysmoOCTSIM/stdio_redirect/gcc/write.c new file mode 100644 index 0000000..44fa815 --- /dev/null +++ b/sysmoOCTSIM/stdio_redirect/gcc/write.c @@ -0,0 +1,53 @@ +/** + * \file + * + * \brief STDIO redirection + * + * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries. + * + * \asf_license_start + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip + * software and any derivatives exclusively with Microchip products. + * It is your responsibility to comply with third party license terms applicable + * to your use of third party software (including open source software) that + * may accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, + * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, + * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE + * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL + * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE + * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE + * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT + * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY + * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, + * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + * + * \asf_license_stop + * + */ + +#include +#include + +int __attribute__((weak)) _write(int file, char *ptr, int len); /* Remove GCC compiler warning */ + +int __attribute__((weak)) _write(int file, char *ptr, int len) +{ + int n = 0; + + if ((file != 1) && (file != 2) && (file != 3)) { + return -1; + } + + n = stdio_io_write((const uint8_t *)ptr, len); + if (n < 0) { + return -1; + } + + return n; +} diff --git a/sysmoOCTSIM/stdio_redirect/iar/read.c b/sysmoOCTSIM/stdio_redirect/iar/read.c new file mode 100644 index 0000000..df192cb --- /dev/null +++ b/sysmoOCTSIM/stdio_redirect/iar/read.c @@ -0,0 +1,114 @@ +/** + * \file + * + * \brief STDIO redirection + * + * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries. + * + * \asf_license_start + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip + * software and any derivatives exclusively with Microchip products. + * It is your responsibility to comply with third party license terms applicable + * to your use of third party software (including open source software) that + * may accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, + * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, + * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE + * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL + * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE + * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE + * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT + * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY + * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, + * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + * + * \asf_license_stop + * + */ + +#include +#include + +#ifndef _UNIT_TEST_ +#include +#else +#define _STD_BEGIN +#define _STD_END +#define _LLIO_ERROR ((size_t)-1) /* For __read and __write. */ +#define _LLIO_STDIN 0 +#define _LLIO_STDOUT 1 +#define _LLIO_STDERR 2 +#endif + +#if (__VER__ < 8010000) +/* Refer http://ftp.iar.se/WWWfiles/arm/webic/doc/EWARM_MigrationGuide.ENU.pdf */ +_STD_BEGIN +#endif + +#pragma module_name = "?__read" + +/*! \brief Reads a number of bytes, at most \a size, into the memory area + * pointed to by \a buffer. + * + * \param handle File handle to read from. + * \param buffer Pointer to buffer to write read bytes to. + * \param size Number of bytes to read. + * + * \return The number of bytes read, \c 0 at the end of the file, or + * \c _LLIO_ERROR on failure. + */ +size_t __read(int handle, unsigned char *buffer, size_t size) +{ + int n = 0; + /* This implementation only reads from stdin. + * For all other file handles, it returns failure. */ + if (handle != _LLIO_STDIN) { + return _LLIO_ERROR; + } + + n = stdio_io_read((uint8_t *)buffer, size); + if (n < 0) { + return _LLIO_ERROR; + } + return n; +} + +/*! \brief This routine is required by IAR DLIB library since EWAVR V6.10 + * the implementation is empty to be compatible with old IAR version. + */ +int __close(int handle) +{ + (void)(handle); + return 0; +} + +#ifndef __GNUC__ +/*! \brief This routine is required by IAR DLIB library since EWAVR V6.10 + * the implementation is empty to be compatible with old IAR version. + */ +int remove(const char *val) +{ + (void)(val); + return 0; +} +#endif + +/*! \brief This routine is required by IAR DLIB library since EWAVR V6.10 + * the implementation is empty to be compatible with old IAR version. + */ +long __lseek(int handle, long val, int val2) +{ + (void)(handle); + (void)(val2); + return val; +} + +#if (__VER__ < 8010000) +/* Refer http://ftp.iar.se/WWWfiles/arm/webic/doc/EWARM_MigrationGuide.ENU.pdf */ +_STD_END +#endif diff --git a/sysmoOCTSIM/stdio_redirect/iar/write.c b/sysmoOCTSIM/stdio_redirect/iar/write.c new file mode 100644 index 0000000..7bc8f78 --- /dev/null +++ b/sysmoOCTSIM/stdio_redirect/iar/write.c @@ -0,0 +1,94 @@ +/** + * \file + * + * \brief STDIO redirection + * + * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries. + * + * \asf_license_start + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip + * software and any derivatives exclusively with Microchip products. + * It is your responsibility to comply with third party license terms applicable + * to your use of third party software (including open source software) that + * may accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, + * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, + * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE + * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL + * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE + * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE + * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT + * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY + * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, + * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + * + * \asf_license_stop + * + */ + +#include +#include + +#ifndef _UNIT_TEST_ +#include +#else +#define _STD_BEGIN +#define _STD_END +#define _LLIO_ERROR ((size_t)-1) /* For __read and __write. */ +#define _LLIO_STDIN 0 +#define _LLIO_STDOUT 1 +#define _LLIO_STDERR 2 +#endif + +#if (__VER__ < 8010000) +/* Refer http://ftp.iar.se/WWWfiles/arm/webic/doc/EWARM_MigrationGuide.ENU.pdf */ +_STD_BEGIN +#endif + +#pragma module_name = "?__write" + +/*! \brief Writes a number of bytes, at most \a size, from the memory area + * pointed to by \a buffer. + * + * If \a buffer is zero then \ref __write performs flushing of internal buffers, + * if any. In this case, \a handle can be \c -1 to indicate that all handles + * should be flushed. + * + * \param handle File handle to write to. + * \param buffer Pointer to buffer to read bytes to write from. + * \param size Number of bytes to write. + * + * \return The number of bytes written, or \c _LLIO_ERROR on failure. + */ +size_t __write(int handle, const unsigned char *buffer, size_t size) +{ + int n = 0; + + if (buffer == 0) { + /* This means that we should flush internal buffers. */ + return 0; + } + + /* This implementation only writes to stdout and stderr. + * For all other file handles, it returns failure. */ + if (handle != _LLIO_STDOUT && handle != _LLIO_STDERR) { + return _LLIO_ERROR; + } + + n = stdio_io_write((const uint8_t *)buffer, size); + if (n < 0) { + return _LLIO_ERROR; + } + + return n; +} + +#if (__VER__ < 8010000) +/* Refer http://ftp.iar.se/WWWfiles/arm/webic/doc/EWARM_MigrationGuide.ENU.pdf */ +_STD_END +#endif diff --git a/sysmoOCTSIM/stdio_redirect/keil/Retarget.c b/sysmoOCTSIM/stdio_redirect/keil/Retarget.c new file mode 100644 index 0000000..205e7e5 --- /dev/null +++ b/sysmoOCTSIM/stdio_redirect/keil/Retarget.c @@ -0,0 +1,107 @@ +/** + * \file + * + * \brief STDIO redirection + * + * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries. + * + * \asf_license_start + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip + * software and any derivatives exclusively with Microchip products. + * It is your responsibility to comply with third party license terms applicable + * to your use of third party software (including open source software) that + * may accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, + * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, + * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE + * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL + * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE + * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE + * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT + * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY + * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, + * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + * + * \asf_license_stop + * + */ + +#include + +#ifdef _UNIT_TEST_ +#undef fputc +#undef fgetc +#undef ferror +#define fputc ut_fputc +#define fgetc ut_fgetc +#define ferror ut_ferror +#endif + +#include + +/* Disable semihosting */ +#if defined(__GNUC__) && (__ARMCOMPILER_VERSION > 6000000) /* Keil MDK with ARM Compiler 6 */ +__asm(".global __use_no_semihosting\n\t"); +#else +#pragma import(__use_no_semihosting_swi) +#endif + +#ifndef __GNUC__ +struct __FILE { + int handle; +}; +#endif +FILE __stdout; +FILE __stdin; +FILE __stderr; + +int fputc(int ch, FILE *f) +{ + if ((f == stdout) || (f == stderr)) { + uint8_t tmp = (uint8_t)ch; + if (stdio_io_write(&tmp, 1) < 0) { + return EOF; + } + return ch; + } else { + return EOF; + } +} + +int fgetc(FILE *f) +{ + if (f == stdin) { + uint8_t tmp = 0; + if (stdio_io_read(&tmp, 1) < 0) { + return EOF; + } + return tmp; + } else { + return EOF; + } +} + +void _ttywrch(int ch) +{ + uint8_t tmp = (uint8_t)ch; + stdio_io_write(&tmp, 1); +} + +int ferror(FILE *f) +{ + (void)f; + /* Your implementation of ferror */ + return EOF; +} + +void _sys_exit(int return_code) +{ + (void)return_code; + while (1) { + }; /* endless loop */ +} diff --git a/sysmoOCTSIM/stdio_redirect/stdio_io.c b/sysmoOCTSIM/stdio_redirect/stdio_io.c new file mode 100644 index 0000000..7659f3d --- /dev/null +++ b/sysmoOCTSIM/stdio_redirect/stdio_io.c @@ -0,0 +1,74 @@ +/** + * \file + * + * \brief STDIO redirection terminal + * + * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries. + * + * \asf_license_start + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip + * software and any derivatives exclusively with Microchip products. + * It is your responsibility to comply with third party license terms applicable + * to your use of third party software (including open source software) that + * may accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, + * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, + * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE + * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL + * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE + * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE + * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT + * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY + * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, + * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + * + * \asf_license_stop + * + */ + +#include +#include + +/** IO descriptor for STDIO access. */ +static struct io_descriptor *stdio_io = NULL; + +void stdio_io_init(struct io_descriptor *io) +{ +#if defined(__GNUC__) + /* Specify that stdout and stdin should not be buffered. */ + setbuf(stdout, NULL); + setbuf(stdin, NULL); + /* Note: Already the case in IAR's Normal DLIB default configuration + * and AVR GCC library: + * - printf() emits one character at a time. + * - getchar() requests only 1 byte to exit. + */ +#endif + stdio_io = io; +} + +void stdio_io_set_io(struct io_descriptor *io) +{ + stdio_io = io; +} + +int32_t stdio_io_read(uint8_t *buf, const int32_t len) +{ + if (stdio_io == NULL) { + return 0; + } + return io_read(stdio_io, buf, len); +} + +int32_t stdio_io_write(const uint8_t *buf, const int32_t len) +{ + if (stdio_io == NULL) { + return 0; + } + return io_write(stdio_io, buf, len); +} diff --git a/sysmoOCTSIM/stdio_redirect/stdio_io.h b/sysmoOCTSIM/stdio_redirect/stdio_io.h new file mode 100644 index 0000000..973adad --- /dev/null +++ b/sysmoOCTSIM/stdio_redirect/stdio_io.h @@ -0,0 +1,81 @@ +/** + * \file + * + * \brief STDIO redirection terminal + * + * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries. + * + * \asf_license_start + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip + * software and any derivatives exclusively with Microchip products. + * It is your responsibility to comply with third party license terms applicable + * to your use of third party software (including open source software) that + * may accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, + * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, + * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE + * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL + * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE + * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE + * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT + * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY + * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, + * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + * + * \asf_license_stop + * + */ + +#ifndef _STDIO_IO_H_INCLUDED +#define _STDIO_IO_H_INCLUDED + +#include + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * \brief Initialize STDIO access + * \param[in] io Pointer to IO descriptor, + * NULL to discard R/W without any error. + */ +void stdio_io_init(struct io_descriptor *io); + +/** + * \brief Change IO descriptor for terminal to R/W data + * \param[in] io Pointer to IO descriptor, + * NULL to discard R/W without any error. + */ +void stdio_io_set_io(struct io_descriptor *io); + +/** + * \brief Read through specified terminal + * \param[out] buf Pointer to buffer to place read data + * \param[in] len Data length in number of bytes + * \return status + * \retval >=0 number of bytes read + * \retval <0 error + */ +int32_t stdio_io_read(uint8_t *buf, const int32_t len); + +/** + * \brief Write through specified terminal + * \param[in] buf Pointer to buffer to place data to write + * \param[in] len Data length in number of bytes + * \return status + * \retval >=0 number of bytes read + * \retval <0 error + */ +int32_t stdio_io_write(const uint8_t *buf, const int32_t len); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* _STDIO_IO_H_INCLUDED */ diff --git a/sysmoOCTSIM/stdio_start.c b/sysmoOCTSIM/stdio_start.c new file mode 100644 index 0000000..7450a08 --- /dev/null +++ b/sysmoOCTSIM/stdio_start.c @@ -0,0 +1,23 @@ +/* + * Code generated from Atmel Start. + * + * This file will be overwritten when reconfiguring your Atmel Start project. + * Please copy examples or other code you want to keep to a separate file or main.c + * to avoid loosing it when reconfiguring. + */ + +#include "atmel_start.h" +#include "stdio_start.h" + +void STDIO_REDIRECT_0_example(void) +{ + /* Print welcome message */ + printf("\r\nHello ATMEL World!\r\n"); +} + +void stdio_redirect_init(void) +{ + + usart_sync_enable(&UART_debug); + stdio_io_init(&UART_debug.io); +} diff --git a/sysmoOCTSIM/stdio_start.h b/sysmoOCTSIM/stdio_start.h new file mode 100644 index 0000000..bee5325 --- /dev/null +++ b/sysmoOCTSIM/stdio_start.h @@ -0,0 +1,31 @@ +/* + * Code generated from Atmel Start. + * + * This file will be overwritten when reconfiguring your Atmel Start project. + * Please copy examples or other code you want to keep to a separate file or main.c + * to avoid loosing it when reconfiguring. + */ +#ifndef STDIO_MAIN_H +#define STDIO_MAIN_H + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#include + +#include +#include + +void STDIO_REDIRECT_0_example(void); + +/** + * \brief Initialize STDIO Redirect + */ +void stdio_redirect_init(void); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* STDIO_MAIN_H */ -- To view, visit https://gerrit.osmocom.org/13035 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ibf4ba961d4bbf8d787558f38f3d557422587aad3 Gerrit-Change-Number: 13035 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 24 21:52:02 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Feb 2019 21:52:02 +0000 Subject: Change in osmo-ccid-firmware[master]: Add mnimalistic command line interface "command.c" Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13036 Change subject: Add mnimalistic command line interface "command.c" ...................................................................... Add mnimalistic command line interface "command.c" This is a very simplistic command line interface parser which various parts of the code can use to register textual commands on the debug UART. Change-Id: I2d289228fb97ecde5602e9756f3d7c51fa65a3b7 --- A sysmoOCTSIM/command.c A sysmoOCTSIM/command.h M sysmoOCTSIM/gcc/Makefile M sysmoOCTSIM/main.c 4 files changed, 135 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/36/13036/1 diff --git a/sysmoOCTSIM/command.c b/sysmoOCTSIM/command.c new file mode 100644 index 0000000..9502f05 --- /dev/null +++ b/sysmoOCTSIM/command.c @@ -0,0 +1,101 @@ +#include +#include +#include + +#include + +#include "atmel_start.h" +#include "command.h" + +struct cmd_state { + const char *prompt; + char buf[128]; + unsigned int buf_idx; + const struct command_fn *cmd[32]; + unsigned int cmd_idx; +}; + +static struct cmd_state g_cmds; + +int command_register(const struct command_fn *cmd) +{ + if (g_cmds.cmd_idx >= ARRAY_SIZE(g_cmds.cmd)) + return -1; + g_cmds.cmd[g_cmds.cmd_idx++] = cmd; + return 0; +} + +DEFUN(help, help_cmd, "help", "Print command reference") +{ + unsigned int i; + printf("Help:\r\n"); + printf(" Command Help\r\n"); + printf(" ---------------- ----\r\n"); + for (i = 0; i < g_cmds.cmd_idx; i++) + printf(" %-16s %s\r\n", g_cmds.cmd[i]->command, g_cmds.cmd[i]->help); +} + +static void cmd_execute() +{ + char *argv[16]; + unsigned int i; + int argc = 0; + char *cur; + + printf("\r\n"); + memset(argv, 0, sizeof(argv)); + + for (cur = strtok(g_cmds.buf, " "); cur; cur = strtok(NULL, " ")) { + if (argc >= ARRAY_SIZE(argv)) + break; + argv[argc++] = cur; + } + + for (i = 0; i < g_cmds.cmd_idx; i++) { + if (!strcmp(g_cmds.cmd[i]->command, argv[0])) { + g_cmds.cmd[i]->fn(argc, argv); + return; + } + } + printf("Unknown command: '%s'\r\n", argv[0]); +} + +static void cmd_buf_reset(void) +{ + memset(g_cmds.buf, 0, sizeof(g_cmds.buf)); + g_cmds.buf_idx = 0; +} + +static void cmd_buf_append(char c) +{ + g_cmds.buf[g_cmds.buf_idx++] = c; +} + +void command_try_recv(void) +{ + unsigned int i = 0; + + /* yield CPU after maximum of 10 received characters */ + while (usart_sync_is_rx_not_empty(&UART_debug) && (i < 10)) { + int c = getchar(); + if (c < 0) + return; + putchar(c); + if (c == '\r' || c == '\n' || g_cmds.buf_idx >= sizeof(g_cmds.buf)-1) { + cmd_execute(); + cmd_buf_reset(); + printf(g_cmds.prompt); + return; + } + /* append character */ + cmd_buf_append(c); + + i++; + } +} + +void command_init(const char *prompt) +{ + g_cmds.prompt = prompt; + command_register(&help_cmd); +} diff --git a/sysmoOCTSIM/command.h b/sysmoOCTSIM/command.h new file mode 100644 index 0000000..41facfe --- /dev/null +++ b/sysmoOCTSIM/command.h @@ -0,0 +1,20 @@ +#pragma once + +struct command_fn { + const char *command; + const char *help; + void (*fn)(int argc, char **argv); +}; + +#define DEFUN(functname, cmdname, cmdstr, helpstr) \ + static void funcname(int argc, char **argv); \ + static struct command_fn cmdname = { \ + .command = cmdstr, \ + .help = helpstr, \ + .fn = funcname, \ + }; \ + static void funcname(int argc, char **argv) + +void command_init(const char *prompt); +int command_register(const struct command_fn *cmd); +void command_try_recv(void); diff --git a/sysmoOCTSIM/gcc/Makefile b/sysmoOCTSIM/gcc/Makefile index 1c90257..7496377 100644 --- a/sysmoOCTSIM/gcc/Makefile +++ b/sysmoOCTSIM/gcc/Makefile @@ -80,6 +80,7 @@ i2c_bitbang.o \ octsim_i2c.o \ ncn8025.o \ +command.o \ hpl/osc32kctrl/hpl_osc32kctrl.o \ examples/driver_examples.o \ driver_init.o \ @@ -126,6 +127,7 @@ "i2c_bitbang.o" \ "octsim_i2c.o" \ "ncn8025.o" \ +"command.o" \ "hpl/osc32kctrl/hpl_osc32kctrl.o" \ "examples/driver_examples.o" \ "driver_init.o" \ @@ -178,6 +180,7 @@ "i2c_bitbang.d" \ "octsim_i2c.d" \ "ncn8025.d" \ +"command.d" \ "examples/driver_examples.d" \ "hal/src/hal_cache.d" \ "hal/src/hal_sleep.d" \ diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c index c79d5aa..ef87162 100644 --- a/sysmoOCTSIM/main.c +++ b/sysmoOCTSIM/main.c @@ -27,6 +27,8 @@ #include "octsim_i2c.h" #include "ncn8025.h" +#include "command.h" + static void board_init() { @@ -47,6 +49,12 @@ hri_port_set_PINCFG_DRVSTR_bit(PORT, 0, 11); } +DEFUN(hello_fn, cmd_hello, + "hello", "Hello World example command") +{ + printf("Hello World!\r\n"); +} + int main(void) { atmel_start_init(); @@ -56,13 +64,11 @@ usb_start(); board_init(); + command_init("sysmoOCTSIM> "); + command_register(&cmd_hello); printf("\r\n\r\nsysmocom sysmoOCTSIM\r\n"); while (true) { // main loop - if (usart_sync_is_rx_not_empty(&UART_debug)) { - gpio_toggle_pin_level(USER_LED); - int c = getchar(); - putchar(c); - } + command_try_recv(); } } -- To view, visit https://gerrit.osmocom.org/13036 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I2d289228fb97ecde5602e9756f3d7c51fa65a3b7 Gerrit-Change-Number: 13036 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 24 22:05:23 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Feb 2019 22:05:23 +0000 Subject: Change in osmo-ccid-firmware[master]: Support for sysmoOCTSIM NCN8025/SX1503 control In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/13030 to look at the new patch set (#3). Change subject: Support for sysmoOCTSIM NCN8025/SX1503 control ...................................................................... Support for sysmoOCTSIM NCN8025/SX1503 control This adds an I2C bit-banging layer, defines the four busses on the sysmoOCTSIM and adds some high-level functions to control the NCN8025 for each SIM slot. Change-Id: Ic5287cf80d2be2070c504e9d40f7c6fc0d37d8b9 --- M sysmoOCTSIM/gcc/Makefile A sysmoOCTSIM/i2c_bitbang.c A sysmoOCTSIM/i2c_bitbang.h M sysmoOCTSIM/main.c A sysmoOCTSIM/ncn8025.c A sysmoOCTSIM/ncn8025.h A sysmoOCTSIM/octsim_i2c.c A sysmoOCTSIM/octsim_i2c.h 8 files changed, 440 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/30/13030/3 -- To view, visit https://gerrit.osmocom.org/13030 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ic5287cf80d2be2070c504e9d40f7c6fc0d37d8b9 Gerrit-Change-Number: 13030 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 24 22:05:23 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Feb 2019 22:05:23 +0000 Subject: Change in osmo-ccid-firmware[master]: Add mnimalistic command line interface "command.c" In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/13036 to look at the new patch set (#2). Change subject: Add mnimalistic command line interface "command.c" ...................................................................... Add mnimalistic command line interface "command.c" This is a very simplistic command line interface parser which various parts of the code can use to register textual commands on the debug UART. Change-Id: I2d289228fb97ecde5602e9756f3d7c51fa65a3b7 --- A sysmoOCTSIM/command.c A sysmoOCTSIM/command.h M sysmoOCTSIM/gcc/Makefile M sysmoOCTSIM/main.c 4 files changed, 135 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/36/13036/2 -- To view, visit https://gerrit.osmocom.org/13036 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I2d289228fb97ecde5602e9756f3d7c51fa65a3b7 Gerrit-Change-Number: 13036 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 24 22:05:25 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Feb 2019 22:05:25 +0000 Subject: Change in osmo-ccid-firmware[master]: add 'sim-status' debug command Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13037 Change subject: add 'sim-status' debug command ...................................................................... add 'sim-status' debug command Change-Id: Id6131be60d37cba769c79952fa44f3ec6c976a38 --- M sysmoOCTSIM/main.c M sysmoOCTSIM/ncn8025.c M sysmoOCTSIM/ncn8025.h 3 files changed, 50 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/37/13037/1 diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c index ef87162..41bf73a 100644 --- a/sysmoOCTSIM/main.c +++ b/sysmoOCTSIM/main.c @@ -16,6 +16,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ +#include +#include #include #include #include @@ -55,6 +57,25 @@ printf("Hello World!\r\n"); } +DEFUN(sim_status, cmd_sim_status, "sim-status", "Get state of specified NCN8025") +{ + struct ncn8025_settings settings; + int slotnr; + if (argc < 2) { + printf("You have to specify the slot number (0..7)\r\n"); + return; + } + slotnr = atoi(argv[1]); + if (slotnr < 0 || slotnr > 7) { + printf("You have to specify the slot number (0..7)\r\n"); + return; + } + ncn8025_get(slotnr, &settings); + printf("SIM%d: ", slotnr); + ncn8025_dump(&settings); + printf("\r\n"); +} + int main(void) { atmel_start_init(); @@ -66,6 +87,7 @@ board_init(); command_init("sysmoOCTSIM> "); command_register(&cmd_hello); + command_register(&cmd_sim_status); printf("\r\n\r\nsysmocom sysmoOCTSIM\r\n"); while (true) { // main loop diff --git a/sysmoOCTSIM/ncn8025.c b/sysmoOCTSIM/ncn8025.c index 99b93b8..5f9b03d 100644 --- a/sysmoOCTSIM/ncn8025.c +++ b/sysmoOCTSIM/ncn8025.c @@ -8,6 +8,7 @@ #include #include +#include #include #include #include "octsim_i2c.h" @@ -134,3 +135,29 @@ return rc; return ncn8025_set(slot, &def_settings); } + +static const char *volt_str[] = { + [SIM_VOLT_3V0] = "3.0", + [SIM_VOLT_5V0] = "5.0", + [SIM_VOLT_1V8] = "1.8", +}; + +static const unsigned int div_val[] = { + [SIM_CLKDIV_1] = 1, + [SIM_CLKDIV_2] = 2, + [SIM_CLKDIV_4] = 4, + [SIM_CLKDIV_8] = 8, +}; + +void ncn8025_dump(const struct ncn8025_settings *set) +{ + printf("VOLT=%s, CLKDIV=%u", volt_str[set->vsel], div_val[set->clkdiv]); + if (set->rstin) + printf(", RST"); + if (set->cmdvcc) + printf(", VCC"); + if (set->simpres) + printf(", SIMPRES"); + if (set->led) + printf(", LED"); +} diff --git a/sysmoOCTSIM/ncn8025.h b/sysmoOCTSIM/ncn8025.h index a392c5d..79e8b60 100644 --- a/sysmoOCTSIM/ncn8025.h +++ b/sysmoOCTSIM/ncn8025.h @@ -26,3 +26,4 @@ int ncn8025_set(uint8_t slot, const struct ncn8025_settings *set); int ncn8025_get(uint8_t slot, struct ncn8025_settings *set); int ncn8025_init(unsigned int slot); +void ncn8025_dump(const struct ncn8025_settings *set); -- To view, visit https://gerrit.osmocom.org/13037 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id6131be60d37cba769c79952fa44f3ec6c976a38 Gerrit-Change-Number: 13037 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 24 22:45:32 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Feb 2019 22:45:32 +0000 Subject: Change in osmo-ccid-firmware[master]: Add various SIM card related debug command In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/13037 to look at the new patch set (#2). Change subject: Add various SIM card related debug command ...................................................................... Add various SIM card related debug command this allows commands like sim-status 0 # read the status sim-voltage 0 5 # set voltage to 5V sim-clkdiv 0 2 # set clock-divider to 2 (10 MHz) sim-reset 0 0 # disable reset sim-power 0 1 # enable power Change-Id: Id6131be60d37cba769c79952fa44f3ec6c976a38 --- M sysmoOCTSIM/main.c M sysmoOCTSIM/ncn8025.c M sysmoOCTSIM/ncn8025.h 3 files changed, 170 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/37/13037/2 -- To view, visit https://gerrit.osmocom.org/13037 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Id6131be60d37cba769c79952fa44f3ec6c976a38 Gerrit-Change-Number: 13037 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 24 22:45:32 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Feb 2019 22:45:32 +0000 Subject: Change in osmo-ccid-firmware[master]: ncn8025: Add support for reading SIMx_INT status Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13038 Change subject: ncn8025: Add support for reading SIMx_INT status ...................................................................... ncn8025: Add support for reading SIMx_INT status Change-Id: Iab9edc1214bb22ee304daa834fd9e2376d42c97c --- M sysmoOCTSIM/ncn8025.c M sysmoOCTSIM/ncn8025.h 2 files changed, 20 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/38/13038/1 diff --git a/sysmoOCTSIM/ncn8025.c b/sysmoOCTSIM/ncn8025.c index 5f9b03d..950acb4 100644 --- a/sysmoOCTSIM/ncn8025.c +++ b/sysmoOCTSIM/ncn8025.c @@ -11,6 +11,7 @@ #include #include #include +#include "atmel_start_pins.h" #include "octsim_i2c.h" #include "ncn8025.h" @@ -86,6 +87,20 @@ return 0x03; } +static const uint8_t slot2int_pin(unsigned int slot) +{ + static const uint8_t slot2pin[8] = { SIM0_INT, SIM1_INT, SIM2_INT, SIM3_INT, + SIM4_INT, SIM5_INT, SIM6_INT, SIM7_INT }; + ASSERT(slot < ARRAY_SIZE(slot2pin)); + return slot2pin[slot]; +} + +bool ncn8025_interrupt_active(uint8_t slot) +{ + uint8_t pin = slot2int_pin(slot); + return !gpio_get_pin_level(pin); +} + /*! Set a given NCN8025 as described in 'set'. * \param[in] slot Slot number (0..7) @@ -111,6 +126,7 @@ rc = i2c_read_reg(adap, SX1503_ADDR, reg); if (rc < 0) return rc; + set->interrupt = ncn8025_interrupt_active(slot); return ncn8025_decode(rc, set); } @@ -156,6 +172,8 @@ printf(", RST"); if (set->cmdvcc) printf(", VCC"); + if (set->interrupt) + printf(", INT"); if (set->simpres) printf(", SIMPRES"); if (set->led) diff --git a/sysmoOCTSIM/ncn8025.h b/sysmoOCTSIM/ncn8025.h index 79e8b60..89b7f86 100644 --- a/sysmoOCTSIM/ncn8025.h +++ b/sysmoOCTSIM/ncn8025.h @@ -19,11 +19,13 @@ bool cmdvcc; /* high: active */ bool simpres; /* high: active */ bool led; /* high: active */ + bool interrupt; /* high: active */ enum ncn8025_sim_clkdiv clkdiv; /* raw 2bit value */ enum ncn8025_sim_voltage vsel; /* raw 2bit value */ }; int ncn8025_set(uint8_t slot, const struct ncn8025_settings *set); int ncn8025_get(uint8_t slot, struct ncn8025_settings *set); +bool ncn8025_interrupt_active(uint8_t slot); int ncn8025_init(unsigned int slot); void ncn8025_dump(const struct ncn8025_settings *set); -- To view, visit https://gerrit.osmocom.org/13038 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iab9edc1214bb22ee304daa834fd9e2376d42c97c Gerrit-Change-Number: 13038 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 24 22:52:57 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Feb 2019 22:52:57 +0000 Subject: Change in osmo-ccid-firmware[master]: ncn8025: Add support for reading SIMx_INT status In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/13038 to look at the new patch set (#2). Change subject: ncn8025: Add support for reading SIMx_INT status ...................................................................... ncn8025: Add support for reading SIMx_INT status Change-Id: Iab9edc1214bb22ee304daa834fd9e2376d42c97c --- M sysmoOCTSIM/ncn8025.c M sysmoOCTSIM/ncn8025.h 2 files changed, 22 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/38/13038/2 -- To view, visit https://gerrit.osmocom.org/13038 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Iab9edc1214bb22ee304daa834fd9e2376d42c97c Gerrit-Change-Number: 13038 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Sun Feb 24 22:57:38 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Sun, 24 Feb 2019 22:57:38 +0000 Subject: Change in osmo-ccid-firmware[master]: Add various SIM card related debug command In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/13037 to look at the new patch set (#3). Change subject: Add various SIM card related debug command ...................................................................... Add various SIM card related debug command this allows commands like sim-status 0 # read the status sim-voltage 0 5 # set voltage to 5V sim-clkdiv 0 2 # set clock-divider to 2 (10 MHz) sim-reset 0 0 # disable reset sim-power 0 1 # enable power Change-Id: Id6131be60d37cba769c79952fa44f3ec6c976a38 --- M sysmoOCTSIM/main.c M sysmoOCTSIM/ncn8025.c M sysmoOCTSIM/ncn8025.h 3 files changed, 193 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/37/13037/3 -- To view, visit https://gerrit.osmocom.org/13037 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Id6131be60d37cba769c79952fa44f3ec6c976a38 Gerrit-Change-Number: 13037 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 02:19:58 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 25 Feb 2019 02:19:58 +0000 Subject: Change in libosmocore[master]: log: fsm: fix logging of negative T upon timeout In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/12988 ) Change subject: log: fsm: fix logging of negative T upon timeout ...................................................................... Patch Set 1: I understand; what if we choose a different representation that would allow me to use the negative T space without confusion? some ideas: "Timeout of -T1" "Timeout of T-OSMO-1" "Timeout of X1" In the code, there can hardly be confusion, since "if (T == -1)" is obviously not "if (T == 1)", so this is completely about the user experience; (log, vty) The point is that there are a lot of places where I am not sure which timer is the correct one, or where there simply is none defined. Instead of having to search all specs to make sure I don't accidentally use an already designated number, and instead of inventing stupid numbers like 993210 or 1000001, I find it very tempting to use the negative T space. Related: I am writing all of my FSM instances with struct osmo_tdef_state_timeout arrays now, and use distinct T numbers for all states that need a timeout, so I need to pick a lot of T numbers. Just picking -1, -2, -3,... requires the least imagination and research at this time, and gives a warm feeling of never interfering with 3GPP numbers. I'd then change this logging and the osmo_tdef_vty to the alternate representation, like '# timer X3 default' vs. '# timer T3 default'; prohibit '# timer T-3'. -- To view, visit https://gerrit.osmocom.org/12988 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3a59457623da9309fbbda235fe18fadd1636bff6 Gerrit-Change-Number: 12988 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-CC: Harald Welte Gerrit-Comment-Date: Mon, 25 Feb 2019 02:19:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 02:24:58 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 25 Feb 2019 02:24:58 +0000 Subject: Change in libosmocore[master]: enlarge gsm0808 msgb headroom In-Reply-To: References: Message-ID: Hello daniel, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/13004 to look at the new patch set (#2). Change subject: enlarge gsm0808 msgb headroom ...................................................................... enlarge gsm0808 msgb headroom It should be large enough to prepend a struct osmo_scu_prim to pass down an SCCP stack (see libosmo-sccp). 264 should suffice, but pick the next larger power-of-two instead. In osmo-msc, I would like to prepend an osmo_prim to the msgb created by gsm0808 API, but turns out the headroom is too small: msgb(0x61700001b660): Not enough headroom msgb_push (126 < 264) Instead of always copying a msgb that has just that instant been created, it makes more sense to allocate sufficient headroom in the first place. Change-Id: I95729991eb49555f8bba60c5dc916131b03b6cf2 --- M include/osmocom/gsm/gsm0808.h 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/04/13004/2 -- To view, visit https://gerrit.osmocom.org/13004 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I95729991eb49555f8bba60c5dc916131b03b6cf2 Gerrit-Change-Number: 13004 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: daniel Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 02:27:16 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 25 Feb 2019 02:27:16 +0000 Subject: Change in libosmocore[master]: log: fsm: allow logging the timeout on state change In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/12987 ) Change subject: log: fsm: allow logging the timeout on state change ...................................................................... Patch Set 2: sorry about that change-id reference to osmo-msc, it was an accidental leftover, since I changed this patch and forgot to adjust the commit log. The osmo-msc changes were only necessary because I unconditionally changed the logging in the first patch version; now I decided to use a flag that is disabled by default instead. Correct log message now. -- To view, visit https://gerrit.osmocom.org/12987 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I089b81021a1a4ada1205261470da032b82d57872 Gerrit-Change-Number: 12987 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Mon, 25 Feb 2019 02:27:16 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 03:00:51 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 25 Feb 2019 03:00:51 +0000 Subject: Change in libosmocore[master]: log: fsm: allow logging the timeout on state change In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/12987 ) Change subject: log: fsm: allow logging the timeout on state change ...................................................................... Patch Set 2: Code-Review+2 re-adding previous +3 -- To view, visit https://gerrit.osmocom.org/12987 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I089b81021a1a4ada1205261470da032b82d57872 Gerrit-Change-Number: 12987 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Mon, 25 Feb 2019 03:00:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 03:24:54 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Mon, 25 Feb 2019 03:24:54 +0000 Subject: Change in osmo-gsm-tester[master]: nitb_netreg_mass: Add code to declare a run successful/failure In-Reply-To: References: Message-ID: Hello Pau Espin Pedrol, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/13029 to look at the new patch set (#2). Change subject: nitb_netreg_mass: Add code to declare a run successful/failure ...................................................................... nitb_netreg_mass: Add code to declare a run successful/failure Change-Id: I49a821e8e4656466259e519ef901726cbb76ef86 --- M src/osmo_gsm_tester/ms_driver.py M src/osmo_ms_driver/location_update_test.py M suites/nitb_netreg_mass/register_default_mass.py 3 files changed, 69 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/29/13029/2 -- To view, visit https://gerrit.osmocom.org/13029 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I49a821e8e4656466259e519ef901726cbb76ef86 Gerrit-Change-Number: 13029 Gerrit-PatchSet: 2 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 03:28:08 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Mon, 25 Feb 2019 03:28:08 +0000 Subject: Change in osmo-gsm-tester[master]: nitb_netreg_mass: Add code to declare a run successful/failure In-Reply-To: References: Message-ID: Holger Freyther has posted comments on this change. ( https://gerrit.osmocom.org/13029 ) Change subject: nitb_netreg_mass: Add code to declare a run successful/failure ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/13029/1/suites/nitb_netreg_mass/register_default_mass.py File suites/nitb_netreg_mass/register_default_mass.py: https://gerrit.osmocom.org/#/c/13029/1/suites/nitb_netreg_mass/register_default_mass.py at 48 PS1, Line 48: if not result.has_lu_time(): > do we really need "count"? It's just len(ms_driver. [?] Sure. Good idea. I will store the result in a temp to avoid having to assume that two calls return the same data. -- To view, visit https://gerrit.osmocom.org/13029 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I49a821e8e4656466259e519ef901726cbb76ef86 Gerrit-Change-Number: 13029 Gerrit-PatchSet: 2 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Feb 2019 03:28:08 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Mon Feb 25 09:46:03 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Mon, 25 Feb 2019 09:46:03 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-trx_=C2=BB_--wit?= =?UTF-8?Q?h-sse,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#904?= In-Reply-To: <1708930441.438.1551017915143.JavaMail.jenkins@jenkins.osmocom.org> References: <1708930441.438.1551017915143.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1692247262.454.1551087963514.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Mon Feb 25 10:49:48 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Mon, 25 Feb 2019 10:49:48 +0000 Subject: Change in osmo-gsm-tester[master]: ms_driver: Rename method to hopefully be more clear In-Reply-To: References: Message-ID: Holger Freyther has submitted this change and it was merged. ( https://gerrit.osmocom.org/13028 ) Change subject: ms_driver: Rename method to hopefully be more clear ...................................................................... ms_driver: Rename method to hopefully be more clear This is finding min/max in a dataset. Call it like this and update the caller. Change-Id: Ic7f5cd34639f897e460ca1edcb4f9b6df44683e9 --- M src/osmo_ms_driver/location_update_test.py 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, approved diff --git a/src/osmo_ms_driver/location_update_test.py b/src/osmo_ms_driver/location_update_test.py index 90e405e..8500607 100644 --- a/src/osmo_ms_driver/location_update_test.py +++ b/src/osmo_ms_driver/location_update_test.py @@ -198,7 +198,7 @@ def all_completed(self): return self._outstanding == 0 - def results_min_max(self, results): + def find_min_max(self, results): min_value = max_value = None for result in results: if min_value is None or result.lu_delay() < min_value: @@ -209,7 +209,7 @@ def print_stats(self): all_completed = self.all_completed() - min_value, max_value = self.results_min_max(filter(lambda x: x.has_lu_time(), self._results.values())) + min_value, max_value = self.find_min_max(filter(lambda x: x.has_lu_time(), self._results.values())) self.log("Tests done", all_completed=all_completed, min=min_value, max=max_value) -- To view, visit https://gerrit.osmocom.org/13028 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic7f5cd34639f897e460ca1edcb4f9b6df44683e9 Gerrit-Change-Number: 13028 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 11:12:41 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 25 Feb 2019 11:12:41 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: use activate.info.s15_s0 for ASS. COMPL. Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/13039 Change subject: assignment_fsm: use activate.info.s15_s0 for ASS. COMPL. ...................................................................... assignment_fsm: use activate.info.s15_s0 for ASS. COMPL. When the ASSIGNMENT COMPLETE message is composed, lchan->ch_mode_rate.s15_s0 is used to fill in the S15-S0 which are returned to the MSC. This is not correct since the assignment process may involve multiple lchans, so that at the point where the ASSIGNMENT COMPLETE is generate, the stored S15-S0 may be lost already because the lchan has changed. To provent this, we must use lchan->activate.info.s15_s0, which is retained throught lchan changes. Change-Id: I9a7b3ce8646d641569eac24e202f44cdb5f67b3d Related: OS#3503 --- M src/osmo-bsc/assignment_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/39/13039/1 diff --git a/src/osmo-bsc/assignment_fsm.c b/src/osmo-bsc/assignment_fsm.c index 67937d6..aa696ac 100644 --- a/src/osmo-bsc/assignment_fsm.c +++ b/src/osmo-bsc/assignment_fsm.c @@ -170,7 +170,7 @@ if (gscon_is_aoip(conn)) { /* Extrapolate speech codec from speech mode */ gsm0808_speech_codec_from_chan_type(&sc, perm_spch); - sc.cfg = conn->lchan->ch_mode_rate.s15_s0; + sc.cfg = conn->lchan->activate.info.s15_s0; sc_ptr = ≻ } } -- To view, visit https://gerrit.osmocom.org/13039 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I9a7b3ce8646d641569eac24e202f44cdb5f67b3d Gerrit-Change-Number: 13039 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 12:13:34 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Mon, 25 Feb 2019 12:13:34 +0000 Subject: Change in osmo-gsm-tester[master]: nitb_netreg_mass: Add code to declare a run successful/failure In-Reply-To: References: Message-ID: Hello Pau Espin Pedrol, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/13029 to look at the new patch set (#3). Change subject: nitb_netreg_mass: Add code to declare a run successful/failure ...................................................................... nitb_netreg_mass: Add code to declare a run successful/failure Change-Id: I49a821e8e4656466259e519ef901726cbb76ef86 --- M src/osmo_gsm_tester/ms_driver.py M src/osmo_ms_driver/location_update_test.py M suites/nitb_netreg_mass/register_default_mass.py 3 files changed, 71 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/29/13029/3 -- To view, visit https://gerrit.osmocom.org/13029 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I49a821e8e4656466259e519ef901726cbb76ef86 Gerrit-Change-Number: 13029 Gerrit-PatchSet: 3 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 12:13:35 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Mon, 25 Feb 2019 12:13:35 +0000 Subject: Change in osmo-gsm-tester[master]: ms_driver: Move Subscriber into the ms_driver from gsm_tester Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/13040 Change subject: ms_driver: Move Subscriber into the ms_driver from gsm_tester ...................................................................... ms_driver: Move Subscriber into the ms_driver from gsm_tester Move the Subscriber in preparation from a "pull" to a "push" model for subscribers. Change-Id: Ia2fdf0232560f7cce3a88de174a4870872c29812 --- M src/osmo_gsm_tester/ms_driver.py M src/osmo_ms_driver/starter.py 2 files changed, 25 insertions(+), 24 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/40/13040/1 diff --git a/src/osmo_gsm_tester/ms_driver.py b/src/osmo_gsm_tester/ms_driver.py index e8e543c..fc1bee3 100644 --- a/src/osmo_gsm_tester/ms_driver.py +++ b/src/osmo_gsm_tester/ms_driver.py @@ -21,35 +21,12 @@ from osmo_ms_driver.event_server import EventServer from osmo_ms_driver.simple_loop import SimpleLoop from osmo_ms_driver.location_update_test import MassUpdateLocationTest -from osmo_ms_driver.starter import BinaryOptions +from osmo_ms_driver.starter import BinaryOptions, Subscriber import os.path import shutil import tempfile -class Subscriber(log.Origin): - def __init__(self, imsi, ki): - super().__init__(log.C_RUN, 'subscriber') - self._imsi = imsi - self._ki = ki - self._auth_algo = "comp128v1" - self._msisdn = None - - def msisdn(self): - return self._msisdn - - def set_msisdn(self, msisdn): - self._msisdn = msisdn - - def imsi(self): - return self._imsi - - def ki(self): - return self._ki - - def auth_algo(self): - return self._auth_algo - class MsDriver(log.Origin): def __init__(self, suite_run): diff --git a/src/osmo_ms_driver/starter.py b/src/osmo_ms_driver/starter.py index dd3aac5..7710766 100644 --- a/src/osmo_ms_driver/starter.py +++ b/src/osmo_ms_driver/starter.py @@ -25,6 +25,30 @@ BinaryOptions = collections.namedtuple("BinaryOptions", ["virtphy", "mobile", "env"]) +class Subscriber(log.Origin): + def __init__(self, imsi, ki): + super().__init__(log.C_RUN, 'subscriber') + self._imsi = imsi + self._ki = ki + self._auth_algo = "comp128v1" + self._msisdn = None + + def msisdn(self): + return self._msisdn + + def set_msisdn(self, msisdn): + self._msisdn = msisdn + + def imsi(self): + return self._imsi + + def ki(self): + return self._ki + + def auth_algo(self): + return self._auth_algo + + class Launcher(log.Origin): def __init__(self, binary, env, base_name, name_number, tmp_dir): super().__init__(log.C_RUN, "{}/{}".format(base_name, name_number)) -- To view, visit https://gerrit.osmocom.org/13040 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ia2fdf0232560f7cce3a88de174a4870872c29812 Gerrit-Change-Number: 13040 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 12:13:36 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Mon, 25 Feb 2019 12:13:36 +0000 Subject: Change in osmo-gsm-tester[master]: resource: Add a mobile resource for the virtual test Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/13041 Change subject: resource: Add a mobile resource for the virtual test ...................................................................... resource: Add a mobile resource for the virtual test Add a new resource and make a reservation in the suite. Change-Id: Ic26aa63cad62323bb85f952640672eb28af0eadc --- M example/resources.conf.virtual M src/osmo_gsm_tester/resource.py M src/osmo_gsm_tester/suite.py M suites/nitb_netreg_mass/suite.conf 4 files changed, 25 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/41/13041/1 diff --git a/example/resources.conf.virtual b/example/resources.conf.virtual index 44973a2..17d67ff 100644 --- a/example/resources.conf.virtual +++ b/example/resources.conf.virtual @@ -39,3 +39,16 @@ band: GSM-1900 - arfcn: 548 band: GSM-1900 + +mobile: + - imsi: "001010000000000" + - imsi: "001010000000001" + - imsi: "001010000000002" + - imsi: "001010000000003" + - imsi: "001010000000004" + - imsi: "001010000000005" + - imsi: "001010000000006" + - imsi: "001010000000007" + - imsi: "001010000000008" + - imsi: "001010000000009" + - imsi: "001010000000009" diff --git a/src/osmo_gsm_tester/resource.py b/src/osmo_gsm_tester/resource.py index 4f48dc4..0185e3c 100644 --- a/src/osmo_gsm_tester/resource.py +++ b/src/osmo_gsm_tester/resource.py @@ -45,7 +45,8 @@ R_ARFCN = 'arfcn' R_MODEM = 'modem' R_OSMOCON = 'osmocon_phone' -R_ALL = (R_IP_ADDRESS, R_BTS, R_ARFCN, R_MODEM, R_OSMOCON) +R_MOBILE = 'mobile' +R_ALL = (R_IP_ADDRESS, R_BTS, R_ARFCN, R_MODEM, R_OSMOCON, R_MOBILE) RESOURCES_SCHEMA = { 'ip_address[].addr': schema.IPV4, @@ -86,6 +87,7 @@ 'modem[].ciphers[]': schema.CIPHER, 'modem[].features[]': schema.MODEM_FEATURE, 'osmocon_phone[].serial_device': schema.STR, + 'mobile[].imsi': schema.STR, } WANT_SCHEMA = util.dict_add( diff --git a/src/osmo_gsm_tester/suite.py b/src/osmo_gsm_tester/suite.py index e5ac9a8..71e7c04 100644 --- a/src/osmo_gsm_tester/suite.py +++ b/src/osmo_gsm_tester/suite.py @@ -17,6 +17,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +import collections import os import sys import time @@ -25,6 +26,8 @@ from .event_loop import MainLoop from . import osmo_nitb, osmo_hlr, osmo_mgcpgw, osmo_mgw, osmo_msc, osmo_bsc, osmo_stp, osmo_ggsn, osmo_sgsn, modem, esme, osmocon, ms_driver, iperf3 +Mobile = collections.namedtuple("Mobile", ["imsi"]) + class Timeout(Exception): pass @@ -316,6 +319,10 @@ self.register_for_cleanup(ms) return ms + def mobile(self): + mobile_cfg = self.reserved_resources.get(resource.R_MOBILE) + return Mobile(mobile_cfg['imsi']) + def bts(self, specifics=None): bts = bts_obj(self, self.reserved_resources.get(resource.R_BTS, specifics=specifics)) bts.set_lac(self.lac()) diff --git a/suites/nitb_netreg_mass/suite.conf b/suites/nitb_netreg_mass/suite.conf index 94ec603..4b16da2 100644 --- a/suites/nitb_netreg_mass/suite.conf +++ b/suites/nitb_netreg_mass/suite.conf @@ -3,6 +3,8 @@ - times: 1 bts: - type: osmo-bts-virtual + mobile: + - times: 10 defaults: timeout: 40s -- To view, visit https://gerrit.osmocom.org/13041 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic26aa63cad62323bb85f952640672eb28af0eadc Gerrit-Change-Number: 13041 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 12:13:36 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Mon, 25 Feb 2019 12:13:36 +0000 Subject: Change in osmo-gsm-tester[master]: nitb_netreg_mass: Allow to define subscribers from the outside Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/13042 Change subject: nitb_netreg_mass: Allow to define subscribers from the outside ...................................................................... nitb_netreg_mass: Allow to define subscribers from the outside Remove hardcoded configuration and replace it with a reservation in the suite. In the future this can be used to specify MSISDN and KI as well. We can now scale the subscriber count to something beyond one can easily test by hand. Change-Id: Ic9fd560c2924731e4fd6eea5aaf3ad565cb4ef52 --- M src/osmo_gsm_tester/ms_driver.py M src/osmo_gsm_tester/suite.py M src/osmo_ms_driver/__main__.py M src/osmo_ms_driver/location_update_test.py M src/osmo_ms_driver/starter.py M suites/nitb_netreg_mass/register_default_mass.py 6 files changed, 77 insertions(+), 51 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/42/13042/1 diff --git a/src/osmo_gsm_tester/ms_driver.py b/src/osmo_gsm_tester/ms_driver.py index 6292d7d..c7f2540 100644 --- a/src/osmo_gsm_tester/ms_driver.py +++ b/src/osmo_gsm_tester/ms_driver.py @@ -21,7 +21,7 @@ from osmo_ms_driver.event_server import EventServer from osmo_ms_driver.simple_loop import SimpleLoop from osmo_ms_driver.location_update_test import MassUpdateLocationTest -from osmo_ms_driver.starter import BinaryOptions, Subscriber +from osmo_ms_driver.starter import BinaryOptions import os.path import shutil @@ -34,7 +34,6 @@ self._suite_run = suite_run # TODO: take config out of the test scenario - self._num_ms = 10 self._time_start = timedelta(seconds=60) self._time_step = timedelta(milliseconds=100) self._test_duration = timedelta(seconds=120) @@ -42,6 +41,7 @@ self._loop = SimpleLoop() self._test_case = None self.event_server_sk_tmp_dir = None + self._subscribers = [] if len(self.event_server_path().encode()) > 107: raise log.Error('Path for event_server socket is longer than max allowed len for unix socket path (107):', self.event_server_path()) @@ -78,6 +78,10 @@ mobile = check_and_return_binary('mobile') return BinaryOptions(virtphy, mobile, env) + def subscriber_add(self, subscriber): + """Adds a subscriber to the list of subscribers.""" + self._subscribers.append(subscriber) + def configure(self): """ Configures the subscribers, tests and registration server. Needs to be @@ -88,24 +92,14 @@ self._ev_server = EventServer("ev_server", event_server_path) self._ev_server.listen(self._loop) options = self.build_binary_options() - self._test_case = MassUpdateLocationTest("mass", options, self._num_ms, self._cdf, + self._test_case = MassUpdateLocationTest("mass", options, self._cdf, self._ev_server, util.Dir(self.event_server_sk_tmp_dir), suite_run=self._suite_run) - # TODO: We should pass subscribers down to the test and not get it from - # there. - self._subs = [Subscriber(imsi=mob.imsi(), ki=mob.ki()) for mob in self._test_case.mobiles()] - - - def ms_subscribers(self): - """ - Returns a list of 'subscribers' that were configured in the - current scenario. - """ - if not hasattr(self, '_subs'): - self.configure() - return self._subs + for sub in self._subscribers: + self._test_case.subscriber_add(sub) + self._configured = True def run_test(self): """ @@ -113,7 +107,7 @@ devices according to their schedule. Returns once all tests succeeded or the configured timeout has passed. """ - if not hasattr(self, '_subs'): + if not hasattr(self, '_configured'): self.configure() self._test_case.run_test(self._loop, self._test_duration) diff --git a/src/osmo_gsm_tester/suite.py b/src/osmo_gsm_tester/suite.py index 71e7c04..14a205d 100644 --- a/src/osmo_gsm_tester/suite.py +++ b/src/osmo_gsm_tester/suite.py @@ -25,8 +25,7 @@ from . import config, log, util, resource, test from .event_loop import MainLoop from . import osmo_nitb, osmo_hlr, osmo_mgcpgw, osmo_mgw, osmo_msc, osmo_bsc, osmo_stp, osmo_ggsn, osmo_sgsn, modem, esme, osmocon, ms_driver, iperf3 - -Mobile = collections.namedtuple("Mobile", ["imsi"]) +from osmo_ms_driver.starter import Subscriber class Timeout(Exception): pass @@ -321,7 +320,18 @@ def mobile(self): mobile_cfg = self.reserved_resources.get(resource.R_MOBILE) - return Mobile(mobile_cfg['imsi']) + # TODO(zecke): Pick a random KI and convert to hex. + return Subscriber(mobile_cfg['imsi'], + "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00") + + def all_mobiles(self): + """Returns all mobiles reserved.""" + mobiles = [] + while True: + try: + mobiles.append(self.mobile()) + except resource.NoResourceExn: + return mobiles def bts(self, specifics=None): bts = bts_obj(self, self.reserved_resources.get(resource.R_BTS, specifics=specifics)) diff --git a/src/osmo_ms_driver/__main__.py b/src/osmo_ms_driver/__main__.py index 7e1afa8..bbade48 100644 --- a/src/osmo_ms_driver/__main__.py +++ b/src/osmo_ms_driver/__main__.py @@ -20,7 +20,8 @@ from .simple_loop import SimpleLoop from .location_update_test import MassUpdateLocationTest from .cdf import cdfs -from .starter import BinaryOptions +from .starter import BinaryOptions, Subscriber +from .test_support import imsi_ki_gen from osmo_gsm_tester import log, util # System modules @@ -84,7 +85,14 @@ # Just a single test for now. options = BinaryOptions("virtphy", "mobile", os.environ) - test = MassUpdateLocationTest("lu_test", options, args.num_ms, cdf, ev_server, tmp_dir) + test = MassUpdateLocationTest("lu_test", options, cdf, ev_server, tmp_dir) + + # Add subscribers to the test. + imsi_gen = imsi_ki_gen() + for i in range(0, args.num_ms): + imsi, ki = next(imsi_gen) + test.subscriber_add(Subscriber(imsi, ki)) + atexit.register(test.stop_all) # Run until everything has been launched diff --git a/src/osmo_ms_driver/location_update_test.py b/src/osmo_ms_driver/location_update_test.py index f14bd28..5ff2199 100644 --- a/src/osmo_ms_driver/location_update_test.py +++ b/src/osmo_ms_driver/location_update_test.py @@ -19,7 +19,7 @@ from copy import copy from osmo_gsm_tester import log from .starter import OsmoVirtPhy, OsmoMobile -from .test_support import imsi_ki_gen, Results +from .test_support import Results from datetime import timedelta @@ -62,42 +62,53 @@ TEMPLATE_LUA = "osmo-mobile-lu.lua" TEMPLATE_CFG = "osmo-mobile.cfg" - def __init__(self, name, options, number_of_ms, cdf_function, + def __init__(self, name, options, cdf_function, event_server, tmp_dir, suite_run=None): super().__init__(log.C_RUN, name) self._binary_options = options - self._number_of_ms = number_of_ms self._cdf = cdf_function - self._cdf.set_target(number_of_ms) self._suite_run = suite_run + self._tmp_dir = tmp_dir self._unstarted = [] self._mobiles = [] self._phys = [] self._results = {} - imsi_gen = imsi_ki_gen() - self._outstanding = number_of_ms - for i in range(0, number_of_ms): - ms_name = "%.5d" % i - - phy = OsmoVirtPhy(options.virtphy, options.env, - ms_name, tmp_dir) - self._phys.append(phy) - - launcher = OsmoMobile(options.mobile, options.env, - ms_name, tmp_dir, self.TEMPLATE_LUA, - self.TEMPLATE_CFG, imsi_gen, - phy.phy_filename(), - event_server.server_path()) - self._results[ms_name] = LUResult(ms_name) - self._mobiles.append(launcher) self._event_server = event_server self._event_server.register(self.handle_msg) - self._unstarted = copy(self._mobiles) self._started = [] + self._subscribers = [] - def mobiles(self): - return self._mobiles + def subscriber_add(self, subscriber): + """ + Adds a subscriber to the list of subscribers. + + Must be called before starting the testcase. + """ + self._subscribers.append(subscriber) + + def configure_tasks(self): + """Sets up the test run.""" + + self._cdf.set_target(len(self._subscribers)) + self._outstanding = len(self._subscribers) + for i in range(0, self._outstanding): + ms_name = "%.5d" % i + + phy = OsmoVirtPhy(self._binary_options.virtphy, + self._binary_options.env, + ms_name, self._tmp_dir) + self._phys.append(phy) + + launcher = OsmoMobile(self._binary_options.mobile, + self._binary_options.env, + ms_name, self._tmp_dir, self.TEMPLATE_LUA, + self.TEMPLATE_CFG, self._subscribers[i], + phy.phy_filename(), + self._event_server.server_path()) + self._results[ms_name] = LUResult(ms_name) + self._mobiles.append(launcher) + self._unstarted = copy(self._mobiles) def pre_launch(self, loop): """ @@ -117,6 +128,7 @@ def prepare(self, loop): self.log("Starting testcase") + self.configure_tasks() self.pre_launch(loop) self._start_time = time.clock_gettime(time.CLOCK_MONOTONIC) @@ -223,7 +235,7 @@ """ Returns a statistical summary of the test. """ - attempted = self._number_of_ms + attempted = len(self._subscribers) completed = attempted - self._outstanding min_latency, max_latency = self.find_min_max(filter(lambda x: x.has_lu_time(), self._results.values())) return LUStats(attempted, completed, min_latency, max_latency) diff --git a/src/osmo_ms_driver/starter.py b/src/osmo_ms_driver/starter.py index 7710766..bc8548f 100644 --- a/src/osmo_ms_driver/starter.py +++ b/src/osmo_ms_driver/starter.py @@ -93,14 +93,14 @@ self._vphy_proc.terminate() class OsmoMobile(Launcher): - def __init__(self, binary, env, name_number, tmp_dir, lua_tmpl, cfg_tmpl, imsi_ki_generator, phy_filename, ev_server_path): + def __init__(self, binary, env, name_number, tmp_dir, lua_tmpl, cfg_tmpl, subscriber, phy_filename, ev_server_path): super().__init__(binary, env, "osmo-ms-mob", name_number, tmp_dir) self._lua_template = lua_tmpl self._cfg_template = cfg_tmpl - self._imsi_ki_generator = imsi_ki_generator self._phy_filename = phy_filename self._ev_server_path = ev_server_path - self._imsi, self._ki = next(self._imsi_ki_generator) + self._imsi = subscriber.imsi() + self._ki = subscriber.ki() self._omob_proc = None def imsi(self): diff --git a/suites/nitb_netreg_mass/register_default_mass.py b/suites/nitb_netreg_mass/register_default_mass.py index 9772197..cec8c65 100644 --- a/suites/nitb_netreg_mass/register_default_mass.py +++ b/suites/nitb_netreg_mass/register_default_mass.py @@ -10,6 +10,7 @@ nitb = suite.nitb() bts = suite.bts() ms_driver = suite.ms_driver() +mobiles = suite.all_mobiles() print('Launching a simple network') nitb.bts_add(bts) @@ -18,8 +19,9 @@ wait(nitb.bts_is_connected, bts) # Configure all MS that the MS driver knows about. -for ms in ms_driver.ms_subscribers(): - nitb.subscriber_add(ms) +for mobile in mobiles: + nitb.subscriber_add(mobile) + ms_driver.subscriber_add(mobile) # Run the base test. ms_driver.run_test() -- To view, visit https://gerrit.osmocom.org/13042 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic9fd560c2924731e4fd6eea5aaf3ad565cb4ef52 Gerrit-Change-Number: 13042 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 12:32:24 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 25 Feb 2019 12:32:24 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: use activate.info.s15_s0 for ASS. COMPL. In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/13039 ) Change subject: assignment_fsm: use activate.info.s15_s0 for ASS. COMPL. ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/13039/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/13039/1//COMMIT_MSG at 14 PS1, Line 14: lchan has changed. To provent this, we must use typo: prevent -- To view, visit https://gerrit.osmocom.org/13039 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9a7b3ce8646d641569eac24e202f44cdb5f67b3d Gerrit-Change-Number: 13039 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max Gerrit-Comment-Date: Mon, 25 Feb 2019 12:32:24 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 12:34:42 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 25 Feb 2019 12:34:42 +0000 Subject: Change in libosmocore[master]: GPRS: Doxygen documentation for 'struct libgb_msgb_cb' In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/13022 ) Change subject: GPRS: Doxygen documentation for 'struct libgb_msgb_cb' ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13022 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4144506feee74a8219bd3736087c30cc6323ec1d Gerrit-Change-Number: 13022 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Feb 2019 12:34:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 12:35:45 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 25 Feb 2019 12:35:45 +0000 Subject: Change in libosmocore[master]: NS: Factor out gprs_nsvc_start_test() and use it In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/13023 ) Change subject: NS: Factor out gprs_nsvc_start_test() and use it ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/13023/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/13023/1//COMMIT_MSG at 13 PS1, Line 13: of bytes sent) would actually propagate up all thw ay to type: the way -- To view, visit https://gerrit.osmocom.org/13023 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4d303117f77fabb74bbb91887b9914a81c2a084a Gerrit-Change-Number: 13023 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Feb 2019 12:35:45 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 12:36:22 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 25 Feb 2019 12:36:22 +0000 Subject: Change in libosmocore[master]: NS: Add missing NS Cause strings In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/13021 ) Change subject: NS: Add missing NS Cause strings ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13021 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I419ccc482d99b01263a60aede83dacd2d9de56ab Gerrit-Change-Number: 13021 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Feb 2019 12:36:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 12:36:48 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 25 Feb 2019 12:36:48 +0000 Subject: Change in libosmocore[master]: NS: Don't print information about FR/GRE if not enabled! In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/13020 ) Change subject: NS: Don't print information about FR/GRE if not enabled! ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13020 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9209ee4ba5ebfc4f96b4c1d42840e1906455bae7 Gerrit-Change-Number: 13020 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Feb 2019 12:36:48 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 12:37:48 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 25 Feb 2019 12:37:48 +0000 Subject: Change in libosmocore[master]: vty/tdef_vty.c: drop redundant comparison In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/13019 ) Change subject: vty/tdef_vty.c: drop redundant comparison ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13019 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ice59d1a46c2080cd02060e3410706c502db4ce0b Gerrit-Change-Number: 13019 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Feb 2019 12:37:48 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 12:37:58 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Mon, 25 Feb 2019 12:37:58 +0000 Subject: Change in osmo-gsm-tester[master]: nitb_netreg_mass: Add code to declare a run successful/failure In-Reply-To: References: Message-ID: Hello Pau Espin Pedrol, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/13029 to look at the new patch set (#4). Change subject: nitb_netreg_mass: Add code to declare a run successful/failure ...................................................................... nitb_netreg_mass: Add code to declare a run successful/failure Change-Id: I49a821e8e4656466259e519ef901726cbb76ef86 --- M src/osmo_gsm_tester/ms_driver.py M src/osmo_ms_driver/location_update_test.py M suites/nitb_netreg_mass/register_default_mass.py 3 files changed, 71 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/29/13029/4 -- To view, visit https://gerrit.osmocom.org/13029 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I49a821e8e4656466259e519ef901726cbb76ef86 Gerrit-Change-Number: 13029 Gerrit-PatchSet: 4 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 12:38:20 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 25 Feb 2019 12:38:20 +0000 Subject: Change in osmo-msc[master]: libmsc/sgs_iface.c: fix SGS_STATE_NS11 counter reference In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/13016 ) Change subject: libmsc/sgs_iface.c: fix SGS_STATE_NS11 counter reference ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13016 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifbb1a37e644ae8bf8e7959f6f6cd6403ac1f2f1b Gerrit-Change-Number: 13016 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Feb 2019 12:38:20 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 12:48:01 2019 From: gerrit-no-reply at lists.osmocom.org (daniel) Date: Mon, 25 Feb 2019 12:48:01 +0000 Subject: Change in libosmocore[master]: enlarge gsm0808 msgb headroom In-Reply-To: References: Message-ID: daniel has posted comments on this change. ( https://gerrit.osmocom.org/13004 ) Change subject: enlarge gsm0808 msgb headroom ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/13004 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I95729991eb49555f8bba60c5dc916131b03b6cf2 Gerrit-Change-Number: 13004 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: daniel Gerrit-CC: Harald Welte Gerrit-Comment-Date: Mon, 25 Feb 2019 12:48:01 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 12:48:37 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 25 Feb 2019 12:48:37 +0000 Subject: Change in libosmocore[master]: NS: Add support for GPRS NS IP Sub-Network-Service (SNS) In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/13014 ) Change subject: NS: Add support for GPRS NS IP Sub-Network-Service (SNS) ...................................................................... Patch Set 3: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/13014 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I84786c3b43a8ae34ef3b3ba84b33c90042d234ea Gerrit-Change-Number: 13014 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Mon, 25 Feb 2019 12:48:37 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 12:48:59 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 25 Feb 2019 12:48:59 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Change PCU-side port to 22000 In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/13026 ) Change subject: PCU: Change PCU-side port to 22000 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/13026 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0e98877db8f0300a98f7694744a063c1143b89f3 Gerrit-Change-Number: 13026 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Mon, 25 Feb 2019 12:48:59 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 12:57:02 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 25 Feb 2019 12:57:02 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: use activate.info.s15_s0 for ASS. COMPL. In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/13039 to look at the new patch set (#2). Change subject: assignment_fsm: use activate.info.s15_s0 for ASS. COMPL. ...................................................................... assignment_fsm: use activate.info.s15_s0 for ASS. COMPL. When the ASSIGNMENT COMPLETE message is composed, lchan->ch_mode_rate.s15_s0 is used to fill in the S15-S0 which are returned to the MSC. This is not correct since the assignment process may involve multiple lchans, so that at the point where the ASSIGNMENT COMPLETE is generate, the stored S15-S0 may be lost already because the lchan has changed. To prevent this, we must use lchan->activate.info.s15_s0, which is retained throught lchan changes. Change-Id: I9a7b3ce8646d641569eac24e202f44cdb5f67b3d Related: OS#3503 --- M src/osmo-bsc/assignment_fsm.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/39/13039/2 -- To view, visit https://gerrit.osmocom.org/13039 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I9a7b3ce8646d641569eac24e202f44cdb5f67b3d Gerrit-Change-Number: 13039 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 13:01:04 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 25 Feb 2019 13:01:04 +0000 Subject: Change in libosmocore[master]: gprs_ns: Add code for SNS-SIZE and SNS-CONFIG encoding In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/13013 ) Change subject: gprs_ns: Add code for SNS-SIZE and SNS-CONFIG encoding ...................................................................... Patch Set 3: (2 comments) Spec reference confusion should be clarified. https://gerrit.osmocom.org/#/c/13013/3/src/gb/gprs_ns.c File src/gb/gprs_ns.c: https://gerrit.osmocom.org/#/c/13013/3/src/gb/gprs_ns.c at 3 PS3, Line 3: * 3GPP TS 08.16 version 8.0.1 Release 1999 / ETSI TS 101 299 V8.0.1 (2002-05). */ We should add TS 48.016 spec reference as well. https://gerrit.osmocom.org/#/c/13013/3/src/gb/gprs_ns.c at 760 PS3, Line 760: /*! Encode + Transmit a SNS-ACK as per Section 9.3.1. There's no such section in 08.16 which is referred to in the header. It's in 48.016. -- To view, visit https://gerrit.osmocom.org/13013 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5c47e1c3c10deb89a7470ee2c03adfc174accc93 Gerrit-Change-Number: 13013 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max Gerrit-Comment-Date: Mon, 25 Feb 2019 13:01:04 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 13:02:48 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 25 Feb 2019 13:02:48 +0000 Subject: Change in osmo-gsm-manuals[master]: chapters/gsup.adoc: move IMEI IEs to right place In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/13007 ) Change subject: chapters/gsup.adoc: move IMEI IEs to right place ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13007 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6fd66419350e018a763b8fac3daf567b339a2637 Gerrit-Change-Number: 13007 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Mon, 25 Feb 2019 13:02:48 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 13:03:13 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 25 Feb 2019 13:03:13 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: use activate.info.s15_s0 for ASS. COMPL. In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/13039 ) Change subject: assignment_fsm: use activate.info.s15_s0 for ASS. COMPL. ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/13039 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9a7b3ce8646d641569eac24e202f44cdb5f67b3d Gerrit-Change-Number: 13039 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Mon, 25 Feb 2019 13:03:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 13:43:35 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Feb 2019 13:43:35 +0000 Subject: Change in osmo-gsm-manuals[master]: chapters/gsup.adoc: move IMEI IEs to right place In-Reply-To: References: Message-ID: osmith has submitted this change and it was merged. ( https://gerrit.osmocom.org/13007 ) Change subject: chapters/gsup.adoc: move IMEI IEs to right place ...................................................................... chapters/gsup.adoc: move IMEI IEs to right place Move the "IMEI" and "IMEI Check Result" IEs from the "Session (transaction) management" chapter (which describes session IEs) to the "Information Elements" chapter. Add a comment to prevent this mistake in the future. Related: OS#2541 Change-Id: I6fd66419350e018a763b8fac3daf567b339a2637 --- M common/chapters/gsup.adoc 1 file changed, 23 insertions(+), 18 deletions(-) Approvals: Jenkins Builder: Verified Daniel Willmann: Looks good to me, but someone else must approve Max: Looks good to me, approved diff --git a/common/chapters/gsup.adoc b/common/chapters/gsup.adoc index 7a16e64..1fd0bb6 100644 --- a/common/chapters/gsup.adoc +++ b/common/chapters/gsup.adoc @@ -1173,6 +1173,25 @@ and <> IEs. It is used to carry the payload of Supplementary Services encoded according to GSM TS 04.80. +[[gsup-ie-imei]] +==== IMEI + +The IMEI encoded as Called Party BCD Number in 3GPP TS 04.08. + +[[gsup-ie-imei-result]] +==== IMEI Check Result + +Result of the Check IMEI request. A NACK could be sent in theory, if the ME is +not permitted on the network (e.g. because it is on a blacklist). + +.IMEI Check Result +[options="header",cols="10%,90%"] +|=== +|Type|Description +|0x01|ACK +|0x02|NACK +|=== + === Session (transaction) management Unlike TCAP/MAP, GSUP is just a transport layer without the @@ -1316,21 +1335,7 @@ |0x02|Memory Available |=== -[[gsup-ie-imei]] -==== IMEI - -The IMEI encoded as Called Party BCD Number in 3GPP TS 04.08. - -[[gsup-ie-imei-result]] -==== IMEI Check Result - -Result of the Check IMEI request. A NACK could be sent in theory, if the ME is -not permitted on the network (e.g. because it is on a blacklist). - -.IMEI Check Result -[options="header",cols="10%,90%"] -|=== -|Type|Description -|0x01|ACK -|0x02|NACK -|=== +//// +End of "Session (transaction) management" IEs chapter. Remember to place +unrelated IEs at the end of the "Information Elements" chapter, not here! +//// -- To view, visit https://gerrit.osmocom.org/13007 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-manuals Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I6fd66419350e018a763b8fac3daf567b339a2637 Gerrit-Change-Number: 13007 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 14:06:09 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Mon, 25 Feb 2019 14:06:09 +0000 Subject: Change in osmo-msc[master]: debian: depend on libdbd-sqlite3 Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/13043 Change subject: debian: depend on libdbd-sqlite3 ...................................................................... debian: depend on libdbd-sqlite3 Make sure that we don't fail at startup with: <0009> db.c:621 Failed to create database connection to sqlite3 db 'sms.db'; Is the sqlite3 database driver for libdbi installed on this system? Tested by building the Debian package and looking at its depends. Related: OS#3771 Change-Id: I7c099212a6ad7d87978c3dce63ce7385d8076bd1 --- M debian/control 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/43/13043/1 diff --git a/debian/control b/debian/control index f6e8ace..f4cd95e 100644 --- a/debian/control +++ b/debian/control @@ -30,7 +30,7 @@ Package: osmo-msc Architecture: any Multi-Arch: foreign -Depends: ${misc:Depends}, ${shlibs:Depends} +Depends: ${misc:Depends}, ${shlibs:Depends}, libdbd-sqlite3 Description: OsmoMSC: Osmocom's Mobile Switching Center for 2G and 3G circuit-switched mobile networks The Mobile Switching Center (MSC) is the heart of 2G/3G circuit-switched services. It terminates the A-interface links from the -- To view, visit https://gerrit.osmocom.org/13043 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I7c099212a6ad7d87978c3dce63ce7385d8076bd1 Gerrit-Change-Number: 13043 Gerrit-PatchSet: 1 Gerrit-Owner: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 14:06:45 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 25 Feb 2019 14:06:45 +0000 Subject: Change in osmo-mgw[master]: Add option to GSM HR frames to RFC5593 representation In-Reply-To: References: Message-ID: Hello tnt, Pau Espin Pedrol, Daniel Willmann, Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12979 to look at the new patch set (#4). Change subject: Add option to GSM HR frames to RFC5593 representation ...................................................................... Add option to GSM HR frames to RFC5593 representation There are different specifications around on how a GSM-HR frame should be encapsulated into an RTP packet. RFC5593 specifies a ToC (Table of Contents) byte to be prepended in front of the payload data. The two formats can be distinguished easily by their length. Then the data can be formatted into the corresponding opposite format and vice versa. - Add new VTY rtp-patch options - Add conversion function Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Related: OS#3807 --- M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_internal.h M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_vty.c 5 files changed, 96 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/79/12979/4 -- To view, visit https://gerrit.osmocom.org/12979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Gerrit-Change-Number: 12979 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: dexter Gerrit-Reviewer: tnt -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 14:15:52 2019 From: gerrit-no-reply at lists.osmocom.org (Daniel Willmann) Date: Mon, 25 Feb 2019 14:15:52 +0000 Subject: Change in osmo-mgw[master]: Add option to GSM HR frames to RFC5593 representation In-Reply-To: References: Message-ID: Daniel Willmann has posted comments on this change. ( https://gerrit.osmocom.org/12979 ) Change subject: Add option to GSM HR frames to RFC5593 representation ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Gerrit-Change-Number: 12979 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: dexter Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 25 Feb 2019 14:15:52 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 14:19:22 2019 From: gerrit-no-reply at lists.osmocom.org (tnt) Date: Mon, 25 Feb 2019 14:19:22 +0000 Subject: Change in osmo-mgw[master]: Add option to GSM HR frames to RFC5593 representation In-Reply-To: References: Message-ID: tnt has posted comments on this change. ( https://gerrit.osmocom.org/12979 ) Change subject: Add option to GSM HR frames to RFC5593 representation ...................................................................... Patch Set 4: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/12979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Gerrit-Change-Number: 12979 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: dexter Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 25 Feb 2019 14:19:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 14:34:17 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Mon, 25 Feb 2019 14:34:17 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RTP_Emulation: check received RTP packets In-Reply-To: References: Message-ID: Hello Daniel Willmann, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/13000 to look at the new patch set (#2). Change subject: RTP_Emulation: check received RTP packets ...................................................................... RTP_Emulation: check received RTP packets The configuration of the RTP Emulation (RtpemConfig) allows to set a fixed RTP payload that is then used when RTP packets are transmitted. However, when packets are received, then the payload is not checked. Lets check the received data against some user configurable rx payload, that is by default set to the tx payload. Change-Id: Id0b125aaf915497d0a4f051af890fc34e09da61d Related: OS#3807 --- M library/RTP_Emulation.ttcn 1 file changed, 14 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/00/13000/2 -- To view, visit https://gerrit.osmocom.org/13000 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Id0b125aaf915497d0a4f051af890fc34e09da61d Gerrit-Change-Number: 13000 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 14:41:31 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Mon, 25 Feb 2019 14:41:31 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: use activate.info.s15_s0 for ASS. COMPL. In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/13039 ) Change subject: assignment_fsm: use activate.info.s15_s0 for ASS. COMPL. ...................................................................... Patch Set 2: Code-Review-1 (1 comment) https://gerrit.osmocom.org/#/c/13039/2//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/13039/2//COMMIT_MSG at 14 PS2, Line 14: lchan has changed. To prevent this, we must use This patch seems to fix some confusion in the wrong direction. let me explain, probably repeating things you already know, bear with me plz: recap: - anything that is volatile data while the assignment is still ongoing should be in and only in conn->assignment.*. - when the assignment is complete, the conn->assignment.* data becomes invalid (might be overwritten by a subsequent possibly bogus request) and the really valid data should be copied to conn->* - with lchan->activate.* it is the same idea. Anything that is volatile data while an lchan activation is in progress should be in and only in lchan->activate.*. - When the lchan is activated, the lchan->activate.* data should be copied out to lchan->*. (Even though in this case the lchan->activate.* in practice remains valid as long as the lchan is active, I would still like this to follow the clean separation of currently used state from an incomplete activation state. The fact that it remains valid is only incidental, because an activation NACK would anyway completely break the lchan state in the current code.) - lchan->activate.* should be entirely controlled by the lchan_fsm.c code. - conn->assignment.* should be entirely controlled by the assignment_fsm.c code. - assignment_fsm.c code should not "leak" volatile state into conn->*, and even more definitely not into lchan->*. Here is what I think is currently wrong: The assignment_fsm.c stores the chosen ch_mode_rate in lchan->ch_mode_rate, even though the assignment or activation are not complete yet, which violates above ideas and confuses transitory and accepted config. So assignment_fsm_start() should not leak its state into lchan->*, but should keep a separate ch_mode_rate somewhere else, I'd say in conn->assignment.new_lchan_ch_mode_rate or so. (If it really needs to store it at all.) This ch_mode_rate should get passed to lchan activation, where lchan_fsm.c then first stores it in lchan->activate.* as transitory state, and when the activation was ACKed copies it to lchan->ch_mode_rate. That's how we ensure the lchan->* items reflect what is currently used, and transitory requests make their potential mess elsewhere. Recently I merged a related patch: http://git.osmocom.org/osmo-bsc/commit/?id=4daa21076f823b2f1aa07581befa5ed77d95aead Looking at that patch, I see now that it was also plastering across the above mistake. I shouldn't have added yet another lchan->s15_s0 field, but should have cleaned up use of lchan->ch_mode_rate, so that it becomes the definitive "this is what is used" data. Is this making sense to you? If you like I can try to hack up a patch of what I mean, let me know whether you need that. -- To view, visit https://gerrit.osmocom.org/13039 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9a7b3ce8646d641569eac24e202f44cdb5f67b3d Gerrit-Change-Number: 13039 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Mon, 25 Feb 2019 14:41:31 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 14:43:23 2019 From: gerrit-no-reply at lists.osmocom.org (Daniel Willmann) Date: Mon, 25 Feb 2019 14:43:23 +0000 Subject: Change in osmo-mgw[master]: Add option to GSM HR frames to RFC5593 representation In-Reply-To: References: Message-ID: Daniel Willmann has posted comments on this change. ( https://gerrit.osmocom.org/12979 ) Change subject: Add option to GSM HR frames to RFC5593 representation ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Gerrit-Change-Number: 12979 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: dexter Gerrit-Reviewer: tnt Gerrit-Comment-Date: Mon, 25 Feb 2019 14:43:23 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 14:48:40 2019 From: gerrit-no-reply at lists.osmocom.org (Daniel Willmann) Date: Mon, 25 Feb 2019 14:48:40 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RTP_Emulation: check received RTP packets In-Reply-To: References: Message-ID: Daniel Willmann has posted comments on this change. ( https://gerrit.osmocom.org/13000 ) Change subject: RTP_Emulation: check received RTP packets ...................................................................... Patch Set 2: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/13000 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id0b125aaf915497d0a4f051af890fc34e09da61d Gerrit-Change-Number: 13000 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Mon, 25 Feb 2019 14:48:40 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Mon Feb 25 15:10:06 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Mon, 25 Feb 2019 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#412?= In-Reply-To: <866406779.439.1551021006763.JavaMail.jenkins@jenkins.osmocom.org> References: <866406779.439.1551021006763.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1784009622.455.1551107406819.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.69 KB...] + ./configure checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Mon Feb 25 15:16:52 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 25 Feb 2019 15:16:52 +0000 Subject: Change in osmo-pcu[master]: Rewrite Packet Downlink Assignment In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12954 ) Change subject: Rewrite Packet Downlink Assignment ...................................................................... Patch Set 6: (1 comment) https://gerrit.osmocom.org/#/c/12954/6/src/encoding.cpp File src/encoding.cpp: https://gerrit.osmocom.org/#/c/12954/6/src/encoding.cpp at 104 PS6, Line 104: static inline bool write_tai(bitvec *dest, unsigned& wp, int8_t tai) > I don't understand the idea behind wp since it is that same value as dest->cur_bit No it's not. I know it's counter-intuitive and that's one of the motivation to replace wp-based functions in this patch series. So eventually this function will go away naturally once it's no longer needed. -- To view, visit https://gerrit.osmocom.org/12954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie180733d2584ebb16fb80b84526d0dbc70e3d441 Gerrit-Change-Number: 12954 Gerrit-PatchSet: 6 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-Reviewer: tnt Gerrit-CC: Daniel Willmann Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Mon, 25 Feb 2019 15:16:52 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 15:17:27 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 25 Feb 2019 15:17:27 +0000 Subject: Change in osmo-pcu[master]: Rewrite EGPRS Packet Uplink IA Rest Octets for MBA In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12952 ) Change subject: Rewrite EGPRS Packet Uplink IA Rest Octets for MBA ...................................................................... Patch Set 6: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/12952 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I19cc4226e7e831e7d7f70212b2078f5589a87ff0 Gerrit-Change-Number: 12952 Gerrit-PatchSet: 6 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Mon, 25 Feb 2019 15:17:27 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 15:35:18 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 25 Feb 2019 15:35:18 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Log all RA values which cause test failure Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/13044 Change subject: Log all RA values which cause test failure ...................................................................... Log all RA values which cause test failure Previously the first timeout in TC_rach_content() caused test to fail. Related TC_rach_count() test shows that there're some (13-16 out of 1000) RA values which are problematic. Let's log all such values in TC_rach_content() before failing the test to, hopefully, spot the pattern which sets such RA values apart. Change-Id: Ibfeb377101f406608c0193f08729c0e6d084281e Related: OS#1854 --- M bts/BTS_Tests.ttcn 1 file changed, 6 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/44/13044/1 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 66bf040..279b437 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -996,6 +996,7 @@ f_l1_tune(L1CTL); var GsmFrameNumber fn_last := 0; + var boolean test_failed := false; for (var integer i := 0; i < 1000; i := i+1) { var OCT1 ra := f_rnd_ra_cs(); var GsmFrameNumber fn := f_L1CTL_RACH(L1CTL, oct2int(ra)); @@ -1015,11 +1016,14 @@ } [] RSL_CCHAN.receive { repeat; } [] T.timeout { - Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, log2str("Timeout waiting for CHAN RQD FN=", fn, " RA=", ra)); + test_failed := true; + log("[", i, "] Timeout waiting for CHAN RQD FN=", fn, " RA=", ra); } } } - setverdict(pass); + if (test_failed == false) { + setverdict(pass); + } Misc_Helpers.f_shutdown(__BFILE__, __LINE__); } -- To view, visit https://gerrit.osmocom.org/13044 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ibfeb377101f406608c0193f08729c0e6d084281e Gerrit-Change-Number: 13044 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 16:01:22 2019 From: gerrit-no-reply at lists.osmocom.org (Daniel Willmann) Date: Mon, 25 Feb 2019 16:01:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Log all RA values which cause test failure In-Reply-To: References: Message-ID: Daniel Willmann has posted comments on this change. ( https://gerrit.osmocom.org/13044 ) Change subject: Log all RA values which cause test failure ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/13044 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ibfeb377101f406608c0193f08729c0e6d084281e Gerrit-Change-Number: 13044 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: osmith Gerrit-Comment-Date: Mon, 25 Feb 2019 16:01:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 16:44:44 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 25 Feb 2019 16:44:44 +0000 Subject: Change in libosmocore[master]: LCLS: add string dump helpers In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12492 ) Change subject: LCLS: add string dump helpers ...................................................................... Patch Set 14: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/12492 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic3609224c8f3282d667e75f68bc20327e36eb9e6 Gerrit-Change-Number: 12492 Gerrit-PatchSet: 14 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Mon, 25 Feb 2019 16:44:44 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 16:45:51 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Mon, 25 Feb 2019 16:45:51 +0000 Subject: Change in osmo-msc[master]: debian: depend on libdbd-sqlite3 In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/13043 ) Change subject: debian: depend on libdbd-sqlite3 ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/13043 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7c099212a6ad7d87978c3dce63ce7385d8076bd1 Gerrit-Change-Number: 13043 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Mon, 25 Feb 2019 16:45:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 19:13:41 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 25 Feb 2019 19:13:41 +0000 Subject: Change in osmo-gsm-tester[master]: nitb_netreg_mass: Add code to declare a run successful/failure In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/13029 ) Change subject: nitb_netreg_mass: Add code to declare a run successful/failure ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13029 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I49a821e8e4656466259e519ef901726cbb76ef86 Gerrit-Change-Number: 13029 Gerrit-PatchSet: 4 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Feb 2019 19:13:41 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 19:23:47 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Mon, 25 Feb 2019 19:23:47 +0000 Subject: Change in osmo-gsm-tester[master]: nitb_netreg_mass: Allow to define subscribers from the outside In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/13042 ) Change subject: nitb_netreg_mass: Allow to define subscribers from the outside ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/13042/2/src/osmo_gsm_tester/ms_driver.py File src/osmo_gsm_tester/ms_driver.py: https://gerrit.osmocom.org/#/c/13042/2/src/osmo_gsm_tester/ms_driver.py at 110 PS2, Line 110: if not hasattr(self, '_configured'): May not be directly related to the patc, but can we have _configure = False in constructor instead of using hasattr()? -- To view, visit https://gerrit.osmocom.org/13042 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic9fd560c2924731e4fd6eea5aaf3ad565cb4ef52 Gerrit-Change-Number: 13042 Gerrit-PatchSet: 2 Gerrit-Owner: Holger Freyther Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Mon, 25 Feb 2019 19:23:47 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 22:35:26 2019 From: gerrit-no-reply at lists.osmocom.org (Vasil Velichkov) Date: Mon, 25 Feb 2019 22:35:26 +0000 Subject: Change in gr-gsm[master]: grgsm_livemon: Use the osr variable in all blocks Message-ID: Vasil Velichkov has uploaded this change for review. ( https://gerrit.osmocom.org/13045 Change subject: grgsm_livemon: Use the osr variable in all blocks ...................................................................... grgsm_livemon: Use the osr variable in all blocks In the GSM input adaptor and GSM Receiver blocks the osr was hardcoded to 4 and cannot be changed using the command line parameter. Change-Id: I4e85b898f05db636f18fdea6e5fee4fed6e0382a --- M apps/grgsm_livemon.grc M apps/grgsm_livemon_headless.grc 2 files changed, 4 insertions(+), 4 deletions(-) git pull ssh://gerrit.osmocom.org:29418/gr-gsm refs/changes/45/13045/1 diff --git a/apps/grgsm_livemon.grc b/apps/grgsm_livemon.grc index 3d2236d..46b83e2 100644 --- a/apps/grgsm_livemon.grc +++ b/apps/grgsm_livemon.grc @@ -933,7 +933,7 @@ osr - 4 + osr fc @@ -1043,7 +1043,7 @@ osr - 4 + osr tseq_nums diff --git a/apps/grgsm_livemon_headless.grc b/apps/grgsm_livemon_headless.grc index f130d71..a1ce284 100644 --- a/apps/grgsm_livemon_headless.grc +++ b/apps/grgsm_livemon_headless.grc @@ -767,7 +767,7 @@ osr - 4 + osr fc @@ -877,7 +877,7 @@ osr - 4 + osr tseq_nums -- To view, visit https://gerrit.osmocom.org/13045 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I4e85b898f05db636f18fdea6e5fee4fed6e0382a Gerrit-Change-Number: 13045 Gerrit-PatchSet: 1 Gerrit-Owner: Vasil Velichkov -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Mon Feb 25 22:37:46 2019 From: gerrit-no-reply at lists.osmocom.org (Vasil Velichkov) Date: Mon, 25 Feb 2019 22:37:46 +0000 Subject: Change in gr-gsm[master]: grgsm_livemon: Use the osr variable in all blocks In-Reply-To: References: Message-ID: Vasil Velichkov has posted comments on this change. ( https://gerrit.osmocom.org/13045 ) Change subject: grgsm_livemon: Use the osr variable in all blocks ...................................................................... Patch Set 1: Reported in https://github.com/ptrkrysik/gr-gsm/issues/435#issue-383186179 -- To view, visit https://gerrit.osmocom.org/13045 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4e85b898f05db636f18fdea6e5fee4fed6e0382a Gerrit-Change-Number: 13045 Gerrit-PatchSet: 1 Gerrit-Owner: Vasil Velichkov Gerrit-Reviewer: Piotr Krysik Gerrit-Reviewer: Vasil Velichkov Gerrit-Comment-Date: Mon, 25 Feb 2019 22:37:46 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 07:43:46 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 26 Feb 2019 07:43:46 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Log all RA values which cause test failure In-Reply-To: References: Message-ID: osmith has posted comments on this change. ( https://gerrit.osmocom.org/13044 ) Change subject: Log all RA values which cause test failure ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13044 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ibfeb377101f406608c0193f08729c0e6d084281e Gerrit-Change-Number: 13044 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 26 Feb 2019 07:43:46 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 07:54:58 2019 From: gerrit-no-reply at lists.osmocom.org (Daniel Willmann) Date: Tue, 26 Feb 2019 07:54:58 +0000 Subject: Change in osmo-msc[master]: debian: depend on libdbd-sqlite3 In-Reply-To: References: Message-ID: Daniel Willmann has posted comments on this change. ( https://gerrit.osmocom.org/13043 ) Change subject: debian: depend on libdbd-sqlite3 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13043 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7c099212a6ad7d87978c3dce63ce7385d8076bd1 Gerrit-Change-Number: 13043 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 26 Feb 2019 07:54:58 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 08:06:13 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 26 Feb 2019 08:06:13 +0000 Subject: Change in osmo-msc[master]: debian: depend on libdbd-sqlite3 In-Reply-To: References: Message-ID: osmith has submitted this change and it was merged. ( https://gerrit.osmocom.org/13043 ) Change subject: debian: depend on libdbd-sqlite3 ...................................................................... debian: depend on libdbd-sqlite3 Make sure that we don't fail at startup with: <0009> db.c:621 Failed to create database connection to sqlite3 db 'sms.db'; Is the sqlite3 database driver for libdbi installed on this system? Tested by building the Debian package and looking at its depends. Related: OS#3771 Change-Id: I7c099212a6ad7d87978c3dce63ce7385d8076bd1 --- M debian/control 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Max: Looks good to me, but someone else must approve Daniel Willmann: Looks good to me, approved diff --git a/debian/control b/debian/control index f6e8ace..f4cd95e 100644 --- a/debian/control +++ b/debian/control @@ -30,7 +30,7 @@ Package: osmo-msc Architecture: any Multi-Arch: foreign -Depends: ${misc:Depends}, ${shlibs:Depends} +Depends: ${misc:Depends}, ${shlibs:Depends}, libdbd-sqlite3 Description: OsmoMSC: Osmocom's Mobile Switching Center for 2G and 3G circuit-switched mobile networks The Mobile Switching Center (MSC) is the heart of 2G/3G circuit-switched services. It terminates the A-interface links from the -- To view, visit https://gerrit.osmocom.org/13043 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I7c099212a6ad7d87978c3dce63ce7385d8076bd1 Gerrit-Change-Number: 13043 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 09:06:08 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 09:06:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Log all RA values which cause test failure In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13044 ) Change subject: Log all RA values which cause test failure ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13044 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ibfeb377101f406608c0193f08729c0e6d084281e Gerrit-Change-Number: 13044 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 26 Feb 2019 09:06:08 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 09:06:09 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 09:06:09 +0000 Subject: Change in osmo-ttcn3-hacks[master]: Log all RA values which cause test failure In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13044 ) Change subject: Log all RA values which cause test failure ...................................................................... Log all RA values which cause test failure Previously the first timeout in TC_rach_content() caused test to fail. Related TC_rach_count() test shows that there're some (13-16 out of 1000) RA values which are problematic. Let's log all such values in TC_rach_content() before failing the test to, hopefully, spot the pattern which sets such RA values apart. Change-Id: Ibfeb377101f406608c0193f08729c0e6d084281e Related: OS#1854 --- M bts/BTS_Tests.ttcn 1 file changed, 6 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Daniel Willmann: Looks good to me, but someone else must approve osmith: Looks good to me, approved Harald Welte: Looks good to me, approved diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 66bf040..279b437 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -996,6 +996,7 @@ f_l1_tune(L1CTL); var GsmFrameNumber fn_last := 0; + var boolean test_failed := false; for (var integer i := 0; i < 1000; i := i+1) { var OCT1 ra := f_rnd_ra_cs(); var GsmFrameNumber fn := f_L1CTL_RACH(L1CTL, oct2int(ra)); @@ -1015,11 +1016,14 @@ } [] RSL_CCHAN.receive { repeat; } [] T.timeout { - Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, log2str("Timeout waiting for CHAN RQD FN=", fn, " RA=", ra)); + test_failed := true; + log("[", i, "] Timeout waiting for CHAN RQD FN=", fn, " RA=", ra); } } } - setverdict(pass); + if (test_failed == false) { + setverdict(pass); + } Misc_Helpers.f_shutdown(__BFILE__, __LINE__); } -- To view, visit https://gerrit.osmocom.org/13044 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ibfeb377101f406608c0193f08729c0e6d084281e Gerrit-Change-Number: 13044 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 09:06:52 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 09:06:52 +0000 Subject: Change in gr-gsm[master]: grgsm_livemon: Use the osr variable in all blocks In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13045 ) Change subject: grgsm_livemon: Use the osr variable in all blocks ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/13045 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4e85b898f05db636f18fdea6e5fee4fed6e0382a Gerrit-Change-Number: 13045 Gerrit-PatchSet: 1 Gerrit-Owner: Vasil Velichkov Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik Gerrit-Reviewer: Vasil Velichkov Gerrit-Comment-Date: Tue, 26 Feb 2019 09:06:52 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 09:08:13 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 09:08:13 +0000 Subject: Change in libosmocore[master]: LCLS: add string dump helpers In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12492 ) Change subject: LCLS: add string dump helpers ...................................................................... Patch Set 14: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12492 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic3609224c8f3282d667e75f68bc20327e36eb9e6 Gerrit-Change-Number: 12492 Gerrit-PatchSet: 14 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Tue, 26 Feb 2019 09:08:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 09:08:49 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 09:08:49 +0000 Subject: Change in libosmocore[master]: NS: Don't print information about FR/GRE if not enabled! In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13020 ) Change subject: NS: Don't print information about FR/GRE if not enabled! ...................................................................... NS: Don't print information about FR/GRE if not enabled! Change-Id: I9209ee4ba5ebfc4f96b4c1d42840e1906455bae7 --- M src/gb/gprs_ns_vty.c 1 file changed, 4 insertions(+), 3 deletions(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, but someone else must approve Max: Looks good to me, approved diff --git a/src/gb/gprs_ns_vty.c b/src/gb/gprs_ns_vty.c index 667db7d..1524763 100644 --- a/src/gb/gprs_ns_vty.c +++ b/src/gb/gprs_ns_vty.c @@ -198,9 +198,10 @@ vty_out(vty, "Encapsulation NS-UDP-IP Local IP: %s, UDP Port: %u%s", inet_ntoa(ia), vty_nsi->nsip.local_port, VTY_NEWLINE); - ia.s_addr = osmo_htonl(vty_nsi->frgre.local_ip); - vty_out(vty, "Encapsulation NS-FR-GRE-IP Local IP: %s%s", - inet_ntoa(ia), VTY_NEWLINE); + if (nsi->frgre.enabled) { + ia.s_addr = osmo_htonl(vty_nsi->frgre.local_ip); + vty_out(vty, "Encapsulation NS-FR-GRE-IP Local IP: %s%s", inet_ntoa(ia), VTY_NEWLINE); + } llist_for_each_entry(nsvc, &nsi->gprs_nsvcs, list) { if (nsvc == nsi->unknown_nsvc) -- To view, visit https://gerrit.osmocom.org/13020 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I9209ee4ba5ebfc4f96b4c1d42840e1906455bae7 Gerrit-Change-Number: 13020 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 09:08:51 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 09:08:51 +0000 Subject: Change in libosmocore[master]: NS: Add missing NS Cause strings In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13021 ) Change subject: NS: Add missing NS Cause strings ...................................................................... NS: Add missing NS Cause strings When I added the definitions for the IP-SNS in commit f030b210e8c13314d361a6b721a0cbcc72935219 back in 2010, I forgot to update the string definitions in ns_cause_str[]. Let's fix that Change-Id: I419ccc482d99b01263a60aede83dacd2d9de56ab --- M src/gb/gprs_ns.c 1 file changed, 7 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, but someone else must approve Max: Looks good to me, approved diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c index 54964d3..976a101 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -365,6 +365,13 @@ { NS_CAUSE_PROTO_ERR_UNSPEC, "Protocol error, unspecified" }, { NS_CAUSE_INVAL_ESSENT_IE, "Invalid essential IE" }, { NS_CAUSE_MISSING_ESSENT_IE, "Missing essential IE" }, + { NS_CAUSE_INVAL_NR_IPv4_EP, "Invalid Number of IPv4 Endpoints" }, + { NS_CAUSE_INVAL_NR_IPv6_EP, "Invalid Number of IPv6 Endpoints" }, + { NS_CAUSE_INVAL_NR_NS_VC, "Invalid Number of NS-VCs" }, + { NS_CAUSE_INVAL_WEIGH, "Invalid Weights" }, + { NS_CAUSE_UNKN_IP_EP, "Unknown IP Endpoint" }, + { NS_CAUSE_UNKN_IP_ADDR, "Unknown IP Address" }, + { NS_CAUSE_UNKN_IP_TEST_FAILED, "IP Test Failed" }, { 0, NULL } }; -- To view, visit https://gerrit.osmocom.org/13021 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I419ccc482d99b01263a60aede83dacd2d9de56ab Gerrit-Change-Number: 13021 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 09:08:52 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 09:08:52 +0000 Subject: Change in libosmocore[master]: GPRS: Doxygen documentation for 'struct libgb_msgb_cb' In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13022 ) Change subject: GPRS: Doxygen documentation for 'struct libgb_msgb_cb' ...................................................................... GPRS: Doxygen documentation for 'struct libgb_msgb_cb' Change-Id: I4144506feee74a8219bd3736087c30cc6323ec1d --- M include/osmocom/gprs/gprs_msgb.h 1 file changed, 4 insertions(+), 4 deletions(-) Approvals: Jenkins Builder: Verified Pau Espin Pedrol: Looks good to me, but someone else must approve Max: Looks good to me, approved diff --git a/include/osmocom/gprs/gprs_msgb.h b/include/osmocom/gprs/gprs_msgb.h index 43471e2..3f48b5b 100644 --- a/include/osmocom/gprs/gprs_msgb.h +++ b/include/osmocom/gprs/gprs_msgb.h @@ -3,19 +3,19 @@ #pragma once #include -/* the data structure stored in msgb->cb for libgb apps */ +/*! the data structure stored in msgb->cb for libgb apps */ struct libgb_msgb_cb { unsigned char *bssgph; unsigned char *llch; - /* Cell Identifier */ + /*! Cell Identifier */ unsigned char *bssgp_cell_id; - /* Identifiers of a BTS, equal to 'struct bssgp_bts_ctx' */ + /*! Identifiers of a BTS, equal to 'struct bssgp_bts_ctx' */ uint16_t nsei; uint16_t bvci; - /* Identifier of a MS (inside BTS), equal to 'struct sgsn_mm_ctx' */ + /*! Identifier of a MS (inside BTS), equal to 'struct sgsn_mm_ctx' */ uint32_t tlli; } __attribute__((packed, may_alias)); #define LIBGB_MSGB_CB(__msgb) ((struct libgb_msgb_cb *)&((__msgb)->cb[0])) -- To view, visit https://gerrit.osmocom.org/13022 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I4144506feee74a8219bd3736087c30cc6323ec1d Gerrit-Change-Number: 13022 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 09:09:50 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 09:09:50 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: Add testcase to test ts101318/rfc5993 conversion In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13001 ) Change subject: MGCP_Test: Add testcase to test ts101318/rfc5993 conversion ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13001 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I96df45fe45b53088e07b26f14173a75498a84143 Gerrit-Change-Number: 13001 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Tue, 26 Feb 2019 09:09:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 09:10:33 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 09:10:33 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RTP_Emulation: check received RTP packets In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13000 ) Change subject: RTP_Emulation: check received RTP packets ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13000 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id0b125aaf915497d0a4f051af890fc34e09da61d Gerrit-Change-Number: 13000 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Tue, 26 Feb 2019 09:10:33 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 09:10:35 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 09:10:35 +0000 Subject: Change in osmo-ttcn3-hacks[master]: RTP_Emulation: check received RTP packets In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13000 ) Change subject: RTP_Emulation: check received RTP packets ...................................................................... RTP_Emulation: check received RTP packets The configuration of the RTP Emulation (RtpemConfig) allows to set a fixed RTP payload that is then used when RTP packets are transmitted. However, when packets are received, then the payload is not checked. Lets check the received data against some user configurable rx payload, that is by default set to the tx payload. Change-Id: Id0b125aaf915497d0a4f051af890fc34e09da61d Related: OS#3807 --- M library/RTP_Emulation.ttcn 1 file changed, 14 insertions(+), 4 deletions(-) Approvals: Harald Welte: Looks good to me, approved Daniel Willmann: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/library/RTP_Emulation.ttcn b/library/RTP_Emulation.ttcn index fcb158b..2494d74 100644 --- a/library/RTP_Emulation.ttcn +++ b/library/RTP_Emulation.ttcn @@ -119,7 +119,9 @@ /* number of packets received wrong payload type */ integer num_pkts_rx_err_pt, /* number of packets received during Rx disable */ - integer num_pkts_rx_err_disabled + integer num_pkts_rx_err_disabled, + /* number of packets received with mismatching payload */ + integer num_pkts_rx_err_payload } const RtpemStats c_RtpemStatsReset := { @@ -130,7 +132,8 @@ num_pkts_rx_err_seq := 0, num_pkts_rx_err_ts := 0, num_pkts_rx_err_pt := 0, - num_pkts_rx_err_disabled := 0 + num_pkts_rx_err_disabled := 0, + num_pkts_rx_err_payload := 0 } type record RtpemConfig { @@ -139,6 +142,7 @@ integer tx_duration_ms, BIT32_BO_LAST tx_ssrc, octetstring tx_fixed_payload optional, + octetstring rx_fixed_payload optional, boolean iuup_mode, boolean iuup_tx_init }; @@ -149,6 +153,7 @@ tx_duration_ms := 20, tx_ssrc := '11011110101011011011111011101111'B, tx_fixed_payload := '01020304'O, + rx_fixed_payload := '01020304'O, iuup_mode := false, iuup_tx_init := true } @@ -276,6 +281,10 @@ setverdict(fail, "RTP packets received while RX was disabled"); mtc.stop; } + if (s.num_pkts_rx_err_payload != 0) { + setverdict(fail, "RTP packets with mismatching payload received"); + mtc.stop; + } } template PDU_RTP ts_RTP(BIT32_BO_LAST ssrc, INT7b pt, LIN2_BO_LAST seq, uint32_t ts, @@ -437,8 +446,6 @@ /* process received RTCP/RTP if receiver enabled */ [g_rx_enabled] RTP.receive(tr_rtp) -> value rx_rtp { - //log("RX RTP: ", rx_rtp); - /* increment counters */ if (rx_rtp.msg.rtp.payload_type != g_cfg.tx_payload_type) { g_stats_rtp.num_pkts_rx_err_pt := g_stats_rtp.num_pkts_rx_err_pt+1; @@ -446,6 +453,9 @@ g_stats_rtp.num_pkts_rx := g_stats_rtp.num_pkts_rx+1; g_stats_rtp.bytes_payload_rx := g_stats_rtp.bytes_payload_rx + lengthof(rx_rtp.msg.rtp.data); + if (ispresent(g_cfg.rx_fixed_payload) and rx_rtp.msg.rtp.data != g_cfg.rx_fixed_payload) { + g_stats_rtp.num_pkts_rx_err_payload := g_stats_rtp.num_pkts_rx_err_payload + 1; + } if (g_cfg.iuup_mode) { rx_rtp.msg.rtp.data := f_IuUP_Em_rx_decaps(g_iuup_ent, rx_rtp.msg.rtp.data); } -- To view, visit https://gerrit.osmocom.org/13000 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Id0b125aaf915497d0a4f051af890fc34e09da61d Gerrit-Change-Number: 13000 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 09:10:41 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 09:10:41 +0000 Subject: Change in osmo-ttcn3-hacks[master]: MGCP_Test: Add testcase to test ts101318/rfc5993 conversion In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13001 ) Change subject: MGCP_Test: Add testcase to test ts101318/rfc5993 conversion ...................................................................... MGCP_Test: Add testcase to test ts101318/rfc5993 conversion The MGW recentenly adds support to convert between ts101318 and rfc5993 when GSM-HR is used. Lets add a testcase for that. depends: osmo-mgw Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Change-Id: I96df45fe45b53088e07b26f14173a75498a84143 Related: OS#3807 --- M mgw/MGCP_Test.ttcn M mgw/expected-results.xml 2 files changed, 59 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Daniel Willmann: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/mgw/MGCP_Test.ttcn b/mgw/MGCP_Test.ttcn index 9eff8c2..4969a3f 100644 --- a/mgw/MGCP_Test.ttcn +++ b/mgw/MGCP_Test.ttcn @@ -1314,6 +1314,63 @@ setverdict(pass); } + + /* create two local RTP emulations; create two connections on MGW EP, see if + * exchanged data is converted bwtween ts101318 and rfc5993 */ + testcase TC_ts101318_rfc5993_rtp_conversion() runs on dummy_CT { + var RtpFlowData flow[2]; + var RtpemStats stats[2]; + var MgcpResponse resp; + var MgcpEndpoint ep := c_mgw_ep_rtpbridge & "2@" & c_mgw_domain; + var MgcpCallId call_id := '1226'H; + + f_init(ep); + + /* Turn on conversion mode */ + f_vty_enter_config(MGWVTY); + f_vty_transceive(MGWVTY, "mgcp"); + f_vty_transceive(MGWVTY, "rtp-patch rfc5993hr"); + + /* from us to MGW */ + flow[0] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 111, "GSM-HR-08/8000")); + /* bind local RTP emulation sockets */ + flow[0].em.portnr := 10000; + flow[0].rtp_cfg := c_RtpemDefaultCfg; + flow[0].rtp_cfg.tx_payload_type := flow[0].pt; + flow[0].rtp_cfg.rx_fixed_payload := '0b11b3eede60be4e3ec68838c7b5'O; + flow[0].rtp_cfg.tx_fixed_payload := '0b11b3eede60be4e3ec68838c7b5'O; + f_flow_create(RTPEM[0], ep, call_id, "sendrecv", flow[0]); + + /* from MGW back to us */ + flow[1] := valueof(t_RtpFlow(mp_local_ip, mp_remote_ip, 111, "GSM-HR-08/8000")); + flow[1].em.portnr := 20000; + flow[1].rtp_cfg := c_RtpemDefaultCfg; + flow[1].rtp_cfg.tx_payload_type := flow[1].pt; + flow[1].rtp_cfg.rx_fixed_payload := '000b11b3eede60be4e3ec68838c7b5'O; + flow[1].rtp_cfg.tx_fixed_payload := '000b11b3eede60be4e3ec68838c7b5'O; + f_flow_create(RTPEM[1], ep, call_id, "sendrecv", flow[1]); + + f_rtpem_mode(RTPEM[1], RTPEM_MODE_BIDIR); + f_rtpem_mode(RTPEM[0], RTPEM_MODE_BIDIR); + + f_sleep(1.0); + + f_flow_delete(RTPEM[0]); + f_flow_delete(RTPEM[1], ep, call_id); + + stats[0] := f_rtpem_stats_get(RTPEM[0]); + stats[1] := f_rtpem_stats_get(RTPEM[1]); + + f_rtpem_stats_err_check(stats[0]); + f_rtpem_stats_err_check(stats[1]); + + /* Turn off conversion mode */ + f_vty_transceive(MGWVTY, "no rtp-patch rfc5993hr"); + + setverdict(pass); + } + + /* TODO: Double-DLCX (no retransmission) */ @@ -1364,5 +1421,6 @@ execute(TC_two_crcx_mdcx_and_rtp()); execute(TC_two_crcx_and_unsolicited_rtp()); execute(TC_two_crcx_and_one_mdcx_rtp_ho()); + execute(TC_ts101318_rfc5993_rtp_conversion()); } } diff --git a/mgw/expected-results.xml b/mgw/expected-results.xml index b45ba1f..f5bc1a0 100644 --- a/mgw/expected-results.xml +++ b/mgw/expected-results.xml @@ -37,4 +37,5 @@ + -- To view, visit https://gerrit.osmocom.org/13001 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I96df45fe45b53088e07b26f14173a75498a84143 Gerrit-Change-Number: 13001 Gerrit-PatchSet: 3 Gerrit-Owner: dexter Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 09:11:56 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 09:11:56 +0000 Subject: Change in osmo-mgw[master]: Add option to GSM HR frames to RFC5593 representation In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12979 ) Change subject: Add option to GSM HR frames to RFC5593 representation ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Gerrit-Change-Number: 12979 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: dexter Gerrit-Reviewer: tnt Gerrit-Comment-Date: Tue, 26 Feb 2019 09:11:56 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 09:11:58 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 09:11:58 +0000 Subject: Change in osmo-mgw[master]: Add option to GSM HR frames to RFC5593 representation In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12979 ) Change subject: Add option to GSM HR frames to RFC5593 representation ...................................................................... Add option to GSM HR frames to RFC5593 representation There are different specifications around on how a GSM-HR frame should be encapsulated into an RTP packet. RFC5593 specifies a ToC (Table of Contents) byte to be prepended in front of the payload data. The two formats can be distinguished easily by their length. Then the data can be formatted into the corresponding opposite format and vice versa. - Add new VTY rtp-patch options - Add conversion function Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Related: OS#3807 --- M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_internal.h M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_vty.c 5 files changed, 96 insertions(+), 2 deletions(-) Approvals: Jenkins Builder: Verified tnt: Looks good to me, but someone else must approve Daniel Willmann: Looks good to me, approved Harald Welte: Looks good to me, approved diff --git a/include/osmocom/mgcp/mgcp.h b/include/osmocom/mgcp/mgcp.h index 7597af8..5886a65 100644 --- a/include/osmocom/mgcp/mgcp.h +++ b/include/osmocom/mgcp/mgcp.h @@ -190,6 +190,7 @@ /* RTP patching */ int force_constant_ssrc; /* 0: don't, 1: once */ int force_aligned_timing; + bool rfc5993_hr_convert; /* spec handling */ int force_realloc; diff --git a/include/osmocom/mgcp/mgcp_internal.h b/include/osmocom/mgcp/mgcp_internal.h index 14c5f11..a6239c2 100644 --- a/include/osmocom/mgcp/mgcp_internal.h +++ b/include/osmocom/mgcp/mgcp_internal.h @@ -128,6 +128,7 @@ int force_constant_ssrc; /* -1: always, 0: don't, 1: once */ /* should we perform align_rtp_timestamp_offset() (1) or not (0) */ int force_aligned_timing; + bool rfc5993_hr_convert; /* Each end has a separate socket for RTP and RTCP */ struct osmo_fd rtp; diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 2c86f8f..33738bc 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -43,6 +43,7 @@ #include #include #include +#include #define RTP_SEQ_MOD (1 << 16) @@ -651,6 +652,40 @@ #endif } +/* There are different dialects used to format and transfer voice data. When + * the receiving end expects GSM-HR data to be formated after RFC 5993, this + * function is used to convert between RFC 5993 and TS 101318, which we normally + * use. */ +static void rfc5993_hr_convert(struct mgcp_endpoint *endp, char *data, int *len) +{ + /* NOTE: *data has an overall length of RTP_BUF_SIZE, so there is + * plenty of space available to store the slightly larger, converted + * data */ + + struct rtp_hdr *rtp_hdr; + + OSMO_ASSERT(*len >= sizeof(struct rtp_hdr)); + rtp_hdr = (struct rtp_hdr *)data; + + if (*len == GSM_HR_BYTES + sizeof(struct rtp_hdr)) { + /* TS 101318 encoding => RFC 5993 encoding */ + memmove(rtp_hdr->data + 1, rtp_hdr->data, GSM_HR_BYTES); + rtp_hdr->data[0] = 0x00; + (*len) += 1; + + } else if (*len == GSM_HR_BYTES + sizeof(struct rtp_hdr) + 1) { + /* RFC 5993 encoding => TS 101318 encoding */ + memmove(rtp_hdr->data, rtp_hdr->data + 1, GSM_HR_BYTES); + (*len) -= 1; + } else { + /* It is possible that multiple payloads occur in one RTP + * packet. This is not supported yet. */ + LOGP(DRTP, LOGL_ERROR, + "endpoint:0x%x cannot figure out how to convert RTP packet\n", + ENDPOINT_NUMBER(endp)); + } +} + /* Forward data to a debug tap. This is debug function that is intended for * debugging the voice traffic with tools like gstreamer */ static void forward_data(int fd, struct mgcp_rtp_tap *tap, const char *buf, @@ -758,6 +793,12 @@ if (addr) mgcp_patch_and_count(endp, rtp_state, rtp_end, addr, buf, buflen); + + if (rtp_end->rfc5993_hr_convert + && strcmp(conn_src->end.codec->subtype_name, + "GSM-HR-08") == 0) + rfc5993_hr_convert(endp, buf, &buflen); + LOGP(DRTP, LOGL_DEBUG, "endpoint:0x%x process/send to %s %s " "rtp_port:%u rtcp_port:%u\n", diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index 9f95ea4..82db02f 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -652,6 +652,7 @@ rtp->force_aligned_timing = tcfg->force_aligned_timing; rtp->force_constant_ssrc = patch_ssrc ? 1 : 0; + rtp->rfc5993_hr_convert = tcfg->rfc5993_hr_convert; LOGP(DLMGCP, LOGL_DEBUG, "Configuring RTP endpoint: local port %d%s%s\n", diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index ef63b04..a47376b 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -37,6 +37,8 @@ #define RTCP_OMIT_STR "Drop RTCP packets in both directions\n" #define RTP_PATCH_STR "Modify RTP packet header in both directions\n" #define RTP_KEEPALIVE_STR "Send dummy UDP packet to net RTP destination\n" +#define RTP_TS101318_RFC5993_CONV_STR "Convert GSM-HR from TS101318 to RFC5993 and vice versa\n" + static struct mgcp_config *g_cfg = NULL; @@ -96,13 +98,17 @@ else vty_out(vty, " no rtcp-omit%s", VTY_NEWLINE); if (g_cfg->trunk.force_constant_ssrc - || g_cfg->trunk.force_aligned_timing) { + || g_cfg->trunk.force_aligned_timing + || g_cfg->trunk.rfc5993_hr_convert) { vty_out(vty, " %srtp-patch ssrc%s", g_cfg->trunk.force_constant_ssrc ? "" : "no ", VTY_NEWLINE); vty_out(vty, " %srtp-patch timestamp%s", g_cfg->trunk.force_aligned_timing ? "" : "no ", VTY_NEWLINE); + vty_out(vty, " %srtp-patch rfc5993hr%s", + g_cfg->trunk.rfc5993_hr_convert ? "" : "no ", + VTY_NEWLINE); } else vty_out(vty, " no rtp-patch%s", VTY_NEWLINE); if (g_cfg->trunk.audio_payload != -1) @@ -722,11 +728,28 @@ return CMD_SUCCESS; } +DEFUN(cfg_mgcp_patch_rtp_rfc5993hr, + cfg_mgcp_patch_rtp_rfc5993hr_cmd, + "rtp-patch rfc5993hr", RTP_PATCH_STR RTP_TS101318_RFC5993_CONV_STR) +{ + g_cfg->trunk.rfc5993_hr_convert = true; + return CMD_SUCCESS; +} + +DEFUN(cfg_mgcp_no_patch_rtp_rfc5993hr, + cfg_mgcp_no_patch_rtp_rfc5993hr_cmd, + "no rtp-patch rfc5993hr", NO_STR RTP_PATCH_STR RTP_TS101318_RFC5993_CONV_STR) +{ + g_cfg->trunk.rfc5993_hr_convert = false; + return CMD_SUCCESS; +} + DEFUN(cfg_mgcp_no_patch_rtp, cfg_mgcp_no_patch_rtp_cmd, "no rtp-patch", NO_STR RTP_PATCH_STR) { g_cfg->trunk.force_constant_ssrc = 0; g_cfg->trunk.force_aligned_timing = 0; + g_cfg->trunk.rfc5993_hr_convert = false; return CMD_SUCCESS; } @@ -823,13 +846,17 @@ vty_out(vty, " rtcp-omit%s", VTY_NEWLINE); else vty_out(vty, " no rtcp-omit%s", VTY_NEWLINE); - if (trunk->force_constant_ssrc || trunk->force_aligned_timing) { + if (trunk->force_constant_ssrc || trunk->force_aligned_timing + || g_cfg->trunk.rfc5993_hr_convert) { vty_out(vty, " %srtp-patch ssrc%s", trunk->force_constant_ssrc ? "" : "no ", VTY_NEWLINE); vty_out(vty, " %srtp-patch timestamp%s", trunk->force_aligned_timing ? "" : "no ", VTY_NEWLINE); + vty_out(vty, " %srtp-patch rfc5993hr%s", + trunk->rfc5993_hr_convert ? "" : "no ", + VTY_NEWLINE); } else vty_out(vty, " no rtp-patch%s", VTY_NEWLINE); if (trunk->audio_fmtp_extra) @@ -995,12 +1022,31 @@ return CMD_SUCCESS; } +DEFUN(cfg_trunk_patch_rtp_rfc5993hr, + cfg_trunk_patch_rtp_rfc5993hr_cmd, + "rtp-patch rfc5993hr", RTP_PATCH_STR RTP_TS101318_RFC5993_CONV_STR) +{ + struct mgcp_trunk_config *trunk = vty->index; + trunk->rfc5993_hr_convert = true; + return CMD_SUCCESS; +} + +DEFUN(cfg_trunk_no_patch_rtp_rfc5993hr, + cfg_trunk_no_patch_rtp_rfc5993hr_cmd, + "no rtp-patch rfc5993hr", NO_STR RTP_PATCH_STR RTP_TS101318_RFC5993_CONV_STR) +{ + struct mgcp_trunk_config *trunk = vty->index; + trunk->rfc5993_hr_convert = false; + return CMD_SUCCESS; +} + DEFUN(cfg_trunk_no_patch_rtp, cfg_trunk_no_patch_rtp_cmd, "no rtp-patch", NO_STR RTP_PATCH_STR) { struct mgcp_trunk_config *trunk = vty->index; trunk->force_constant_ssrc = 0; trunk->force_aligned_timing = 0; + trunk->rfc5993_hr_convert = false; return CMD_SUCCESS; } @@ -1400,6 +1446,8 @@ install_element(MGCP_NODE, &cfg_mgcp_patch_rtp_ts_cmd); install_element(MGCP_NODE, &cfg_mgcp_no_patch_rtp_ts_cmd); install_element(MGCP_NODE, &cfg_mgcp_no_patch_rtp_cmd); + install_element(MGCP_NODE, &cfg_mgcp_patch_rtp_rfc5993hr_cmd); + install_element(MGCP_NODE, &cfg_mgcp_no_patch_rtp_rfc5993hr_cmd); install_element(MGCP_NODE, &cfg_mgcp_sdp_fmtp_extra_cmd); install_element(MGCP_NODE, &cfg_mgcp_sdp_payload_send_ptime_cmd); install_element(MGCP_NODE, &cfg_mgcp_no_sdp_payload_send_ptime_cmd); @@ -1431,6 +1479,8 @@ install_element(TRUNK_NODE, &cfg_trunk_patch_rtp_ssrc_cmd); install_element(TRUNK_NODE, &cfg_trunk_no_patch_rtp_ssrc_cmd); install_element(TRUNK_NODE, &cfg_trunk_patch_rtp_ts_cmd); + install_element(TRUNK_NODE, &cfg_trunk_patch_rtp_rfc5993hr_cmd); + install_element(TRUNK_NODE, &cfg_trunk_no_patch_rtp_rfc5993hr_cmd); install_element(TRUNK_NODE, &cfg_trunk_no_patch_rtp_ts_cmd); install_element(TRUNK_NODE, &cfg_trunk_no_patch_rtp_cmd); install_element(TRUNK_NODE, &cfg_trunk_sdp_fmtp_extra_cmd); -- To view, visit https://gerrit.osmocom.org/12979 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iceef19e5619f8c92dfa7c8cdecb2e9b15f0a11a1 Gerrit-Change-Number: 12979 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: dexter Gerrit-Reviewer: tnt -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 09:16:29 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 09:16:29 +0000 Subject: Change in osmo-pcu[master]: Rewrite Packet Downlink Assignment In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12954 ) Change subject: Rewrite Packet Downlink Assignment ...................................................................... Patch Set 6: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie180733d2584ebb16fb80b84526d0dbc70e3d441 Gerrit-Change-Number: 12954 Gerrit-PatchSet: 6 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-Reviewer: tnt Gerrit-CC: Daniel Willmann Gerrit-CC: Vadim Yanitskiy Gerrit-Comment-Date: Tue, 26 Feb 2019 09:16:29 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 09:16:38 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 26 Feb 2019 09:16:38 +0000 Subject: Change in libosmocore[master]: LCLS: add string dump helpers In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12492 ) Change subject: LCLS: add string dump helpers ...................................................................... LCLS: add string dump helpers Add functions to dump LCLS (without GCR) and GCR. Dumping entire struct results in inconveniently long string hence the separate functions. Both use talloc functions so they expect caller to take care of providing proper allocation context and freeing memory. Change-Id: Ic3609224c8f3282d667e75f68bc20327e36eb9e6 --- M include/osmocom/gsm/gsm0808_utils.h M src/gsm/gsm0808_utils.c M src/gsm/gsm29205.c M src/gsm/libosmogsm.map M tests/gsm0808/gsm0808_test.c M tests/gsm0808/gsm0808_test.ok 6 files changed, 54 insertions(+), 3 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gsm/gsm0808_utils.h b/include/osmocom/gsm/gsm0808_utils.h index e1e345d..2b48be7 100644 --- a/include/osmocom/gsm/gsm0808_utils.h +++ b/include/osmocom/gsm/gsm0808_utils.h @@ -68,6 +68,9 @@ bool corr_needed; /**< ?3.2.2.118 Correlation-Not-Needed */ }; +char *osmo_lcls_dump(const struct osmo_lcls *lcls); +char *osmo_gcr_dump(const struct osmo_lcls *lcls); + extern const struct value_string gsm0808_cell_id_discr_names[]; static inline const char *gsm0808_cell_id_discr_name(enum CELL_IDENT id_discr) { return get_value_string(gsm0808_cell_id_discr_names, id_discr); } diff --git a/src/gsm/gsm0808_utils.c b/src/gsm/gsm0808_utils.c index 54ec19c..606899e 100644 --- a/src/gsm/gsm0808_utils.c +++ b/src/gsm/gsm0808_utils.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #define IP_V4_ADDR_LEN 4 @@ -591,6 +592,45 @@ return ret; } +static char dbuf[256]; + +/*! Dump LCLS parameters (GCR excluded) into string for printing. + * \param[in] lcls pointer to the struct to print. + * \returns string representation of LCLS or NULL on error. */ +char *osmo_lcls_dump(const struct osmo_lcls *lcls) +{ + struct osmo_strbuf s = { .buf = dbuf, .len = 256 }; + + if (!lcls) + return NULL; + + OSMO_STRBUF_PRINTF(s, "LCLS Config: %s, Control: %s, Correlation-Needed: %u", + gsm0808_lcls_config_name(lcls->config), + gsm0808_lcls_control_name(lcls->control), + lcls->corr_needed); + + return dbuf; +} + +/*! Dump GCR struct into string for printing. + * \param[in] lcls pointer to the struct to print. + * \returns string representation of GCR or NULL on error. */ +char *osmo_gcr_dump(const struct osmo_lcls *lcls) +{ + struct osmo_strbuf s = { .buf = dbuf, .len = 256 }; + + if (!lcls) + return NULL; + + if (lcls->gcr_available) { + OSMO_STRBUF_PRINTF(s, "GCR NetID 0x%s, ", osmo_hexdump_nospc(lcls->gcr.net, lcls->gcr.net_len)); + /* osmo_hexdump() uses static buffers so we can't call it twice withing the same parameter list */ + OSMO_STRBUF_PRINTF(s, "Node 0x%x, CallRefID 0x%s", lcls->gcr.node, osmo_hexdump_nospc(lcls->gcr.cr, 5)); + } + + return dbuf; +} + /*! Encode TS 08.08 Encryption Information IE * \param[out] msg Message Buffer to which IE is to be appended * \param[in] ei Encryption Information to be encoded diff --git a/src/gsm/gsm29205.c b/src/gsm/gsm29205.c index 0d34468..6ceb8ee 100644 --- a/src/gsm/gsm29205.c +++ b/src/gsm/gsm29205.c @@ -20,9 +20,12 @@ * */ +#include "config.h" + #include #include #include +#include #include #include diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 48757a7..2d47d7a 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -247,6 +247,8 @@ osmo_enc_gcr; osmo_dec_gcr; osmo_gcr_eq; +osmo_gcr_dump; +osmo_lcls_dump; gsm0858_rsl_ul_meas_enc; diff --git a/tests/gsm0808/gsm0808_test.c b/tests/gsm0808/gsm0808_test.c index 65fef53..af90d00 100644 --- a/tests/gsm0808/gsm0808_test.c +++ b/tests/gsm0808/gsm0808_test.c @@ -760,11 +760,12 @@ } if (!osmo_gcr_eq(&lcls_out->gcr, &lcls_in.gcr)) { - printf("GCR parsed wrong.\n"); + printf("GCR parsed wrong:\n\t%s\n\t%s\n", osmo_gcr_dump(lcls_out), osmo_gcr_dump(&lcls_in)); abort(); } - printf("\tdecoded %d bytes: %s\n", rc, rc == len ? "OK" : "FAIL"); + printf("\tdecoded %d bytes: %s:\n%s\n", rc, rc == len ? "OK" : "FAIL", osmo_lcls_dump(lcls_out)); + printf("\t%s\n", osmo_gcr_dump(lcls_out)); msgb_free(msg); } diff --git a/tests/gsm0808/gsm0808_test.ok b/tests/gsm0808/gsm0808_test.ok index 7819e7a..e7df007 100644 --- a/tests/gsm0808/gsm0808_test.ok +++ b/tests/gsm0808/gsm0808_test.ok @@ -27,7 +27,9 @@ Testing prepend DTAP Testing Global Call Reference IE encoder... 15 bytes added: OK - decoded 15 bytes: OK + decoded 15 bytes: OK: +LCLS Config: Not available, Control: Not available, Correlation-Needed: 1 + GCR NetID 0xf1f2f3, Node 0xdead, CallRefID 0x4142434445 test_gsm0808_enc_dec_cell_id_list_lac: encoded: 1a 07 05 01 24 ab cd 56 78 (rc = 9) ------- test_cell_id_list_add cell_id_list == CGI[0]:{} -- To view, visit https://gerrit.osmocom.org/12492 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic3609224c8f3282d667e75f68bc20327e36eb9e6 Gerrit-Change-Number: 12492 Gerrit-PatchSet: 15 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 09:17:09 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 26 Feb 2019 09:17:09 +0000 Subject: Change in osmo-pcu[master]: Rewrite Packet Downlink Assignment In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12954 ) Change subject: Rewrite Packet Downlink Assignment ...................................................................... Rewrite Packet Downlink Assignment Use bitvec_set_*() directly without external write pointer tracking to simplify the code. This is part of IA Rest Octets (3GPP TS 44.018 ?10.5.2.16) which is the last part of the message so it should not interfere with the rest of encoding functions. That's updated version of commit with the same topic reverted earlier. Change-Id: Ie180733d2584ebb16fb80b84526d0dbc70e3d441 Related: OS#3014 --- M src/encoding.cpp 1 file changed, 112 insertions(+), 33 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/encoding.cpp b/src/encoding.cpp index 2648b02..e7e13ac 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -35,7 +35,72 @@ #include #include +#define CHECK(rc) { if (rc < 0) return rc; } +#define SET_X(bv, x) { if (bitvec_set_bit(bv, x) < 0) return -EOWNERDEAD; } +#define SET_0(bv) SET_X(bv, ZERO) +#define SET_1(bv) SET_X(bv, ONE) +#define SET_L(bv) SET_X(bv, L) +#define SET_H(bv) SET_X(bv, H) + +/* 3GPP TS 44.018 ? 10.5.2.16: + { 0 | 1 < ALPHA : bit (4) > } + < GAMMA : bit (5) > +*/ +static int write_alpha_gamma(bitvec *dest, uint8_t alpha, uint8_t gamma) +{ + int rc; + + if (alpha) { + SET_1(dest); + rc = bitvec_set_u64(dest, alpha, 4, false); + CHECK(rc); + } else + SET_0(dest); + + rc = bitvec_set_u64(dest, gamma, 5, false); + CHECK(rc); + + return 0; +} + +/* TBF_STARTING_TIME -- same as 3GPP TS 44.018 ?10.5.2.38 Starting Time without tag: */ +static int write_tbf_start_time(bitvec *dest, uint32_t fn) +{ + int rc; + + /* Set values according to 3GPP TS 44.018 Table 10.5.2.38.1 */ + + /* T1' */ + rc = bitvec_set_u64(dest, (fn / (26 * 51)) % 32, 5, false); + CHECK(rc); + + /* T3 */ + rc = bitvec_set_u64(dest, fn % 51, 6, false); + CHECK(rc); + + /* T2 */ + rc = bitvec_set_u64(dest, fn % 26, 5, false); + CHECK(rc); + + return rc; +} + /* { 0 | 1 < TIMING_ADVANCE_INDEX : bit (4) > } */ +static int write_ta_index(bitvec *dest, int8_t tai) +{ + int rc; + + if (tai < 0) /* No TIMING_ADVANCE_INDEX: */ + SET_0(dest); + + /* TIMING_ADVANCE_INDEX: */ + SET_1(dest); + rc = bitvec_set_u64(dest, tai, 4, false); + CHECK(rc); + + return 0; +} + static inline bool write_tai(bitvec *dest, unsigned& wp, int8_t tai) { if (tai < 0) { /* No TIMING_ADVANCE_INDEX: */ @@ -88,43 +153,55 @@ } static int write_ia_rest_downlink(const gprs_rlcmac_dl_tbf *tbf, bitvec * dest, bool polling, bool ta_valid, - uint32_t fn, uint8_t alpha, uint8_t gamma, int8_t ta_idx, unsigned& wp) + uint32_t fn, uint8_t alpha, uint8_t gamma, int8_t ta_idx) { int rc = 0; - bitvec_write_field(dest, &wp, 3, 2); // "HH" - bitvec_write_field(dest, &wp, 1, 2); // "01" Packet Downlink Assignment - bitvec_write_field(dest, &wp,tbf->tlli(),32); // TLLI - bitvec_write_field(dest, &wp,0x1,1); // switch TFI : on - bitvec_write_field(dest, &wp,tbf->tfi(),5); // TFI - bitvec_write_field(dest, &wp,0x0,1); // RLC acknowledged mode - if (alpha) { - bitvec_write_field(dest, &wp,0x1,1); // ALPHA = present - bitvec_write_field(dest, &wp,alpha,4); // ALPHA - } else { - bitvec_write_field(dest, &wp,0x0,1); // ALPHA = not present - } - bitvec_write_field(dest, &wp,gamma,5); // GAMMA power control parameter - bitvec_write_field(dest, &wp,polling,1); // Polling Bit - bitvec_write_field(dest, &wp, ta_valid, 1); // N. B: NOT related to TAI! - write_tai(dest, wp, ta_idx); + SET_H(dest); SET_H(dest); + SET_0(dest); SET_1(dest); /* 00 Packet Downlink Assignment */ + + rc = bitvec_set_u64(dest, tbf->tlli(), 32, false); /* TLLI */ + CHECK(rc); + + SET_1(dest); + rc = bitvec_set_u64(dest, tbf->tfi(), 5, false); /* TFI_ASSIGNMENT */ + CHECK(rc); + + /* RLC acknowledged mode */ + SET_0(dest); /* RLC_MODE */ + + rc = write_alpha_gamma(dest, alpha, gamma); + CHECK(rc); + + rc = bitvec_set_bit(dest, (bit_value)polling); /* POLLING */ + CHECK(rc); + + /* N. B: NOT related to TAI! */ + rc = bitvec_set_bit(dest, (bit_value)ta_valid); /* TA_VALID */ + CHECK(rc); + + rc = write_ta_index(dest, ta_idx); + CHECK(rc); + if (polling) { - bitvec_write_field(dest, &wp,0x1,1); // TBF Starting TIME present - bitvec_write_field(dest, &wp,(fn / (26 * 51)) % 32,5); // T1' - bitvec_write_field(dest, &wp,fn % 51,6); // T3 - bitvec_write_field(dest, &wp,fn % 26,5); // T2 - } else { - bitvec_write_field(dest, &wp,0x0,1); // TBF Starting TIME present - } - bitvec_write_field(dest, &wp,0x0,1); // P0 not present - // bitvec_write_field(dest, &wp,0x1,1); // P0 not present - // bitvec_write_field(dest, &wp,,0xb,4); + SET_1(dest); + rc = write_tbf_start_time(dest, fn); + CHECK(rc); + } else + SET_0(dest); + + SET_0(dest); /* No P0 nor PR_MODE */ + if (tbf->is_egprs_enabled()) { - bitvec_write_field(dest, &wp, 1, 1); // "H" - write_ws(dest, &wp, tbf->window_size()); // EGPRS Window Size - bitvec_write_field(dest, &wp, 0x0, 2); // LINK_QUALITY_MEASUREMENT_MODE - bitvec_write_field(dest, &wp, 0, 1); // BEP_PERIOD2 not present - } + SET_H(dest); + rc = bitvec_set_u64(dest, enc_ws(tbf->window_size()), 5, false); /* EGPRS Window Size */ + CHECK(rc); + + /* The mobile station shall not report measurements: (see 3GPP TS 44.060 Table 11.2.7.1) */ + SET_0(dest); SET_0(dest); /* LINK_QUALITY_MEASUREMENT_MODE */ + SET_1(dest); /* No BEP_PERIOD2 */ + } else + SET_L(dest); /* No Additions for Rel-6 */ return rc; } @@ -393,8 +470,10 @@ LOGP(DRLCMACDL, LOGL_ERROR, "Cannot encode DL IMMEDIATE ASSIGNMENT without TBF\n"); return -EINVAL; } + + dest->cur_bit = wp; rc = write_ia_rest_downlink(as_dl_tbf(tbf), dest, polling, gsm48_ta_is_valid(ta), fn, alpha, gamma, - ta_idx, wp); + ta_idx); } else if (((burst_type == GSM_L1_BURST_TYPE_ACCESS_1) || (burst_type == GSM_L1_BURST_TYPE_ACCESS_2))) { bitvec_write_field(dest, &wp, 1, 2); /* LH */ bitvec_write_field(dest, &wp, 0, 2); /* 0 EGPRS Uplink Assignment */ -- To view, visit https://gerrit.osmocom.org/12954 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie180733d2584ebb16fb80b84526d0dbc70e3d441 Gerrit-Change-Number: 12954 Gerrit-PatchSet: 6 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-Reviewer: tnt Gerrit-CC: Daniel Willmann Gerrit-CC: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 09:17:10 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 26 Feb 2019 09:17:10 +0000 Subject: Change in osmo-pcu[master]: Rewrite EGPRS Packet Uplink IA Rest Octets for MBA In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12952 ) Change subject: Rewrite EGPRS Packet Uplink IA Rest Octets for MBA ...................................................................... Rewrite EGPRS Packet Uplink IA Rest Octets for MBA Use bitvec_set_*() directly without external write pointer tracking to simplify the code. This is part of IA Rest Octets (3GPP TS 44.018 ?10.5.2.16) which is the last part of the message so it should not interfere with the rest of encoding functions. That's partially based on reverted commit 529ce885450946d85d1920fb3d1a994c3efe5849. Change-Id: I19cc4226e7e831e7d7f70212b2078f5589a87ff0 Related: OS#3014 --- M src/encoding.cpp 1 file changed, 11 insertions(+), 15 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/encoding.cpp b/src/encoding.cpp index e7e13ac..ba0e474 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -258,26 +258,21 @@ return rc; } -static int write_ia_rest_egprs_uplink_mba(bitvec * dest, uint32_t fn, uint8_t alpha, uint8_t gamma, unsigned& wp) +static int write_ia_rest_egprs_uplink_mba(bitvec * dest, uint32_t fn, uint8_t alpha, uint8_t gamma) { int rc = 0; - bitvec_write_field(dest, &wp, 0, 1); /* multiblock allocation */ + SET_0(dest); /* Multi Block Allocation */ - if (alpha) { - bitvec_write_field(dest, &wp, 0x1, 1); /* ALPHA =yes */ - bitvec_write_field(dest, &wp, alpha, 4); /* ALPHA */ - } else { - bitvec_write_field(dest, &wp, 0x0, 1); /* ALPHA = no */ - } + rc = write_alpha_gamma(dest, alpha, gamma); + CHECK(rc); - bitvec_write_field(dest, &wp, gamma, 5); /* GAMMA power contrl */ - bitvec_write_field(dest, &wp, (fn / (26 * 51)) % 32, 5);/* T1' */ - bitvec_write_field(dest, &wp, fn % 51, 6); /* T3 */ - bitvec_write_field(dest, &wp, fn % 26, 5); /* T2 */ - bitvec_write_field(dest, &wp, 0, 2); /* Radio block allocation */ + rc = write_tbf_start_time(dest, fn); + CHECK(rc); - bitvec_write_field(dest, &wp, 0, 1); + SET_0(dest); /* NUMBER OF RADIO BLOCKS ALLOCATED: */ + SET_0(dest); /* 1 radio block reserved for uplink transmission */ + SET_0(dest); /* No P0 */ return rc; } @@ -483,7 +478,8 @@ if (as_ul_tbf(tbf) != NULL) { rc = write_ia_rest_egprs_uplink_sba(as_ul_tbf(tbf), dest, usf, alpha, gamma, wp); } else { - rc = write_ia_rest_egprs_uplink_mba(dest, fn, alpha, gamma, wp); + dest->cur_bit = wp; + rc = write_ia_rest_egprs_uplink_mba(dest, fn, alpha, gamma); } } else { OSMO_ASSERT(!tbf || !tbf->is_egprs_enabled()); -- To view, visit https://gerrit.osmocom.org/12952 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I19cc4226e7e831e7d7f70212b2078f5589a87ff0 Gerrit-Change-Number: 12952 Gerrit-PatchSet: 6 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-CC: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 09:22:42 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 09:22:42 +0000 Subject: Change in libosmocore[master]: NS: Factor out gprs_nsvc_start_test() and use it In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13023 ) Change subject: NS: Factor out gprs_nsvc_start_test() and use it ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/13023/1/src/gb/gprs_ns.c File src/gb/gprs_ns.c: https://gerrit.osmocom.org/#/c/13023/1/src/gb/gprs_ns.c at 1952 PS1, Line 1952: gprs_ns_tx_alive(nsvc); > We are losing posible error condition here. [?] I'm not entirely sure that this error propagation actually makse sense in that case. Like, at least historically, in many cases in osmocom. We used to have situations where the socked would be closed because some function at some point returned -1 and everyon passed it up all the way onto the select call-back. Right here the point is that an ALIVE message is transmitted every time the timer expires. So if the first transmission should fail, there will be many more re-transmissions due to the timer we're starting in the next line. All this is over UDP anyway, so packet loss is something both sides have to deal with somehow anyway. -- To view, visit https://gerrit.osmocom.org/13023 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4d303117f77fabb74bbb91887b9914a81c2a084a Gerrit-Change-Number: 13023 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 26 Feb 2019 09:22:42 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 10:20:07 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 10:20:07 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Change PCU-side port to 22000 In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13026 ) Change subject: PCU: Change PCU-side port to 22000 ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13026 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0e98877db8f0300a98f7694744a063c1143b89f3 Gerrit-Change-Number: 13026 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Tue, 26 Feb 2019 10:20:07 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 10:20:08 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 10:20:08 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Add tests for our new IP Sub-Network-Service (SNS) Gb interface In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12985 ) Change subject: PCU: Add tests for our new IP Sub-Network-Service (SNS) Gb interface ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12985 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0fe3d4579960bab0494c294ec7ab8032feed4fb2 Gerrit-Change-Number: 12985 Gerrit-PatchSet: 4 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Daniel Willmann Gerrit-Comment-Date: Tue, 26 Feb 2019 10:20:08 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 10:20:30 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 10:20:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Change PCU-side port to 22000 In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13026 ) Change subject: PCU: Change PCU-side port to 22000 ...................................................................... PCU: Change PCU-side port to 22000 This way the tester and PCU can run on the same ip address without conflicts. Change-Id: I0e98877db8f0300a98f7694744a063c1143b89f3 --- M pcu/PCU_Tests.cfg 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Max: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/pcu/PCU_Tests.cfg b/pcu/PCU_Tests.cfg index 2dfce51..6ea5a5a 100644 --- a/pcu/PCU_Tests.cfg +++ b/pcu/PCU_Tests.cfg @@ -11,7 +11,7 @@ local_ip := "127.0.0.1", local_udp_port := 23000, remote_ip := "127.0.0.1", - remote_udp_port := 23001, + remote_udp_port := 22000, nsvci := 1234, nsei := 1234 } -- To view, visit https://gerrit.osmocom.org/13026 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I0e98877db8f0300a98f7694744a063c1143b89f3 Gerrit-Change-Number: 13026 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 10:20:30 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 10:20:30 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Add tests for our new IP Sub-Network-Service (SNS) Gb interface In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12985 ) Change subject: PCU: Add tests for our new IP Sub-Network-Service (SNS) Gb interface ...................................................................... PCU: Add tests for our new IP Sub-Network-Service (SNS) Gb interface The SNS-enabled Gb interface has no RESET/BLOCK/UNBLOCK procedures, but introduces a bunch of new SNS procedures. Most importantly the SNS-SIZE and SNS-CONFIG procedures. Change-Id: I0fe3d4579960bab0494c294ec7ab8032feed4fb2 Related: OS#3372 --- A pcu/PCU_Tests_RAW_SNS.ttcn 1 file changed, 86 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/pcu/PCU_Tests_RAW_SNS.ttcn b/pcu/PCU_Tests_RAW_SNS.ttcn new file mode 100644 index 0000000..fa906a8 --- /dev/null +++ b/pcu/PCU_Tests_RAW_SNS.ttcn @@ -0,0 +1,86 @@ +module PCU_Tests_RAW_SNS { + +import from Osmocom_Types all; +import from PCU_Tests all; +import from PCU_Tests_RAW all; + +/********************************************************************************** + * Modern Gb/IP bring-up test cases using IP Sub-Network Service (SNS) + **********************************************************************************/ + +/* PCU-originated SNS-SIZE: successful case */ +testcase TC_sns_po_size_success() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + f_incoming_sns_size(); + f_sleep(1.0); + setverdict(pass); +} + +/* PCU-originated SNS-SIZE: NACK from our side */ +testcase TC_sns_po_size_nack() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + f_incoming_sns_size(NS_CAUSE_PROTOCOL_ERROR_UNSPEIFIED); + /* FIXME: ensure we don't get a SNS-CONFIG */ + /* FIXME: ensure we get re-transmitted SNS-SIZE attempts */ + f_sleep(10.0); + setverdict(pass); +} + +/* PCU-originated SNS-CONFIG: successful case */ +testcase TC_sns_po_config_success() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + f_incoming_sns_size(); + f_incoming_sns_config(); + f_sleep(1.0); + setverdict(pass); +} + +/* PCU-originated SNS-CONFIG: successful case */ +testcase TC_sns_po_config_nack() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + f_incoming_sns_size(); + f_incoming_sns_config(NS_CAUSE_PROTOCOL_ERROR_UNSPEIFIED); + /* FIXME: ensure we get re-transmitted SNS-CONFIG attempts */ + f_sleep(10.0); + setverdict(pass); +} + + +/* SGSN-originated SNS-SIZE: successful case */ +testcase TC_sns_so_config_success() runs on RAW_NS_CT { + f_init_ns_codec(); + f_init_pcuif(); + f_incoming_sns_size(); + f_incoming_sns_config(); + f_outgoing_sns_config(); + + /* wait for one ALIVE cycle, then ACK any further ALIVE in the background */ + as_rx_alive_tx_ack(oneshot := true); + activate(as_rx_alive_tx_ack()); + + f_outgoing_ns_alive(); + + /* Expect BVC-RESET for signaling (0) and ptp BVCI */ + as_rx_bvc_reset_tx_ack(0, oneshot := true); + as_rx_bvc_reset_tx_ack(mp_gb_cfg.bvci, oneshot := true); + as_rx_bvc_unblock_tx_ack(mp_gb_cfg.bvci, oneshot := true); + + /* wait for one FLOW-CONTROL BVC and then ACK any further in the future */ + as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvci, oneshot := true); + activate(as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvci)); + setverdict(pass); +} + +control { + execute( TC_sns_po_size_success() ); + execute( TC_sns_po_size_nack() ); + execute( TC_sns_po_config_success() ); + execute( TC_sns_po_config_nack() ); + execute( TC_sns_so_config_success() ); +} + +} -- To view, visit https://gerrit.osmocom.org/12985 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I0fe3d4579960bab0494c294ec7ab8032feed4fb2 Gerrit-Change-Number: 12985 Gerrit-PatchSet: 5 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Daniel Willmann -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 10:20:32 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 10:20:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Move SNS specific functions to PCU_Tests_RAW_SNS.ttcn In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13009 ) Change subject: PCU: Move SNS specific functions to PCU_Tests_RAW_SNS.ttcn ...................................................................... PCU: Move SNS specific functions to PCU_Tests_RAW_SNS.ttcn Change-Id: Ie41a21b6f2b95f4aaea84d8b717e96efefb704e3 RelateD: OS#3372 --- M pcu/PCU_Tests_RAW.ttcn M pcu/PCU_Tests_RAW_SNS.ttcn 2 files changed, 38 insertions(+), 35 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/pcu/PCU_Tests_RAW.ttcn b/pcu/PCU_Tests_RAW.ttcn index eb06088..3640b01 100644 --- a/pcu/PCU_Tests_RAW.ttcn +++ b/pcu/PCU_Tests_RAW.ttcn @@ -96,41 +96,6 @@ return nrf.msg; } -/* perform inbound SNS-SIZE procedure */ -function f_incoming_sns_size(template (omit) NsCause cause := omit) runs on RAW_NS_CT { - var PDU_NS rx; - /* expect one single SNS-SIZE with RESET flag; one remote v4 EP; no v6 EP */ - rx := f_ns_exp(tr_SNS_SIZE(mp_nsconfig.nsei, rst_flag := true, max_nsvcs := ?, - num_v4 := 1, num_v6 := omit)); - NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_SIZE_ACK(mp_nsconfig.nsei, cause))); -} - -/* perform outbound SNS-SIZE procedure */ -function f_outgoing_sns_size(template (omit) NsCause cause := omit) runs on RAW_NS_CT { - var PDU_NS rx; - NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_SIZE(mp_nsconfig.nsei, rst_flag := true, max_nsvcs := 1, - num_v4 := 1, num_v6 := omit) - )); - /* expect one single SNS-SIZE with RESET flag; one remote v4 EP; no v6 EP */ - rx := f_ns_exp(tr_SNS_SIZE_ACK(mp_nsconfig.nsei, cause)); -} - -/* perform inbound SNS-CONFIG procedure */ -function f_incoming_sns_config(template (omit) NsCause cause := omit) runs on RAW_NS_CT { - var PDU_NS rx; - rx := f_ns_exp(tr_SNS_CONFIG(mp_nsconfig.nsei, end_flag := true, v4 := ?)); - NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_CONFIG_ACK(mp_nsconfig.nsei, cause))); -} - -/* perform outbound SNS-CONFIG procedure */ -function f_outgoing_sns_config(template (omit) NsCause cause := omit) runs on RAW_NS_CT { - var PDU_NS rx; - var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(mp_nsconfig.local_ip, - mp_nsconfig.local_udp_port) } - NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_CONFIG(mp_nsconfig.nsei, true, v4))); - rx := f_ns_exp(tr_SNS_CONFIG_ACK(mp_nsconfig.nsei, cause)); -} - /* perform outbound NS-ALIVE procedure */ function f_outgoing_ns_alive() runs on RAW_NS_CT { NSCP.send(t_NS_Send(g_ns_conn_id, t_NS_ALIVE)); diff --git a/pcu/PCU_Tests_RAW_SNS.ttcn b/pcu/PCU_Tests_RAW_SNS.ttcn index fa906a8..a306fe4 100644 --- a/pcu/PCU_Tests_RAW_SNS.ttcn +++ b/pcu/PCU_Tests_RAW_SNS.ttcn @@ -3,11 +3,49 @@ import from Osmocom_Types all; import from PCU_Tests all; import from PCU_Tests_RAW all; +import from Osmocom_Gb_Types all; +import from NS_CodecPort all; +import from NS_Types all; /********************************************************************************** * Modern Gb/IP bring-up test cases using IP Sub-Network Service (SNS) **********************************************************************************/ +/* perform inbound SNS-SIZE procedure */ +function f_incoming_sns_size(template (omit) NsCause cause := omit) runs on RAW_NS_CT { + var PDU_NS rx; + /* expect one single SNS-SIZE with RESET flag; one remote v4 EP; no v6 EP */ + rx := f_ns_exp(tr_SNS_SIZE(mp_nsconfig.nsei, rst_flag := true, max_nsvcs := ?, + num_v4 := 1, num_v6 := omit)); + NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_SIZE_ACK(mp_nsconfig.nsei, cause))); +} + +/* perform outbound SNS-SIZE procedure */ +function f_outgoing_sns_size(template (omit) NsCause cause := omit) runs on RAW_NS_CT { + var PDU_NS rx; + NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_SIZE(mp_nsconfig.nsei, rst_flag := true, max_nsvcs := 1, + num_v4 := 1, num_v6 := omit) + )); + /* expect one single SNS-SIZE with RESET flag; one remote v4 EP; no v6 EP */ + rx := f_ns_exp(tr_SNS_SIZE_ACK(mp_nsconfig.nsei, cause)); +} + +/* perform inbound SNS-CONFIG procedure */ +function f_incoming_sns_config(template (omit) NsCause cause := omit) runs on RAW_NS_CT { + var PDU_NS rx; + rx := f_ns_exp(tr_SNS_CONFIG(mp_nsconfig.nsei, end_flag := true, v4 := ?)); + NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_CONFIG_ACK(mp_nsconfig.nsei, cause))); +} + +/* perform outbound SNS-CONFIG procedure */ +function f_outgoing_sns_config(template (omit) NsCause cause := omit) runs on RAW_NS_CT { + var PDU_NS rx; + var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(mp_nsconfig.local_ip, + mp_nsconfig.local_udp_port) } + NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_CONFIG(mp_nsconfig.nsei, true, v4))); + rx := f_ns_exp(tr_SNS_CONFIG_ACK(mp_nsconfig.nsei, cause)); +} + /* PCU-originated SNS-SIZE: successful case */ testcase TC_sns_po_size_success() runs on RAW_NS_CT { f_init_ns_codec(); -- To view, visit https://gerrit.osmocom.org/13009 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie41a21b6f2b95f4aaea84d8b717e96efefb704e3 Gerrit-Change-Number: 13009 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 10:20:32 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 10:20:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Prepare for having multiple Gb connections on tester side In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13010 ) Change subject: PCU: Prepare for having multiple Gb connections on tester side ...................................................................... PCU: Prepare for having multiple Gb connections on tester side Change-Id: I6de4832bda18b36873f57986a34ba8082af2c853 Related: OS#3372 --- M pcu/PCU_Tests_RAW.ttcn M pcu/PCU_Tests_RAW_SNS.ttcn 2 files changed, 94 insertions(+), 62 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/pcu/PCU_Tests_RAW.ttcn b/pcu/PCU_Tests_RAW.ttcn index 3640b01..397e895 100644 --- a/pcu/PCU_Tests_RAW.ttcn +++ b/pcu/PCU_Tests_RAW.ttcn @@ -30,8 +30,9 @@ type component RAW_NS_CT { /* UDP port towards the bottom (IUT) */ - port NS_CODEC_PT NSCP; - var ConnectionId g_ns_conn_id := -1; + port NS_CODEC_PT NSCP[4]; + var ConnectionId g_ns_conn_id[4] := {-1, -1, -1, -1}; + var NSConfiguration g_nsconfig[4]; timer g_T_guard; /* PCUIF (we emulate the BTS part) */ @@ -67,28 +68,41 @@ PCU.send(t_SD_PCUIF(g_pcu_conn_id, info_ind)); } -function f_init_ns_codec(float guard_secs := 60.0) runs on RAW_NS_CT { +function f_init_ns_codec(integer idx := 0, float guard_secs := 60.0) runs on RAW_NS_CT { var Result res; - map(self:NSCP, system:NSCP); + + if (not g_T_guard.running) { + g_T_guard.start(guard_secs); + activate(as_Tguard()); + } + + if (not isbound(g_nsconfig) or not isbound(g_nsconfig[idx])) { + /* copy most parts from mp_nsconfig */ + g_nsconfig[idx] := mp_nsconfig; + /* adjust those parts different for each NS-VC */ + g_nsconfig[idx].nsvci := mp_nsconfig.nsvci + idx; + g_nsconfig[idx].local_udp_port := mp_nsconfig.local_udp_port + idx; + } + + map(self:NSCP[idx], system:NSCP); /* Connect the UDP socket */ - res := f_IPL4_connect(NSCP, mp_nsconfig.remote_ip, mp_nsconfig.remote_udp_port, - mp_nsconfig.local_ip, mp_nsconfig.local_udp_port, - 0, { udp := {}}); + log("connecting NSCP[", idx, "] to ", g_nsconfig[idx]); + res := f_IPL4_connect(NSCP[idx], g_nsconfig[idx].remote_ip, g_nsconfig[idx].remote_udp_port, + g_nsconfig[idx].local_ip, g_nsconfig[idx].local_udp_port, 0, { udp := {}}); if (not ispresent(res.connId)) { - setverdict(fail, "Could not connect NS UDP socket, check your configuration"); + setverdict(fail, "Could not connect NS UDP socket, check your configuration ", g_nsconfig[idx]); mtc.stop; } - g_ns_conn_id := res.connId; - g_T_guard.start(guard_secs); - activate(as_Tguard()); + g_ns_conn_id[idx] := res.connId; + } -function f_ns_exp(template PDU_NS exp_rx) runs on RAW_NS_CT return PDU_NS { +function f_ns_exp(template PDU_NS exp_rx, integer idx := 0) runs on RAW_NS_CT return PDU_NS { var NS_RecvFrom nrf; log("f_ns_exp() expecting ", exp_rx); alt { - [] NSCP.receive(t_NS_RecvFrom(exp_rx)) -> value nrf { } - [] NSCP.receive { + [] NSCP[idx].receive(t_NS_RecvFrom(exp_rx)) -> value nrf { } + [] NSCP[idx].receive { setverdict(fail, "Received unexpected NS: ", nrf); mtc.stop; } @@ -97,69 +111,69 @@ } /* perform outbound NS-ALIVE procedure */ -function f_outgoing_ns_alive() runs on RAW_NS_CT { - NSCP.send(t_NS_Send(g_ns_conn_id, t_NS_ALIVE)); +function f_outgoing_ns_alive(integer idx := 0) runs on RAW_NS_CT { + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], t_NS_ALIVE)); alt { - [] NSCP.receive(t_NS_RecvFrom(t_NS_ALIVE_ACK)); - [] NSCP.receive { repeat; } + [] NSCP[idx].receive(t_NS_RecvFrom(t_NS_ALIVE_ACK)); + [] NSCP[idx].receive { repeat; } } } /* perform outbound NS-BLOCK procedure */ -function f_outgoing_ns_block(NsCause cause) runs on RAW_NS_CT { - NSCP.send(t_NS_Send(g_ns_conn_id, ts_NS_BLOCK(cause, mp_nsconfig.nsvci))); +function f_outgoing_ns_block(NsCause cause, integer idx := 0) runs on RAW_NS_CT { + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_NS_BLOCK(cause, g_nsconfig[idx].nsvci))); alt { - [] NSCP.receive(t_NS_RecvFrom(tr_NS_BLOCK_ACK(mp_nsconfig.nsvci))); - [] NSCP.receive { repeat; } + [] NSCP[idx].receive(t_NS_RecvFrom(tr_NS_BLOCK_ACK(g_nsconfig[idx].nsvci))); + [] NSCP[idx].receive { repeat; } } } /* receive NS-ALIVE and ACK it */ -altstep as_rx_alive_tx_ack(boolean oneshot := false) runs on RAW_NS_CT { - [] NSCP.receive(t_NS_RecvFrom(t_NS_ALIVE)) { - NSCP.send(t_NS_Send(g_ns_conn_id, t_NS_ALIVE_ACK)); +altstep as_rx_alive_tx_ack(boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { + [] NSCP[idx].receive(t_NS_RecvFrom(t_NS_ALIVE)) { + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], t_NS_ALIVE_ACK)); if (not oneshot) { repeat; } } } /* Receive a BSSGP RESET for given BVCI and ACK it */ -altstep as_rx_bvc_reset_tx_ack(BssgpBvci bvci, boolean oneshot := false) runs on RAW_NS_CT { +altstep as_rx_bvc_reset_tx_ack(BssgpBvci bvci, boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { var NS_RecvFrom ns_rf; /* FIXME: nail down received cell_id in match */ - [] NSCP.receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, 0, + [] NSCP[idx].receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, 0, decmatch tr_BVC_RESET(?, bvci, ?)))) -> value ns_rf { var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.msg.pDU_NS_Unitdata.nS_SDU); var PDU_BSSGP bssgp_tx := valueof(ts_BVC_RESET_ACK(bvci, mp_gb_cfg.cell_id)); - NSCP.send(t_NS_Send(g_ns_conn_id, ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx)))); + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx)))); if (not oneshot) { repeat; } } } /* Receive a BSSGP UNBLOCK for given BVCI and ACK it */ -altstep as_rx_bvc_unblock_tx_ack(BssgpBvci bvci, boolean oneshot := false) runs on RAW_NS_CT { +altstep as_rx_bvc_unblock_tx_ack(BssgpBvci bvci, boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { var NS_RecvFrom ns_rf; - [] NSCP.receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, 0, + [] NSCP[idx].receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, 0, decmatch t_BVC_UNBLOCK(bvci)))) -> value ns_rf { var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.msg.pDU_NS_Unitdata.nS_SDU); var PDU_BSSGP bssgp_tx := valueof(t_BVC_UNBLOCK_ACK(bvci)); - NSCP.send(t_NS_Send(g_ns_conn_id, ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx)))); + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_NS_UNITDATA(t_SduCtrlB, 0, enc_PDU_BSSGP(bssgp_tx)))); if (not oneshot) { repeat; } } } /* Receive a BSSGP FLOW-CONTROL-BVC and ACK it */ -altstep as_rx_bvc_fc_tx_ack(BssgpBvci bvci, boolean oneshot := false) runs on RAW_NS_CT { +altstep as_rx_bvc_fc_tx_ack(BssgpBvci bvci, boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { var NS_RecvFrom ns_rf; - [] NSCP.receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, bvci, + [] NSCP[idx].receive(t_NS_RecvFrom(tr_NS_UNITDATA(t_SduCtrlB, bvci, decmatch tr_BVC_FC_BVC))) -> value ns_rf { var PDU_BSSGP bssgp_rx := dec_PDU_BSSGP(ns_rf.msg.pDU_NS_Unitdata.nS_SDU); var OCT1 tag := bssgp_rx.pDU_BSSGP_FLOW_CONTROL_BVC.tag.unstructured_Value; var PDU_BSSGP bssgp_tx := valueof(t_BVC_FC_BVC_ACK(tag)); - NSCP.send(t_NS_Send(g_ns_conn_id, ts_NS_UNITDATA(t_SduCtrlB, bvci, enc_PDU_BSSGP(bssgp_tx)))); + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_NS_UNITDATA(t_SduCtrlB, bvci, enc_PDU_BSSGP(bssgp_tx)))); if (not oneshot) { repeat; } } } @@ -169,19 +183,20 @@ **********************************************************************************/ /* Receive a NS-RESET and ACK it */ -private altstep as_rx_ns_reset_ack(boolean oneshot := false) runs on RAW_NS_CT { +private altstep as_rx_ns_reset_ack(boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { var NS_RecvFrom ns_rf; - [] NSCP.receive(t_NS_RecvFrom(tr_NS_RESET(NS_CAUSE_OM_INTERVENTION, mp_nsconfig.nsvci, - mp_nsconfig.nsei))) -> value ns_rf { - NSCP.send(t_NS_Send(g_ns_conn_id, ts_NS_RESET_ACK(mp_nsconfig.nsvci, mp_nsconfig.nsei))); + [] NSCP[idx].receive(t_NS_RecvFrom(tr_NS_RESET(NS_CAUSE_OM_INTERVENTION, g_nsconfig[idx].nsvci, + g_nsconfig[idx].nsei))) -> value ns_rf { + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_NS_RESET_ACK(g_nsconfig[idx].nsvci, + g_nsconfig[idx].nsei))); if (not oneshot) { repeat; } } } /* Receive a NS-UNBLOCK and ACK it */ -private altstep as_rx_ns_unblock_ack(boolean oneshot := false) runs on RAW_NS_CT { +private altstep as_rx_ns_unblock_ack(boolean oneshot := false, integer idx := 0) runs on RAW_NS_CT { var NS_RecvFrom ns_rf; - [] NSCP.receive(t_NS_RecvFrom(t_NS_UNBLOCK)) -> value ns_rf { - NSCP.send(t_NS_Send(g_ns_conn_id, t_NS_UNBLOCK_ACK)); + [] NSCP[idx].receive(t_NS_RecvFrom(t_NS_UNBLOCK)) -> value ns_rf { + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], t_NS_UNBLOCK_ACK)); if (not oneshot) { repeat; } } } @@ -204,8 +219,8 @@ var integer i; for (i := 0; i < 3; i := i+1) { - NSCP.receive(t_NS_RecvFrom(tr_NS_RESET(NS_CAUSE_OM_INTERVENTION, - mp_nsconfig.nsvci, mp_nsconfig.nsei))); + NSCP[0].receive(t_NS_RecvFrom(tr_NS_RESET(NS_CAUSE_OM_INTERVENTION, + g_nsconfig[0].nsvci, g_nsconfig[0].nsei))); } /* Expect inbound NS-RESET procedure */ @@ -228,19 +243,19 @@ /* Test for NS-RESET after NS-ALIVE timeout */ testcase TC_ns_alive_timeout_reset() runs on RAW_NS_CT { - f_init_ns_codec(100.0); + f_init_ns_codec(guard_secs := 100.0); f_init_pcuif(); /* Expect inbound NS-RESET procedure */ as_rx_ns_reset_ack(oneshot := true); /* wait for at least one NS-ALIVE */ - NSCP.receive(t_NS_RecvFrom(t_NS_ALIVE)); + NSCP[0].receive(t_NS_RecvFrom(t_NS_ALIVE)); /* wait for NS-RESET to re-appear, ignoring any NS-ALIVE until then */ alt { [] as_rx_ns_reset_ack(oneshot := true) { setverdict(pass); } - [] NSCP.receive(t_NS_RecvFrom(t_NS_ALIVE)) { repeat; } + [] NSCP[0].receive(t_NS_RecvFrom(t_NS_ALIVE)) { repeat; } } } @@ -273,7 +288,7 @@ activate(as_rx_alive_tx_ack()); /* wait for first NS-UNBLOCK, don't respond */ - NSCP.receive(t_NS_RecvFrom(t_NS_UNBLOCK)); + NSCP[0].receive(t_NS_RecvFrom(t_NS_UNBLOCK)); /* wait for re-transmission of NS-UNBLOCK */ as_rx_ns_unblock_ack(oneshot := true); diff --git a/pcu/PCU_Tests_RAW_SNS.ttcn b/pcu/PCU_Tests_RAW_SNS.ttcn index a306fe4..3e4ef2c 100644 --- a/pcu/PCU_Tests_RAW_SNS.ttcn +++ b/pcu/PCU_Tests_RAW_SNS.ttcn @@ -12,40 +12,57 @@ **********************************************************************************/ /* perform inbound SNS-SIZE procedure */ -function f_incoming_sns_size(template (omit) NsCause cause := omit) runs on RAW_NS_CT { +function f_incoming_sns_size(template (omit) NsCause cause := omit, integer idx := 0) +runs on RAW_NS_CT { var PDU_NS rx; /* expect one single SNS-SIZE with RESET flag; one remote v4 EP; no v6 EP */ - rx := f_ns_exp(tr_SNS_SIZE(mp_nsconfig.nsei, rst_flag := true, max_nsvcs := ?, - num_v4 := 1, num_v6 := omit)); - NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_SIZE_ACK(mp_nsconfig.nsei, cause))); + rx := f_ns_exp(tr_SNS_SIZE(g_nsconfig[idx].nsei, rst_flag := true, max_nsvcs := 8, + num_v4 := 4, num_v6 := omit), idx); + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_SIZE_ACK(g_nsconfig[idx].nsei, cause))); } /* perform outbound SNS-SIZE procedure */ -function f_outgoing_sns_size(template (omit) NsCause cause := omit) runs on RAW_NS_CT { +function f_outgoing_sns_size(template (omit) NsCause cause := omit, integer idx:= 0) +runs on RAW_NS_CT { var PDU_NS rx; - NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_SIZE(mp_nsconfig.nsei, rst_flag := true, max_nsvcs := 1, + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_SIZE(g_nsconfig[idx].nsei, rst_flag := true, max_nsvcs := 1, num_v4 := 1, num_v6 := omit) )); /* expect one single SNS-SIZE with RESET flag; one remote v4 EP; no v6 EP */ - rx := f_ns_exp(tr_SNS_SIZE_ACK(mp_nsconfig.nsei, cause)); + rx := f_ns_exp(tr_SNS_SIZE_ACK(g_nsconfig[idx].nsei, cause), idx); } /* perform inbound SNS-CONFIG procedure */ -function f_incoming_sns_config(template (omit) NsCause cause := omit) runs on RAW_NS_CT { +function f_incoming_sns_config(template (omit) NsCause cause := omit, integer idx := 0) +runs on RAW_NS_CT { var PDU_NS rx; - rx := f_ns_exp(tr_SNS_CONFIG(mp_nsconfig.nsei, end_flag := true, v4 := ?)); - NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_CONFIG_ACK(mp_nsconfig.nsei, cause))); + rx := f_ns_exp(tr_SNS_CONFIG(g_nsconfig[idx].nsei, end_flag := true, v4 := ?), idx); + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause))); } /* perform outbound SNS-CONFIG procedure */ -function f_outgoing_sns_config(template (omit) NsCause cause := omit) runs on RAW_NS_CT { +function f_outgoing_sns_config(template (omit) NsCause cause := omit, integer idx := 0) +runs on RAW_NS_CT { var PDU_NS rx; - var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(mp_nsconfig.local_ip, - mp_nsconfig.local_udp_port) } - NSCP.send(t_NS_Send(g_ns_conn_id, ts_SNS_CONFIG(mp_nsconfig.nsei, true, v4))); - rx := f_ns_exp(tr_SNS_CONFIG_ACK(mp_nsconfig.nsei, cause)); + var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[idx].local_ip, + g_nsconfig[idx].local_udp_port) } + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, v4))); + rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause), idx); } +/* perform outbound SNS-CONFIG procedure (separate endpoints: 1 for control, 1 for user */ +function f_outgoing_sns_config_1c1u(template (omit) NsCause cause := omit, integer idx := 0) +runs on RAW_NS_CT { + var PDU_NS rx; + var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[0].local_ip, + g_nsconfig[0].local_udp_port, 1, 0), + ts_SNS_IPv4(g_nsconfig[1].local_ip, + g_nsconfig[1].local_udp_port, 0, 1) }; + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG(g_nsconfig[idx].nsei, true, v4))); + rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause), idx); +} + + /* PCU-originated SNS-SIZE: successful case */ testcase TC_sns_po_size_success() runs on RAW_NS_CT { f_init_ns_codec(); -- To view, visit https://gerrit.osmocom.org/13010 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I6de4832bda18b36873f57986a34ba8082af2c853 Gerrit-Change-Number: 13010 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 10:20:32 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 10:20:32 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Add a bit more logging/tracing to ease debugging of SNS tests In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13011 ) Change subject: PCU: Add a bit more logging/tracing to ease debugging of SNS tests ...................................................................... PCU: Add a bit more logging/tracing to ease debugging of SNS tests Change-Id: Ic558f02f3c3ddbde0f16a7656b84486a8462b0a4 Related: OS#3372 --- M pcu/PCU_Tests_RAW_SNS.ttcn 1 file changed, 5 insertions(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/pcu/PCU_Tests_RAW_SNS.ttcn b/pcu/PCU_Tests_RAW_SNS.ttcn index 3e4ef2c..fb4d8f7 100644 --- a/pcu/PCU_Tests_RAW_SNS.ttcn +++ b/pcu/PCU_Tests_RAW_SNS.ttcn @@ -14,6 +14,7 @@ /* perform inbound SNS-SIZE procedure */ function f_incoming_sns_size(template (omit) NsCause cause := omit, integer idx := 0) runs on RAW_NS_CT { + log("f_incoming_sns_size(idx=", idx, ")"); var PDU_NS rx; /* expect one single SNS-SIZE with RESET flag; one remote v4 EP; no v6 EP */ rx := f_ns_exp(tr_SNS_SIZE(g_nsconfig[idx].nsei, rst_flag := true, max_nsvcs := 8, @@ -24,6 +25,7 @@ /* perform outbound SNS-SIZE procedure */ function f_outgoing_sns_size(template (omit) NsCause cause := omit, integer idx:= 0) runs on RAW_NS_CT { + log("f_outgoing_sns_size(idx=", idx, ")"); var PDU_NS rx; NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_SIZE(g_nsconfig[idx].nsei, rst_flag := true, max_nsvcs := 1, num_v4 := 1, num_v6 := omit) @@ -35,6 +37,7 @@ /* perform inbound SNS-CONFIG procedure */ function f_incoming_sns_config(template (omit) NsCause cause := omit, integer idx := 0) runs on RAW_NS_CT { + log("f_incoming_sns_config(idx=", idx, ")"); var PDU_NS rx; rx := f_ns_exp(tr_SNS_CONFIG(g_nsconfig[idx].nsei, end_flag := true, v4 := ?), idx); NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause))); @@ -43,6 +46,7 @@ /* perform outbound SNS-CONFIG procedure */ function f_outgoing_sns_config(template (omit) NsCause cause := omit, integer idx := 0) runs on RAW_NS_CT { + log("f_outgoing_sns_config(idx=", idx, ")"); var PDU_NS rx; var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[idx].local_ip, g_nsconfig[idx].local_udp_port) } @@ -53,6 +57,7 @@ /* perform outbound SNS-CONFIG procedure (separate endpoints: 1 for control, 1 for user */ function f_outgoing_sns_config_1c1u(template (omit) NsCause cause := omit, integer idx := 0) runs on RAW_NS_CT { + log("f_outgoing_sns_config_1c1u(idx=", idx, ")"); var PDU_NS rx; var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[0].local_ip, g_nsconfig[0].local_udp_port, 1, 0), -- To view, visit https://gerrit.osmocom.org/13011 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic558f02f3c3ddbde0f16a7656b84486a8462b0a4 Gerrit-Change-Number: 13011 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 10:23:05 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 10:23:05 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Add test for SNS Change Weight procedure In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13027 ) Change subject: PCU: Add test for SNS Change Weight procedure ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/13027/1/pcu/PCU_Tests_RAW_SNS.ttcn File pcu/PCU_Tests_RAW_SNS.ttcn: https://gerrit.osmocom.org/#/c/13027/1/pcu/PCU_Tests_RAW_SNS.ttcn at 99 PS1, Line 99: NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CHG_WEIGHT(g_nsconfig[idx].nsei, 25, v4))); > Is g_nsconfig[idx].nsei correct? Shouldn't it be g_nsconfig[idx_chg]. [?] g_nsconfig[idx_chg] should be correct. However, the NSEI is actually identical across all conigurations, at least in sane/valid scenarios where *one* BSS is adressed. WE just historically didn't have multiple NS-VCs so we had one NSEI per NS-VC. "idx" is the index of the NS-VC through which the SNS message is to be sent, which can be any of the NS-VCs there are between the BSS and SGSN. "idx_chg" is the index of the [same or other] NS-VC that we want to change. -- To view, visit https://gerrit.osmocom.org/13027 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia63865139f63969ccde010b01ddb8fb073209f3a Gerrit-Change-Number: 13027 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 26 Feb 2019 10:23:05 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 10:28:24 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 26 Feb 2019 10:28:24 +0000 Subject: Change in osmo-pcu[master]: Rewrite EGPRS Packet Uplink IA Rest Octets for SBA In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/12960 ) Change subject: Rewrite EGPRS Packet Uplink IA Rest Octets for SBA ...................................................................... Patch Set 3: This change is ready for review. -- To view, visit https://gerrit.osmocom.org/12960 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I143b3dd02aa54b9ce206d9e780a5554f6d9fd118 Gerrit-Change-Number: 12960 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 26 Feb 2019 10:28:24 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 10:30:04 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 10:30:04 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Add test for SNS Change Weight procedure In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13027 ) Change subject: PCU: Add test for SNS Change Weight procedure ...................................................................... Patch Set 1: Code-Review+2 (1 comment) https://gerrit.osmocom.org/#/c/13027/1/pcu/PCU_Tests_RAW_SNS.ttcn File pcu/PCU_Tests_RAW_SNS.ttcn: https://gerrit.osmocom.org/#/c/13027/1/pcu/PCU_Tests_RAW_SNS.ttcn at 99 PS1, Line 99: NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CHG_WEIGHT(g_nsconfig[idx].nsei, 25, v4))); > g_nsconfig[idx_chg] should be correct. [?] actually, it is correct as it is now. Sorry for the confusion. We're sending the request over 'idx' and it will affect 'idx_chg' as that's whats used inside the message body/IEs. -- To view, visit https://gerrit.osmocom.org/13027 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ia63865139f63969ccde010b01ddb8fb073209f3a Gerrit-Change-Number: 13027 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 26 Feb 2019 10:30:04 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 10:30:22 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 10:30:22 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Add minimal support for SGSN-side SNS handling Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13046 Change subject: NS_Emulation: Add minimal support for SGSN-side SNS handling ...................................................................... NS_Emulation: Add minimal support for SGSN-side SNS handling Change-Id: I1edf739d6fd39478f662a28a7d9334ca51c270a3 --- M library/NS_Emulation.ttcn M pcu/PCU_Tests.ttcn M sgsn/SGSN_Tests.ttcn 3 files changed, 57 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/46/13046/1 diff --git a/library/NS_Emulation.ttcn b/library/NS_Emulation.ttcn index 6915993..9ad89cb 100644 --- a/library/NS_Emulation.ttcn +++ b/library/NS_Emulation.ttcn @@ -116,7 +116,9 @@ PortNumber remote_udp_port, charstring remote_ip, Nsvci nsvci, - Nsvci nsei + Nsvci nsei, + boolean role_sgsn, + boolean handle_sns } private function f_change_state(NseState new_state) runs on NS_CT { @@ -192,6 +194,8 @@ /* FIXME */ } + [config.role_sgsn and config.handle_sns] as_sns_sgsn(); + /* default case of handling unknown PDUs */ [] NSCP.receive(t_NS_RecvFrom(?)) -> value rf { log("Rx Unexpected NS PDU ", rf.msg," in state ", g_state); @@ -201,6 +205,46 @@ [] NSCP.receive(ASP_Event:?) -> value evt { NS_SP.send(evt); } } + /* simple IP Sub-Network Service responder for the SGSN side. This is not a full implementation + * of the protocol, merely sufficient to make the PCU/BSS side happy to proceed */ + altstep as_sns_sgsn() runs on NS_CT { + var NS_RecvFrom rf; + [] NSCP.receive(t_NS_RecvFrom(tr_SNS_SIZE(config.nsei))) -> value rf { + /* blindly acknowledge whatever the PCU sends */ + NSCP.send(t_NS_Send(g_conn_id, ts_SNS_SIZE_ACK(config.nsei, omit))); + } + [] NSCP.receive(t_NS_RecvFrom(tr_SNS_SIZE(?))) { + setverdict(fail, "SNS-SIZE from unexpected NSEI"); + self.stop; + } + [] NSCP.receive(t_NS_RecvFrom(tr_SNS_CONFIG(config.nsei, true, + {tr_SNS_IPv4(config.remote_ip, config.remote_udp_port)}))) -> value rf { + /* blindly acknowledge whatever the PCU sends */ + NSCP.send(t_NS_Send(g_conn_id, ts_SNS_CONFIG_ACK(config.nsei, omit))); + /* send a SNS-CONFIG in response and expect a SNS-CONFIG-ACK */ + var IP4_Elements v4 := { valueof(ts_SNS_IPv4(config.local_ip, config.local_udp_port)) }; + NSCP.send(t_NS_Send(g_conn_id, ts_SNS_CONFIG(config.nsei, true, v4))); + alt { + [] NSCP.receive(t_NS_RecvFrom(tr_SNS_CONFIG_ACK(config.nsei, omit))) { + /* success */ + } + [] NSCP.receive(t_NS_RecvFrom(tr_SNS_CONFIG_ACK(config.nsei, ?))) { + setverdict(fail, "Unexpected SNS-CONFIG-NACK"); + self.stop; + } + } + } + [] NSCP.receive(t_NS_RecvFrom(tr_SNS_CONFIG(config.nsei, false, ?))) { /* ignore */} + [] NSCP.receive(t_NS_RecvFrom(tr_SNS_CONFIG(config.nsei, true, ?))) { + setverdict(fail, "Unexpected SNS-CONFIG content"); + self.stop; + } + [] NSCP.receive(t_NS_RecvFrom(tr_SNS_CONFIG(?, ?, ?))) { + setverdict(fail, "SNS-CONFIG from unexpected NSEI"); + self.stop; + } + } + private function f_ScanEvents() runs on NS_CT { var NsUnitdataRequest ud_req; var NS_RecvFrom rf; diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn index 6e8185d..f63c4ad 100644 --- a/pcu/PCU_Tests.ttcn +++ b/pcu/PCU_Tests.ttcn @@ -43,7 +43,9 @@ remote_udp_port := 21000, remote_ip := "127.0.0.1", nsvci := 0, - nsei := 2342 + nsei := 2342, + role_sgsn := true, + handle_sns := true }; } diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn index a2e93c0..8b639e6 100644 --- a/sgsn/SGSN_Tests.ttcn +++ b/sgsn/SGSN_Tests.ttcn @@ -51,7 +51,9 @@ remote_udp_port := 23000, remote_ip := "127.0.0.1", nsvci := 97, - nsei := 96 + nsei := 96, + role_sgsn := false, + handle_sns := false }, { local_udp_port := 21011, @@ -59,7 +61,9 @@ remote_udp_port := 23000, remote_ip := "127.0.0.1", nsvci := 98, - nsei := 97 + nsei := 97, + role_sgsn := false, + handle_sns := false }, { local_udp_port := 21012, @@ -67,7 +71,9 @@ remote_udp_port := 23000, remote_ip := "127.0.0.1", nsvci := 99, - nsei := 98 + nsei := 98, + role_sgsn := false, + handle_sns := false } }; }; -- To view, visit https://gerrit.osmocom.org/13046 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I1edf739d6fd39478f662a28a7d9334ca51c270a3 Gerrit-Change-Number: 13046 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 10:30:23 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 10:30:23 +0000 Subject: Change in osmo-ttcn3-hacks[master]: NS_Emulation: Disable sending NS-RESET from SGSN to BSS Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13047 Change subject: NS_Emulation: Disable sending NS-RESET from SGSN to BSS ...................................................................... NS_Emulation: Disable sending NS-RESET from SGSN to BSS Change-Id: I2a5775fcaf63ac008adecaf2c602c82e9e4ccb5a --- M library/NS_Emulation.ttcn 1 file changed, 3 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/47/13047/1 diff --git a/library/NS_Emulation.ttcn b/library/NS_Emulation.ttcn index 9ad89cb..89e25ea 100644 --- a/library/NS_Emulation.ttcn +++ b/library/NS_Emulation.ttcn @@ -91,7 +91,9 @@ g_conn_id := res.connId; f_change_state(NSE_S_DEAD_BLOCKED); /* Send the first NS-ALIVE to test the connection */ - f_sendReset(); + if (not config.role_sgsn) { + f_sendReset(); + } } type component NS_CT { -- To view, visit https://gerrit.osmocom.org/13047 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I2a5775fcaf63ac008adecaf2c602c82e9e4ccb5a Gerrit-Change-Number: 13047 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 10:30:38 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 10:30:38 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Add tests for SNS with separate signalling/data NS-VC, ADD, DEL In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13012 ) Change subject: PCU: Add tests for SNS with separate signalling/data NS-VC, ADD, DEL ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13012 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie1d14a901b354daa4e3796fe66e7390d87c7e778 Gerrit-Change-Number: 13012 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Tue, 26 Feb 2019 10:30:38 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 10:32:05 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 10:32:05 +0000 Subject: Change in libosmocore[master]: gprs_ns: Add code for SNS-SIZE and SNS-CONFIG encoding In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/13013 to look at the new patch set (#4). Change subject: gprs_ns: Add code for SNS-SIZE and SNS-CONFIG encoding ...................................................................... gprs_ns: Add code for SNS-SIZE and SNS-CONFIG encoding Modern NS specifications contain a SNS (Sub Network Service) for negotiating IP/port/weight parameters of NS-over-IP links dynamically. This patch adds message encoding routines for SNS-CONFIG, SNS-SIZE and their respective acknowledgements. Related: OS#3372 Change-Id: I5c47e1c3c10deb89a7470ee2c03adfc174accc93 --- M include/osmocom/gprs/protocol/gsm_08_16.h M src/gb/Makefile.am A src/gb/gb_internal.h M src/gb/gprs_ns.c 4 files changed, 207 insertions(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/13/13013/4 -- To view, visit https://gerrit.osmocom.org/13013 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I5c47e1c3c10deb89a7470ee2c03adfc174accc93 Gerrit-Change-Number: 13013 Gerrit-PatchSet: 4 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 10:32:05 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 10:32:05 +0000 Subject: Change in libosmocore[master]: NS: Factor out gprs_nsvc_start_test() and use it In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/13023 to look at the new patch set (#2). Change subject: NS: Factor out gprs_nsvc_start_test() and use it ...................................................................... NS: Factor out gprs_nsvc_start_test() and use it This function performs sending a NS-ALIVE PDU and starting Tns-Test, let's use it in all places where we used to do that. As part of this, also fix a bug where the sendto() return value (number of bytes sent) would actually propagate up all the way to gprs_ns_rx_reset() return value, which in turn affects the test results on stdout. Change-Id: I4d303117f77fabb74bbb91887b9914a81c2a084a --- M src/gb/gb_internal.h M src/gb/gprs_ns.c M tests/gb/gprs_ns_test.ok 3 files changed, 21 insertions(+), 15 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/23/13023/2 -- To view, visit https://gerrit.osmocom.org/13023 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I4d303117f77fabb74bbb91887b9914a81c2a084a Gerrit-Change-Number: 13023 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max Gerrit-CC: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 10:32:26 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 10:32:26 +0000 Subject: Change in libosmocore[master]: gprs_ns: Add code for SNS-SIZE and SNS-CONFIG encoding In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13013 ) Change subject: gprs_ns: Add code for SNS-SIZE and SNS-CONFIG encoding ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13013 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5c47e1c3c10deb89a7470ee2c03adfc174accc93 Gerrit-Change-Number: 13013 Gerrit-PatchSet: 4 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max Gerrit-Comment-Date: Tue, 26 Feb 2019 10:32:26 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 10:32:38 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 10:32:38 +0000 Subject: Change in libosmocore[master]: NS: Factor out gprs_nsvc_start_test() and use it In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13023 ) Change subject: NS: Factor out gprs_nsvc_start_test() and use it ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13023 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4d303117f77fabb74bbb91887b9914a81c2a084a Gerrit-Change-Number: 13023 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 26 Feb 2019 10:32:38 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 10:32:46 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 10:32:46 +0000 Subject: Change in libosmocore[master]: NS: Add support for GPRS NS IP Sub-Network-Service (SNS) In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13014 ) Change subject: NS: Add support for GPRS NS IP Sub-Network-Service (SNS) ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13014 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I84786c3b43a8ae34ef3b3ba84b33c90042d234ea Gerrit-Change-Number: 13014 Gerrit-PatchSet: 4 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Comment-Date: Tue, 26 Feb 2019 10:32:46 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 10:33:16 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 10:33:16 +0000 Subject: Change in osmo-pcu[master]: Rewrite EGPRS Packet Uplink IA Rest Octets for SBA In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12960 ) Change subject: Rewrite EGPRS Packet Uplink IA Rest Octets for SBA ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12960 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I143b3dd02aa54b9ce206d9e780a5554f6d9fd118 Gerrit-Change-Number: 12960 Gerrit-PatchSet: 3 Gerrit-Owner: Max Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 26 Feb 2019 10:33:16 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 10:34:32 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 10:34:32 +0000 Subject: Change in libosmocore[master]: enlarge gsm0808 msgb headroom In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13004 ) Change subject: enlarge gsm0808 msgb headroom ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13004 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I95729991eb49555f8bba60c5dc916131b03b6cf2 Gerrit-Change-Number: 13004 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Tue, 26 Feb 2019 10:34:32 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 10:34:34 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 10:34:34 +0000 Subject: Change in libosmocore[master]: enlarge gsm0808 msgb headroom In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13004 ) Change subject: enlarge gsm0808 msgb headroom ...................................................................... enlarge gsm0808 msgb headroom It should be large enough to prepend a struct osmo_scu_prim to pass down an SCCP stack (see libosmo-sccp). 264 should suffice, but pick the next larger power-of-two instead. In osmo-msc, I would like to prepend an osmo_prim to the msgb created by gsm0808 API, but turns out the headroom is too small: msgb(0x61700001b660): Not enough headroom msgb_push (126 < 264) Instead of always copying a msgb that has just that instant been created, it makes more sense to allocate sufficient headroom in the first place. Change-Id: I95729991eb49555f8bba60c5dc916131b03b6cf2 --- M include/osmocom/gsm/gsm0808.h 1 file changed, 2 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved Daniel Willmann: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/include/osmocom/gsm/gsm0808.h b/include/osmocom/gsm/gsm0808.h index 35e7a8e..a1345c3 100644 --- a/include/osmocom/gsm/gsm0808.h +++ b/include/osmocom/gsm/gsm0808.h @@ -29,8 +29,8 @@ #include #include -#define BSSMAP_MSG_SIZE 512 -#define BSSMAP_MSG_HEADROOM 128 +#define BSSMAP_MSG_SIZE 1024 +#define BSSMAP_MSG_HEADROOM 512 struct sockaddr_storage; -- To view, visit https://gerrit.osmocom.org/13004 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I95729991eb49555f8bba60c5dc916131b03b6cf2 Gerrit-Change-Number: 13004 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 11:11:38 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 11:11:38 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Add tests for SNS with separate signalling/data NS-VC, ADD, DEL In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13012 ) Change subject: PCU: Add tests for SNS with separate signalling/data NS-VC, ADD, DEL ...................................................................... PCU: Add tests for SNS with separate signalling/data NS-VC, ADD, DEL Change-Id: Ie1d14a901b354daa4e3796fe66e7390d87c7e778 Related: OS#3617 --- M library/Osmocom_Gb_Types.ttcn M pcu/PCU_Tests_RAW_SNS.ttcn 2 files changed, 220 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index 86b4d49..a0242c3 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -116,6 +116,41 @@ return ret; } + function ts_SNS_IP_ADDR(template (omit) IPAddress ip) return template (omit) IP_Address_NS { + var template (omit) IP_Address_NS ret; + if (istemplatekind(ip, "omit")) { + return omit; + } else { + ret.iEI := '0B'O; + ret.ipAddress := ip; + if (ischosen(ip.ip4Address)) { + ret.addressType := '01'O; + } else { + ret.addressType := '02'O; + } + } + return ret; + } + function tr_SNS_IP_ADDR(template IPAddress ip) return template IP_Address_NS { + var template IP_Address_NS ret; + ret.iEI := '0B'O; + if (istemplatekind(ip, "omit")) { + return omit; + } else if (istemplatekind(ip, "*")) { + return *; + } else if (istemplatekind(ip, "?")) { + return ?; + } else { + ret.ipAddress := ip; + if (ischosen(ip.ip4Address)) { + ret.addressType := '01'O; + } else { + ret.addressType := '02'O; + } + } + return ret; + } + private function f_oct_or_wc(template integer inp, integer len) return template octetstring { if (istemplatekind(inp, "omit")) { return omit; @@ -475,6 +510,8 @@ var template ListofIP6Elements r; if (istemplatekind(elem, "omit")) { return omit; + } else if (istemplatekind(elem, "*")) { + return *; } else { r := { iEI := '06'O, @@ -526,6 +563,92 @@ } } + template (value) PDU_NS ts_SNS_ADD(Nsei nsei, uint8_t trans_id, + template (omit) IP4_Elements v4, + template (omit) IP6_Elements v6 := omit) := { + pDU_SNS_Add := { + nsPduType := '0D'O, + nSEI_NS := ts_NS_IE_NSEI(nsei), + transactionID := trans_id, + listofIP4Elements := ts_SNS_IE_ListIP4(v4), + listofIP6Elements := ts_SNS_IE_ListIP6(v6) + } + } + template PDU_NS tr_SNS_ADD(template Nsei nsei, template uint8_t trans_id, + template IP4_Elements v4, + template IP6_Elements v6 := omit) := { + pDU_SNS_Add := { + nsPduType := '0D'O, + nSEI_NS := tr_NS_IE_NSEI(nsei), + transactionID := trans_id, + listofIP4Elements := tr_SNS_IE_ListIP4(v4), + listofIP6Elements := tr_SNS_IE_ListIP6(v6) + } + } + + template (value) PDU_NS ts_SNS_DEL(Nsei nsei, uint8_t trans_id, + template (omit) IPAddress ip_sns, + template (omit) IP4_Elements v4, + template (omit) IP6_Elements v6 := omit) := { + pDU_SNS_Delete := { + nsPduType := '11'O, + nSEI_NS := ts_NS_IE_NSEI(nsei), + transactionID := trans_id, + iP_Address_NS := ts_SNS_IP_ADDR(ip_sns), + listofIP4Elements := ts_SNS_IE_ListIP4(v4), + listofIP6Elements := ts_SNS_IE_ListIP6(v6) + } + } + template PDU_NS tr_SNS_DEL(template Nsei nsei, template uint8_t trans_id, + template IPAddress ip_sns, + template IP4_Elements v4, + template IP6_Elements v6 := omit) := { + pDU_SNS_Delete := { + nsPduType := '11'O, + nSEI_NS := tr_NS_IE_NSEI(nsei), + transactionID := trans_id, + iP_Address_NS := tr_SNS_IP_ADDR(ip_sns), + listofIP4Elements := tr_SNS_IE_ListIP4(v4), + listofIP6Elements := tr_SNS_IE_ListIP6(v6) + } + } + + + template (value) PDU_NS ts_SNS_ACK(Nsei nsei, uint8_t trans_id, + template (omit) NsCause cause := omit, + template (omit) IP4_Elements v4 := omit, + template (omit) IP6_Elements v6 := omit) := { + pDU_SNS_Ack := { + nsPduType := '0C'O, + nSEI_NS := ts_NS_IE_NSEI(nsei), + transactionID := trans_id, + causeNS := ts_NS_IE_CAUSE_omit(cause), + iP_Address_NS := omit, + listofIP4Elements := ts_SNS_IE_ListIP4(v4), + listofIP6Elements := ts_SNS_IE_ListIP6(v6) + } + } + template PDU_NS tr_SNS_ACK(template Nsei nsei, template uint8_t trans_id := ?, + template NsCause cause := omit, + template IP4_Elements v4 := *, + template IP6_Elements v6 := *) := { + pDU_SNS_Ack := { + nsPduType := '0C'O, + nSEI_NS := tr_NS_IE_NSEI(nsei), + transactionID := trans_id, + causeNS := tr_NS_IE_CAUSE(cause), + iP_Address_NS := omit, + listofIP4Elements := tr_SNS_IE_ListIP4(v4), + listofIP6Elements := tr_SNS_IE_ListIP6(v6) + } + } + + + + + + + type record BssgpCellId { RoutingAreaIdentification ra_id, CellIdentity cell_id diff --git a/pcu/PCU_Tests_RAW_SNS.ttcn b/pcu/PCU_Tests_RAW_SNS.ttcn index fb4d8f7..41a4059 100644 --- a/pcu/PCU_Tests_RAW_SNS.ttcn +++ b/pcu/PCU_Tests_RAW_SNS.ttcn @@ -67,6 +67,29 @@ rx := f_ns_exp(tr_SNS_CONFIG_ACK(g_nsconfig[idx].nsei, cause), idx); } +function f_outgoing_sns_add(integer idx_add, uint8_t w_sig := 1, uint8_t w_user := 1, integer idx := 0) +runs on RAW_NS_CT { + log("f_outgoing_sns_add(idx_add=", idx_add, ")"); + var PDU_NS rx; + var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[idx_add].local_ip, + g_nsconfig[idx_add].local_udp_port, + w_sig, w_user) }; + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_ADD(g_nsconfig[idx].nsei, 23, v4))); + rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 23, omit, v4)); +} + +function f_outgoing_sns_del(integer idx_del, uint8_t w_sig := 1, uint8_t w_user := 1, integer idx := 0) +runs on RAW_NS_CT { + log("f_outgoing_sns_del(idx_del=", idx_del, ")"); + var PDU_NS rx; + var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[idx_del].local_ip, + g_nsconfig[idx_del].local_udp_port, + w_sig, w_user) }; + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_DEL(g_nsconfig[idx].nsei, 24, omit, v4))); + rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 24, omit, v4)); +} + + /* PCU-originated SNS-SIZE: successful case */ testcase TC_sns_po_size_success() runs on RAW_NS_CT { @@ -130,17 +153,89 @@ as_rx_bvc_unblock_tx_ack(mp_gb_cfg.bvci, oneshot := true); /* wait for one FLOW-CONTROL BVC and then ACK any further in the future */ - as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvci, oneshot := true); - activate(as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvci)); + as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvci, oneshot := true, idx := 1); + activate(as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvci, idx := 1)); setverdict(pass); } +private function f_sns_bringup_1c1u() runs on RAW_NS_CT { + /* Activate two NS codec ports */ + f_init_ns_codec(); + f_init_ns_codec(1); + f_init_pcuif(); + /* Perform Size + BSS-originated config */ + f_incoming_sns_size(); + f_incoming_sns_config(); + /* perform SGSN-originated config using idx==0 for signalling and idx==1 for user traffic */ + f_outgoing_sns_config_1c1u(); + + /* wait for one ALIVE cycle, then ACK any further ALIVE in the background + * for both NS-VCs */ + as_rx_alive_tx_ack(oneshot := true, idx := 0); + activate(as_rx_alive_tx_ack(idx := 0)); + as_rx_alive_tx_ack(oneshot := true, idx := 1); + activate(as_rx_alive_tx_ack(idx := 1)); + + /* perform outgoing ALIVE procedure for both NS-VCs */ + f_outgoing_ns_alive(0); + f_outgoing_ns_alive(1); + + /* Expect BVC-RESET for signaling (0) and ptp BVCI */ + as_rx_bvc_reset_tx_ack(0, oneshot := true); + as_rx_bvc_reset_tx_ack(mp_gb_cfg.bvci, oneshot := true); + /* Expect UNBLOCK for ptp BVCI on signaling NS-VC (idx==0) */ + as_rx_bvc_unblock_tx_ack(mp_gb_cfg.bvci, oneshot := true); + + /* wait for one FLOW-CONTROL BVC and then ACK any further in the future. Flow + * control happens on the p-t-p BVCI and hence on index 1 */ + as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvci, oneshot := true, idx := 1); + activate(as_rx_bvc_fc_tx_ack(mp_gb_cfg.bvci, idx := 1)); +} + +/* Test full IP-SNS bring-up with two NS-VCs, one sig-only and one user-only */ +testcase TC_sns_1c1u() runs on RAW_NS_CT { + f_sns_bringup_1c1u(); + setverdict(pass); +} + +/* Test adding new IP endpoints at runtime */ +testcase TC_sns_add() runs on RAW_NS_CT { + f_sns_bringup_1c1u(); + + /* crate another NS codec port on the tester side */ + f_init_ns_codec(2); + + f_outgoing_sns_add(idx_add := 2, w_sig := 0, w_user := 1, idx := 0); + + /* wait for one ALIVE cycle, then ACK any further ALIVE in the background */ + as_rx_alive_tx_ack(oneshot := true, idx := 2); + activate(as_rx_alive_tx_ack(idx := 2)); + + f_outgoing_ns_alive(2); + /* TODO: Should we expect FLOW-CONTROL BVC here too? */ + setverdict(pass); +} + +/* Test deleting IP endpoints at runtime */ +testcase TC_sns_del() runs on RAW_NS_CT { + f_sns_bringup_1c1u(); + + f_outgoing_sns_del(idx_del := 1, w_sig := 0, w_user := 1, idx := 0); + /* FIXME: ensure we don't receive anything on just-deleted NS-VC anymore */ + setverdict(pass); +} + + + control { execute( TC_sns_po_size_success() ); execute( TC_sns_po_size_nack() ); execute( TC_sns_po_config_success() ); execute( TC_sns_po_config_nack() ); execute( TC_sns_so_config_success() ); + execute( TC_sns_1c1u() ); + execute( TC_sns_add() ); + execute( TC_sns_del() ); } } -- To view, visit https://gerrit.osmocom.org/13012 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ie1d14a901b354daa4e3796fe66e7390d87c7e778 Gerrit-Change-Number: 13012 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 11:11:39 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 11:11:39 +0000 Subject: Change in osmo-ttcn3-hacks[master]: PCU: Add test for SNS Change Weight procedure In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13027 ) Change subject: PCU: Add test for SNS Change Weight procedure ...................................................................... PCU: Add test for SNS Change Weight procedure Change-Id: Ia63865139f63969ccde010b01ddb8fb073209f3a --- M library/Osmocom_Gb_Types.ttcn M pcu/PCU_Tests_RAW_SNS.ttcn 2 files changed, 46 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn index a0242c3..780c768 100644 --- a/library/Osmocom_Gb_Types.ttcn +++ b/library/Osmocom_Gb_Types.ttcn @@ -613,6 +613,29 @@ } } + template (value) PDU_NS ts_SNS_CHG_WEIGHT(Nsei nsei, uint8_t trans_id, + template (omit) IP4_Elements v4, + template (omit) IP6_Elements v6 := omit) := { + pDU_SNS_ChangeWeight := { + nsPduType := '0E'O, + nSEI_NS := ts_NS_IE_NSEI(nsei), + transactionID := trans_id, + listofIP4Elements := ts_SNS_IE_ListIP4(v4), + listofIP6Elements := ts_SNS_IE_ListIP6(v6) + } + } + template PDU_NS tr_SNS_CHG_WEIGHT(template Nsei nsei, template uint8_t trans_id, + template IP4_Elements v4, + template IP6_Elements v6 := omit) := { + pDU_SNS_ChangeWeight := { + nsPduType := '0E'O, + nSEI_NS := tr_NS_IE_NSEI(nsei), + transactionID := trans_id, + listofIP4Elements := tr_SNS_IE_ListIP4(v4), + listofIP6Elements := tr_SNS_IE_ListIP6(v6) + } + } + template (value) PDU_NS ts_SNS_ACK(Nsei nsei, uint8_t trans_id, template (omit) NsCause cause := omit, diff --git a/pcu/PCU_Tests_RAW_SNS.ttcn b/pcu/PCU_Tests_RAW_SNS.ttcn index 41a4059..2369b04 100644 --- a/pcu/PCU_Tests_RAW_SNS.ttcn +++ b/pcu/PCU_Tests_RAW_SNS.ttcn @@ -89,6 +89,19 @@ rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 24, omit, v4)); } +function f_outgoing_sns_chg_weight(integer idx_chg, uint8_t w_sig, uint8_t w_user, integer idx := 0) +runs on RAW_NS_CT { + log("f_outgoing_sns_chg_weight(idx_chg=", idx_chg, ")"); + var PDU_NS rx; + var template (omit) IP4_Elements v4 := { ts_SNS_IPv4(g_nsconfig[idx_chg].local_ip, + g_nsconfig[idx_chg].local_udp_port, + w_sig, w_user) }; + NSCP[idx].send(t_NS_Send(g_ns_conn_id[idx], ts_SNS_CHG_WEIGHT(g_nsconfig[idx].nsei, 25, v4))); + rx := f_ns_exp(tr_SNS_ACK(g_nsconfig[idx].nsei, 25, omit, v4)); +} + + + /* PCU-originated SNS-SIZE: successful case */ @@ -225,6 +238,15 @@ setverdict(pass); } +/* Test changing weights at runtime */ +testcase TC_sns_chg_weight() runs on RAW_NS_CT { + f_sns_bringup_1c1u(); + + /* change w_user from 1 to 200 */ + f_outgoing_sns_chg_weight(idx_chg := 1, w_sig := 0, w_user := 200, idx := 0); + setverdict(pass); +} + control { @@ -236,6 +258,7 @@ execute( TC_sns_1c1u() ); execute( TC_sns_add() ); execute( TC_sns_del() ); + execute( TC_sns_chg_weight() ); } } -- To view, visit https://gerrit.osmocom.org/13027 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ia63865139f63969ccde010b01ddb8fb073209f3a Gerrit-Change-Number: 13027 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 11:11:50 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 11:11:50 +0000 Subject: Change in osmo-pcu[master]: Mark gprs_ns_reconnect() as static (not used outside of C file) In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13024 ) Change subject: Mark gprs_ns_reconnect() as static (not used outside of C file) ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13024 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I95138adedacdc2d953284cff57f79ecb33616f0f Gerrit-Change-Number: 13024 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 26 Feb 2019 11:11:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 11:11:52 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 11:11:52 +0000 Subject: Change in osmo-pcu[master]: Mark gprs_ns_reconnect() as static (not used outside of C file) In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13024 ) Change subject: Mark gprs_ns_reconnect() as static (not used outside of C file) ...................................................................... Mark gprs_ns_reconnect() as static (not used outside of C file) Change-Id: I95138adedacdc2d953284cff57f79ecb33616f0f --- M src/gprs_bssgp_pcu.cpp M src/gprs_bssgp_pcu.h 2 files changed, 2 insertions(+), 2 deletions(-) Approvals: Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index 100e33d..8bf6b7f 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -47,6 +47,7 @@ extern bool spoof_mnc_3_digits; static void bvc_timeout(void *_priv); +static int gprs_ns_reconnect(struct gprs_nsvc *nsvc); static int parse_imsi(struct tlv_parsed *tp, char *imsi) { @@ -857,7 +858,7 @@ osmo_timer_schedule(&the_pcu.bvc_timer, the_pcu.bts->fc_interval, 0); } -int gprs_ns_reconnect(struct gprs_nsvc *nsvc) +static int gprs_ns_reconnect(struct gprs_nsvc *nsvc) { struct gprs_nsvc *nsvc2; diff --git a/src/gprs_bssgp_pcu.h b/src/gprs_bssgp_pcu.h index 4127244..e8ae1a9 100644 --- a/src/gprs_bssgp_pcu.h +++ b/src/gprs_bssgp_pcu.h @@ -81,7 +81,6 @@ uint16_t lac, uint16_t rac, uint16_t cell_id); void gprs_bssgp_destroy(void); -int gprs_ns_reconnect(struct gprs_nsvc *nsvc); struct bssgp_bvc_ctx *gprs_bssgp_pcu_current_bctx(void); -- To view, visit https://gerrit.osmocom.org/13024 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I95138adedacdc2d953284cff57f79ecb33616f0f Gerrit-Change-Number: 13024 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 11:12:21 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 11:12:21 +0000 Subject: Change in osmo-pcu[master]: Optionally Use the NS Sub-Network-Service (SNS) on Gb In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13025 ) Change subject: Optionally Use the NS Sub-Network-Service (SNS) on Gb ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/13025/1/src/bts.h File src/bts.h: https://gerrit.osmocom.org/#/c/13025/1/src/bts.h at 164 PS1, Line 164: bool gb_dialect_sns; > May it make sense to have an enum here with different options? can still be done if we ever should support even more dialects (god forbid!) -- To view, visit https://gerrit.osmocom.org/13025 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I256b40ac592d3b6e75dd581bf7b9512f69b11e83 Gerrit-Change-Number: 13025 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 26 Feb 2019 11:12:21 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 11:14:33 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 11:14:33 +0000 Subject: Change in libosmocore[master]: log: fsm: fix logging of negative T upon timeout In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12988 ) Change subject: log: fsm: fix logging of negative T upon timeout ...................................................................... Patch Set 1: I like the T3 vs X3 proposal. Please make sure that this is also reflected somewhere in the doxygen api docs. -- To view, visit https://gerrit.osmocom.org/12988 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I3a59457623da9309fbbda235fe18fadd1636bff6 Gerrit-Change-Number: 12988 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy Gerrit-CC: Harald Welte Gerrit-Comment-Date: Tue, 26 Feb 2019 11:14:33 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 11:17:45 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 11:17:45 +0000 Subject: Change in libosmocore[master]: gprs_ns: Add code for SNS-SIZE and SNS-CONFIG encoding In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13013 ) Change subject: gprs_ns: Add code for SNS-SIZE and SNS-CONFIG encoding ...................................................................... gprs_ns: Add code for SNS-SIZE and SNS-CONFIG encoding Modern NS specifications contain a SNS (Sub Network Service) for negotiating IP/port/weight parameters of NS-over-IP links dynamically. This patch adds message encoding routines for SNS-CONFIG, SNS-SIZE and their respective acknowledgements. Related: OS#3372 Change-Id: I5c47e1c3c10deb89a7470ee2c03adfc174accc93 --- M include/osmocom/gprs/protocol/gsm_08_16.h M src/gb/Makefile.am A src/gb/gb_internal.h M src/gb/gprs_ns.c 4 files changed, 207 insertions(+), 3 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/gprs/protocol/gsm_08_16.h b/include/osmocom/gprs/protocol/gsm_08_16.h index fc74336..15d92d3 100644 --- a/include/osmocom/gprs/protocol/gsm_08_16.h +++ b/include/osmocom/gprs/protocol/gsm_08_16.h @@ -17,6 +17,15 @@ uint8_t data[0]; /*!< variable-length payload */ } __attribute__((packed)); + +/*! Section 10.3.2c List of IP4 Elements */ +struct gprs_ns_ie_ip4_elem { + uint32_t ip_addr; + uint16_t udp_port; + uint8_t sig_weight; + uint8_t data_weight; +} __attribute__ ((packed)); + extern const struct value_string gprs_ns_pdu_strings[]; /*! NS PDU Type (TS 08.16, Section 10.3.7, Table 14) */ diff --git a/src/gb/Makefile.am b/src/gb/Makefile.am index 65b73fe..d074092 100644 --- a/src/gb/Makefile.am +++ b/src/gb/Makefile.am @@ -6,7 +6,7 @@ AM_CFLAGS = -Wall ${GCC_FVISIBILITY_HIDDEN} -fno-strict-aliasing $(TALLOC_CFLAGS) # FIXME: this should eventually go into a milenage/Makefile.am -noinst_HEADERS = common_vty.h +noinst_HEADERS = common_vty.h gb_internal.h if ENABLE_GB lib_LTLIBRARIES = libosmogb.la diff --git a/src/gb/gb_internal.h b/src/gb/gb_internal.h new file mode 100644 index 0000000..c1fa8e1 --- /dev/null +++ b/src/gb/gb_internal.h @@ -0,0 +1,19 @@ +#pragma once + +#include +#include +#include + +int gprs_ns_tx_sns_ack(struct gprs_nsvc *nsvc, uint8_t trans_id, uint8_t *cause, + const struct gprs_ns_ie_ip4_elem *ip4_elems,unsigned int num_ip4_elems); + +int gprs_ns_tx_sns_config(struct gprs_nsvc *nsvc, bool end_flag, + const struct gprs_ns_ie_ip4_elem *ip4_elems, + unsigned int num_ip4_elems); + +int gprs_ns_tx_sns_config_ack(struct gprs_nsvc *nsvc, uint8_t *cause); + +int gprs_ns_tx_sns_size(struct gprs_nsvc *nsvc, bool reset_flag, uint16_t max_nr_nsvc, + uint16_t *ip4_ep_nr, uint16_t *ip6_ep_nr); + +int gprs_ns_tx_sns_size_ack(struct gprs_nsvc *nsvc, uint8_t *cause); diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c index 976a101..660dfec 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -1,8 +1,9 @@ /*! \file gprs_ns.c * GPRS Networks Service (NS) messages on the Gb interface. - * 3GPP TS 08.16 version 8.0.1 Release 1999 / ETSI TS 101 299 V8.0.1 (2002-05). */ + * 3GPP TS 08.16 version 8.0.1 Release 1999 / ETSI TS 101 299 V8.0.1 (2002-05) + * as well as its successor 3GPP TS 48.016 */ /* - * (C) 2009-2017 by Harald Welte + * (C) 2009-2018 by Harald Welte * (C) 2016-2017 sysmocom - s.f.m.c. GmbH * * All Rights Reserved @@ -86,6 +87,7 @@ #include #include "common_vty.h" +#include "gb_internal.h" #define ns_set_state(ns_, st_) ns_set_state_with_log(ns_, st_, false, __FILE__, __LINE__) #define ns_set_remote_state(ns_, st_) ns_set_state_with_log(ns_, st_, true, __FILE__, __LINE__) @@ -99,6 +101,12 @@ [NS_IE_PDU] = { TLV_TYPE_TvLV, 0 }, [NS_IE_BVCI] = { TLV_TYPE_TvLV, 0 }, [NS_IE_NSEI] = { TLV_TYPE_TvLV, 0 }, + [NS_IE_IPv4_LIST] = { TLV_TYPE_TvLV, 0 }, + [NS_IE_IPv6_LIST] = { TLV_TYPE_TvLV, 0 }, + [NS_IE_MAX_NR_NSVC] = { TLV_TYPE_FIXED, 2 }, + [NS_IE_IPv4_EP_NR] = { TLV_TYPE_FIXED, 2 }, + [NS_IE_IPv6_EP_NR] = { TLV_TYPE_FIXED, 2 }, + [NS_IE_RESET_FLAG] = { TLV_TYPE_TV, 0 }, }, }; @@ -750,6 +758,174 @@ return gprs_ns_tx(nsvc, msg); } +/*! Encode + Transmit a SNS-ACK as per Section 9.3.1. + * \param[in] nsvc NS-VC through which to transmit the ACK + * \param[in] trans_id Transaction ID which to acknowledge + * \param[in] cause Pointer to cause value (NULL if no cause to be sent) + * \param[in] ip4_elems Array of IPv4 Elements + * \param[in] num_ip4_elems number of ip4_elems + * \returns 0 on success; negative in case of error */ +int gprs_ns_tx_sns_ack(struct gprs_nsvc *nsvc, uint8_t trans_id, uint8_t *cause, + const struct gprs_ns_ie_ip4_elem *ip4_elems, + unsigned int num_ip4_elems) +{ + struct msgb *msg = gprs_ns_msgb_alloc(); + struct gprs_ns_hdr *nsh; + uint16_t nsei; + + log_set_context(LOG_CTX_GB_NSVC, nsvc); + if (!msg) + return -ENOMEM; + + nsei = osmo_htons(nsvc->nsei); + + msg->l2h = msgb_put(msg, sizeof(*nsh)); + nsh = (struct gprs_ns_hdr *) msg->l2h; + + nsh->pdu_type = SNS_PDUT_ACK; + msgb_tvlv_put(msg, NS_IE_NSEI, 2, (uint8_t *)&nsei); + msgb_v_put(msg, trans_id); + if (cause) + msgb_tvlv_put(msg, NS_IE_CAUSE, 1, cause); + if (ip4_elems) { + /* List of IP4 Elements 10.3.2c */ + msgb_tvlv_put(msg, NS_IE_IPv4_LIST, + num_ip4_elems*sizeof(struct gprs_ns_ie_ip4_elem), + (const uint8_t *)ip4_elems); + } + /* FIXME: List of IP6 elements 10.3.2d */ + return gprs_ns_tx(nsvc, msg); +} + +/*! Encode + Transmit a SNS-CONFIG as per Section 9.3.4. + * \param[in] nsvc NS-VC through which to transmit the SNS-CONFIG + * \param[in] end_flag Whether or not this is the last SNS-CONFIG + * \param[in] ip4_elems Array of IPv4 Elements + * \param[in] num_ip4_elems number of ip4_elems + * \returns 0 on success; negative in case of error */ +int gprs_ns_tx_sns_config(struct gprs_nsvc *nsvc, bool end_flag, + const struct gprs_ns_ie_ip4_elem *ip4_elems, + unsigned int num_ip4_elems) +{ + struct msgb *msg = gprs_ns_msgb_alloc(); + struct gprs_ns_hdr *nsh; + uint16_t nsei; + + log_set_context(LOG_CTX_GB_NSVC, nsvc); + if (!msg) + return -ENOMEM; + + nsei = osmo_htons(nsvc->nsei); + + msg->l2h = msgb_put(msg, sizeof(*nsh)); + nsh = (struct gprs_ns_hdr *) msg->l2h; + + nsh->pdu_type = SNS_PDUT_CONFIG; + + msgb_v_put(msg, end_flag ? 0x01 : 0x00); + msgb_tvlv_put(msg, NS_IE_NSEI, 2, (uint8_t *)&nsei); + + /* List of IP4 Elements 10.3.2c */ + msgb_tvlv_put(msg, NS_IE_IPv4_LIST, num_ip4_elems*sizeof(struct gprs_ns_ie_ip4_elem), + (const uint8_t *)ip4_elems); + /* FIXME: List of IP6 elements 10.3.2d */ + + return gprs_ns_tx(nsvc, msg); +} + +/*! Encode + Transmit a SNS-CONFIG-ACK as per Section 9.3.5. + * \param[in] nsvc NS-VC through which to transmit the SNS-CONFIG-ACK + * \param[in] cause Pointer to cause value (NULL if no cause to be sent) + * \returns 0 on success; negative in case of error */ +int gprs_ns_tx_sns_config_ack(struct gprs_nsvc *nsvc, uint8_t *cause) +{ + struct msgb *msg = gprs_ns_msgb_alloc(); + struct gprs_ns_hdr *nsh; + uint16_t nsei; + + log_set_context(LOG_CTX_GB_NSVC, nsvc); + if (!msg) + return -ENOMEM; + + nsei = osmo_htons(nsvc->nsei); + + msg->l2h = msgb_put(msg, sizeof(*nsh)); + nsh = (struct gprs_ns_hdr *) msg->l2h; + + nsh->pdu_type = SNS_PDUT_CONFIG_ACK; + + msgb_tvlv_put(msg, NS_IE_NSEI, 2, (uint8_t *)&nsei); + if (cause) + msgb_tvlv_put(msg, NS_IE_CAUSE, 1, cause); + + return gprs_ns_tx(nsvc, msg); +} + + +/*! Encode + transmit a SNS-SIZE as per Section 9.3.7. + * \param[in] nsvc NS-VC through which to transmit the SNS-SIZE + * \param[in] reset_flag Whether or not to add a RESET flag + * \param[in] max_nr_nsvc Maximum number of NS-VCs + * \param[in] ip4_ep_nr Number of IPv4 endpoints (NULL if none) + * \param[in] ip6_ep_nr Number of IPv6 endpoints (NULL if none) + * \returns 0 on success; negative in case of error */ +int gprs_ns_tx_sns_size(struct gprs_nsvc *nsvc, bool reset_flag, uint16_t max_nr_nsvc, + uint16_t *ip4_ep_nr, uint16_t *ip6_ep_nr) +{ + struct msgb *msg = gprs_ns_msgb_alloc(); + struct gprs_ns_hdr *nsh; + uint16_t nsei; + + log_set_context(LOG_CTX_GB_NSVC, nsvc); + if (!msg) + return -ENOMEM; + + nsei = osmo_htons(nsvc->nsei); + + msg->l2h = msgb_put(msg, sizeof(*nsh)); + nsh = (struct gprs_ns_hdr *) msg->l2h; + + nsh->pdu_type = SNS_PDUT_SIZE; + + msgb_tvlv_put(msg, NS_IE_NSEI, 2, (uint8_t *)&nsei); + msgb_tv_put(msg, NS_IE_RESET_FLAG, reset_flag ? 0x01 : 0x00); + msgb_tv16_put(msg, NS_IE_MAX_NR_NSVC, max_nr_nsvc); + if (ip4_ep_nr) + msgb_tv16_put(msg, NS_IE_IPv4_EP_NR, *ip4_ep_nr); + if (ip6_ep_nr) + msgb_tv16_put(msg, NS_IE_IPv6_EP_NR, *ip6_ep_nr); + + return gprs_ns_tx(nsvc, msg); +} + +/*! Encode + Transmit a SNS-SIZE-ACK as per Section 9.3.8. + * \param[in] nsvc NS-VC through which to transmit the SNS-SIZE-ACK + * \param[in] cause Pointer to cause value (NULL if no cause to be sent) + * \returns 0 on success; negative in case of error */ +int gprs_ns_tx_sns_size_ack(struct gprs_nsvc *nsvc, uint8_t *cause) +{ + struct msgb *msg = gprs_ns_msgb_alloc(); + struct gprs_ns_hdr *nsh; + uint16_t nsei; + + log_set_context(LOG_CTX_GB_NSVC, nsvc); + if (!msg) + return -ENOMEM; + + nsei = osmo_htons(nsvc->nsei); + + msg->l2h = msgb_put(msg, sizeof(*nsh)); + nsh = (struct gprs_ns_hdr *) msg->l2h; + + nsh->pdu_type = SNS_PDUT_SIZE_ACK; + + msgb_tvlv_put(msg, NS_IE_NSEI, 2, (uint8_t *)&nsei); + if (cause) + msgb_tvlv_put(msg, NS_IE_CAUSE, 1, cause); + + return gprs_ns_tx(nsvc, msg); +} + /*! High-level function for transmitting a NS-UNITDATA messsage * \param[in] nsi NS-instance on which we shall transmit * \param[in] msg struct msgb to be trasnmitted -- To view, visit https://gerrit.osmocom.org/13013 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5c47e1c3c10deb89a7470ee2c03adfc174accc93 Gerrit-Change-Number: 13013 Gerrit-PatchSet: 5 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 11:20:16 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 26 Feb 2019 11:20:16 +0000 Subject: Change in osmo-pcu[master]: Rewrite EGPRS Packet Uplink IA Rest Octets for SBA In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/12960 ) Change subject: Rewrite EGPRS Packet Uplink IA Rest Octets for SBA ...................................................................... Rewrite EGPRS Packet Uplink IA Rest Octets for SBA Use bitvec_set_*() directly without external write pointer tracking to simplify the code. This is part of IA Rest Octets (3GPP TS 44.018 ?10.5.2.16) which is the last part of the message so it should not interfere with the rest of encoding functions. That's partially based on reverted commit 529ce885450946d85d1920fb3d1a994c3efe5849. Change-Id: I143b3dd02aa54b9ce206d9e780a5554f6d9fd118 Related: OS#3014 --- M src/encoding.cpp 1 file changed, 58 insertions(+), 26 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/encoding.cpp b/src/encoding.cpp index ba0e474..4c8cdb0 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -85,6 +85,33 @@ return rc; } +/* 3GPP TS 44.018 ?10.5.2.16: + < TFI_ASSIGNMENT : bit (5) > + < POLLING : bit > + 0 -- The value '1' was allocated in an earlier version of the protocol and shall not be used. + < USF: bit (3) > + < USF_GRANULARITY : bit > + { 0 | 1 < P0 : bit (4) > < PR_MODE : bit (1) > } +*/ +static int write_tfi_usf(bitvec *dest, const gprs_rlcmac_ul_tbf *tbf, uint8_t usf) +{ + int rc = bitvec_set_u64(dest, tbf->tfi(), 5, false); /* TFI_ASSIGNMENT */ + CHECK(rc); + + SET_0(dest); /* POLLING -- no action is required from MS */ + + SET_0(dest); + + rc = bitvec_set_u64(dest, usf, 3, false); /* USF */ + CHECK(rc); + + SET_0(dest); /* USF_GRANULARITY -- the mobile station shall transmit one RLC/MAC block */ + + SET_0(dest); /* No P0 nor PR_MODE */ + + return 0; +} + /* { 0 | 1 < TIMING_ADVANCE_INDEX : bit (4) > } */ static int write_ta_index(bitvec *dest, int8_t tai) { @@ -278,38 +305,42 @@ } static int write_ia_rest_egprs_uplink_sba(const gprs_rlcmac_ul_tbf *tbf, bitvec * dest, uint8_t usf, - uint8_t alpha, uint8_t gamma, unsigned& wp) + uint8_t alpha, uint8_t gamma) { int rc = 0; - bitvec_write_field(dest, &wp, 1, 1); /* single block allocation */ - bitvec_write_field(dest, &wp, tbf->tfi(), 5); /* TFI assignment */ - bitvec_write_field(dest, &wp, 0, 1); /* polling bit */ - bitvec_write_field(dest, &wp, 0, 1); /* constant */ - bitvec_write_field(dest, &wp, usf, 3); /* USF bit */ - bitvec_write_field(dest, &wp, 0, 1); /* USF granularity */ - bitvec_write_field(dest, &wp, 0, 1); /* P0 */ + SET_1(dest); /* Single Block Allocation */ - /* MCS */ - bitvec_write_field(dest, &wp, tbf->current_cs().to_num() - 1, 4); + rc = write_tfi_usf(dest, tbf, usf); + CHECK(rc); - /* TLLI channel block */ - bitvec_write_field(dest, &wp, tbf->tlli(), 1); - bitvec_write_field(dest, &wp, 0, 1); /* BEP period present */ - bitvec_write_field(dest, &wp, 0, 1); /* resegmentation */ - write_ws(dest, &wp, tbf->window_size()); /* EGPRS window size */ + /* 3GPP TS 44.060 ?12.10d EGPRS Modulation and coding Scheme description: */ + rc = bitvec_set_u64(dest, tbf->current_cs().to_num() - 1, 4, false); /* EGPRS CHANNEL_CODING_COMMAND */ + CHECK(rc); - if (alpha) { - bitvec_write_field(dest, &wp, 0x1, 1); /* ALPHA = yes */ - bitvec_write_field(dest, &wp, alpha, 4); /* ALPHA */ - } else { - bitvec_write_field(dest, &wp, 0x0, 1); /* ALPHA = no */ - } + /* TLLI_BLOCK_CHANNEL_CODING */ + rc = bitvec_set_bit(dest, (bit_value)tbf->tlli()); - bitvec_write_field(dest, &wp, gamma, 5); /* GAMMA power contrl */ - bitvec_write_field(dest, &wp, 0, 1); /* TIMING_ADVANCE_INDEX */ - bitvec_write_field(dest, &wp, 0, 1); /* TBF_STARTING_TIME_FLAG */ - bitvec_write_field(dest, &wp, 0, 1); /* NULL */ + /* No BEP_PERIOD2 */ + SET_0(dest); + + /* Retransmitted RLC data blocks shall not be re-segmented: (see 3GPP TS 44.060 ?12.10e) */ + SET_0(dest); /* RESEGMENT */ + + rc = bitvec_set_u64(dest, enc_ws(tbf->window_size()), 5, false); /* EGPRS Window Size */ + CHECK(rc); + + rc = write_alpha_gamma(dest, alpha, gamma); + CHECK(rc); + + /* No TIMING_ADVANCE_INDEX */ + SET_0(dest); + + /* No TBF_STARTING_TIME */ + SET_0(dest); + + /* No Additions for Rel-7 */ + SET_0(dest); return rc; } @@ -476,7 +507,8 @@ bitvec_write_field(dest, &wp, 0, 1); /* Access technology Request */ if (as_ul_tbf(tbf) != NULL) { - rc = write_ia_rest_egprs_uplink_sba(as_ul_tbf(tbf), dest, usf, alpha, gamma, wp); + dest->cur_bit = wp; + rc = write_ia_rest_egprs_uplink_sba(as_ul_tbf(tbf), dest, usf, alpha, gamma); } else { dest->cur_bit = wp; rc = write_ia_rest_egprs_uplink_mba(dest, fn, alpha, gamma); -- To view, visit https://gerrit.osmocom.org/12960 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I143b3dd02aa54b9ce206d9e780a5554f6d9fd118 Gerrit-Change-Number: 12960 Gerrit-PatchSet: 4 Gerrit-Owner: Max Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 11:24:52 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 11:24:52 +0000 Subject: Change in libosmocore[master]: NS: Factor out gprs_nsvc_start_test() and use it In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13023 ) Change subject: NS: Factor out gprs_nsvc_start_test() and use it ...................................................................... NS: Factor out gprs_nsvc_start_test() and use it This function performs sending a NS-ALIVE PDU and starting Tns-Test, let's use it in all places where we used to do that. As part of this, also fix a bug where the sendto() return value (number of bytes sent) would actually propagate up all the way to gprs_ns_rx_reset() return value, which in turn affects the test results on stdout. Change-Id: I4d303117f77fabb74bbb91887b9914a81c2a084a --- M src/gb/gb_internal.h M src/gb/gprs_ns.c M tests/gb/gprs_ns_test.ok 3 files changed, 21 insertions(+), 15 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/gb/gb_internal.h b/src/gb/gb_internal.h index c1fa8e1..72d940f 100644 --- a/src/gb/gb_internal.h +++ b/src/gb/gb_internal.h @@ -4,6 +4,7 @@ #include #include +void gprs_nsvc_start_test(struct gprs_nsvc *nsvc); int gprs_ns_tx_sns_ack(struct gprs_nsvc *nsvc, uint8_t trans_id, uint8_t *cause, const struct gprs_ns_ie_ip4_elem *ip4_elems,unsigned int num_ip4_elems); diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c index 660dfec..ad68bc9 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -1171,8 +1171,7 @@ rc = gprs_ns_tx_reset_ack(*nsvc); /* start the test procedure */ - gprs_ns_tx_alive(*nsvc); - nsvc_start_timer((*nsvc), NSVC_TIMER_TNS_TEST); + gprs_nsvc_start_test(*nsvc); return rc; } @@ -1295,10 +1294,9 @@ osmo_timer_del(&(*nsvc)->timer); } /* Initiate TEST proc.: Send ALIVE and start timer */ - rc = gprs_ns_tx_alive(*nsvc); - nsvc_start_timer(*nsvc, NSVC_TIMER_TNS_TEST); + gprs_nsvc_start_test(*nsvc); - return rc; + return 0; } static int gprs_ns_rx_block(struct gprs_nsvc *nsvc, struct msgb *msg) @@ -1949,4 +1947,11 @@ return s; } +/*! Start the ALIVE timer procedure in all NS-VCs part of this NS Instance */ +void gprs_nsvc_start_test(struct gprs_nsvc *nsvc) +{ + gprs_ns_tx_alive(nsvc); + nsvc_start_timer(nsvc, NSVC_TIMER_TNS_TEST); +} + /*! @} */ diff --git a/tests/gb/gprs_ns_test.ok b/tests/gb/gprs_ns_test.ok index 3cb1dfc..57ae188 100644 --- a/tests/gb/gprs_ns_test.ok +++ b/tests/gb/gprs_ns_test.ok @@ -344,7 +344,7 @@ MESSAGE to BSS, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 Current NS-VCIs: VCI 0x2001, NSEI 0x2000, peer 0x01020304:2222, ALIVE, UNBLOCKED, UNRESET @@ -365,7 +365,7 @@ MESSAGE to BSS, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 Current NS-VCIs: VCI 0x2001, NSEI 0x2000, peer 0x00000000:0, DEAD, BLOCKED, RESET @@ -386,7 +386,7 @@ MESSAGE to BSS, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 Current NS-VCIs: VCI 0x2001, NSEI 0x2000, peer 0x00000000:0, DEAD, BLOCKED, RESET @@ -534,7 +534,7 @@ MESSAGE to BSS, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 Current NS-VCIs: VCI 0xf001, NSEI 0x1000, peer 0x00000000:0, ALIVE, BLOCKED, UNRESET @@ -557,7 +557,7 @@ MESSAGE to BSS, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 Current NS-VCIs: VCI 0xf001, NSEI 0x1000, peer 0x01020304:2222, ALIVE, BLOCKED, UNRESET @@ -641,7 +641,7 @@ MESSAGE to BSS, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 Current NS-VCIs: VCI 0xf001, NSEI 0x1000, peer 0x00000000:0, ALIVE, BLOCKED, UNRESET @@ -666,7 +666,7 @@ MESSAGE to SGSN, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -818,7 +818,7 @@ MESSAGE to SGSN, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -898,7 +898,7 @@ MESSAGE to SGSN, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -956,7 +956,7 @@ MESSAGE to SGSN, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b -- To view, visit https://gerrit.osmocom.org/13023 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I4d303117f77fabb74bbb91887b9914a81c2a084a Gerrit-Change-Number: 13023 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Max Gerrit-CC: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 11:26:40 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 11:26:40 +0000 Subject: Change in libosmocore[master]: NS: Add support for GPRS NS IP Sub-Network-Service (SNS) In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13014 ) Change subject: NS: Add support for GPRS NS IP Sub-Network-Service (SNS) ...................................................................... NS: Add support for GPRS NS IP Sub-Network-Service (SNS) The NS implementation part of the Gb implementation libosmogb so far implemented a rather classic dialect of Gb, with lots of heritage to FR (Frame Relay) transports. At least since Release 6 of the NS specification, there's an IP Sub-Network Service (SNS), which * permits for dynamic configuration of IP endpoints and their NS-VCs * abandons the concept of a NSVCI on IP transport * forbids the use of RESET/BLOCK/UNBLOCK procedures on IP transport This commit introduces BSS-side IP-SNS support to libosmogb in a minimally invasive way. It adds a corresponding SNS FSM to each NS instance, and implements the new SIZE/CONFIG/ADD/DELETE/CHANGE_WEIGHT procedures very closely aligned with the spec. In order to use the SNS flavor (rather than the classic one), a BSS implementation should use gprs_ns_nsip_connect_sns() instead of the existing gprs_ns_nsip_connect(). This implementation comes with a set of TTCN-3 tests in PCU_Tests_RAW_SNS.ttcn, see Change-ID I0fe3d4579960bab0494c294ec7ab8032feed4fb2 of osmo-ttcn3-hacks.git Closes: OS#3372 Closes: OS#3617 Change-Id: I84786c3b43a8ae34ef3b3ba84b33c90042d234ea --- M TODO-RELEASE M include/osmocom/gprs/gprs_ns.h M include/osmocom/gprs/protocol/gsm_08_16.h M src/gb/Makefile.am M src/gb/gb_internal.h M src/gb/gprs_ns.c A src/gb/gprs_ns_sns.c M src/gb/gprs_ns_vty.c M src/gb/libosmogb.map 9 files changed, 1,056 insertions(+), 20 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved Max: Looks good to me, but someone else must approve diff --git a/TODO-RELEASE b/TODO-RELEASE index 8ccfa49..ba603c6 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -7,3 +7,6 @@ # If any interfaces have been added since the last public release: c:r:a + 1. # If any interfaces have been removed or changed since the last public release: c:r:0. #library what description / commit summary line +libosmogb gprs_ns_inst Adding bss_sns_fi member for IP-SNS support +libosmogb gprs_nsvc Adding sig_weight and data_weight members for IP-SNS support +libosmogb various new symbols Adding functions related to IP-SNS support diff --git a/include/osmocom/gprs/gprs_ns.h b/include/osmocom/gprs/gprs_ns.h index 1c99ed0..c62ef98 100644 --- a/include/osmocom/gprs/gprs_ns.h +++ b/include/osmocom/gprs/gprs_ns.h @@ -14,8 +14,8 @@ #include -#define NS_TIMERS_COUNT 7 -#define NS_TIMERS "(tns-block|tns-block-retries|tns-reset|tns-reset-retries|tns-test|tns-alive|tns-alive-retries)" +#define NS_TIMERS_COUNT 8 +#define NS_TIMERS "(tns-block|tns-block-retries|tns-reset|tns-reset-retries|tns-test|tns-alive|tns-alive-retries|tsns-prov)" #define NS_TIMERS_HELP \ "(un)blocking Timer (Tns-block) timeout\n" \ "(un)blocking Timer (Tns-block) number of retries\n" \ @@ -23,7 +23,8 @@ "Reset Timer (Tns-reset) number of retries\n" \ "Test Timer (Tns-test) timeout\n" \ "Alive Timer (Tns-alive) timeout\n" \ - "Alive Timer (Tns-alive) number of retries\n" + "Alive Timer (Tns-alive) number of retries\n" \ + "SNS Provision Timer (Tsns-prov) timeout\n" /* Educated guess - LLC user payload is 1500 bytes plus possible headers */ #define NS_ALLOC_SIZE 3072 @@ -37,6 +38,7 @@ NS_TOUT_TNS_TEST, NS_TOUT_TNS_ALIVE, NS_TOUT_TNS_ALIVE_RETRIES, + NS_TOUT_TSNS_PROV, }; #define NSE_S_BLOCKED 0x0001 @@ -102,6 +104,8 @@ uint32_t local_ip; unsigned int enabled:1; } frgre; + + struct osmo_fsm_inst *bss_sns_fi; }; enum nsvc_timer_mode { @@ -150,6 +154,10 @@ struct sockaddr_in bts_addr; } frgre; }; + /*! signalling weight. 0 = don't use for signalling (BVCI == 0)*/ + uint8_t sig_weight; + /*! signaling weight. 0 = don't use for user data (BVCI != 0) */ + uint8_t data_weight; }; /* Create a new NS protocol instance */ @@ -169,6 +177,9 @@ struct sockaddr_in *dest, uint16_t nsei, uint16_t nsvci); +/* Establish a connection (from the BSS) to the SGSN using IP SNS */ +struct gprs_nsvc *gprs_ns_nsip_connect_sns(struct gprs_ns_inst *nsi, struct sockaddr_in *dest, + uint16_t nsei, uint16_t nsvci); struct sockaddr_in; @@ -185,9 +196,12 @@ int gprs_ns_frgre_listen(struct gprs_ns_inst *nsi); struct gprs_nsvc *gprs_nsvc_create(struct gprs_ns_inst *nsi, uint16_t nsvci); +struct gprs_nsvc *gprs_nsvc_create2(struct gprs_ns_inst *nsi, uint16_t nsvci, + uint8_t sig_weight, uint8_t data_weight); void gprs_nsvc_delete(struct gprs_nsvc *nsvc); struct gprs_nsvc *gprs_nsvc_by_nsei(struct gprs_ns_inst *nsi, uint16_t nsei); struct gprs_nsvc *gprs_nsvc_by_nsvci(struct gprs_ns_inst *nsi, uint16_t nsvci); +struct gprs_nsvc *gprs_nsvc_by_rem_addr(struct gprs_ns_inst *nsi, const struct sockaddr_in *sin); /* Initiate a RESET procedure (including timer start, ...)*/ int gprs_nsvc_reset(struct gprs_nsvc *nsvc, uint8_t cause); @@ -213,6 +227,7 @@ S_NS_ALIVE_EXP, /* Tns-alive expired more than N times */ S_NS_REPLACED, /* nsvc object is replaced (sets old_nsvc) */ S_NS_MISMATCH, /* got an unexpected IE (sets msg, pdu_type, ie_type) */ + S_SNS_CONFIGURED, /* IP-SNS configuration completed */ }; extern const struct value_string gprs_ns_signal_ns_names[]; diff --git a/include/osmocom/gprs/protocol/gsm_08_16.h b/include/osmocom/gprs/protocol/gsm_08_16.h index 15d92d3..95efcb6 100644 --- a/include/osmocom/gprs/protocol/gsm_08_16.h +++ b/include/osmocom/gprs/protocol/gsm_08_16.h @@ -66,6 +66,7 @@ NS_IE_IPv6_EP_NR = 0x09, NS_IE_RESET_FLAG = 0x0a, NS_IE_IP_ADDR = 0x0b, + NS_IE_TRANS_ID = 0xff, /* osmocom. Spec has this IE but without IEI! */ }; /*! NS Cause (TS 08.16, Section 10.3.2, Table 13) */ diff --git a/src/gb/Makefile.am b/src/gb/Makefile.am index d074092..3180f9c 100644 --- a/src/gb/Makefile.am +++ b/src/gb/Makefile.am @@ -17,7 +17,7 @@ $(top_builddir)/src/vty/libosmovty.la \ $(top_builddir)/src/gsm/libosmogsm.la -libosmogb_la_SOURCES = gprs_ns.c gprs_ns_frgre.c gprs_ns_vty.c \ +libosmogb_la_SOURCES = gprs_ns.c gprs_ns_frgre.c gprs_ns_vty.c gprs_ns_sns.c \ gprs_bssgp.c gprs_bssgp_util.c gprs_bssgp_vty.c \ gprs_bssgp_bss.c common_vty.c endif diff --git a/src/gb/gb_internal.h b/src/gb/gb_internal.h index 72d940f..cc7222e 100644 --- a/src/gb/gb_internal.h +++ b/src/gb/gb_internal.h @@ -4,7 +4,17 @@ #include #include +/* gprs_ns_sns.c */ +int gprs_ns_rx_sns(struct gprs_ns_inst *nsi, struct msgb *msg, struct tlv_parsed *tp); + +struct osmo_fsm_inst *gprs_sns_bss_fsm_alloc(void *ctx, struct gprs_nsvc *nsvc, const char *id); +int gprs_sns_bss_fsm_start(struct gprs_ns_inst *nsi); + +int gprs_sns_init(void); + +/* gprs_ns.c */ void gprs_nsvc_start_test(struct gprs_nsvc *nsvc); +void gprs_start_alive_all_nsvcs(struct gprs_ns_inst *nsi); int gprs_ns_tx_sns_ack(struct gprs_nsvc *nsvc, uint8_t trans_id, uint8_t *cause, const struct gprs_ns_ie_ip4_elem *ip4_elems,unsigned int num_ip4_elems); @@ -18,3 +28,6 @@ uint16_t *ip4_ep_nr, uint16_t *ip6_ep_nr); int gprs_ns_tx_sns_size_ack(struct gprs_nsvc *nsvc, uint8_t *cause); + +struct vty; +void gprs_sns_dump_vty(struct vty *vty, const struct gprs_ns_inst *nsi, bool stats); diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c index ad68bc9..33de2c1 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -72,6 +72,7 @@ #include #include +#include #include #include #include @@ -93,6 +94,18 @@ #define ns_set_remote_state(ns_, st_) ns_set_state_with_log(ns_, st_, true, __FILE__, __LINE__) #define ns_mark_blocked(ns_) ns_set_state(ns_, (ns_)->state | NSE_S_BLOCKED) #define ns_mark_unblocked(ns_) ns_set_state(ns_, (ns_)->state & (~NSE_S_BLOCKED)); +#define ns_mark_alive(ns_) ns_set_state(ns_, (ns_)->state | NSE_S_ALIVE) +#define ns_mark_dead(ns_) ns_set_state(ns_, (ns_)->state & (~NSE_S_ALIVE)); + +#define ERR_IF_NSVC_USES_SNS(nsvc, reason) \ + do { \ + if ((nsvc)->nsi->bss_sns_fi) { \ + LOGP(DNS, LOGL_ERROR, "NSEI=%u Asked to %s. Rejected on IP-SNS\n", \ + nsvc->nsei, reason); \ + osmo_log_backtrace(DNS, LOGL_ERROR); \ + return -EIO; \ + } \ + } while (0) static const struct tlv_definition ns_att_tlvdef = { .def = { @@ -107,6 +120,9 @@ [NS_IE_IPv4_EP_NR] = { TLV_TYPE_FIXED, 2 }, [NS_IE_IPv6_EP_NR] = { TLV_TYPE_FIXED, 2 }, [NS_IE_RESET_FLAG] = { TLV_TYPE_TV, 0 }, + /* TODO: IP_ADDR can be 5 or 17 bytes long, depending on first byte. This + * cannot be expressed in our TLV parser. However, we don't do IPv6 anyway */ + [NS_IE_IP_ADDR] = { TLV_TYPE_FIXED, 5 }, }, }; @@ -171,6 +187,7 @@ { S_NS_ALIVE_EXP, "NS-ALIVE expired" }, { S_NS_REPLACED, "NSVC replaced" }, { S_NS_MISMATCH, "Unexpected IE" }, + { S_SNS_CONFIGURED, "SNS Configured" }, { 0, NULL } }; @@ -237,11 +254,20 @@ return NULL; } +/*! Determine active NS-VC for given NSEI + BVCI. + * Use this function to determine which of the NS-VCs inside the NS Instance + * shall be used to transmit data for given NSEI + BVCI */ static struct gprs_nsvc *gprs_active_nsvc_by_nsei(struct gprs_ns_inst *nsi, - uint16_t nsei) + uint16_t nsei, uint16_t bvci) { struct gprs_nsvc *nsvc; llist_for_each_entry(nsvc, &nsi->gprs_nsvcs, list) { + /* if signalling BVCI, skip any NSVC with signalling weight == 0 */ + if (bvci == 0 && nsvc->sig_weight == 0) + continue; + /* if point-to-point BVCI, skip any NSVC with data weight == 0 */ + if (bvci != 0 && nsvc->data_weight == 0) + continue; if (nsvc->nsei == nsei) { if (!(nsvc->state & NSE_S_BLOCKED) && nsvc->state & NSE_S_ALIVE) @@ -251,9 +277,11 @@ return NULL; } -/* Lookup struct gprs_nsvc based on remote peer socket addr */ -static struct gprs_nsvc *nsvc_by_rem_addr(struct gprs_ns_inst *nsi, - struct sockaddr_in *sin) +/*! Lookup NS-VC based on specified remote peer socket addr. + * \param[in] nsi NS Instance within which we shall look up the NS-VC + * \param[in] sin Remote peer Socket Address (IP + UDP Port) + * \returns NS-VC matching the given peer; NULL in case of none */ +struct gprs_nsvc *gprs_nsvc_by_rem_addr(struct gprs_ns_inst *nsi, const struct sockaddr_in *sin) { struct gprs_nsvc *nsvc; llist_for_each_entry(nsvc, &nsi->gprs_nsvcs, list) { @@ -267,27 +295,52 @@ static void gprs_ns_timer_cb(void *data); -struct gprs_nsvc *gprs_nsvc_create(struct gprs_ns_inst *nsi, uint16_t nsvci) +/*! Create a new NS-VC (Virtual Circuit) within given instance + * \param[in] nsi NS Instance in which to create the NSVC + * \param[in] nsvci] NS Virtual Connection Identifier for this NSVC + * \param[in] sig_weight Signalling Weight of this NS-VC. Use "0" for no signalling + * \param[in] data_weight Data WEight of this NS-VC. Use "0" for no data + * \returns newly-created gprs_nsvc within nsi. NULL on error. */ +struct gprs_nsvc *gprs_nsvc_create2(struct gprs_ns_inst *nsi, uint16_t nsvci, + uint8_t sig_weight, uint8_t data_weight) { struct gprs_nsvc *nsvc; + if (gprs_nsvc_by_nsvci(nsi, nsvci)) { + LOGP(DNS, LOGL_ERROR, "Cannot create NS-VC for already-existing NSVCI=%u\n", nsvci); + return NULL; + } + LOGP(DNS, LOGL_INFO, "NSVCI=%u Creating NS-VC\n", nsvci); nsvc = talloc_zero(nsi, struct gprs_nsvc); + if (!nsvc) + return NULL; nsvc->nsvci = nsvci; nsvc->nsvci_is_valid = 1; /* before RESET procedure: BLOCKED and DEAD */ - ns_set_state(nsvc, NSE_S_BLOCKED); + if (nsi->bss_sns_fi) + ns_set_state(nsvc, 0); + else + ns_set_state(nsvc, NSE_S_BLOCKED); nsvc->nsi = nsi; osmo_timer_setup(&nsvc->timer, gprs_ns_timer_cb, nsvc); nsvc->ctrg = rate_ctr_group_alloc(nsvc, &nsvc_ctrg_desc, nsvci); nsvc->statg = osmo_stat_item_group_alloc(nsvc, &nsvc_statg_desc, nsvci); + nsvc->sig_weight = sig_weight; + nsvc->data_weight = data_weight; llist_add(&nsvc->list, &nsi->gprs_nsvcs); return nsvc; } +/*! Old API for creating a NS-VC. Uses gprs_nsvc_create2 with fixed weights. */ +struct gprs_nsvc *gprs_nsvc_create(struct gprs_ns_inst *nsi, uint16_t nsvci) +{ + return gprs_nsvc_create2(nsi, nsvci, 1, 1); +} + /*! Delete given NS-VC * \param[in] nsvc gprs_nsvc to be deleted */ @@ -450,13 +503,16 @@ */ int gprs_ns_tx_reset(struct gprs_nsvc *nsvc, uint8_t cause) { - struct msgb *msg = gprs_ns_msgb_alloc(); + struct msgb *msg; struct gprs_ns_hdr *nsh; uint16_t nsvci = osmo_htons(nsvc->nsvci); uint16_t nsei = osmo_htons(nsvc->nsei); log_set_context(LOG_CTX_GB_NSVC, nsvc); + ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS RESET"); + + msg = gprs_ns_msgb_alloc(); if (!msg) return -ENOMEM; @@ -536,12 +592,15 @@ */ int gprs_ns_tx_block(struct gprs_nsvc *nsvc, uint8_t cause) { - struct msgb *msg = gprs_ns_msgb_alloc(); + struct msgb *msg; struct gprs_ns_hdr *nsh; uint16_t nsvci = osmo_htons(nsvc->nsvci); log_set_context(LOG_CTX_GB_NSVC, nsvc); + ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS BLOCK"); + + msg = gprs_ns_msgb_alloc(); if (!msg) return -ENOMEM; @@ -574,6 +633,8 @@ log_set_context(LOG_CTX_GB_NSVC, nsvc); + ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS BLOCK ACK"); + msg = gprs_ns_msgb_alloc(); if (!msg) return -ENOMEM; @@ -597,6 +658,9 @@ int gprs_ns_tx_unblock(struct gprs_nsvc *nsvc) { log_set_context(LOG_CTX_GB_NSVC, nsvc); + + ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS UNBLOCK"); + LOGP(DNS, LOGL_INFO, "NSEI=%u Tx NS UNBLOCK (NSVCI=%u)\n", nsvc->nsei, nsvc->nsvci); @@ -687,16 +751,21 @@ nsvc->alive_retries++; if (nsvc->alive_retries > nsvc->nsi->timeout[NS_TOUT_TNS_ALIVE_RETRIES]) { - /* mark as dead and blocked */ - ns_set_state(nsvc, NSE_S_BLOCKED); - rate_ctr_inc(&nsvc->ctrg->ctr[NS_CTR_BLOCKED]); + /* mark as dead (and blocked unless IP-SNS) */ rate_ctr_inc(&nsvc->ctrg->ctr[NS_CTR_DEAD]); + if (!nsvc->nsi->bss_sns_fi) { + ns_set_state(nsvc, NSE_S_BLOCKED); + rate_ctr_inc(&nsvc->ctrg->ctr[NS_CTR_BLOCKED]); + } else + ns_set_state(nsvc, 0); LOGP(DNS, LOGL_NOTICE, "NSEI=%u Tns-alive expired more then " "%u times, blocking NS-VC\n", nsvc->nsei, nsvc->nsi->timeout[NS_TOUT_TNS_ALIVE_RETRIES]); ns_osmo_signal_dispatch(nsvc, S_NS_ALIVE_EXP, 0); - ns_osmo_signal_dispatch(nsvc, S_NS_BLOCK, NS_CAUSE_NSVC_BLOCKED); + /* FIXME: should we send this signal in case of SNS? */ + if (!nsvc->nsi->bss_sns_fi) + ns_osmo_signal_dispatch(nsvc, S_NS_BLOCK, NS_CAUSE_NSVC_BLOCKED); return; } /* Tns-test case: send NS-ALIVE PDU */ @@ -733,11 +802,15 @@ /* Section 9.2.6 */ static int gprs_ns_tx_reset_ack(struct gprs_nsvc *nsvc) { - struct msgb *msg = gprs_ns_msgb_alloc(); + struct msgb *msg; struct gprs_ns_hdr *nsh; uint16_t nsvci, nsei; log_set_context(LOG_CTX_GB_NSVC, nsvc); + + ERR_IF_NSVC_USES_SNS(nsvc, "transmit NS RESET ACK"); + + msg = gprs_ns_msgb_alloc(); if (!msg) return -ENOMEM; @@ -777,6 +850,13 @@ if (!msg) return -ENOMEM; + if (!nsvc->nsi->bss_sns_fi) { + LOGP(DNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n", + nsvc->nsei); + msgb_free(msg); + return -EIO; + } + nsei = osmo_htons(nsvc->nsei); msg->l2h = msgb_put(msg, sizeof(*nsh)); @@ -815,6 +895,13 @@ if (!msg) return -ENOMEM; + if (!nsvc->nsi->bss_sns_fi) { + LOGP(DNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n", + nsvc->nsei); + msgb_free(msg); + return -EIO; + } + nsei = osmo_htons(nsvc->nsei); msg->l2h = msgb_put(msg, sizeof(*nsh)); @@ -847,6 +934,13 @@ if (!msg) return -ENOMEM; + if (!nsvc->nsi->bss_sns_fi) { + LOGP(DNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n", + nsvc->nsei); + msgb_free(msg); + return -EIO; + } + nsei = osmo_htons(nsvc->nsei); msg->l2h = msgb_put(msg, sizeof(*nsh)); @@ -880,6 +974,13 @@ if (!msg) return -ENOMEM; + if (!nsvc->nsi->bss_sns_fi) { + LOGP(DNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n", + nsvc->nsei); + msgb_free(msg); + return -EIO; + } + nsei = osmo_htons(nsvc->nsei); msg->l2h = msgb_put(msg, sizeof(*nsh)); @@ -912,6 +1013,13 @@ if (!msg) return -ENOMEM; + if (!nsvc->nsi->bss_sns_fi) { + LOGP(DNS, LOGL_ERROR, "NSEI=%u Cannot transmit SNS on NSVC without SNS active\n", + nsvc->nsei); + msgb_free(msg); + return -EIO; + } + nsei = osmo_htons(nsvc->nsei); msg->l2h = msgb_put(msg, sizeof(*nsh)); @@ -942,7 +1050,7 @@ struct gprs_ns_hdr *nsh; uint16_t bvci = msgb_bvci(msg); - nsvc = gprs_active_nsvc_by_nsei(nsi, msgb_nsei(msg)); + nsvc = gprs_active_nsvc_by_nsei(nsi, msgb_nsei(msg), msgb_bvci(msg)); if (!nsvc) { int rc; if (gprs_nsvc_by_nsei(nsi, msgb_nsei(msg))) { @@ -1358,7 +1466,7 @@ int rc = 0; /* look up the NSVC based on source address */ - nsvc = nsvc_by_rem_addr(nsi, saddr); + nsvc = gprs_nsvc_by_rem_addr(nsi, saddr); if (!nsvc) { struct gprs_nsvc *fallback_nsvc; @@ -1572,6 +1680,7 @@ struct gprs_nsvc **nsvc) { struct gprs_ns_hdr *nsh = (struct gprs_ns_hdr *) msg->l2h; + struct tlv_parsed tp; int rc = 0; msgb_nsei(msg) = (*nsvc)->nsei; @@ -1594,6 +1703,7 @@ rc = gprs_ns_tx_alive_ack(*nsvc); break; case NS_PDUT_ALIVE_ACK: + ns_mark_alive(*nsvc); if ((*nsvc)->timer_mode == NSVC_TIMER_TNS_ALIVE) osmo_stat_item_set((*nsvc)->statg->items[NS_STAT_ALIVE_DELAY], nsvc_timer_elapsed_ms(*nsvc)); @@ -1648,15 +1758,68 @@ /* mark remote NS-VC as blocked + active */ ns_set_remote_state(*nsvc, NSE_S_BLOCKED | NSE_S_ALIVE); break; + case SNS_PDUT_CONFIG: + if (!nsi->bss_sns_fi) + goto unexpected_sns; + /* one additional byte ('end flag') before the TLV part starts */ + rc = tlv_parse(&tp, &ns_att_tlvdef, nsh->data+1, + msgb_l2len(msg) - sizeof(*nsh)-1, 0, 0); + if (rc < 0) { + LOGPC(DNS, LOGL_NOTICE, "Error during TLV Parse in %s\n", msgb_hexdump(msg)); + return rc; + } + /* All sub-network service related message types */ + rc = gprs_ns_rx_sns(nsi, msg, &tp); + break; + case SNS_PDUT_ACK: + case SNS_PDUT_ADD: + case SNS_PDUT_CHANGE_WEIGHT: + case SNS_PDUT_DELETE: + if (!nsi->bss_sns_fi) + goto unexpected_sns; + /* weird layout: NSEI TLV, then value-only transaction IE, then TLV again */ + rc = tlv_parse(&tp, &ns_att_tlvdef, nsh->data+5, + msgb_l2len(msg) - sizeof(*nsh)-5, 0, 0); + if (rc < 0) { + LOGPC(DNS, LOGL_NOTICE, "Error during TLV Parse in %s\n", msgb_hexdump(msg)); + return rc; + } + tp.lv[NS_IE_NSEI].val = nsh->data+2; + tp.lv[NS_IE_NSEI].len = 2; + tp.lv[NS_IE_TRANS_ID].val = nsh->data+4; + tp.lv[NS_IE_TRANS_ID].len = 1; + rc = gprs_ns_rx_sns(nsi, msg, &tp); + break; + case SNS_PDUT_CONFIG_ACK: + case SNS_PDUT_SIZE: + case SNS_PDUT_SIZE_ACK: + if (!nsi->bss_sns_fi) + goto unexpected_sns; + rc = tlv_parse(&tp, &ns_att_tlvdef, nsh->data, + msgb_l2len(msg) - sizeof(*nsh), 0, 0); + if (rc < 0) { + LOGPC(DNS, LOGL_NOTICE, "Error during TLV Parse in %s\n", msgb_hexdump(msg)); + return rc; + } + /* All sub-network service related message types */ + rc = gprs_ns_rx_sns(nsi, msg, &tp); + break; default: LOGP(DNS, LOGL_NOTICE, "NSEI=%u Rx Unknown NS PDU type 0x%02x\n", (*nsvc)->nsei, nsh->pdu_type); rc = -EINVAL; break; +unexpected_sns: + LOGP(DNS, LOGL_NOTICE, "NSEI=%u Rx %s for NS Instance that has no SNS!\n", + (*nsvc)->nsei, get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); + rc = -EINVAL; + break; } return rc; } +static bool gprs_sns_fsm_registered = false; + /*! Create a new GPRS NS instance * \param[in] cb Call-back function for incoming BSSGP data * \returns dynamically allocated gprs_ns_inst @@ -1665,6 +1828,11 @@ { struct gprs_ns_inst *nsi = talloc_zero(ctx, struct gprs_ns_inst); + if (!gprs_sns_fsm_registered) { + gprs_sns_init(); + gprs_sns_fsm_registered = true; + } + nsi->cb = cb; INIT_LLIST_HEAD(&nsi->gprs_nsvcs); nsi->timeout[NS_TOUT_TNS_BLOCK] = 3; @@ -1674,6 +1842,7 @@ nsi->timeout[NS_TOUT_TNS_TEST] = 30; nsi->timeout[NS_TOUT_TNS_ALIVE] = 3; nsi->timeout[NS_TOUT_TNS_ALIVE_RETRIES] = 10; + nsi->timeout[NS_TOUT_TSNS_PROV] = 3; /* 1..10 */ /* Create the dummy NSVC that we use for sending * messages to non-existant/unknown NS-VC's */ @@ -1875,6 +2044,8 @@ { int rc; + ERR_IF_NSVC_USES_SNS(nsvc, "RESET procedure based on API request"); + LOGP(DNS, LOGL_INFO, "NSEI=%u RESET procedure based on API request\n", nsvc->nsei); @@ -1909,7 +2080,7 @@ { struct gprs_nsvc *nsvc; - nsvc = nsvc_by_rem_addr(nsi, dest); + nsvc = gprs_nsvc_by_rem_addr(nsi, dest); if (!nsvc) nsvc = gprs_nsvc_create(nsi, nsvci); nsvc->ip.bts_addr = *dest; @@ -1920,6 +2091,47 @@ return nsvc; } +/*! Establish a NS connection (from the BSS) to the SGSN using SNS auto-configuration + * \param nsi NS-instance + * \param[in] dest Destination IP/Port + * \param[in] nsei NSEI of the to-be-established NS-VC + * \param[in] nsvci NSVCI of the to-be-established NS-VC + * \returns struct gprs_nsvc representing the new NS-VC + * + * This function will establish a single NS/UDP/IP connection in uplink + * (BSS to SGSN) direction. It will start with the SNS-SIZE procedure, + * followed by BSS-originated SNS-CONFIG, then SGSN-originated SNS-CONFIG. + * + * Once configuration completes, the user will be notified by the S_SNS_CONFIGURED signal, + * at which point he typically would want to initiate NS-RESET by means of gprs_nsvc_reset(). + */ +struct gprs_nsvc *gprs_ns_nsip_connect_sns(struct gprs_ns_inst *nsi, + struct sockaddr_in *dest, uint16_t nsei, + uint16_t nsvci) +{ + struct gprs_nsvc *nsvc; + + /* FIXME: We are getting the order wrong here. Normally, one would want + * to start the SNS FSM *before* creating any NS-VC and then create the NS-VC + * after the SNS layer has established the IP/port/etc. However, this would + * require some massive code and API changes compared to existing libosmogb, + * so let's keep the old logic. */ + nsvc = gprs_nsvc_by_rem_addr(nsi, dest); + if (!nsvc) + nsvc = gprs_nsvc_create(nsi, nsvci); + nsvc->ip.bts_addr = *dest; + nsvc->nsei = nsei; + nsvc->remote_end_is_sgsn = 1; + /* NSVCs are always UNBLOCKED in IP-SNS */ + ns_set_state(nsvc, 0); + + if (nsi->bss_sns_fi) + osmo_fsm_inst_term(nsi->bss_sns_fi, OSMO_FSM_TERM_REQUEST, NULL); + nsi->bss_sns_fi = gprs_sns_bss_fsm_alloc(nsi, nsvc, "NSIP"); + gprs_sns_bss_fsm_start(nsi); + return nsvc; +} + void gprs_ns_set_log_ss(int ss) { DNS = ss; @@ -1954,4 +2166,13 @@ nsvc_start_timer(nsvc, NSVC_TIMER_TNS_TEST); } +void gprs_start_alive_all_nsvcs(struct gprs_ns_inst *nsi) +{ + struct gprs_nsvc *nsvc; + llist_for_each_entry(nsvc, &nsi->gprs_nsvcs, list) { + /* start the test procedure */ + gprs_nsvc_start_test(nsvc); + } +} + /*! @} */ diff --git a/src/gb/gprs_ns_sns.c b/src/gb/gprs_ns_sns.c new file mode 100644 index 0000000..b0ee5d7 --- /dev/null +++ b/src/gb/gprs_ns_sns.c @@ -0,0 +1,772 @@ +/* Implementation of 3GPP TS 48.016 NS IP Sub-Network Service */ +/* (C) 2018 by Harald Welte */ + +/* The BSS NSE only has one SGSN IP address configured, and it will use the SNS procedures + * to communicated its local IPs/ports as well as all the SGSN side IPs/ports and + * associated weights. In theory, the BSS then uses this to establish a full mesh + * of NSVCs between all BSS-side IPs/ports and SGSN-side IPs/ports */ + +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "common_vty.h" +#include "gb_internal.h" + +#define S(x) (1 << (x)) + +struct gprs_sns_state { + struct gprs_ns_inst *nsi; + struct gprs_nsvc *nsvc_hack; + + /* local configuration to send to the remote end */ + struct gprs_ns_ie_ip4_elem *ip4_local; + size_t num_ip4_local; + + /* local configuration about our capabilities in terms of connections to + * remote (SGSN) side */ + size_t num_max_nsvcs; + size_t num_max_ip4_remote; + + /* remote configuration as received */ + struct gprs_ns_ie_ip4_elem *ip4_remote; + unsigned int num_ip4_remote; + + /* IP-SNS based Gb doesn't have a NSVCI. However, our existing Gb stack + * requires a unique NSVCI per NS-VC. Let's simply allocate them dynamically from + * the maximum (65533), counting downwards */ + uint16_t next_nsvci; +}; + +static inline struct gprs_ns_inst *ns_inst_from_fi(struct osmo_fsm_inst *fi) +{ + struct gprs_sns_state *gss = (struct gprs_sns_state *) fi->priv; + return gss->nsi; +} + +/* helper function to compute the sum of all (data or signaling) weights */ +static int ip4_weight_sum(const struct gprs_ns_ie_ip4_elem *ip4, unsigned int num, + bool data_weight) +{ + unsigned int i; + int weight_sum = 0; + + for (i = 0; i < num; i++) { + if (data_weight) + weight_sum += ip4[i].data_weight; + else + weight_sum += ip4[i].sig_weight; + } + return weight_sum; +} +#define ip4_weight_sum_data(x,y) ip4_weight_sum(x, y, true) +#define ip4_weight_sum_sig(x,y) ip4_weight_sum(x, y, false) + +static struct gprs_nsvc *nsvc_by_ip4_elem(struct gprs_ns_inst *nsi, + const struct gprs_ns_ie_ip4_elem *ip4) +{ + struct sockaddr_in sin; + /* copy over. Both data structures use network byte order */ + sin.sin_addr.s_addr = ip4->ip_addr; + sin.sin_port = ip4->udp_port; + return gprs_nsvc_by_rem_addr(nsi, &sin); +} + +static struct gprs_nsvc *gprs_nsvc_create_ip4(struct gprs_ns_inst *nsi, + const struct gprs_ns_ie_ip4_elem *ip4) +{ + struct gprs_sns_state *gss = (struct gprs_sns_state *) nsi->bss_sns_fi->priv; + struct gprs_nsvc *nsvc; + struct sockaddr_in sin; + /* copy over. Both data structures use network byte order */ + sin.sin_addr.s_addr = ip4->ip_addr; + sin.sin_port = ip4->udp_port; + + nsvc = gprs_nsvc_create2(nsi, gss->next_nsvci--, ip4->sig_weight, ip4->data_weight); + if (!nsvc) + return NULL; + + /* NSEI is the same across all NS-VCs */ + nsvc->nsei = gss->nsvc_hack->nsei; + nsvc->nsvci_is_valid = 0; + nsvc->ip.bts_addr = sin; + + return nsvc; +} + +static int create_missing_nsvcs(struct osmo_fsm_inst *fi) +{ + struct gprs_sns_state *gss = (struct gprs_sns_state *) fi->priv; + struct gprs_ns_inst *nsi = ns_inst_from_fi(fi); + unsigned int i; + + for (i = 0; i < gss->num_ip4_remote; i++) { + const struct gprs_ns_ie_ip4_elem *ip4 = &gss->ip4_remote[i]; + struct gprs_nsvc *nsvc = nsvc_by_ip4_elem(nsi, ip4); + if (!nsvc) { + /* create, if it doesn't exist */ + nsvc = gprs_nsvc_create_ip4(nsi, ip4); + if (!nsvc) { + LOGPFSML(fi, LOGL_ERROR, "SNS-CONFIG: Failed to create NSVC\n"); + continue; + } + } else { + /* update data / signalling weight */ + nsvc->data_weight = ip4->data_weight; + nsvc->sig_weight = ip4->sig_weight; + } + LOGPFSML(fi, LOGL_INFO, "NS-VC %s data_weight=%u, sig_weight=%u\n", + gprs_ns_ll_str(nsvc), nsvc->data_weight, nsvc->sig_weight); + } + + return 0; +} + +/* Add a given remote IPv4 element to gprs_sns_state */ +static int add_remote_ip4_elem(struct gprs_sns_state *gss, const struct gprs_ns_ie_ip4_elem *ip4) +{ + if (gss->num_ip4_remote >= gss->num_max_ip4_remote) + return -E2BIG; + + gss->ip4_remote = talloc_realloc(gss, gss->ip4_remote, struct gprs_ns_ie_ip4_elem, + gss->num_ip4_remote+1); + gss->ip4_remote[gss->num_ip4_remote] = *ip4; + gss->num_ip4_remote += 1; + return 0; +} + +/* Remove a given remote IPv4 element from gprs_sns_state */ +static int remove_remote_ip4_elem(struct gprs_sns_state *gss, const struct gprs_ns_ie_ip4_elem *ip4) +{ + unsigned int i; + + for (i = 0; i < gss->num_ip4_remote; i++) { + if (memcmp(&gss->ip4_remote[i], ip4, sizeof(*ip4))) + continue; + /* all array elements < i remain as they are; all > i are shifted left by one */ + memmove(&gss->ip4_remote[i], &gss->ip4_remote[i+1], gss->num_ip4_remote-i-1); + gss->num_ip4_remote -= 1; + return 0; + } + return -1; +} + +/* update the weights for specified remote IPv4 */ +static int update_remote_ip4_elem(struct gprs_sns_state *gss, const struct gprs_ns_ie_ip4_elem *ip4) +{ + unsigned int i; + + for (i = 0; i < gss->num_ip4_remote; i++) { + if (gss->ip4_remote[i].ip_addr != ip4->ip_addr || + gss->ip4_remote[i].udp_port != ip4->udp_port) + continue; + gss->ip4_remote[i].sig_weight = ip4->sig_weight; + gss->ip4_remote[i].data_weight = ip4->data_weight; + return 0; + } + return -1; +} + + +static int do_sns_change_weight(struct osmo_fsm_inst *fi, const struct gprs_ns_ie_ip4_elem *ip4) +{ + struct gprs_sns_state *gss = (struct gprs_sns_state *) fi->priv; + struct gprs_ns_inst *nsi = ns_inst_from_fi(fi); + struct gprs_nsvc *nsvc = nsvc_by_ip4_elem(nsi, ip4); + + /* TODO: Upon receiving an SNS-CHANGEWEIGHT PDU, if the resulting sum of the + * signalling weights of all the peer IP endpoints configured for this NSE is + * equal to zero or if the resulting sum of the data weights of all the peer IP + * endpoints configured for this NSE is equal to zero, the BSS/SGSN shall send an + * SNS-ACK PDU with a cause code of "Invalid weights". */ + + update_remote_ip4_elem(gss, ip4); + + if (!nsvc) { + LOGPFSML(fi, LOGL_NOTICE, "Couldn't find NS-VC for SNS-CHANGE_WEIGHT\n"); + return -NS_CAUSE_NSVC_UNKNOWN; + } + + LOGPFSML(fi, LOGL_INFO, "CHANGE-WEIGHT NS-VC %s data_weight %u->%u, sig_weight %u->%u\n", + gprs_ns_ll_str(nsvc), nsvc->data_weight, ip4->data_weight, + nsvc->sig_weight, ip4->sig_weight); + + nsvc->data_weight = ip4->data_weight; + nsvc->sig_weight = ip4->sig_weight; + + return 0; +} + +static int do_sns_delete(struct osmo_fsm_inst *fi, const struct gprs_ns_ie_ip4_elem *ip4) +{ + struct gprs_sns_state *gss = (struct gprs_sns_state *) fi->priv; + struct gprs_ns_inst *nsi = ns_inst_from_fi(fi); + struct gprs_nsvc *nsvc = nsvc_by_ip4_elem(nsi, ip4); + + if (remove_remote_ip4_elem(gss, ip4) < 0) + return -NS_CAUSE_UNKN_IP_EP; + + if (!nsvc) { + LOGPFSML(fi, LOGL_NOTICE, "Couldn't find NS-VC for SNS-DELETE\n"); + return -NS_CAUSE_NSVC_UNKNOWN; + } + LOGPFSML(fi, LOGL_INFO, "DELETE NS-VC %s\n", gprs_ns_ll_str(nsvc)); + gprs_nsvc_delete(nsvc); + + return 0; +} + +static int do_sns_add(struct osmo_fsm_inst *fi, const struct gprs_ns_ie_ip4_elem *ip4) +{ + struct gprs_sns_state *gss = (struct gprs_sns_state *) fi->priv; + struct gprs_ns_inst *nsi = ns_inst_from_fi(fi); + struct gprs_nsvc *nsvc; + + /* Upon receiving an SNS-ADD PDU, if the consequent number of IPv4 endpoints + * exceeds the number of IPv4 endpoints supported by the NSE, the NSE shall send + * an SNS-ACK PDU with a cause code set to "Invalid number of IP4 Endpoints". */ + if (add_remote_ip4_elem(gss, ip4) < 0) + return -NS_CAUSE_INVAL_NR_NS_VC; + + /* Upon receiving an SNS-ADD PDU containing an already configured IP endpoint the + * NSE shall send an SNS-ACK PDU with the cause code "Protocol error - + * unspecified" */ + nsvc = nsvc_by_ip4_elem(nsi, ip4); + if (nsvc) + return -NS_CAUSE_PROTO_ERR_UNSPEC; + + nsvc = gprs_nsvc_create_ip4(nsi, ip4); + if (!nsvc) { + LOGPFSML(fi, LOGL_ERROR, "SNS-ADD: Failed to create NSVC\n"); + remove_remote_ip4_elem(gss, ip4); + return -NS_CAUSE_EQUIP_FAIL; + } + LOGPFSML(fi, LOGL_INFO, "ADD NS-VC %s data_weight=%u, sig_weight=%u\n", + gprs_ns_ll_str(nsvc), nsvc->data_weight, nsvc->sig_weight); + /* Start the test procedure for this new NS-VC */ + gprs_nsvc_start_test(nsvc); + return 0; +} + + + +/*********************************************************************** + * BSS-side FSM for IP Sub-Network Service + ***********************************************************************/ + +enum gprs_sns_bss_state { + GPRS_SNS_ST_UNCONFIGURED, + GPRS_SNS_ST_SIZE, /*!< SNS-SIZE procedure ongoing */ + GPRS_SNS_ST_CONFIG_BSS, /*!< SNS-CONFIG procedure (BSS->SGSN) ongoing */ + GPRS_SNS_ST_CONFIG_SGSN, /*!< SNS-CONFIG procedure (SGSN->BSS) ongoing */ + GPRS_SNS_ST_CONFIGURED, +}; + +enum gprs_sns_event { + GPRS_SNS_EV_START, + GPRS_SNS_EV_SIZE, + GPRS_SNS_EV_SIZE_ACK, + GPRS_SNS_EV_CONFIG, + GPRS_SNS_EV_CONFIG_END, /*!< SNS-CONFIG with end flag received */ + GPRS_SNS_EV_CONFIG_ACK, + GPRS_SNS_EV_ADD, + GPRS_SNS_EV_DELETE, + GPRS_SNS_EV_CHANGE_WEIGHT, +}; + +static const struct value_string gprs_sns_event_names[] = { + { GPRS_SNS_EV_START, "START" }, + { GPRS_SNS_EV_SIZE, "SIZE" }, + { GPRS_SNS_EV_SIZE_ACK, "SIZE_ACK" }, + { GPRS_SNS_EV_CONFIG, "CONFIG" }, + { GPRS_SNS_EV_CONFIG_END, "CONFIG_END" }, + { GPRS_SNS_EV_CONFIG_ACK, "CONFIG_ACK" }, + { GPRS_SNS_EV_ADD, "ADD" }, + { GPRS_SNS_EV_DELETE, "DELETE" }, + { GPRS_SNS_EV_CHANGE_WEIGHT, "CHANGE_WEIGHT" }, + { 0, NULL } +}; + +static void gprs_sns_st_unconfigured(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gprs_ns_inst *nsi = ns_inst_from_fi(fi); + switch (event) { + case GPRS_SNS_EV_START: + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_SIZE, nsi->timeout[NS_TOUT_TSNS_PROV], 1); + break; + default: + OSMO_ASSERT(0); + } +} + +static void gprs_sns_st_size(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gprs_ns_inst *nsi = ns_inst_from_fi(fi); + struct tlv_parsed *tp = NULL; + + switch (event) { + case GPRS_SNS_EV_SIZE_ACK: + tp = data; + if (TLVP_VAL_MINLEN(tp, NS_IE_CAUSE, 1)) { + LOGPFSML(fi, LOGL_ERROR, "SNS-SIZE-ACK with cause %s\n", + gprs_ns_cause_str(*TLVP_VAL(tp, NS_IE_CAUSE))); + /* FIXME: What to do? */ + } else { + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_CONFIG_BSS, + nsi->timeout[NS_TOUT_TSNS_PROV], 2); + } + break; + default: + OSMO_ASSERT(0); + } +} +static void gprs_sns_st_size_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) +{ + struct gprs_sns_state *gss = (struct gprs_sns_state *) fi->priv; + uint16_t num_max_ip4_remote = gss->num_max_ip4_remote; + + gprs_ns_tx_sns_size(gss->nsvc_hack, true, gss->num_max_nsvcs, &num_max_ip4_remote, NULL); +} + + +static void gprs_sns_st_config_bss(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + //struct gprs_sns_state *gss = (struct gprs_sns_state *) fi->priv; + //struct gprs_ns_inst *nsi = ns_inst_from_fi(fi); + struct tlv_parsed *tp = NULL; + + switch (event) { + case GPRS_SNS_EV_CONFIG_ACK: + tp = data; + if (TLVP_VAL_MINLEN(tp, NS_IE_CAUSE, 1)) { + LOGPFSML(fi, LOGL_ERROR, "SNS-CONFIG-ACK with cause %s\n", + gprs_ns_cause_str(*TLVP_VAL(tp, NS_IE_CAUSE))); + /* FIXME: What to do? */ + } else { + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_CONFIG_SGSN, 0, 0); + } + break; + default: + OSMO_ASSERT(0); + } +} +static void gprs_sns_st_config_bss_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) +{ + struct gprs_sns_state *gss = (struct gprs_sns_state *) fi->priv; + /* Transmit SNS-CONFIG */ + gprs_ns_tx_sns_config(gss->nsvc_hack, true, gss->ip4_local, gss->num_ip4_local); +} + +static void gprs_sns_st_config_sgsn(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gprs_sns_state *gss = (struct gprs_sns_state *) fi->priv; + struct tlv_parsed *tp = NULL; + struct gprs_ns_inst *nsi = ns_inst_from_fi(fi); + const struct gprs_ns_ie_ip4_elem *v4_list; + unsigned int num_v4; + uint8_t cause; + + switch (event) { + case GPRS_SNS_EV_CONFIG_END: + case GPRS_SNS_EV_CONFIG: + tp = data; +#if 0 /* part of incoming SNS-SIZE (doesn't happen on BSS side */ + if (TLVP_PRESENT(tp, NS_IE_RESET_FLAG)) { + /* reset all existing config */ + if (gss->ip4_remote) + talloc_free(gss->ip4_remote); + gss->num_ip4_remote = 0; + } +#endif + if (!TLVP_PRESENT(tp, NS_IE_IPv4_LIST)) { + cause = NS_CAUSE_INVAL_NR_IPv4_EP; + gprs_ns_tx_sns_config_ack(gss->nsvc_hack, &cause); + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_UNCONFIGURED, 0, 0); + break; + } + v4_list = (const struct gprs_ns_ie_ip4_elem *) TLVP_VAL(tp, NS_IE_IPv4_LIST); + num_v4 = TLVP_LEN(tp, NS_IE_IPv4_LIST) / sizeof(*v4_list); + /* realloc to the new size */ + gss->ip4_remote = talloc_realloc(gss, gss->ip4_remote, + struct gprs_ns_ie_ip4_elem, + gss->num_ip4_remote+num_v4); + /* append the new entries to the end of the list */ + memcpy(&gss->ip4_remote[gss->num_ip4_remote], v4_list, num_v4*sizeof(*v4_list)); + gss->num_ip4_remote += num_v4; + + LOGPFSML(fi, LOGL_INFO, "Rx SNS-CONFIG: Remote IPv4 list now %u entries\n", + gss->num_ip4_remote); + if (event == GPRS_SNS_EV_CONFIG_END) { + /* check if sum of data / sig weights == 0 */ + if (ip4_weight_sum_data(gss->ip4_remote, gss->num_ip4_remote) == 0 || + ip4_weight_sum_sig(gss->ip4_remote, gss->num_ip4_remote) == 0) { + cause = NS_CAUSE_INVAL_WEIGH; + gprs_ns_tx_sns_config_ack(gss->nsvc_hack, &cause); + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_UNCONFIGURED, 0, 0); + break; + } + create_missing_nsvcs(fi); + gprs_ns_tx_sns_config_ack(gss->nsvc_hack, NULL); + /* start the test procedure on ALL NSVCs! */ + gprs_start_alive_all_nsvcs(nsi); + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_CONFIGURED, 0, 0); + } else { + /* just send CONFIG-ACK */ + gprs_ns_tx_sns_config_ack(gss->nsvc_hack, NULL); + } + break; + default: + OSMO_ASSERT(0); + } +} + +static void gprs_sns_st_configured(struct osmo_fsm_inst *fi, uint32_t event, void *data) +{ + struct gprs_sns_state *gss = (struct gprs_sns_state *) fi->priv; + struct tlv_parsed *tp = NULL; + const struct gprs_ns_ie_ip4_elem *v4_list = NULL; + unsigned int num_v4 = 0; + uint8_t trans_id; + uint8_t cause = 0xff; + unsigned int i; + int rc; + + switch (event) { + case GPRS_SNS_EV_ADD: + tp = data; + trans_id = *TLVP_VAL(tp, NS_IE_TRANS_ID); + if (TLVP_PRESENT(tp, NS_IE_IPv4_LIST)) { + v4_list = (const struct gprs_ns_ie_ip4_elem *) TLVP_VAL(tp, NS_IE_IPv4_LIST); + num_v4 = TLVP_LEN(tp, NS_IE_IPv4_LIST) / sizeof(*v4_list); + for (i = 0; i < num_v4; i++) { + rc = do_sns_add(fi, &v4_list[i]); + if (rc < 0) { + unsigned int j; + /* rollback/undo to restore previous state */ + for (j = 0; j < i; j++) + do_sns_delete(fi, &v4_list[j]); + cause = -rc; + gprs_ns_tx_sns_ack(gss->nsvc_hack, trans_id, &cause, NULL, 0); + break; + } + } + } else { + cause = NS_CAUSE_INVAL_NR_IPv4_EP; + gprs_ns_tx_sns_ack(gss->nsvc_hack, trans_id, &cause, NULL, 0); + break; + } + gprs_ns_tx_sns_ack(gss->nsvc_hack, trans_id, NULL, v4_list, num_v4); + break; + case GPRS_SNS_EV_DELETE: + tp = data; + trans_id = *TLVP_VAL(tp, NS_IE_TRANS_ID); + if (TLVP_PRESENT(tp, NS_IE_IPv4_LIST)) { + v4_list = (const struct gprs_ns_ie_ip4_elem *) TLVP_VAL(tp, NS_IE_IPv4_LIST); + num_v4 = TLVP_LEN(tp, NS_IE_IPv4_LIST) / sizeof(*v4_list); + for (i = 0; i < num_v4; i++) { + rc = do_sns_delete(fi, &v4_list[i]); + if (rc < 0) { + cause = -rc; + /* continue to delete others */ + } + } + if (cause != 0xff) { + /* TODO: create list of not-deleted and return it */ + gprs_ns_tx_sns_ack(gss->nsvc_hack, trans_id, &cause, NULL, 0); + break; + } + } else if (TLVP_PRES_LEN(tp, NS_IE_IP_ADDR, 5)) { + /* delete all NS-VCs for given IP address */ + const uint8_t *ie = TLVP_VAL(tp, NS_IE_IP_ADDR); + struct gprs_ns_ie_ip4_elem *ip4_remote; + uint32_t ip_addr = *(uint32_t *)(ie+1); + if (ie[0] != 0x01) { /* Address Type != IPv4 */ + cause = NS_CAUSE_UNKN_IP_ADDR; + gprs_ns_tx_sns_ack(gss->nsvc_hack, trans_id, &cause, NULL, 0); + break; + } + /* make a copy as do_sns_delete() will change the array underneath us */ + ip4_remote = talloc_memdup(fi, gss->ip4_remote, + gss->num_ip4_remote*sizeof(v4_list)); + for (i = 0; i < gss->num_ip4_remote; i++) { + if (ip4_remote[i].ip_addr == ip_addr) { + rc = do_sns_delete(fi, &ip4_remote[i]); + if (rc < 0) { + cause = -rc; + /* continue to delete others */ + } + } + } + talloc_free(ip4_remote); + if (cause != 0xff) { + /* TODO: create list of not-deleted and return it */ + gprs_ns_tx_sns_ack(gss->nsvc_hack, trans_id, &cause, NULL, 0); + break; + } + } else { + cause = NS_CAUSE_INVAL_NR_IPv4_EP; + gprs_ns_tx_sns_ack(gss->nsvc_hack, trans_id, &cause, NULL, 0); + break; + } + gprs_ns_tx_sns_ack(gss->nsvc_hack, trans_id, NULL, v4_list, num_v4); + break; + case GPRS_SNS_EV_CHANGE_WEIGHT: + tp = data; + trans_id = *TLVP_VAL(tp, NS_IE_TRANS_ID); + if (TLVP_PRESENT(tp, NS_IE_IPv4_LIST)) { + v4_list = (const struct gprs_ns_ie_ip4_elem *) TLVP_VAL(tp, NS_IE_IPv4_LIST); + num_v4 = TLVP_LEN(tp, NS_IE_IPv4_LIST) / sizeof(*v4_list); + for (i = 0; i < num_v4; i++) { + rc = do_sns_change_weight(fi, &v4_list[i]); + if (rc < 0) { + cause = -rc; + /* continue to others */ + } + } + if (cause != 0xff) { + gprs_ns_tx_sns_ack(gss->nsvc_hack, trans_id, &cause, NULL, 0); + break; + } + } else { + cause = NS_CAUSE_INVAL_NR_IPv4_EP; + gprs_ns_tx_sns_ack(gss->nsvc_hack, trans_id, &cause, NULL, 0); + break; + } + gprs_ns_tx_sns_ack(gss->nsvc_hack, trans_id, NULL, v4_list, num_v4); + break; + } +} + +static void gprs_sns_st_configured_onenter(struct osmo_fsm_inst *fi, uint32_t old_state) +{ + struct ns_signal_data nssd = {0}; + osmo_signal_dispatch(SS_L_NS, S_SNS_CONFIGURED, &nssd); +} + +static const struct osmo_fsm_state gprs_sns_bss_states[] = { + [GPRS_SNS_ST_UNCONFIGURED] = { + .in_event_mask = S(GPRS_SNS_EV_START), + .out_state_mask = S(GPRS_SNS_ST_SIZE), + .name = "UNCONFIGURED", + .action = gprs_sns_st_unconfigured, + }, + [GPRS_SNS_ST_SIZE] = { + .in_event_mask = S(GPRS_SNS_EV_SIZE_ACK), + .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | + S(GPRS_SNS_ST_SIZE) | + S(GPRS_SNS_ST_CONFIG_BSS), + .name = "SIZE", + .action = gprs_sns_st_size, + .onenter = gprs_sns_st_size_onenter, + }, + [GPRS_SNS_ST_CONFIG_BSS] = { + .in_event_mask = S(GPRS_SNS_EV_CONFIG_ACK), + .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | + S(GPRS_SNS_ST_CONFIG_BSS) | + S(GPRS_SNS_ST_CONFIG_SGSN), + .name = "CONFIG_BSS", + .action = gprs_sns_st_config_bss, + .onenter = gprs_sns_st_config_bss_onenter, + }, + [GPRS_SNS_ST_CONFIG_SGSN] = { + .in_event_mask = S(GPRS_SNS_EV_CONFIG) | + S(GPRS_SNS_EV_CONFIG_END), + .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED) | + S(GPRS_SNS_ST_CONFIG_SGSN) | + S(GPRS_SNS_ST_CONFIGURED), + .name = "CONFIG_SGSN", + .action = gprs_sns_st_config_sgsn, + }, + [GPRS_SNS_ST_CONFIGURED] = { + .in_event_mask = S(GPRS_SNS_EV_ADD) | + S(GPRS_SNS_EV_DELETE) | + S(GPRS_SNS_EV_CHANGE_WEIGHT), + .out_state_mask = S(GPRS_SNS_ST_UNCONFIGURED), + .name = "CONFIGURED", + .action = gprs_sns_st_configured, + .onenter = gprs_sns_st_configured_onenter, + }, +}; + +static int gprs_sns_fsm_bss_timer_cb(struct osmo_fsm_inst *fi) +{ + struct gprs_ns_inst *nsi = ns_inst_from_fi(fi); + + switch (fi->T) { + case 1: + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_SIZE, nsi->timeout[NS_TOUT_TSNS_PROV], 1); + break; + case 2: + osmo_fsm_inst_state_chg(fi, GPRS_SNS_ST_CONFIG_BSS, nsi->timeout[NS_TOUT_TSNS_PROV], 2); + break; + } + return 0; +} + +static struct osmo_fsm gprs_sns_bss_fsm = { + .name = "GPRS-SNS-BSS", + .states = gprs_sns_bss_states, + .num_states = ARRAY_SIZE(gprs_sns_bss_states), + .allstate_event_mask = 0, + .allstate_action = NULL, + .cleanup = NULL, + .timer_cb = gprs_sns_fsm_bss_timer_cb, + /* .log_subsys = DNS, "is not constant" */ + .event_names = gprs_sns_event_names, + .pre_term = NULL, +}; + +struct osmo_fsm_inst *gprs_sns_bss_fsm_alloc(void *ctx, struct gprs_nsvc *nsvc, + const char *id) +{ + struct osmo_fsm_inst *fi; + struct gprs_sns_state *gss; + struct gprs_ns_ie_ip4_elem *ip4; + struct gprs_ns_inst *nsi = nsvc->nsi; + + fi = osmo_fsm_inst_alloc(&gprs_sns_bss_fsm, ctx, NULL, LOGL_DEBUG, id); + if (!fi) + return fi; + + gss = talloc_zero(fi, struct gprs_sns_state); + if (!gss) + goto err; + + fi->priv = gss; + gss->nsi = nsi; + /* FIXME: we shouldn't use 'nsvc' here but only gprs_ns_inst */ + gss->nsvc_hack = nsvc; + gss->next_nsvci = 65533; /* 65534 + 65535 are already used internally */ + + /* create IPv4 list from the one IP/port the NS instance has */ + ip4 = talloc_zero(gss, struct gprs_ns_ie_ip4_elem); + if (!ip4) + goto err; + if (nsi->nsip.local_ip) + ip4->ip_addr = htonl(nsi->nsip.local_ip); + else { + /* unspecified local address. Figure out which address the kernel would use if we + * wanted to send a packet to the remote_ip */ + char local_ip[32]; + struct in_addr in = { .s_addr = htonl(nsi->nsip.remote_ip) }; + osmo_sock_local_ip(local_ip, inet_ntoa(in)); + ip4->ip_addr = inet_addr(local_ip); + } + ip4->udp_port = htons(gss->nsi->nsip.local_port); + ip4->sig_weight = 2; + ip4->data_weight = 1; + gss->ip4_local = ip4; + gss->num_ip4_local = 1; + gss->num_max_nsvcs = 8; + gss->num_max_ip4_remote = 4; + + return fi; +err: + osmo_fsm_inst_term(fi, OSMO_FSM_TERM_ERROR, NULL); + return NULL; +} + +int gprs_sns_bss_fsm_start(struct gprs_ns_inst *nsi) +{ + return osmo_fsm_inst_dispatch(nsi->bss_sns_fi, GPRS_SNS_EV_START, NULL); +} + +/* main entry point for receiving SNS messages from the network */ +int gprs_ns_rx_sns(struct gprs_ns_inst *nsi, struct msgb *msg, struct tlv_parsed *tp) +{ + struct gprs_ns_hdr *nsh = (struct gprs_ns_hdr *) msg->l2h; + uint16_t nsei = msgb_nsei(msg); + struct osmo_fsm_inst *fi; + + LOGP(DNS, LOGL_DEBUG, "NSEI=%u Rx SNS PDU type %s\n", nsei, + get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); + + /* FIXME: how to resolve SNS FSM Instance by NSEI (SGSN)? */ + fi = nsi->bss_sns_fi; + + switch (nsh->pdu_type) { + case SNS_PDUT_SIZE: + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SIZE, tp); + break; + case SNS_PDUT_SIZE_ACK: + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_SIZE_ACK, tp); + break; + case SNS_PDUT_CONFIG: + if (nsh->data[0] & 0x01) + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_CONFIG_END, tp); + else + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_CONFIG, tp); + break; + case SNS_PDUT_CONFIG_ACK: + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_CONFIG_ACK, tp); + break; + case SNS_PDUT_ADD: + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_ADD, tp); + break; + case SNS_PDUT_DELETE: + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_DELETE, tp); + break; + case SNS_PDUT_CHANGE_WEIGHT: + osmo_fsm_inst_dispatch(fi, GPRS_SNS_EV_CHANGE_WEIGHT, tp); + break; + case SNS_PDUT_ACK: + LOGP(DNS, LOGL_NOTICE, "NSEI=%u Rx unsupported SNS PDU type %s\n", nsei, + get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); + break; + default: + LOGP(DNS, LOGL_ERROR, "NSEI=%u Rx unknown SNS PDU type %s\n", nsei, + get_value_string(gprs_ns_pdu_strings, nsh->pdu_type)); + return -EINVAL; + } + + return 0; +} + +int gprs_sns_init(void) +{ + /* "DNS" is not a constant/#define, but an integer variable set by the client app */ + gprs_sns_bss_fsm.log_subsys = DNS; + return osmo_fsm_register(&gprs_sns_bss_fsm); +} + +#include +#include + +static void vty_dump_sns_ip4(struct vty *vty, const struct gprs_ns_ie_ip4_elem *ip4) +{ + struct in_addr in = { .s_addr = ip4->ip_addr }; + vty_out(vty, " %s:%u, Signalling Weight: %u, Data Weight: %u%s", + inet_ntoa(in), ntohs(ip4->udp_port), ip4->sig_weight, ip4->data_weight, VTY_NEWLINE); +} + +void gprs_sns_dump_vty(struct vty *vty, const struct gprs_ns_inst *nsi, bool stats) +{ + struct gprs_sns_state *gss; + unsigned int i; + + if (!nsi->bss_sns_fi) + return; + + vty_out_fsm_inst(vty, nsi->bss_sns_fi); + gss = (struct gprs_sns_state *) nsi->bss_sns_fi->priv; + + vty_out(vty, "Maximum number of remote NS-VCs: %zu, IPv4 Endpoints: %zu%s", + gss->num_max_nsvcs, gss->num_max_ip4_remote, VTY_NEWLINE); + + vty_out(vty, "Local IPv4 Endpoints:%s", VTY_NEWLINE); + for (i = 0; i < gss->num_ip4_local; i++) + vty_dump_sns_ip4(vty, &gss->ip4_local[i]); + + vty_out(vty, "Remote IPv4 Endpoints:%s", VTY_NEWLINE); + for (i = 0; i < gss->num_ip4_remote; i++) + vty_dump_sns_ip4(vty, &gss->ip4_remote[i]); +} diff --git a/src/gb/gprs_ns_vty.c b/src/gb/gprs_ns_vty.c index 1524763..53c71a9 100644 --- a/src/gb/gprs_ns_vty.c +++ b/src/gb/gprs_ns_vty.c @@ -46,6 +46,7 @@ #include #include "common_vty.h" +#include "gb_internal.h" static struct gprs_ns_inst *vty_nsi = NULL; @@ -59,6 +60,7 @@ { 4, "tns-test" }, { 5, "tns-alive" }, { 6, "tns-alive-retries" }, + { 7, "tsns-prov" }, { 0, NULL } }; @@ -208,6 +210,8 @@ continue; dump_nse(vty, nsvc, stats, persistent_only); } + + gprs_sns_dump_vty(vty, nsi, stats); } DEFUN(show_ns, show_ns_cmd, "show ns", @@ -556,6 +560,12 @@ return CMD_WARNING; } + if (nsvc->nsi->bss_sns_fi) { + vty_out(vty, "A NS Instance using the IP Sub-Network doesn't use BLOCK/UNBLOCK/RESET%s", + VTY_NEWLINE); + return CMD_WARNING; + } + if (!strcmp(operation, "block")) gprs_ns_tx_block(nsvc, NS_CAUSE_OM_INTERVENTION); else if (!strcmp(operation, "unblock")) diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index ec69670..2ad3ff7 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -52,6 +52,7 @@ gprs_ns_instantiate; gprs_ns_nsip_listen; gprs_ns_nsip_connect; +gprs_ns_nsip_connect_sns; gprs_ns_rcvmsg; gprs_ns_sendmsg; gprs_ns_set_log_ss; -- To view, visit https://gerrit.osmocom.org/13014 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I84786c3b43a8ae34ef3b3ba84b33c90042d234ea Gerrit-Change-Number: 13014 Gerrit-PatchSet: 5 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Tue Feb 26 11:31:52 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 11:31:52 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--disable-?= =?UTF-8?Q?iu,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9052?= Message-ID: <809092975.470.1551180712392.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 388.13 KB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7f7dbae57bc0(ns:nsvc) with 12 counters validating counter group 0x7f7dbae57bc0(ns:nsvc) with 12 counters validating counter group 0x7f7dbae57bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 11:31:49.704999075 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 11:31:49.732998738 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 11:32:16 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 11:32:16 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--enable-i?= =?UTF-8?Q?u,0,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9052?= Message-ID: <300759900.471.1551180736827.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 1.15 MB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 11:32:15.850058844 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 11:32:15.886058760 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 11:32:35 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 11:32:35 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--disable-?= =?UTF-8?Q?iu,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9053?= In-Reply-To: <809092975.470.1551180712392.JavaMail.jenkins@jenkins.osmocom.org> References: <809092975.470.1551180712392.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <871441610.472.1551180755371.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 388.76 KB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 11:32:34.446014424 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 11:32:34.490014318 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 11:32:47 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 11:32:47 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--enable-i?= =?UTF-8?Q?u,0,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9053?= In-Reply-To: <300759900.471.1551180736827.JavaMail.jenkins@jenkins.osmocom.org> References: <300759900.471.1551180736827.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1777959267.473.1551180767518.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 1.15 MB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7f6906b8cbc0(ns:nsvc) with 12 counters validating counter group 0x7f6906b8cbc0(ns:nsvc) with 12 counters validating counter group 0x7f6906b8cbc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 11:32:46.859956342 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 11:32:46.887956323 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 11:34:38 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 11:34:38 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--disable-?= =?UTF-8?Q?iu,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9054?= In-Reply-To: <871441610.472.1551180755371.JavaMail.jenkins@jenkins.osmocom.org> References: <871441610.472.1551180755371.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <828889501.474.1551180878861.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 389.87 KB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7efe5ddb4bc0(ns:nsvc) with 12 counters validating counter group 0x7efe5ddb4bc0(ns:nsvc) with 12 counters validating counter group 0x7efe5ddb4bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 11:34:38.135877092 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 11:34:38.163877072 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 11:36:40 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 11:36:40 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--enable-i?= =?UTF-8?Q?u,0,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9054?= In-Reply-To: <1777959267.473.1551180767518.JavaMail.jenkins@jenkins.osmocom.org> References: <1777959267.473.1551180767518.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1610603225.475.1551181000151.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 1.15 MB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7f126e0b9bc0(ns:nsvc) with 12 counters validating counter group 0x7f126e0b9bc0(ns:nsvc) with 12 counters validating counter group 0x7f126e0b9bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 11:36:37.661538904 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 11:36:37.685538616 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Tue Feb 26 11:42:49 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 26 Feb 2019 11:42:49 +0000 Subject: Change in osmo-hlr[master]: gsup_router.c: gsup_route_find(): support blob Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/13048 Change subject: gsup_router.c: gsup_route_find(): support blob ...................................................................... gsup_router.c: gsup_route_find(): support blob Do not require the blob (addr, addr_len) passed to gsup_route_find() to be nul-terminated. We already have the length, so the nul-termination is redundant. This is needed for the upcoming gsup message forwarding patch [1]: we want to be able to directly pass non-nul-terminated source and destination name blobs to gsup_route_find(). I have looked into fixing all code that calls gsup_route_find() to never pass a nul-terminated blob combination. But this is a can of worms, because it involves both gsup client and server code. Wireshark shows that clients are sending the nul-terminated string in TLV IEs of IPA messages. The server assumes that this is the case in various places. So we would need to fix it in both (server and client), but then we would lose backwards compatibility with old servers and clients. [1]: change-id Ia4f345abc877baaf0a8f73b8988e6514d9589bf5 Related: OS#3793 Change-Id: I01a45900e14d41bcd338f50ad85d9fabf2c61405 --- M src/gsup_router.c 1 file changed, 8 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/48/13048/1 diff --git a/src/gsup_router.c b/src/gsup_router.c index 16ea202..2101fb7 100644 --- a/src/gsup_router.c +++ b/src/gsup_router.c @@ -40,8 +40,14 @@ struct gsup_route *gr; llist_for_each_entry(gr, &gs->routes, list) { - if (talloc_total_size(gr->addr) == addrlen && - !memcmp(gr->addr, addr, addrlen)) + size_t gr_addrlen = talloc_total_size(gr->addr); /* gr->addr is a nul-terminated string */ + + /* FIXME: despite passing addrlen, a lot of code assumes that addr is also nul-terminated */ + if (gr_addrlen == addrlen && !memcmp(gr->addr, addr, addrlen)) + return gr->conn; + + /* Compare addr as non-nul-terminated blob */ + if (gr_addrlen - 1 == addrlen && !memcmp(gr->addr, addr, addrlen)) return gr->conn; } return NULL; -- To view, visit https://gerrit.osmocom.org/13048 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I01a45900e14d41bcd338f50ad85d9fabf2c61405 Gerrit-Change-Number: 13048 Gerrit-PatchSet: 1 Gerrit-Owner: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Tue Feb 26 11:45:31 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 11:45:31 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--disable-?= =?UTF-8?Q?iu,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9055?= In-Reply-To: <828889501.474.1551180878861.JavaMail.jenkins@jenkins.osmocom.org> References: <828889501.474.1551180878861.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <2002092991.476.1551181531924.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 413.80 KB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7f8d12b66bc0(ns:nsvc) with 12 counters validating counter group 0x7f8d12b66bc0(ns:nsvc) with 12 counters validating counter group 0x7f8d12b66bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 11:45:29.163144182 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 11:45:29.195143796 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 11:46:01 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 11:46:01 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--enable-i?= =?UTF-8?Q?u,0,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9055?= In-Reply-To: <1610603225.475.1551181000151.JavaMail.jenkins@jenkins.osmocom.org> References: <1610603225.475.1551181000151.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <26470180.477.1551181561720.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 1.24 MB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7f9cc57d6bc0(ns:nsvc) with 12 counters validating counter group 0x7f9cc57d6bc0(ns:nsvc) with 12 counters validating counter group 0x7f9cc57d6bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 11:45:59.118783483 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 11:45:59.150783098 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 11:52:11 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 11:52:11 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--disable-?= =?UTF-8?Q?iu,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9056?= In-Reply-To: <2002092991.476.1551181531924.JavaMail.jenkins@jenkins.osmocom.org> References: <2002092991.476.1551181531924.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1091790581.478.1551181931934.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 411.61 KB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7f36b5eb5bc0(ns:nsvc) with 12 counters validating counter group 0x7f36b5eb5bc0(ns:nsvc) with 12 counters validating counter group 0x7f36b5eb5bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 11:52:11.235100030 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 11:52:11.263100010 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 11:52:56 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 11:52:56 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--enable-i?= =?UTF-8?Q?u,0,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9056?= In-Reply-To: <26470180.477.1551181561720.JavaMail.jenkins@jenkins.osmocom.org> References: <26470180.477.1551181561720.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <18898736.479.1551181976320.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 1.24 MB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 11:52:55.421215141 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 11:52:55.453214993 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 11:53:50 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 11:53:50 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--disable-?= =?UTF-8?Q?iu,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9057?= In-Reply-To: <1091790581.478.1551181931934.JavaMail.jenkins@jenkins.osmocom.org> References: <1091790581.478.1551181931934.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1078088948.480.1551182030963.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 389.27 KB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 11:53:49.876962491 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 11:53:49.928962249 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 11:54:13 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 11:54:13 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--enable-i?= =?UTF-8?Q?u,0,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9057?= In-Reply-To: <18898736.479.1551181976320.JavaMail.jenkins@jenkins.osmocom.org> References: <18898736.479.1551181976320.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1095659672.481.1551182053568.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 1.15 MB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 11:54:12.600856713 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 11:54:12.636856546 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 11:59:42 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 11:59:42 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--enable-i?= =?UTF-8?Q?u,0,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9058?= In-Reply-To: <1095659672.481.1551182053568.JavaMail.jenkins@jenkins.osmocom.org> References: <1095659672.481.1551182053568.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1111606547.482.1551182382948.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 1.24 MB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 11:59:42.091305006 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 11:59:42.123304853 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 12:00:23 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 12:00:23 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--disable-?= =?UTF-8?Q?iu,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9058?= In-Reply-To: <1078088948.480.1551182030963.JavaMail.jenkins@jenkins.osmocom.org> References: <1078088948.480.1551182030963.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <2138809361.483.1551182423332.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 413.15 KB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7fd9e97b7bc0(ns:nsvc) with 12 counters validating counter group 0x7fd9e97b7bc0(ns:nsvc) with 12 counters validating counter group 0x7fd9e97b7bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 12:00:20.768416288 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 12:00:20.796415952 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 12:05:50 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 12:05:50 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--enable-i?= =?UTF-8?Q?u,0,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9059?= In-Reply-To: <1111606547.482.1551182382948.JavaMail.jenkins@jenkins.osmocom.org> References: <1111606547.482.1551182382948.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1650954772.484.1551182750092.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 1.24 MB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7f4e5ac11bc0(ns:nsvc) with 12 counters validating counter group 0x7f4e5ac11bc0(ns:nsvc) with 12 counters validating counter group 0x7f4e5ac11bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 12:05:49.466508670 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 12:05:49.494508650 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 12:05:55 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 12:05:55 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--disable-?= =?UTF-8?Q?iu,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9059?= In-Reply-To: <2138809361.483.1551182423332.JavaMail.jenkins@jenkins.osmocom.org> References: <2138809361.483.1551182423332.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <282739253.485.1551182755124.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 413.80 KB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7f64fe282bc0(ns:nsvc) with 12 counters validating counter group 0x7f64fe282bc0(ns:nsvc) with 12 counters validating counter group 0x7f64fe282bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 12:05:52.548426920 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 12:05:52.576426585 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Tue Feb 26 12:23:36 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 12:23:36 +0000 Subject: Change in osmo-pcu[master]: Optionally Use the NS Sub-Network-Service (SNS) on Gb In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/13025 to look at the new patch set (#2). Change subject: Optionally Use the NS Sub-Network-Service (SNS) on Gb ...................................................................... Optionally Use the NS Sub-Network-Service (SNS) on Gb This change add support for the recently-introduced GPRS Gb interface auto-configuration using the NS IP Sub-Network Service (SNS) procedures. It requires a Change-Id I84786c3b43a8ae34ef3b3ba84b33c90042d234ea of libosmocore. Related: OS#3372 Depends: I84786c3b43a8ae34ef3b3ba84b33c90042d234ea (libosmcore) Change-Id: I256b40ac592d3b6e75dd581bf7b9512f69b11e83 --- M src/bts.h M src/gprs_bssgp_pcu.cpp M src/pcu_vty.c 3 files changed, 50 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/25/13025/2 -- To view, visit https://gerrit.osmocom.org/13025 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I256b40ac592d3b6e75dd581bf7b9512f69b11e83 Gerrit-Change-Number: 13025 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 13:42:51 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 13:42:51 +0000 Subject: Change in osmo-pcu[master]: Optionally Use the NS Sub-Network-Service (SNS) on Gb In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13025 ) Change subject: Optionally Use the NS Sub-Network-Service (SNS) on Gb ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13025 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I256b40ac592d3b6e75dd581bf7b9512f69b11e83 Gerrit-Change-Number: 13025 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 26 Feb 2019 13:42:51 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 13:42:52 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 13:42:52 +0000 Subject: Change in osmo-pcu[master]: Optionally Use the NS Sub-Network-Service (SNS) on Gb In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13025 ) Change subject: Optionally Use the NS Sub-Network-Service (SNS) on Gb ...................................................................... Optionally Use the NS Sub-Network-Service (SNS) on Gb This change add support for the recently-introduced GPRS Gb interface auto-configuration using the NS IP Sub-Network Service (SNS) procedures. It requires a Change-Id I84786c3b43a8ae34ef3b3ba84b33c90042d234ea of libosmocore. Related: OS#3372 Depends: I84786c3b43a8ae34ef3b3ba84b33c90042d234ea (libosmcore) Change-Id: I256b40ac592d3b6e75dd581bf7b9512f69b11e83 --- M src/bts.h M src/gprs_bssgp_pcu.cpp M src/pcu_vty.c 3 files changed, 50 insertions(+), 7 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/bts.h b/src/bts.h index 51760e2..578cece 100644 --- a/src/bts.h +++ b/src/bts.h @@ -159,6 +159,9 @@ /* Path to be used for the pcu-bts socket */ char *pcu_sock_path; + + /* Are we talking Gb with IP-SNS (true) or classic Gb? */ + bool gb_dialect_sns; }; #ifdef __cplusplus diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index 8bf6b7f..f63fac3 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -541,12 +541,20 @@ return -EINVAL; nssd = (struct ns_signal_data *)signal_data; - if (nssd->nsvc != the_pcu.nsvc) { + if (signal != S_SNS_CONFIGURED && nssd->nsvc != the_pcu.nsvc) { LOGP(DPCU, LOGL_ERROR, "Signal received of unknown NSVC\n"); return -EINVAL; } switch (signal) { + case S_SNS_CONFIGURED: + the_pcu.bvc_sig_reset = 0; + the_pcu.bvc_reset = 0; + /* There's no NS-RESET / NS-UNBLOCK procedure on IP SNS based NS-VCs */ + the_pcu.nsvc_unblocked = 1; + LOGP(DPCU, LOGL_NOTICE, "NS-VC %d is unblocked.\n", the_pcu.nsvc->nsvci); + bvc_timeout(NULL); + break; case S_NS_UNBLOCK: if (!the_pcu.nsvc_unblocked) { the_pcu.nsvc_unblocked = 1; @@ -872,9 +880,10 @@ return -EBADF; } - nsvc2 = gprs_ns_nsip_connect(bssgp_nsi, &nsvc->ip.bts_addr, - nsvc->nsei, nsvc->nsvci); - + if (the_pcu.bts->gb_dialect_sns) + nsvc2 = gprs_ns_nsip_connect_sns(bssgp_nsi, &nsvc->ip.bts_addr, nsvc->nsei, nsvc->nsvci); + else + nsvc2 = gprs_ns_nsip_connect(bssgp_nsi, &nsvc->ip.bts_addr, nsvc->nsei, nsvc->nsvci); if (!nsvc2) { LOGP(DBSSGP, LOGL_ERROR, "Failed to reconnect NSVC\n"); return -EIO; @@ -905,8 +914,13 @@ return NULL; } gprs_ns_vty_init(bssgp_nsi); - bssgp_nsi->nsip.remote_port = sgsn_port; - bssgp_nsi->nsip.remote_ip = sgsn_ip; + /* don't specify remote IP/port if SNS dialect is in use; Doing so would + * issue a connect() on the socket, which prevents us to dynamically communicate + * with any number of IP-SNS endpoints on the SGSN side */ + if (!bts->gb_dialect_sns) { + bssgp_nsi->nsip.remote_port = sgsn_port; + bssgp_nsi->nsip.remote_ip = sgsn_ip; + } bssgp_nsi->nsip.local_port = local_port; rc = gprs_ns_nsip_listen(bssgp_nsi); if (rc < 0) { @@ -920,7 +934,10 @@ dest.sin_port = htons(sgsn_port); dest.sin_addr.s_addr = htonl(sgsn_ip); - the_pcu.nsvc = gprs_ns_nsip_connect(bssgp_nsi, &dest, nsei, nsvci); + if (bts->gb_dialect_sns) + the_pcu.nsvc = gprs_ns_nsip_connect_sns(bssgp_nsi, &dest, nsei, nsvci); + else + the_pcu.nsvc = gprs_ns_nsip_connect(bssgp_nsi, &dest, nsei, nsvci); if (!the_pcu.nsvc) { LOGP(DBSSGP, LOGL_ERROR, "Failed to create NSVCt\n"); gprs_ns_destroy(bssgp_nsi); diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 6f50bf1..960c90d 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -265,6 +265,11 @@ } } + if (bts->gb_dialect_sns) + vty_out(vty, " gb-dialect ip-sns%s", VTY_NEWLINE); + else + vty_out(vty, " gb-dialect classic%s", VTY_NEWLINE); + return CMD_SUCCESS; } @@ -1059,6 +1064,23 @@ return CMD_SUCCESS; } +DEFUN(cfg_pcu_gb_dialect, + cfg_pcu_gb_dialect_cmd, + "gb-dialect (classic|ip-sns)", + "Select which Gb interface dialect to use\n" + "Classic Gb interface with NS-{RESET,BLOCK,UNBLOCK} and static configuration\n" + "Modern Gb interface with IP-SNS (Sub Network Service) and dynamic configuration\n") +{ + struct gprs_rlcmac_bts *bts = bts_main_data(); + + if (!strcmp(argv[0], "ip-sns")) + bts->gb_dialect_sns = true; + else + bts->gb_dialect_sns = false; + + return CMD_SUCCESS; +} + DEFUN(show_tbf, show_tbf_cmd, "show tbf all", @@ -1189,6 +1211,7 @@ install_element(PCU_NODE, &cfg_pcu_gsmtap_categ_cmd); install_element(PCU_NODE, &cfg_pcu_no_gsmtap_categ_cmd); install_element(PCU_NODE, &cfg_pcu_sock_cmd); + install_element(PCU_NODE, &cfg_pcu_gb_dialect_cmd); install_element_ve(&show_bts_stats_cmd); install_element_ve(&show_tbf_cmd); -- To view, visit https://gerrit.osmocom.org/13025 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I256b40ac592d3b6e75dd581bf7b9512f69b11e83 Gerrit-Change-Number: 13025 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 13:43:58 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Tue, 26 Feb 2019 13:43:58 +0000 Subject: Change in osmo-hlr[master]: gsup_router.c: gsup_route_find(): support blob In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/13048 ) Change subject: gsup_router.c: gsup_route_find(): support blob ...................................................................... Patch Set 1: (3 comments) I was the one to send you on this journey, and I appreciate this solution. My conclusion however from what you found is that we currently don't support BLOB addresses properly, especially since you told me that some places store the address as a nul-terminated string pointer without length. If we want true BLOB support at some point in the future, nipping off the last byte is a new future quirk. Say we fixed all other places, then we might still need to keep this for legacy compat ... I am not fully decided which way to go, but I lean towards: now always send the terminating nul from GSUP clients as contained in destination addresses (counted in the addr_len), i.e. we contain the nul in the BLOB, but the code should ignore that fact as much as currently possible -- towards a future where no code depends on the nul. If we end up accepting this patch instead, then the following review applies... https://gerrit.osmocom.org/#/c/13048/1//COMMIT_MSG Commit Message: https://gerrit.osmocom.org/#/c/13048/1//COMMIT_MSG at 15 PS1, Line 15: destination name blobs to gsup_route_find(). add "from incoming GSUP messages' destination_name IEs" https://gerrit.osmocom.org/#/c/13048/1/src/gsup_router.c File src/gsup_router.c: https://gerrit.osmocom.org/#/c/13048/1/src/gsup_router.c at 42 PS1, Line 42: llist_for_each_entry(gr, &gs->routes, list) { An elaborate comment here would be nice, maybe /* gr->addr should be treated as a BLOB, yet for historical reasons may be assumed to be a nul-terminated string where the nul is not considered part of the address, especially in incoming GSUP messages. Hence, for incoming addr that are not nul-terminated, also compare without the nul. */ https://gerrit.osmocom.org/#/c/13048/1/src/gsup_router.c at 50 PS1, Line 50: if (gr_addrlen - 1 == addrlen && !memcmp(gr->addr, addr, addrlen)) && addr[addrlen - 1] != '\0' && gr-addr[gr_addrlen - 1] == '\0' -- To view, visit https://gerrit.osmocom.org/13048 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I01a45900e14d41bcd338f50ad85d9fabf2c61405 Gerrit-Change-Number: 13048 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Tue, 26 Feb 2019 13:43:58 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 14:45:12 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Tue, 26 Feb 2019 14:45:12 +0000 Subject: Change in libosmo-netif[master]: amr: add functions to convert between bw-efficient and octet-aligned Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/13049 Change subject: amr: add functions to convert between bw-efficient and octet-aligned ...................................................................... amr: add functions to convert between bw-efficient and octet-aligned RFC 3267 describes two different AMR frame formats. Octet Aligned and Bandwidth efficient mode. In Bandwith efficient mode the padding bits, which are used to align CMR, TOC and payload on octet boundaries are saved and the fielda are packed directly one after another. - Add functions to convert from one mode to the other and vice versa. - Add function to detect in which mode an AMR frame is encoded. Change-Id: I5b5a0fa644d8dbb1f04f9d7e35312683c7b3d196 Related: SYS#4470 --- M include/osmocom/netif/amr.h M src/amr.c M tests/Makefile.am A tests/amr/amr_test.c A tests/amr/amr_test.ok M tests/testsuite.at 6 files changed, 492 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/49/13049/1 diff --git a/include/osmocom/netif/amr.h b/include/osmocom/netif/amr.h index b0ab8a3..1384701 100644 --- a/include/osmocom/netif/amr.h +++ b/include/osmocom/netif/amr.h @@ -83,4 +83,8 @@ int osmo_amr_ft_valid(uint8_t amr_ft); size_t osmo_amr_bytes(uint8_t amr_cmr); +bool osmo_amr_is_oa(uint8_t *frame, unsigned int frame_len); +int osmo_amr_oa_to_bwe(uint8_t *frame, unsigned int frame_len); +int osmo_amr_bwe_to_oa(uint8_t *frame, unsigned int frame_len); + #endif diff --git a/src/amr.c b/src/amr.c index 6f94a69..ec28a22 100644 --- a/src/amr.c +++ b/src/amr.c @@ -11,7 +11,9 @@ */ #include +#include #include +#include #include /* According to TS 26.101: @@ -62,3 +64,77 @@ return 1; } + +/* Check if an AMR frame is octet aligned by looking at the padding bits */ +bool osmo_amr_is_oa(uint8_t *frame, unsigned int frame_len) +{ + struct amr_hdr *oc_hdr = (struct amr_hdr *)frame; + + /* Broken frame? */ + if (!frame || frame_len < 2) + return false; + + /* In octet aligned mode, padding bits are specified to be + * set to zero. */ + if (oc_hdr->pad1 != 0) + return false; + if (oc_hdr->pad2 != 0) + return false; + + return true; +} + +/* Convert an AMR frame from octet-aligned mode to bandwith-efficient mode */ +int osmo_amr_oa_to_bwe(uint8_t *frame, unsigned int frame_len) +{ + struct amr_hdr *oc_hdr = (struct amr_hdr *)frame; + unsigned int payload_len = frame_len - 2; + unsigned int i; + + /* Be sure that we operate on an octet aligned frame. */ + if (osmo_amr_is_oa(frame, frame_len) == false) + return -1; + + /* This implementation is currently not capable to handle multi-payload + * frames, so we need to make sure that the frame we operate on + * contains only one payload */ + if (oc_hdr->f != 0) + return -1; + + /* Move TOC close to CMR */ + frame[0] |= (frame[1] >> 4) & 0x0f; + frame[1] = (frame[1] << 4) & 0xf0; + + for (i = 0; i < payload_len; i++) { + frame[i + 1] |= frame[i + 2] >> 2; + frame[i + 2] = frame[i + 2] << 6; + } + + /* The overall saving is one byte! */ + return frame_len - 1; +} + +/* Convert an AMR frame from bandwith-efficient to octet-aligned mode mode */ +int osmo_amr_bwe_to_oa(uint8_t *frame, unsigned int frame_len) +{ + uint8_t buf[256]; + unsigned int payload_len = frame_len - 1; + unsigned int i; + + memset(buf, 0, sizeof(buf)); + + if (frame_len > sizeof(buf)) + return -1; + + buf[0] = frame[0] & 0xf0; + buf[1] = frame[0] << 4; + buf[1] |= (frame[1] >> 4) & 0x0c; + + for (i = 0; i < payload_len; i++) { + buf[i + 2] = frame[i + 1] << 2; + buf[i + 2] |= frame[i + 2] >> 6; + } + + memcpy(frame, buf, frame_len + 1); + return frame_len + 1; +} diff --git a/tests/Makefile.am b/tests/Makefile.am index c3628ac..36447be 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,7 +1,7 @@ AM_CFLAGS = -Wall -I$(top_srcdir)/include $(LIBOSMOCORE_CFLAGS) -g AM_LDFLAGS = $(LIBOSMOCORE_LDFLAGS) -check_PROGRAMS = osmux/osmux_test osmux/osmux_test2 stream/stream_test jibuf/jibuf_test +check_PROGRAMS = osmux/osmux_test osmux/osmux_test2 stream/stream_test jibuf/jibuf_test amr/amr_test check_HEADERS = osmux_osmux_test_SOURCES = osmux/osmux_test.c @@ -17,6 +17,9 @@ jibuf_jibuf_test_SOURCES = jibuf/jibuf_test.c jibuf_jibuf_test_LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS) $(top_builddir)/src/libosmonetif.la +amr_amr_test_SOURCES = amr/amr_test.c +amr_amr_test_LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS) $(top_builddir)/src/libosmonetif.la + if HAVE_PCAP check_PROGRAMS += jibuf/jibuf_tool check_HEADERS += \ @@ -63,7 +66,9 @@ osmux/osmux_test2.ok \ stream/stream_test.ok \ stream/stream_test.err \ - jibuf/jibuf_test.ok + jibuf/jibuf_test.ok \ + amr/amr_test.ok + DISTCLEANFILES = atconfig diff --git a/tests/amr/amr_test.c b/tests/amr/amr_test.c new file mode 100644 index 0000000..ffdb03c --- /dev/null +++ b/tests/amr/amr_test.c @@ -0,0 +1,188 @@ +/* (C) 2017 by sysmocom - s.f.m.c. GmbH + * + * Author: Pau Espin Pedrol + * + * SPDX-License-Identifier: GPL-2.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +/* Some octet aligned single-payload AMR frames on different rates */ +char *oa_amr_samples[] = { + "703c22f979890338540179209572624a0f8535871c2f7039cbf926b7e4425b6ef0", + "703c2e671f3b1b0810412d5adae61e2b2a319885c6ced4e909b4eeaa2ea0f0cd80", + "703cf8fc77356c948141686cda34d35220db719e36a359d86b64420dc64b563850", + "60344e300c0e6251342c2ae51fd8a698a945488d16c98922726f3e50", + "60341fc722c7880328a9c280030bc9755c3ef519f80000295323e000", + "60342c338655c00008efba03592419adf62478a79278b3e2d68ab0f0", + "502c98ab841e491ff7a1a555016a32a3c7f913210630", + "502cc5459a0d200e7097c4dfe86ec8d27f1756d776f0", + "502c42b332081813d7e916e7aa5e80d7fde812b8c080", + "40240343e959c79bacd20c77501054880a718db200", + "4024172c53401e39115ceecd12606df5689bdd0ca0", + "4024f871cf48801ec427f0fc3f7318898622062200", + "20141fd4c02667c742b164aef659ffe708", + "2014197e10ead7b250bccbbf3b81887c64", + "2014e959f35fdfe5e9667ffbc088818088", + "100c4e9ba850e30d5d53d04de41e7c", + "100c6c18e7b7fff53aeb055e7d1c54", + "100c1fb967f7f1fdf547bf2e61c060", + "a078ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00fc", /* test pattern */ + "END", +}; + +/* Some bandwith efficient single-payload AMR frames */ +char *bwe_amr_samples[] = { + "f4495c7cda8f80", + "f44aaa6c969780", + "f3d09c20e32da600c025a72e0a9b360386e40f87e19282094adc1a11e397d1d4", + "f3d39a49a09e7a802852e297e8c9246aadf5a45928bfc27177fed8404d97d3b8", + "f3c2155b65131c68682079fab4810911200003b360ae0446000025f11e539dd0", + "f3c381bc7061c9f8507f6029de6115c16e5fa470c243b21b6e35dbb48bd84c00", + "a7bfc03fc03fc03fc03fc03fc03fc03fc03fc03fc03fc03fc03fc03fc03fc03f", /* test pattern */ + "END", +}; + +void dump_bits(uint8_t *buf, int len) +{ + unsigned int i; + if (len <= 0) { + printf("(no data)"); + return; + } + for (i = 0; i < (len * 8); i++) + printf("%u", (buf[i / 8] >> (7 - (i % 8))) & 1); + return; +} + +void osmo_amr_oa_to_bwe_test(void) +{ + uint8_t buf[256]; + unsigned int i = 0; + int len; + int rc; + + printf("\n\n"); + printf("Testing conversion from octet-aligned to bw-efficient:\n"); + + while (1) { + if (strcmp(oa_amr_samples[i], "END") == 0) + return; + printf("\n"); + printf("Sample No.: %i\n", i); + len = strlen(oa_amr_samples[i]); + + len = osmo_hexparse(oa_amr_samples[i], buf, sizeof(buf)); + OSMO_ASSERT(len > 0); + + printf(" octet aligned: %s\n", osmo_hexdump_nospc(buf, len)); + printf(" "); + dump_bits(buf, len); + printf("\n"); + rc = osmo_amr_oa_to_bwe(buf, len); + printf(" bw-efficient: %s\n", osmo_hexdump_nospc(buf, rc)); + printf(" "); + dump_bits(buf, rc); + printf("\n"); + printf(" rc: %i\n", rc); + + if (rc > 0) { + OSMO_ASSERT(rc == len - 1); + OSMO_ASSERT(buf[len - 1] == 0x00); + } + i++; + } +} + +void osmo_amr_bwe_to_oa_test(void) +{ + uint8_t buf[256]; + unsigned int i = 0; + int len; + int rc; + + printf("\n\n"); + printf("Testing conversion from bw-efficient to octet-aligned:\n"); + + while (1) { + if (strcmp(bwe_amr_samples[i], "END") == 0) + return; + printf("\n"); + printf("Sample No.: %i\n", i); + len = strlen(bwe_amr_samples[i]); + + len = osmo_hexparse(bwe_amr_samples[i], buf, sizeof(buf)); + OSMO_ASSERT(len > 0); + + printf(" bw-efficient: %s\n", osmo_hexdump_nospc(buf, len)); + printf(" "); + dump_bits(buf, len); + printf("\n"); + rc = osmo_amr_bwe_to_oa(buf, len); + printf(" octet aligned: %s\n", osmo_hexdump_nospc(buf, rc)); + printf(" "); + dump_bits(buf, rc); + printf("\n"); + printf(" rc: %i\n", rc); + + OSMO_ASSERT(rc == len + 1); + i++; + } +} + +void osmo_amr_oa_to_bwe_and_inverse_test(void) +{ + uint8_t buf[256]; + uint8_t buf_chk[256]; + + unsigned int i = 0; + int len; + int rc; + + printf("\n\n"); + printf("Testing conversion from octet-aligned to bw-efficient and inverse:\n"); + + while (1) { + if (strcmp(oa_amr_samples[i], "END") == 0) + return; + printf("Sample No.: %i...\n", i); + len = strlen(oa_amr_samples[i]); + + len = osmo_hexparse(oa_amr_samples[i], buf, sizeof(buf)); + OSMO_ASSERT(len > 0); + memcpy(buf_chk, buf, sizeof(buf)); + + rc = osmo_amr_oa_to_bwe(buf, len); + OSMO_ASSERT(rc > 0); + rc = osmo_amr_bwe_to_oa(buf, rc); + OSMO_ASSERT(memcmp(buf, buf_chk, len) == 0); + i++; + } +} + +int main(int argc, char **argv) +{ + osmo_amr_oa_to_bwe_test(); + osmo_amr_bwe_to_oa_test(); + osmo_amr_oa_to_bwe_and_inverse_test(); + + fprintf(stdout, "OK: Test passed\n"); + return EXIT_SUCCESS; +} diff --git a/tests/amr/amr_test.ok b/tests/amr/amr_test.ok new file mode 100644 index 0000000..e2644f6 --- /dev/null +++ b/tests/amr/amr_test.ok @@ -0,0 +1,211 @@ + + +Testing conversion from octet-aligned to bw-efficient: + +Sample No.: 0 + octet aligned: 703c22f979890338540179209572624a0f8535871c2f7039cbf926b7e4425b6ef0 + 011100000011110000100010111110010111100110001001000000110011100001010100000000010111100100100000100101010111001001100010010010100000111110000101001101011000011100011100001011110111000000111001110010111111100100100110101101111110010001000010010110110110111011110000 + bw-efficient: 73c8be5e6240ce15005e48255c989283e14d61c70bdc0e72fe49adf91096dbbc + 0111001111001000101111100101111001100010010000001100111000010101000000000101111001001000001001010101110010011000100100101000001111100001010011010110000111000111000010111101110000001110011100101111111001001001101011011111100100010000100101101101101110111100 + rc: 32 + +Sample No.: 1 + octet aligned: 703c2e671f3b1b0810412d5adae61e2b2a319885c6ced4e909b4eeaa2ea0f0cd80 + 011100000011110000101110011001110001111100111011000110110000100000010000010000010010110101011010110110101110011000011110001010110010101000110001100110001000010111000110110011101101010011101001000010011011010011101110101010100010111010100000111100001100110110000000 + bw-efficient: 73cb99c7cec6c204104b56b6b9878aca8c662171b3b53a426d3baa8ba83c3360 + 0111001111001011100110011100011111001110110001101100001000000100000100000100101101010110101101101011100110000111100010101100101010001100011001100010000101110001101100111011010100111010010000100110110100111011101010101000101110101000001111000011001101100000 + rc: 32 + +Sample No.: 2 + octet aligned: 703cf8fc77356c948141686cda34d35220db719e36a359d86b64420dc64b563850 + 011100000011110011111000111111000111011100110101011011001001010010000001010000010110100001101100110110100011010011010011010100100010000011011011011100011001111000110110101000110101100111011000011010110110010001000010000011011100011001001011010101100011100001010000 + bw-efficient: 73fe3f1dcd5b2520505a1b368d34d48836dc678da8d6761ad910837192d58e14 + 0111001111111110001111110001110111001101010110110010010100100000010100000101101000011011001101101000110100110100110101001000100000110110110111000110011110001101101010001101011001110110000110101101100100010000100000110111000110010010110101011000111000010100 + rc: 32 + +Sample No.: 3 + octet aligned: 60344e300c0e6251342c2ae51fd8a698a945488d16c98922726f3e50 + 01100000001101000100111000110000000011000000111001100010010100010011010000101100001010101110010100011111110110001010011010011000101010010100010101001000100011010001011011001001100010010010001001110010011011110011111001010000 + bw-efficient: 63538c030398944d0b0ab947f629a62a51522345b262489c9bcf94 + 011000110101001110001100000000110000001110011000100101000100110100001011000010101011100101000111111101100010100110100110001010100101000101010010001000110100010110110010011000100100100010011100100110111100111110010100 + rc: 27 + +Sample No.: 4 + octet aligned: 60341fc722c7880328a9c280030bc9755c3ef519f80000295323e000 + 01100000001101000001111111000111001000101100011110001000000000110010100010101001110000101000000000000011000010111100100101110101010111000011111011110101000110011111100000000000000000000010100101010011001000111110000000000000 + bw-efficient: 6347f1c8b1e200ca2a70a000c2f25d570fbd467e00000a54c8f800 + 011000110100011111110001110010001011000111100010000000001100101000101010011100001010000000000000110000101111001001011101010101110000111110111101010001100111111000000000000000000000101001010100110010001111100000000000 + rc: 27 + +Sample No.: 5 + octet aligned: 60342c338655c00008efba03592419adf62478a79278b3e2d68ab0f0 + 01100000001101000010110000110011100001100101010111000000000000000000100011101111101110100000001101011001001001000001100110101101111101100010010001111000101001111001001001111000101100111110001011010110100010101011000011110000 + bw-efficient: 634b0ce1957000023bee80d649066b7d891e29e49e2cf8b5a2ac3c + 011000110100101100001100111000011001010101110000000000000000001000111011111011101000000011010110010010010000011001101011011111011000100100011110001010011110010010011110001011001111100010110101101000101010110000111100 + rc: 27 + +Sample No.: 6 + octet aligned: 502c98ab841e491ff7a1a555016a32a3c7f913210630 + 01010000001011001001100010101011100001000001111001001001000111111111011110100001101001010101010100000001011010100011001010100011110001111111100100010011001000010000011000110000 + bw-efficient: 52e62ae1079247fde86955405a8ca8f1fe44c8418c + 010100101110011000101010111000010000011110010010010001111111110111101000011010010101010101000000010110101000110010101000111100011111111001000100110010000100000110001100 + rc: 21 + +Sample No.: 7 + octet aligned: 502cc5459a0d200e7097c4dfe86ec8d27f1756d776f0 + 01010000001011001100010101000101100110100000110100100000000011100111000010010111110001001101111111101000011011101100100011010010011111110001011101010110110101110111011011110000 + bw-efficient: 52f151668348039c25f137fa1bb2349fc5d5b5ddbc + 010100101111000101010001011001101000001101001000000000111001110000100101111100010011011111111010000110111011001000110100100111111100010111010101101101011101110110111100 + rc: 21 + +Sample No.: 8 + octet aligned: 502c42b332081813d7e916e7aa5e80d7fde812b8c080 + 01010000001011000100001010110011001100100000100000011000000100111101011111101001000101101110011110101010010111101000000011010111111111011110100000010010101110001100000010000000 + bw-efficient: 52d0accc820604f5fa45b9ea97a035ff7a04ae3020 + 010100101101000010101100110011001000001000000110000001001111010111111010010001011011100111101010100101111010000000110101111111110111101000000100101011100011000000100000 + rc: 21 + +Sample No.: 9 + octet aligned: 40240343e959c79bacd20c77501054880a718db200 + 010000000010010000000011010000111110100101011001110001111001101110101100110100100000110001110111010100000001000001010100100010000000101001110001100011011011001000000000 + bw-efficient: 4240d0fa5671e6eb34831dd4041522029c636c80 + 0100001001000000110100001111101001010110011100011110011011101011001101001000001100011101110101000000010000010101001000100000001010011100011000110110110010000000 + rc: 20 + +Sample No.: 10 + octet aligned: 4024172c53401e39115ceecd12606df5689bdd0ca0 + 010000000010010000010111001011000101001101000000000111100011100100010001010111001110111011001101000100100110000001101101111101010110100010011011110111010000110010100000 + bw-efficient: 4245cb14d0078e44573bb344981b7d5a26f74328 + 0100001001000101110010110001010011010000000001111000111001000100010101110011101110110011010001001001100000011011011111010101101000100110111101110100001100101000 + rc: 20 + +Sample No.: 11 + octet aligned: 4024f871cf48801ec427f0fc3f7318898622062200 + 010000000010010011111000011100011100111101001000100000000001111011000100001001111111000011111100001111110111001100011000100010011000011000100010000001100010001000000000 + bw-efficient: 427e1c73d22007b109fc3f0fdcc6226188818880 + 0100001001111110000111000111001111010010001000000000011110110001000010011111110000111111000011111101110011000110001000100110000110001000100000011000100010000000 + rc: 20 + +Sample No.: 12 + octet aligned: 20141fd4c02667c742b164aef659ffe708 + 0010000000010100000111111101010011000000001001100110011111000111010000101011000101100100101011101111011001011001111111111110011100001000 + bw-efficient: 2147f5300999f1d0ac592bbd967ff9c2 + 00100001010001111111010100110000000010011001100111110001110100001010110001011001001010111011110110010110011111111111100111000010 + rc: 16 + +Sample No.: 13 + octet aligned: 2014197e10ead7b250bccbbf3b81887c64 + 0010000000010100000110010111111000010000111010101101011110110010010100001011110011001011101111110011101110000001100010000111110001100100 + bw-efficient: 21465f843ab5ec942f32efcee0621f19 + 00100001010001100101111110000100001110101011010111101100100101000010111100110010111011111100111011100000011000100001111100011001 + rc: 16 + +Sample No.: 14 + octet aligned: 2014e959f35fdfe5e9667ffbc088818088 + 0010000000010100111010010101100111110011010111111101111111100101111010010110011001111111111110111100000010001000100000011000000010001000 + bw-efficient: 217a567cd7f7f97a599ffef022206022 + 00100001011110100101011001111100110101111111011111111001011110100101100110011111111111101111000000100010001000000110000000100010 + rc: 16 + +Sample No.: 15 + octet aligned: 100c4e9ba850e30d5d53d04de41e7c + 000100000000110001001110100110111010100001010000111000110000110101011101010100111101000001001101111001000001111001111100 + bw-efficient: 10d3a6ea1438c35754f41379079f + 0001000011010011101001101110101000010100001110001100001101010111010101001111010000010011011110010000011110011111 + rc: 14 + +Sample No.: 16 + octet aligned: 100c6c18e7b7fff53aeb055e7d1c54 + 000100000000110001101100000110001110011110110111111111111111010100111010111010110000010101011110011111010001110001010100 + bw-efficient: 10db0639edfffd4ebac1579f4715 + 0001000011011011000001100011100111101101111111111111110101001110101110101100000101010111100111110100011100010101 + rc: 14 + +Sample No.: 17 + octet aligned: 100c1fb967f7f1fdf547bf2e61c060 + 000100000000110000011111101110010110011111110111111100011111110111110101010001111011111100101110011000011100000001100000 + bw-efficient: 10c7ee59fdfc7f7d51efcb987018 + 0001000011000111111011100101100111111101111111000111111101111101010100011110111111001011100110000111000000011000 + rc: 14 + +Sample No.: 18 + octet aligned: a078ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00fc + 101000000111100011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111100 + bw-efficient: a7bfc03fc03fc03fc03fc03fc03fc03fc03fc03fc03fc03fc03fc03fc03fc03f + 1010011110111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111 + rc: 32 + + +Testing conversion from bw-efficient to octet-aligned: + +Sample No.: 0 + bw-efficient: f4495c7cda8f80 + 11110100010010010101110001111100110110101000111110000000 + octet aligned: f0442571f36a3e00 + 1111000001000100001001010111000111110011011010100011111000000000 + rc: 8 + +Sample No.: 1 + bw-efficient: f44aaa6c969780 + 11110100010010101010101001101100100101101001011110000000 + octet aligned: f0442aa9b25a5e00 + 1111000001000100001010101010100110110010010110100101111000000000 + rc: 8 + +Sample No.: 2 + bw-efficient: f3d09c20e32da600c025a72e0a9b360386e40f87e19282094adc1a11e397d1d4 + 1111001111010000100111000010000011100011001011011010011000000000110000000010010110100111001011100000101010011011001101100000001110000110111001000000111110000111111000011001001010000010000010010100101011011100000110100001000111100011100101111101000111010100 + octet aligned: f03c4270838cb6980300969cb82a6cd80e1b903e1f864a08252b7068478e5f4750 + 111100000011110001000010011100001000001110001100101101101001100000000011000000001001011010011100101110000010101001101100110110000000111000011011100100000011111000011111100001100100101000001000001001010010101101110000011010000100011110001110010111110100011101010000 + rc: 33 + +Sample No.: 3 + bw-efficient: f3d39a49a09e7a802852e297e8c9246aadf5a45928bfc27177fed8404d97d3b8 + 1111001111010011100110100100100110100000100111100111101010000000001010000101001011100010100101111110100011001001001001000110101010101101111101011010010001011001001010001011111111000010011100010111011111111110110110000100000001001101100101111101001110111000 + octet aligned: f03c4e69268279ea00a14b8a5fa32491aab7d69164a2ff09c5dffb6101365f4ee0 + 111100000011110001001110011010010010011010000010011110011110101000000000101000010100101110001010010111111010001100100100100100011010101010110111110101101001000101100100101000101111111100001001110001011101111111111011011000010000000100110110010111110100111011100000 + rc: 33 + +Sample No.: 4 + bw-efficient: f3c2155b65131c68682079fab4810911200003b360ae0446000025f11e539dd0 + 1111001111000010000101010101101101100101000100110001110001101000011010000010000001111001111110101011010010000001000010010001000100100000000000000000001110110011011000001010111000000100010001100000000000000000001001011111000100011110010100111001110111010000 + octet aligned: f03c08556d944c71a1a081e7ead204244480000ecd82b81118000097c4794e7740 + 111100000011110000001000010101010110110110010100010011000111000110100001101000001000000111100111111010101101001000000100001001000100010010000000000000000000111011001101100000101011100000010001000110000000000000000000100101111100010001111001010011100111011101000000 + rc: 33 + +Sample No.: 5 + bw-efficient: f3c381bc7061c9f8507f6029de6115c16e5fa470c243b21b6e35dbb48bd84c00 + 1111001111000011100000011011110001110000011000011100100111111000010100000111111101100000001010011101111001100001000101011100000101101110010111111010010001110000110000100100001110110010000110110110111000110101110110111011010010001011110110000100110000000000 + octet aligned: f03c0e06f1c18727e141fd80a779845705b97e91c3090ec86db8d76ed22f613000 + 111100000011110000001110000001101111000111000001100001110010011111100001010000011111110110000000101001110111100110000100010101110000010110111001011111101001000111000011000010010000111011001000011011011011100011010111011011101101001000101111011000010011000000000000 + rc: 33 + +Sample No.: 6 + bw-efficient: a7bfc03fc03fc03fc03fc03fc03fc03fc03fc03fc03fc03fc03fc03fc03fc03f + 1010011110111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111 + octet aligned: a078ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00fc + 101000000111100011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111111000000001111111100000000111111110000000011111100 + rc: 33 + + +Testing conversion from octet-aligned to bw-efficient and inverse: +Sample No.: 0... +Sample No.: 1... +Sample No.: 2... +Sample No.: 3... +Sample No.: 4... +Sample No.: 5... +Sample No.: 6... +Sample No.: 7... +Sample No.: 8... +Sample No.: 9... +Sample No.: 10... +Sample No.: 11... +Sample No.: 12... +Sample No.: 13... +Sample No.: 14... +Sample No.: 15... +Sample No.: 16... +Sample No.: 17... +Sample No.: 18... +OK: Test passed diff --git a/tests/testsuite.at b/tests/testsuite.at index 8eb389d..fa4d63d 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -25,3 +25,9 @@ cat $abs_srcdir/jibuf/jibuf_test.ok > expout AT_CHECK([$abs_top_builddir/tests/jibuf/jibuf_test], [0], [expout], [ignore]) AT_CLEANUP + +AT_SETUP([amr_test]) +AT_KEYWORDS([amr_test]) +cat $abs_srcdir/amr/amr_test.ok > expout +AT_CHECK([$abs_top_builddir/tests/amr/amr_test], [0], [expout], [ignore]) +AT_CLEANUP -- To view, visit https://gerrit.osmocom.org/13049 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5b5a0fa644d8dbb1f04f9d7e35312683c7b3d196 Gerrit-Change-Number: 13049 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Tue Feb 26 15:10:06 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#413?= In-Reply-To: <1784009622.455.1551107406819.JavaMail.jenkins@jenkins.osmocom.org> References: <1784009622.455.1551107406819.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <510380265.486.1551193806645.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.76 KB...] checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs mkdir .libs mkdir: cannot create directory '.libs': File exists gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Tue Feb 26 15:58:22 2019 From: gerrit-no-reply at lists.osmocom.org (osmith) Date: Tue, 26 Feb 2019 15:58:22 +0000 Subject: Change in osmo-hlr[master]: hlr.c: move hlr_ctx to the top Message-ID: osmith has uploaded this change for review. ( https://gerrit.osmocom.org/13050 Change subject: hlr.c: move hlr_ctx to the top ...................................................................... hlr.c: move hlr_ctx to the top Allow all functions to use hlr_ctx, so it can be used by the upcoming read_cb_forward() function in [1]. That new function is placed next to the existing read_cb() function, which is above the current hlr_ctx declaration. [1]: Change-Id: Ia4f345abc877baaf0a8f73b8988e6514d9589bf5 Related: OS#3793 Change-Id: I5edf0a233ff323a63e321a1ca47736b5b212d1bb --- M src/hlr.c 1 file changed, 1 insertion(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-hlr refs/changes/50/13050/1 diff --git a/src/hlr.c b/src/hlr.c index c544310..f374ccc 100644 --- a/src/hlr.c +++ b/src/hlr.c @@ -47,6 +47,7 @@ #include "hlr_ussd.h" struct hlr *g_hlr; +static void *hlr_ctx = NULL; static int quit = 0; /* Trigger 'Insert Subscriber Data' messages to all connected GSUP clients. @@ -608,8 +609,6 @@ } } -static void *hlr_ctx = NULL; - static void signal_hdlr(int signal) { switch (signal) { -- To view, visit https://gerrit.osmocom.org/13050 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5edf0a233ff323a63e321a1ca47736b5b212d1bb Gerrit-Change-Number: 13050 Gerrit-PatchSet: 1 Gerrit-Owner: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Tue Feb 26 16:08:58 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 16:08:58 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--enable-i?= =?UTF-8?Q?u,0,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9060?= In-Reply-To: <1650954772.484.1551182750092.JavaMail.jenkins@jenkins.osmocom.org> References: <1650954772.484.1551182750092.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <639028089.487.1551197338363.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 1.24 MB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7fb65fdf5bc0(ns:nsvc) with 12 counters validating counter group 0x7fb65fdf5bc0(ns:nsvc) with 12 counters validating counter group 0x7fb65fdf5bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 16:08:57.775929554 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 16:08:57.799929536 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 16:09:02 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 16:09:02 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--disable-?= =?UTF-8?Q?iu,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9060?= In-Reply-To: <282739253.485.1551182755124.JavaMail.jenkins@jenkins.osmocom.org> References: <282739253.485.1551182755124.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <555723487.488.1551197342875.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 411.51 KB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7fe6f0a6ebc0(ns:nsvc) with 12 counters validating counter group 0x7fe6f0a6ebc0(ns:nsvc) with 12 counters validating counter group 0x7fe6f0a6ebc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 16:09:00.638828037 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 16:09:00.674827573 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 16:11:24 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 16:11:24 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--disable-?= =?UTF-8?Q?iu,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9061?= In-Reply-To: <555723487.488.1551197342875.JavaMail.jenkins@jenkins.osmocom.org> References: <555723487.488.1551197342875.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1434534921.489.1551197484775.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 411.70 KB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 16:11:23.895849481 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 16:11:23.927849284 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 16:11:28 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 16:11:28 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--enable-i?= =?UTF-8?Q?u,0,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9061?= In-Reply-To: <639028089.487.1551197338363.JavaMail.jenkins@jenkins.osmocom.org> References: <639028089.487.1551197338363.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <299523047.490.1551197488623.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 1.24 MB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7f600e216bc0(ns:nsvc) with 12 counters validating counter group 0x7f600e216bc0(ns:nsvc) with 12 counters validating counter group 0x7f600e216bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 16:11:27.911822643 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 16:11:27.955822613 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 16:20:35 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 16:20:35 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--enable-i?= =?UTF-8?Q?u,0,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9062?= In-Reply-To: <299523047.490.1551197488623.JavaMail.jenkins@jenkins.osmocom.org> References: <299523047.490.1551197488623.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1407996806.491.1551198035243.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 1.24 MB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 16:20:34.492475230 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 16:20:34.528475011 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 16:20:36 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 16:20:36 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--disable-?= =?UTF-8?Q?iu,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9062?= In-Reply-To: <1434534921.489.1551197484775.JavaMail.jenkins@jenkins.osmocom.org> References: <1434534921.489.1551197484775.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1964476912.492.1551198036105.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 412.72 KB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7ff2d941dbc0(ns:nsvc) with 12 counters validating counter group 0x7ff2d941dbc0(ns:nsvc) with 12 counters validating counter group 0x7ff2d941dbc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 16:20:33.693872892 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 16:20:33.721872530 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Tue Feb 26 16:25:28 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 26 Feb 2019 16:25:28 +0000 Subject: Change in osmo-pcu[master]: EDGE tests: reduce code duplication Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/13051 Change subject: EDGE tests: reduce code duplication ...................................................................... EDGE tests: reduce code duplication * move duplicated code into helper function * use proper parameter types Change-Id: I8a9528032629e5df629996da5cd8b808efede017 --- M tests/edge/EdgeTest.cpp 1 file changed, 15 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/51/13051/1 diff --git a/tests/edge/EdgeTest.cpp b/tests/edge/EdgeTest.cpp index 98ca206..6ce2334 100644 --- a/tests/edge/EdgeTest.cpp +++ b/tests/edge/EdgeTest.cpp @@ -105,11 +105,22 @@ } +static bool check_strong_monotonicity(const GprsCodingScheme *cs, uint8_t last_UL, uint8_t last_DL) +{ + if (cs->maxBytesUL() <= last_UL) + return false; + + if (cs->maxBytesDL() <= last_DL) + return false; + + return true; +} + static void test_coding_scheme() { unsigned i; - unsigned last_size_UL; - unsigned last_size_DL; + uint8_t last_size_UL; + uint8_t last_size_DL; GprsCodingScheme::Scheme gprs_schemes[] = { GprsCodingScheme::CS1, GprsCodingScheme::CS2, @@ -152,9 +163,7 @@ OSMO_ASSERT(GprsCodingScheme::Scheme(current_cs) == gprs_schemes[i]); OSMO_ASSERT(current_cs == GprsCodingScheme(gprs_schemes[i])); - /* Check strong monotonicity */ - OSMO_ASSERT(current_cs.maxBytesUL() > last_size_UL); - OSMO_ASSERT(current_cs.maxBytesDL() > last_size_DL); + OSMO_ASSERT(check_strong_monotonicity(¤t_cs, last_size_UL, last_size_DL)); last_size_UL = current_cs.maxBytesUL(); last_size_DL = current_cs.maxBytesDL(); @@ -179,9 +188,7 @@ OSMO_ASSERT(GprsCodingScheme::Scheme(current_cs) == egprs_schemes[i].s); OSMO_ASSERT(current_cs == GprsCodingScheme(egprs_schemes[i].s)); - /* Check strong monotonicity */ - OSMO_ASSERT(current_cs.maxBytesUL() > last_size_UL); - OSMO_ASSERT(current_cs.maxBytesDL() > last_size_DL); + OSMO_ASSERT(check_strong_monotonicity(¤t_cs, last_size_UL, last_size_DL)); last_size_UL = current_cs.maxBytesUL(); last_size_DL = current_cs.maxBytesDL(); -- To view, visit https://gerrit.osmocom.org/13051 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I8a9528032629e5df629996da5cd8b808efede017 Gerrit-Change-Number: 13051 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 16:25:29 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 26 Feb 2019 16:25:29 +0000 Subject: Change in osmo-pcu[master]: EDGE tests: remove no-op check Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/13052 Change subject: EDGE tests: remove no-op check ...................................................................... EDGE tests: remove no-op check The headerTypeControl() function always return constant and is only used inside OSMO_ASSERT() which compares it to the very same constant which makes it no-op. Let's remove this clutter. Change-Id: Ie0f81fe05a2b3f432de7d1f3446e8115d7524ff4 --- M src/gprs_coding_scheme.h M tests/edge/EdgeTest.cpp 2 files changed, 0 insertions(+), 8 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/52/13052/1 diff --git a/src/gprs_coding_scheme.h b/src/gprs_coding_scheme.h index 76cab0f..62cbb85 100644 --- a/src/gprs_coding_scheme.h +++ b/src/gprs_coding_scheme.h @@ -107,7 +107,6 @@ uint8_t optionalPaddingBits() const; const char *name() const; HeaderType headerTypeData() const; - HeaderType headerTypeControl() const; Family family() const; static GprsCodingScheme getBySizeUL(unsigned size); @@ -154,11 +153,6 @@ return (isGprs() && o.isGprs()) || (isEgprs() && o.isEgprs()); } -inline GprsCodingScheme::HeaderType GprsCodingScheme::headerTypeControl() const -{ - return HEADER_GPRS_CONTROL; -} - inline GprsCodingScheme::GprsCodingScheme(Scheme s) : m_scheme(s) { diff --git a/tests/edge/EdgeTest.cpp b/tests/edge/EdgeTest.cpp index 6ce2334..0cb123e 100644 --- a/tests/edge/EdgeTest.cpp +++ b/tests/edge/EdgeTest.cpp @@ -170,8 +170,6 @@ /* Check header types */ OSMO_ASSERT(current_cs.headerTypeData() == GprsCodingScheme::HEADER_GPRS_DATA); - OSMO_ASSERT(current_cs.headerTypeControl() == - GprsCodingScheme::HEADER_GPRS_CONTROL); check_coding_scheme(current_cs, GprsCodingScheme::GPRS); } -- To view, visit https://gerrit.osmocom.org/13052 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie0f81fe05a2b3f432de7d1f3446e8115d7524ff4 Gerrit-Change-Number: 13052 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 16:49:36 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Tue, 26 Feb 2019 16:49:36 +0000 Subject: Change in osmo-ccid-firmware[master]: update from Atmel Start (just loading + re-exporting the project) In-Reply-To: References: Message-ID: K?vin Redon has posted comments on this change. ( https://gerrit.osmocom.org/13031 ) Change subject: update from Atmel Start (just loading + re-exporting the project) ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13031 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I59b2442a95871b8052bfdfdac6d77a7207d8b70a Gerrit-Change-Number: 13031 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-Comment-Date: Tue, 26 Feb 2019 16:49:36 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 16:49:43 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 26 Feb 2019 16:49:43 +0000 Subject: Change in osmo-hlr[master]: hlr.c: move hlr_ctx to the top In-Reply-To: References: Message-ID: Max has posted comments on this change. ( https://gerrit.osmocom.org/13050 ) Change subject: hlr.c: move hlr_ctx to the top ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/13050 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5edf0a233ff323a63e321a1ca47736b5b212d1bb Gerrit-Change-Number: 13050 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 26 Feb 2019 16:49:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 16:50:20 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Tue, 26 Feb 2019 16:50:20 +0000 Subject: Change in osmo-ccid-firmware[master]: Enable cache via CMCC for higher performance In-Reply-To: References: Message-ID: K?vin Redon has posted comments on this change. ( https://gerrit.osmocom.org/13033 ) Change subject: Enable cache via CMCC for higher performance ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13033 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7a243a8d964fea3d3decc6c73c16e07036e4ee93 Gerrit-Change-Number: 13033 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-Comment-Date: Tue, 26 Feb 2019 16:50:20 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 17:27:22 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Tue, 26 Feb 2019 17:27:22 +0000 Subject: Change in osmo-ccid-firmware[master]: Support for sysmoOCTSIM NCN8025/SX1503 control In-Reply-To: References: Message-ID: K?vin Redon has posted comments on this change. ( https://gerrit.osmocom.org/13030 ) Change subject: Support for sysmoOCTSIM NCN8025/SX1503 control ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13030 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic5287cf80d2be2070c504e9d40f7c6fc0d37d8b9 Gerrit-Change-Number: 13030 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-Comment-Date: Tue, 26 Feb 2019 17:27:22 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 17:27:28 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Tue, 26 Feb 2019 17:27:28 +0000 Subject: Change in osmo-ccid-firmware[master]: Support for sysmoOCTSIM NCN8025/SX1503 control In-Reply-To: References: Message-ID: K?vin Redon has submitted this change and it was merged. ( https://gerrit.osmocom.org/13030 ) Change subject: Support for sysmoOCTSIM NCN8025/SX1503 control ...................................................................... Support for sysmoOCTSIM NCN8025/SX1503 control This adds an I2C bit-banging layer, defines the four busses on the sysmoOCTSIM and adds some high-level functions to control the NCN8025 for each SIM slot. Change-Id: Ic5287cf80d2be2070c504e9d40f7c6fc0d37d8b9 --- M sysmoOCTSIM/gcc/Makefile A sysmoOCTSIM/i2c_bitbang.c A sysmoOCTSIM/i2c_bitbang.h M sysmoOCTSIM/main.c A sysmoOCTSIM/ncn8025.c A sysmoOCTSIM/ncn8025.h A sysmoOCTSIM/octsim_i2c.c A sysmoOCTSIM/octsim_i2c.h 8 files changed, 440 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified K?vin Redon: Looks good to me, approved diff --git a/sysmoOCTSIM/gcc/Makefile b/sysmoOCTSIM/gcc/Makefile index 572fb21..5e3c38c 100644 --- a/sysmoOCTSIM/gcc/Makefile +++ b/sysmoOCTSIM/gcc/Makefile @@ -70,6 +70,9 @@ gcc/gcc/startup_same54.o \ hal/src/hal_usb_device.o \ main.o \ +i2c_bitbang.o \ +octsim_i2c.o \ +ncn8025.o \ hpl/osc32kctrl/hpl_osc32kctrl.o \ examples/driver_examples.o \ driver_init.o \ @@ -108,6 +111,9 @@ "gcc/gcc/startup_same54.o" \ "hal/src/hal_usb_device.o" \ "main.o" \ +"i2c_bitbang.o" \ +"octsim_i2c.o" \ +"ncn8025.o" \ "hpl/osc32kctrl/hpl_osc32kctrl.o" \ "examples/driver_examples.o" \ "driver_init.o" \ @@ -152,6 +158,9 @@ "hal/src/hal_usart_async.d" \ "hpl/osc32kctrl/hpl_osc32kctrl.d" \ "main.d" \ +"i2c_bitbang.d" \ +"octsim_i2c.d" \ +"ncn8025.d" \ "examples/driver_examples.d" \ "hal/src/hal_cache.d" \ "hal/src/hal_sleep.d" \ diff --git a/sysmoOCTSIM/i2c_bitbang.c b/sysmoOCTSIM/i2c_bitbang.c new file mode 100644 index 0000000..b1a9a62 --- /dev/null +++ b/sysmoOCTSIM/i2c_bitbang.c @@ -0,0 +1,189 @@ +/* Bit-banging I2C layer, inspired to a large extent from Linux kernel + * i2c-algo-bit.c code (C) 1995-2000 Simon G. Vogl. This particular + * implementation is (C) 2019 by Harald Welte + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include +#include +#include +#include "i2c_bitbang.h" + +#define setsda(adap, val) gpio_set_pin_level((adap)->pin_sda, val) +#define setscl(adap, val) gpio_set_pin_level((adap)->pin_scl, val) + +static int getsda(const struct i2c_adapter *adap) +{ + int rc; + gpio_set_pin_direction(adap->pin_sda, GPIO_DIRECTION_IN); + rc = gpio_get_pin_level(adap->pin_sda); + gpio_set_pin_direction(adap->pin_sda, GPIO_DIRECTION_OUT); + return rc; +} + +static int getscl(const struct i2c_adapter *adap) +{ + int rc; + gpio_set_pin_direction(adap->pin_scl, GPIO_DIRECTION_IN); + rc = gpio_get_pin_level(adap->pin_scl); + gpio_set_pin_direction(adap->pin_scl, GPIO_DIRECTION_OUT); + return rc; +} + +static inline void sdalo(const struct i2c_adapter *adap) +{ + setsda(adap, 0); + delay_us((adap->udelay+1) / 2); +} + +static inline void sdahi(const struct i2c_adapter *adap) +{ + setsda(adap, 1); + delay_us((adap->udelay+1) / 2); +} + +static inline void scllo(const struct i2c_adapter *adap) +{ + setscl(adap, 0); + delay_us(adap->udelay / 2); +} + + +static int sclhi(const struct i2c_adapter *adap) +{ + setscl(adap, 1); + + /* wait for slow slaves' clock stretching to complete */ + while (!getscl(adap)) { + /* FIXME: abort at some point */ + } + return 0; +} + +static void i2c_start(const struct i2c_adapter *adap) +{ + /* Assert: SCL + SDA are high */ + setsda(adap, 0); /* set SDA to low */ + delay_us(adap->udelay); /* delay */ + scllo(adap); /* Set SCL to low */ +} + +static void i2c_repstart(const struct i2c_adapter *adap) +{ + /* Assert: SCL is low */ + sdahi(adap); + sclhi(adap); + setsda(adap, 0); + delay_us(adap->udelay); + scllo(adap); +} + +static void i2c_stop(const struct i2c_adapter *adap) +{ + /* Assert: SCL is low */ + sdalo(adap); /* set SDA low */ + sclhi(adap); /* set SCL to high */ + setsda(adap, 1); /* set SDA to high */ + delay_us(adap->udelay); /* delay */ +} + +static int i2c_outb(const struct i2c_adapter *adap, uint8_t outdata) +{ + uint8_t sb; + int ack, i; + + /* Assert: SCL is low */ + for (i = 7; i >= 0; i--) { + sb = (outdata >> i) & 1; + setsda(adap, sb); + delay_us((adap->udelay + 1) / 2); + if (sclhi(adap) < 0) + return -ERR_TIMEOUT; + scllo(adap); + } + sdahi(adap); + if (sclhi(adap) < 0) + return -ERR_TIMEOUT; + ack = !getsda(adap); + scllo(adap); + return ack; +} + +static int i2c_inb(const struct i2c_adapter *adap) +{ + uint8_t indata = 0; + int i; + + /* Assert: CSL is low */ + sdahi(adap); + for (i = 0; i < 8; i++) { + /* SCL high */ + if (sclhi(adap) < 0) + return -ERR_TIMEOUT; + indata = indata << 1; + if (getsda(adap)) + indata |= 0x01; + setscl(adap, 0); + if (i == 7) + delay_us(adap->udelay / 2); + else + delay_us(adap->udelay); + } + /* Assert: SCL is low */ + return indata; +} + +/*! Single-byte register write. Assumes 8bit register address + 8bit values */ +int i2c_write_reg(const struct i2c_adapter *adap, uint8_t addr, uint8_t reg, uint8_t val) +{ + int rc; + + i2c_start(adap); + rc = i2c_outb(adap, addr << 1); + if (rc < 0) + goto out_stop; + rc = i2c_outb(adap, reg); + if (rc < 0) + goto out_stop; + rc = i2c_outb(adap, val); +out_stop: + i2c_stop(adap); + return rc; +} + +/*! Single-byte register read. Assumes 8bit register address + 8bit values */ +int i2c_read_reg(const struct i2c_adapter *adap, uint8_t addr, uint8_t reg) +{ + int rc; + + i2c_start(adap); + rc = i2c_outb(adap, addr << 1); + if (rc < 0) + goto out_stop; + rc = i2c_outb(adap, reg); + if (rc < 0) + goto out_stop; + i2c_repstart(adap); + rc = i2c_outb(adap, addr << 1 | 1); + if (rc < 0) + goto out_stop; + rc = i2c_inb(adap); +out_stop: + i2c_stop(adap); + return rc; +} + +/*! Initialize a given I2C adapter/bus */ +int i2c_init(const struct i2c_adapter *adap) +{ + gpio_set_pin_direction(adap->pin_sda, GPIO_DIRECTION_OUT); + gpio_set_pin_direction(adap->pin_scl, GPIO_DIRECTION_OUT); + + /* Bring bus to a known state. Looks like STOP if bus is not free yet */ + setscl(adap, 1); + delay_us(adap->udelay); + setsda(adap, 1); + + return 0; +} diff --git a/sysmoOCTSIM/i2c_bitbang.h b/sysmoOCTSIM/i2c_bitbang.h new file mode 100644 index 0000000..7157c2e --- /dev/null +++ b/sysmoOCTSIM/i2c_bitbang.h @@ -0,0 +1,13 @@ +#pragma once +#include + +struct i2c_adapter { + uint8_t pin_scl; + uint8_t pin_sda; + uint32_t udelay; +}; + +int i2c_init(const struct i2c_adapter *adap); +int i2c_write_reg(const struct i2c_adapter *adap, uint8_t addr, uint8_t reg, uint8_t val); +int i2c_read_reg(const struct i2c_adapter *adap, uint8_t addr, uint8_t reg); +int i2c_init(const struct i2c_adapter *adap); diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c index d74153d..40f2147 100644 --- a/sysmoOCTSIM/main.c +++ b/sysmoOCTSIM/main.c @@ -19,6 +19,10 @@ #include "atmel_start.h" #include "atmel_start_pins.h" +#include "i2c_bitbang.h" +#include "octsim_i2c.h" +#include "ncn8025.h" + volatile static bool data_arrived = false; static void tx_cb_UART_debug(const struct usart_async_descriptor *const io_descr) @@ -34,6 +38,18 @@ data_arrived = true; } +static void board_init() +{ + int i; + + for (i = 0; i < 4; i++) + i2c_init(&i2c[i]); + + /* only 7 slots, as last slot is debug uart! */ + for (i = 0; i < 7; i++) + ncn8025_init(i); +} + int main(void) { atmel_start_init(); @@ -44,6 +60,8 @@ usb_start(); + board_init(); + const char* welcome = "\r\n\r\nsysmocom sysmoOCTSIM\r\n"; while (io_write(&UART_debug.io, (const uint8_t*)welcome, strlen(welcome)) != strlen(welcome)); // print welcome message while (true) { // main loop diff --git a/sysmoOCTSIM/ncn8025.c b/sysmoOCTSIM/ncn8025.c new file mode 100644 index 0000000..99b93b8 --- /dev/null +++ b/sysmoOCTSIM/ncn8025.c @@ -0,0 +1,136 @@ +/* Access functions for the per-SIM-slot NCN8025 chip card interface, + * which is controlled via (half) a SX1503 I2C GPIO expander. + * + * (C) 2019 by Harald Welte + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include +#include +#include +#include +#include "octsim_i2c.h" +#include "ncn8025.h" + +#define SX1503_ADDR 0x20 + +/*! translate from ncn8025_settings into SX1503 register value */ +static uint8_t ncn8025_encode(const struct ncn8025_settings *set) +{ + uint8_t reg = 0; + if (set->rstin) + reg |= 0x01; + if (!set->cmdvcc) + reg |= 0x02; + if (set->clkdiv & 1) + reg |= 0x04; + if (set->clkdiv & 2) + reg |= 0x08; + if (set->vsel & 1) + reg |= 0x10; + if (set->vsel & 2) + reg |= 0x20; + if (set->led) + reg |= 0x80; + return reg; +} + +/*! translate from register value to ncn8025_settings */ +static int ncn8025_decode(uint8_t reg, struct ncn8025_settings *set) +{ + memset(set, 0, sizeof(*set)); + + if (reg & 0x01) + set->rstin = true; + if (!(reg & 0x02)) + set->cmdvcc = true; + if (reg & 0x04) + set->clkdiv |= 0x01; + if (reg & 0x08) + set->clkdiv |= 0x02; + if (reg & 0x10) + set->vsel |= 0x01; + if (reg & 0x20) + set->vsel |= 0x02; + if (!(reg & 0x40)) + set->simpres = true; + if ((reg & 0x80)) + set->led = true; + + return 0; +} + +static const struct i2c_adapter *slot2adapter(unsigned int slot) +{ + unsigned int idx = slot / 2; + ASSERT(idx < ARRAY_SIZE(i2c)); + return &i2c[idx]; +} + + +static const uint8_t slot2data_reg(unsigned int slot) +{ + if (slot & 1) + return 0x00; + else + return 0x01; +} + +static const uint8_t slot2dir_reg(unsigned int slot) +{ + if (slot & 1) + return 0x02; + else + return 0x03; +} + + +/*! Set a given NCN8025 as described in 'set'. + * \param[in] slot Slot number (0..7) + * \param[in] set Settings that shall be written + * \returns 0 on success; negative on error */ +int ncn8025_set(uint8_t slot, const struct ncn8025_settings *set) +{ + const struct i2c_adapter *adap = slot2adapter(slot); + uint8_t reg = slot2data_reg(slot); + uint8_t raw = ncn8025_encode(set); + return i2c_write_reg(adap, SX1503_ADDR, reg, raw); +} + +/*! Get a given NCN8025 state from the chip. + * \param[in] slot Slot number (0..7) + * \param[out] set Settings that are retrieved + * \returns 0 on success; negative on error */ +int ncn8025_get(uint8_t slot, struct ncn8025_settings *set) +{ + const struct i2c_adapter *adap = slot2adapter(slot); + uint8_t reg = slot2data_reg(slot); + int rc; + rc = i2c_read_reg(adap, SX1503_ADDR, reg); + if (rc < 0) + return rc; + return ncn8025_decode(rc, set); +} + +/*! default settings we use at start-up: powered off, in reset, slowest clock, 3V */ +static const struct ncn8025_settings def_settings = { + .rstin = true, + .cmdvcc = false, + .led = false, + .clkdiv = SIM_CLKDIV_8, + .vsel = SIM_VOLT_3V0, +}; + +/*! Initialize a given NCN8025/slot. */ +int ncn8025_init(unsigned int slot) +{ + const struct i2c_adapter *adap = slot2adapter(slot); + uint8_t reg = slot2dir_reg(slot); + int rc; + /* IO6 of each bank is input (!PRESENT), rest are outputs */ + rc = i2c_write_reg(adap, SX1503_ADDR, reg, 0x40); + if (rc < 0) + return rc; + return ncn8025_set(slot, &def_settings); +} diff --git a/sysmoOCTSIM/ncn8025.h b/sysmoOCTSIM/ncn8025.h new file mode 100644 index 0000000..a392c5d --- /dev/null +++ b/sysmoOCTSIM/ncn8025.h @@ -0,0 +1,28 @@ +#pragma once +#include + +enum ncn8025_sim_voltage { + SIM_VOLT_3V0 = 0, + SIM_VOLT_5V0 = 2, + SIM_VOLT_1V8 = 3 +}; + +enum ncn8025_sim_clkdiv { + SIM_CLKDIV_1 = 1, + SIM_CLKDIV_2 = 3, + SIM_CLKDIV_4 = 2, + SIM_CLKDIV_8 = 0, +}; + +struct ncn8025_settings { + bool rstin; /* high: active */ + bool cmdvcc; /* high: active */ + bool simpres; /* high: active */ + bool led; /* high: active */ + enum ncn8025_sim_clkdiv clkdiv; /* raw 2bit value */ + enum ncn8025_sim_voltage vsel; /* raw 2bit value */ +}; + +int ncn8025_set(uint8_t slot, const struct ncn8025_settings *set); +int ncn8025_get(uint8_t slot, struct ncn8025_settings *set); +int ncn8025_init(unsigned int slot); diff --git a/sysmoOCTSIM/octsim_i2c.c b/sysmoOCTSIM/octsim_i2c.c new file mode 100644 index 0000000..5b8a30a --- /dev/null +++ b/sysmoOCTSIM/octsim_i2c.c @@ -0,0 +1,43 @@ +#include "atmel_start_pins.h" +#include "i2c_bitbang.h" + +/* FIXME: This somehow ends up with measured 125 kHz SCL speed ?!? We should probably + * switch away from using delay_us() and instead use some hardware timer? */ +#define I2C_DELAY_US 1 + +#ifndef SDA1 +/* We should define those pins in Atmel START. Until they are, define them here */ +#define SDA1 GPIO(GPIO_PORTB, 15) +#define SCL1 GPIO(GPIO_PORTB, 14) +#define SDA2 GPIO(GPIO_PORTB, 3) +#define SCL2 GPIO(GPIO_PORTB, 2) +#define SDA3 GPIO(GPIO_PORTB, 7) +#define SCL3 GPIO(GPIO_PORTB, 6) +#define SDA4 GPIO(GPIO_PORTC, 28) +#define SCL4 GPIO(GPIO_PORTC, 27) +#endif + +/* Unfortunately the schematics count I2C busses from '1', not from '0' :( + * In software, we [obviously] count from '0' upwards. */ +const struct i2c_adapter i2c[4] = { + [0] = { + .pin_sda = SDA1, + .pin_scl = SCL1, + .udelay = I2C_DELAY_US, + }, + [1] = { + .pin_sda = SDA2, + .pin_scl = SCL2, + .udelay = I2C_DELAY_US, + }, + [2] = { + .pin_sda = SDA3, + .pin_scl = SCL3, + .udelay = I2C_DELAY_US, + }, + [3] = { + .pin_sda = SDA4, + .pin_scl = SCL4, + .udelay = I2C_DELAY_US, + } +}; diff --git a/sysmoOCTSIM/octsim_i2c.h b/sysmoOCTSIM/octsim_i2c.h new file mode 100644 index 0000000..5e20ea0 --- /dev/null +++ b/sysmoOCTSIM/octsim_i2c.h @@ -0,0 +1,4 @@ +#pragma once +#include "i2c_bitbang.h" + +extern const struct i2c_adapter i2c[4]; -- To view, visit https://gerrit.osmocom.org/13030 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic5287cf80d2be2070c504e9d40f7c6fc0d37d8b9 Gerrit-Change-Number: 13030 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 17:48:35 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Tue, 26 Feb 2019 17:48:35 +0000 Subject: Change in osmo-ccid-firmware[master]: Update from AtmelStart: Define all used GPIO pins In-Reply-To: References: Message-ID: K?vin Redon has posted comments on this change. ( https://gerrit.osmocom.org/13032 ) Change subject: Update from AtmelStart: Define all used GPIO pins ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13032 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2cb67fd01f6e8602af16bbdb4960427586cdd9a4 Gerrit-Change-Number: 13032 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-Comment-Date: Tue, 26 Feb 2019 17:48:35 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 18:08:21 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Tue, 26 Feb 2019 18:08:21 +0000 Subject: Change in osmo-ccid-firmware[master]: PA11: Increase drive strength to 8mA In-Reply-To: References: Message-ID: K?vin Redon has posted comments on this change. ( https://gerrit.osmocom.org/13034 ) Change subject: PA11: Increase drive strength to 8mA ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13034 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I1366e13442eda829756aa4121be81eb15135c73e Gerrit-Change-Number: 13034 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-Comment-Date: Tue, 26 Feb 2019 18:08:21 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 18:12:44 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Tue, 26 Feb 2019 18:12:44 +0000 Subject: Change in osmo-ccid-firmware[master]: ncn8025: Add support for reading SIMx_INT status In-Reply-To: References: Message-ID: K?vin Redon has posted comments on this change. ( https://gerrit.osmocom.org/13038 ) Change subject: ncn8025: Add support for reading SIMx_INT status ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13038 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iab9edc1214bb22ee304daa834fd9e2376d42c97c Gerrit-Change-Number: 13038 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-Comment-Date: Tue, 26 Feb 2019 18:12:44 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 18:13:25 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Tue, 26 Feb 2019 18:13:25 +0000 Subject: Change in osmo-ccid-firmware[master]: update from Atmel Start (just loading + re-exporting the project) In-Reply-To: References: Message-ID: K?vin Redon has submitted this change and it was merged. ( https://gerrit.osmocom.org/13031 ) Change subject: update from Atmel Start (just loading + re-exporting the project) ...................................................................... update from Atmel Start (just loading + re-exporting the project) Change-Id: I59b2442a95871b8052bfdfdac6d77a7207d8b70a --- M sysmoOCTSIM/AtmelStart.gpdsc M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/hal/include/hpl_spi_m_async.h M sysmoOCTSIM/hal/include/hpl_spi_m_dma.h M sysmoOCTSIM/hal/include/hpl_spi_m_sync.h M sysmoOCTSIM/hal/include/hpl_spi_s_async.h M sysmoOCTSIM/hal/include/hpl_spi_s_sync.h 7 files changed, 73 insertions(+), 12 deletions(-) Approvals: Jenkins Builder: Verified K?vin Redon: Looks good to me, approved diff --git a/sysmoOCTSIM/AtmelStart.gpdsc b/sysmoOCTSIM/AtmelStart.gpdsc index 51851db..6546fb5 100644 --- a/sysmoOCTSIM/AtmelStart.gpdsc +++ b/sysmoOCTSIM/AtmelStart.gpdsc @@ -67,11 +67,6 @@ - - - - - @@ -169,6 +164,11 @@ + + + + + diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index 975423d..58f05f6 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -2,12 +2,12 @@ name: sysmoOCTSIM versions: api: '1.0' - backend: 1.4.93 - commit: 9c29f8365cf76e9937d19b1e765a83bc7a80e4e9 - content: 1.0.1340 + backend: 1.5.122 + commit: 820baecf7dd115d94b0d42ee3b0b9d6ba2da7113 + content: 1.0.1405 content_pack_name: acme-packs-all format: '2' - frontend: 1.4.1810 + frontend: 1.5.1826 board: identifier: CustomBoard device: SAME54N19A-AF @@ -773,6 +773,8 @@ nodes: - name: CPU input: CPU + external: false + external_frequency: 0 configuration: {} OSC32KCTRL: user_label: OSC32KCTRL @@ -981,8 +983,12 @@ nodes: - name: Core input: Generic clock generator 2 + external: false + external_frequency: 0 - name: Slow input: Generic clock generator 3 + external: false + external_frequency: 0 configuration: core_gclk_selection: Generic clock generator 2 slow_gclk_selection: Generic clock generator 3 @@ -1024,8 +1030,12 @@ nodes: - name: Core input: Generic clock generator 2 + external: false + external_frequency: 0 - name: Slow input: Generic clock generator 3 + external: false + external_frequency: 0 configuration: core_gclk_selection: Generic clock generator 2 slow_gclk_selection: Generic clock generator 3 @@ -1067,8 +1077,12 @@ nodes: - name: Core input: Generic clock generator 2 + external: false + external_frequency: 0 - name: Slow input: Generic clock generator 3 + external: false + external_frequency: 0 configuration: core_gclk_selection: Generic clock generator 2 slow_gclk_selection: Generic clock generator 3 @@ -1110,8 +1124,12 @@ nodes: - name: Core input: Generic clock generator 2 + external: false + external_frequency: 0 - name: Slow input: Generic clock generator 3 + external: false + external_frequency: 0 configuration: core_gclk_selection: Generic clock generator 2 slow_gclk_selection: Generic clock generator 3 @@ -1153,8 +1171,12 @@ nodes: - name: Core input: Generic clock generator 2 + external: false + external_frequency: 0 - name: Slow input: Generic clock generator 3 + external: false + external_frequency: 0 configuration: core_gclk_selection: Generic clock generator 2 slow_gclk_selection: Generic clock generator 3 @@ -1196,8 +1218,12 @@ nodes: - name: Core input: Generic clock generator 2 + external: false + external_frequency: 0 - name: Slow input: Generic clock generator 3 + external: false + external_frequency: 0 configuration: core_gclk_selection: Generic clock generator 2 slow_gclk_selection: Generic clock generator 3 @@ -1239,8 +1265,12 @@ nodes: - name: Core input: Generic clock generator 2 + external: false + external_frequency: 0 - name: Slow input: Generic clock generator 3 + external: false + external_frequency: 0 configuration: core_gclk_selection: Generic clock generator 2 slow_gclk_selection: Generic clock generator 3 @@ -1284,8 +1314,12 @@ nodes: - name: Core input: Generic clock generator 2 + external: false + external_frequency: 0 - name: Slow input: Generic clock generator 3 + external: false + external_frequency: 0 configuration: core_gclk_selection: Generic clock generator 2 slow_gclk_selection: Generic clock generator 3 @@ -1328,6 +1362,8 @@ nodes: - name: USB input: Generic clock generator 1 + external: false + external_frequency: 0 configuration: usb_gclk_selection: Generic clock generator 1 pads: diff --git a/sysmoOCTSIM/hal/include/hpl_spi_m_async.h b/sysmoOCTSIM/hal/include/hpl_spi_m_async.h index 69dd435..8d3555e 100644 --- a/sysmoOCTSIM/hal/include/hpl_spi_m_async.h +++ b/sysmoOCTSIM/hal/include/hpl_spi_m_async.h @@ -60,6 +60,10 @@ #define _spi_m_async_dev_cb_xfer_t _spi_async_dev_cb_xfer_t /** + * \name HPL functions + */ +//@{ +/** * \brief Initialize SPI for access with interrupts * It will load default hardware configuration and software struct. * \param[in, out] dev Pointer to the SPI device instance. @@ -229,6 +233,7 @@ */ void _spi_m_async_set_irq_state(struct _spi_m_async_dev *const device, const enum _spi_m_async_dev_cb_type type, const bool state); +//@} #ifdef __cplusplus } diff --git a/sysmoOCTSIM/hal/include/hpl_spi_m_dma.h b/sysmoOCTSIM/hal/include/hpl_spi_m_dma.h index f481fb8..2b48300 100644 --- a/sysmoOCTSIM/hal/include/hpl_spi_m_dma.h +++ b/sysmoOCTSIM/hal/include/hpl_spi_m_dma.h @@ -54,6 +54,10 @@ #define _spi_m_dma_dev_cb_type _spi_dma_dev_cb_type /** + * \name HPL functions + */ +//@{ +/** * \brief Initialize SPI for access with interrupts * It will load default hardware configuration and software struct. * \param[in, out] dev Pointer to the SPI device instance. @@ -168,6 +172,7 @@ */ int32_t _spi_m_dma_transfer(struct _spi_m_dma_dev *dev, uint8_t const *txbuf, uint8_t *const rxbuf, const uint16_t length); +//@} #ifdef __cplusplus } diff --git a/sysmoOCTSIM/hal/include/hpl_spi_m_sync.h b/sysmoOCTSIM/hal/include/hpl_spi_m_sync.h index 01e8fc3..38df15b 100644 --- a/sysmoOCTSIM/hal/include/hpl_spi_m_sync.h +++ b/sysmoOCTSIM/hal/include/hpl_spi_m_sync.h @@ -47,10 +47,14 @@ extern "C" { #endif -/** Uses common SPI async device driver. */ +/** Uses common SPI sync device driver. */ #define _spi_m_sync_dev _spi_sync_dev /** + * \name HPL functions + */ +//@{ +/** * \brief Initialize SPI for access without interrupts * It will load default hardware configuration and software struct. * \param[in, out] dev Pointer to the SPI device instance. @@ -118,7 +122,7 @@ int32_t _spi_m_sync_set_baudrate(struct _spi_m_sync_dev *dev, const uint32_t baud_val); /** - * \brief Set SPI baudrate + * \brief Set SPI char size * \param[in, out] dev Pointer to the SPI device instance. * \param[in] char_size The character size, see \ref spi_char_size. * \return Operation status. @@ -152,6 +156,7 @@ * \retval >=0 Number of characters transferred. */ int32_t _spi_m_sync_trans(struct _spi_m_sync_dev *dev, const struct spi_msg *msg); +//@} #ifdef __cplusplus } diff --git a/sysmoOCTSIM/hal/include/hpl_spi_s_async.h b/sysmoOCTSIM/hal/include/hpl_spi_s_async.h index 2892e2c..5647243 100644 --- a/sysmoOCTSIM/hal/include/hpl_spi_s_async.h +++ b/sysmoOCTSIM/hal/include/hpl_spi_s_async.h @@ -59,6 +59,10 @@ #define _spi_s_async_dev_cb_xfer_t _spi_async_dev_cb_xfer_t /** + * \name HPL functions + */ +//@{ +/** * \brief Initialize SPI for access with interrupts * It will load default hardware configuration and software struct. * \param[in, out] dev Pointer to the SPI device instance. @@ -218,6 +222,7 @@ */ void _spi_s_async_set_irq_state(struct _spi_s_async_dev *const device, const enum _spi_async_dev_cb_type type, const bool state); +//@} #ifdef __cplusplus } diff --git a/sysmoOCTSIM/hal/include/hpl_spi_s_sync.h b/sysmoOCTSIM/hal/include/hpl_spi_s_sync.h index 4fda095..ff4c811 100644 --- a/sysmoOCTSIM/hal/include/hpl_spi_s_sync.h +++ b/sysmoOCTSIM/hal/include/hpl_spi_s_sync.h @@ -46,10 +46,14 @@ extern "C" { #endif -/** Uses common SPI async device driver. */ +/** Uses common SPI sync device driver. */ #define _spi_s_sync_dev _spi_sync_dev /** + * \name HPL functions + */ +//@{ +/** * \brief Initialize SPI for access without interrupts * It will load default hardware configuration and software struct. * \param[in, out] dev Pointer to the SPI device instance. @@ -218,6 +222,7 @@ * \retval false Error not detected */ bool _spi_s_sync_is_error(struct _spi_s_sync_dev *dev); +//@} #ifdef __cplusplus } -- To view, visit https://gerrit.osmocom.org/13031 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I59b2442a95871b8052bfdfdac6d77a7207d8b70a Gerrit-Change-Number: 13031 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 18:13:42 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Tue, 26 Feb 2019 18:13:42 +0000 Subject: Change in osmo-ccid-firmware[master]: Update from AtmelStart: Define all used GPIO pins In-Reply-To: References: Message-ID: K?vin Redon has submitted this change and it was merged. ( https://gerrit.osmocom.org/13032 ) Change subject: Update from AtmelStart: Define all used GPIO pins ...................................................................... Update from AtmelStart: Define all used GPIO pins Change-Id: I2cb67fd01f6e8602af16bbdb4960427586cdd9a4 --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/atmel_start_pins.h M sysmoOCTSIM/driver_init.c 3 files changed, 366 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified K?vin Redon: Looks good to me, approved diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index 58f05f6..a301385 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -1367,6 +1367,66 @@ configuration: usb_gclk_selection: Generic clock generator 1 pads: + SIM0_INT: + name: PC00 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC00 + mode: Digital input + user_label: SIM0_INT + configuration: null + SIM1_INT: + name: PC01 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC01 + mode: Digital input + user_label: SIM1_INT + configuration: null + SIM2_INT: + name: PC02 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC02 + mode: Digital input + user_label: SIM2_INT + configuration: null + SIM3_INT: + name: PC03 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC03 + mode: Digital input + user_label: SIM3_INT + configuration: null + SIM4_INT: + name: PA02 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA02 + mode: Digital input + user_label: SIM4_INT + configuration: null + SIM5_INT: + name: PA03 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA03 + mode: Digital input + user_label: SIM5_INT + configuration: null + SIM6_INT: + name: PB04 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB04 + mode: Digital input + user_label: SIM6_INT + configuration: null + SIM7_INT: + name: PB05 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB05 + mode: Digital input + user_label: SIM7_INT + configuration: null + SCL3: + name: PB06 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB06 + mode: Digital output + user_label: SCL3 + configuration: null + SDA3: + name: PB07 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB07 + mode: Digital output + user_label: SDA3 + configuration: null SIM4_IO: name: PB08 definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB08 @@ -1395,12 +1455,30 @@ pad_function: M pad_initial_level: Low pad_pull_config: 'Off' + SCL1: + name: PB14 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB14 + mode: Digital output + user_label: SCL1 + configuration: null + SDA1: + name: PB15 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB15 + mode: Digital output + user_label: SDA1 + configuration: null SWITCH: name: PC14 definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC14 mode: Digital input user_label: SWITCH configuration: null + MUX_SSTAT: + name: PC15 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC15 + mode: Digital input + user_label: MUX_SSTAT + configuration: null SIM1_IO: name: PA16 definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA16 @@ -1467,6 +1545,18 @@ mode: Digital output user_label: USER_LED configuration: null + SCL4: + name: PC27 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC27 + mode: Digital output + user_label: SCL4 + configuration: null + SDA4: + name: PC28 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC28 + mode: Digital output + user_label: SDA4 + configuration: null UART_TX: name: PB30 definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB30 @@ -1479,4 +1569,16 @@ mode: Peripheral IO user_label: UART_RX configuration: null + SCL2: + name: PB02 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB02 + mode: Digital output + user_label: SCL2 + configuration: null + SDA2: + name: PB03 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB03 + mode: Digital output + user_label: SDA2 + configuration: null toolchain_options: [] diff --git a/sysmoOCTSIM/atmel_start_pins.h b/sysmoOCTSIM/atmel_start_pins.h index ad5f27b..60b70bb 100644 --- a/sysmoOCTSIM/atmel_start_pins.h +++ b/sysmoOCTSIM/atmel_start_pins.h @@ -27,6 +27,8 @@ #define GPIO_PIN_FUNCTION_M 12 #define GPIO_PIN_FUNCTION_N 13 +#define SIM4_INT GPIO(GPIO_PORTA, 2) +#define SIM5_INT GPIO(GPIO_PORTA, 3) #define SIM0_IO GPIO(GPIO_PORTA, 4) #define SIM2_IO GPIO(GPIO_PORTA, 9) #define SIMCLK_20MHZ GPIO(GPIO_PORTA, 11) @@ -37,13 +39,28 @@ #define VB3 GPIO(GPIO_PORTA, 23) #define USBUP_D_N GPIO(GPIO_PORTA, 24) #define USBUP_D_P GPIO(GPIO_PORTA, 25) +#define SCL2 GPIO(GPIO_PORTB, 2) +#define SDA2 GPIO(GPIO_PORTB, 3) +#define SIM6_INT GPIO(GPIO_PORTB, 4) +#define SIM7_INT GPIO(GPIO_PORTB, 5) +#define SCL3 GPIO(GPIO_PORTB, 6) +#define SDA3 GPIO(GPIO_PORTB, 7) #define SIM4_IO GPIO(GPIO_PORTB, 8) +#define SCL1 GPIO(GPIO_PORTB, 14) +#define SDA1 GPIO(GPIO_PORTB, 15) #define SIM5_IO GPIO(GPIO_PORTB, 16) #define SIM3_IO GPIO(GPIO_PORTB, 20) #define UART_TX GPIO(GPIO_PORTB, 30) #define UART_RX GPIO(GPIO_PORTB, 31) +#define SIM0_INT GPIO(GPIO_PORTC, 0) +#define SIM1_INT GPIO(GPIO_PORTC, 1) +#define SIM2_INT GPIO(GPIO_PORTC, 2) +#define SIM3_INT GPIO(GPIO_PORTC, 3) #define SWITCH GPIO(GPIO_PORTC, 14) +#define MUX_SSTAT GPIO(GPIO_PORTC, 15) #define SIM6_IO GPIO(GPIO_PORTC, 16) #define USER_LED GPIO(GPIO_PORTC, 26) +#define SCL4 GPIO(GPIO_PORTC, 27) +#define SDA4 GPIO(GPIO_PORTC, 28) #endif // ATMEL_START_PINS_H_INCLUDED diff --git a/sysmoOCTSIM/driver_init.c b/sysmoOCTSIM/driver_init.c index a196791..1a58ad9 100644 --- a/sysmoOCTSIM/driver_init.c +++ b/sysmoOCTSIM/driver_init.c @@ -470,6 +470,36 @@ { init_mcu(); + // GPIO on PA02 + + // Set pin direction to input + gpio_set_pin_direction(SIM4_INT, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(SIM4_INT, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(SIM4_INT, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PA03 + + // Set pin direction to input + gpio_set_pin_direction(SIM5_INT, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(SIM5_INT, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(SIM5_INT, GPIO_PIN_FUNCTION_OFF); + // GPIO on PA11 gpio_set_pin_direction(SIMCLK_20MHZ, @@ -577,6 +607,180 @@ gpio_set_pin_function(VB3, GPIO_PIN_FUNCTION_OFF); + // GPIO on PB02 + + gpio_set_pin_level(SCL2, + // Initial level + // pad_initial_level + // Low + // High + false); + + // Set pin direction to output + gpio_set_pin_direction(SCL2, GPIO_DIRECTION_OUT); + + gpio_set_pin_function(SCL2, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PB03 + + gpio_set_pin_level(SDA2, + // Initial level + // pad_initial_level + // Low + // High + false); + + // Set pin direction to output + gpio_set_pin_direction(SDA2, GPIO_DIRECTION_OUT); + + gpio_set_pin_function(SDA2, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PB04 + + // Set pin direction to input + gpio_set_pin_direction(SIM6_INT, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(SIM6_INT, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(SIM6_INT, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PB05 + + // Set pin direction to input + gpio_set_pin_direction(SIM7_INT, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(SIM7_INT, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(SIM7_INT, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PB06 + + gpio_set_pin_level(SCL3, + // Initial level + // pad_initial_level + // Low + // High + false); + + // Set pin direction to output + gpio_set_pin_direction(SCL3, GPIO_DIRECTION_OUT); + + gpio_set_pin_function(SCL3, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PB07 + + gpio_set_pin_level(SDA3, + // Initial level + // pad_initial_level + // Low + // High + false); + + // Set pin direction to output + gpio_set_pin_direction(SDA3, GPIO_DIRECTION_OUT); + + gpio_set_pin_function(SDA3, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PB14 + + gpio_set_pin_level(SCL1, + // Initial level + // pad_initial_level + // Low + // High + false); + + // Set pin direction to output + gpio_set_pin_direction(SCL1, GPIO_DIRECTION_OUT); + + gpio_set_pin_function(SCL1, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PB15 + + gpio_set_pin_level(SDA1, + // Initial level + // pad_initial_level + // Low + // High + false); + + // Set pin direction to output + gpio_set_pin_direction(SDA1, GPIO_DIRECTION_OUT); + + gpio_set_pin_function(SDA1, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PC00 + + // Set pin direction to input + gpio_set_pin_direction(SIM0_INT, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(SIM0_INT, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(SIM0_INT, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PC01 + + // Set pin direction to input + gpio_set_pin_direction(SIM1_INT, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(SIM1_INT, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(SIM1_INT, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PC02 + + // Set pin direction to input + gpio_set_pin_direction(SIM2_INT, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(SIM2_INT, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(SIM2_INT, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PC03 + + // Set pin direction to input + gpio_set_pin_direction(SIM3_INT, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(SIM3_INT, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(SIM3_INT, GPIO_PIN_FUNCTION_OFF); + // GPIO on PC14 // Set pin direction to input @@ -592,6 +796,21 @@ gpio_set_pin_function(SWITCH, GPIO_PIN_FUNCTION_OFF); + // GPIO on PC15 + + // Set pin direction to input + gpio_set_pin_direction(MUX_SSTAT, GPIO_DIRECTION_IN); + + gpio_set_pin_pull_mode(MUX_SSTAT, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(MUX_SSTAT, GPIO_PIN_FUNCTION_OFF); + // GPIO on PC26 gpio_set_pin_level(USER_LED, @@ -606,6 +825,34 @@ gpio_set_pin_function(USER_LED, GPIO_PIN_FUNCTION_OFF); + // GPIO on PC27 + + gpio_set_pin_level(SCL4, + // Initial level + // pad_initial_level + // Low + // High + false); + + // Set pin direction to output + gpio_set_pin_direction(SCL4, GPIO_DIRECTION_OUT); + + gpio_set_pin_function(SCL4, GPIO_PIN_FUNCTION_OFF); + + // GPIO on PC28 + + gpio_set_pin_level(SDA4, + // Initial level + // pad_initial_level + // Low + // High + false); + + // Set pin direction to output + gpio_set_pin_direction(SDA4, GPIO_DIRECTION_OUT); + + gpio_set_pin_function(SDA4, GPIO_PIN_FUNCTION_OFF); + SIM0_init(); SIM1_init(); SIM2_init(); -- To view, visit https://gerrit.osmocom.org/13032 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I2cb67fd01f6e8602af16bbdb4960427586cdd9a4 Gerrit-Change-Number: 13032 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 18:13:47 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Tue, 26 Feb 2019 18:13:47 +0000 Subject: Change in osmo-ccid-firmware[master]: Enable cache via CMCC for higher performance In-Reply-To: References: Message-ID: K?vin Redon has submitted this change and it was merged. ( https://gerrit.osmocom.org/13033 ) Change subject: Enable cache via CMCC for higher performance ...................................................................... Enable cache via CMCC for higher performance Change-Id: I7a243a8d964fea3d3decc6c73c16e07036e4ee93 --- M sysmoOCTSIM/main.c 1 file changed, 6 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified K?vin Redon: Looks good to me, approved diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c index 40f2147..09d766e 100644 --- a/sysmoOCTSIM/main.c +++ b/sysmoOCTSIM/main.c @@ -16,6 +16,9 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ +#include +#include + #include "atmel_start.h" #include "atmel_start_pins.h" @@ -48,6 +51,9 @@ /* only 7 slots, as last slot is debug uart! */ for (i = 0; i < 7; i++) ncn8025_init(i); + + cache_init(); + cache_enable(CMCC); } int main(void) -- To view, visit https://gerrit.osmocom.org/13033 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I7a243a8d964fea3d3decc6c73c16e07036e4ee93 Gerrit-Change-Number: 13033 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 18:13:58 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Tue, 26 Feb 2019 18:13:58 +0000 Subject: Change in osmo-ccid-firmware[master]: PA11: Increase drive strength to 8mA In-Reply-To: References: Message-ID: K?vin Redon has submitted this change and it was merged. ( https://gerrit.osmocom.org/13034 ) Change subject: PA11: Increase drive strength to 8mA ...................................................................... PA11: Increase drive strength to 8mA It has been observed that the 20 MHz clock signal doesn't even remotely resemble a square shape unless DRVSTR=1 is set using this patch. Change-Id: I1366e13442eda829756aa4121be81eb15135c73e --- M sysmoOCTSIM/main.c 1 file changed, 5 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified K?vin Redon: Looks good to me, approved diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c index 09d766e..50e82c6 100644 --- a/sysmoOCTSIM/main.c +++ b/sysmoOCTSIM/main.c @@ -18,6 +18,7 @@ #include #include +#include #include "atmel_start.h" #include "atmel_start_pins.h" @@ -54,6 +55,10 @@ cache_init(); cache_enable(CMCC); + + /* increase drive strength of 20Mhz SIM clock output to 8mA + * (there are 8 inputs + traces to drive!) */ + hri_port_set_PINCFG_DRVSTR_bit(PORT, 0, 11); } int main(void) -- To view, visit https://gerrit.osmocom.org/13034 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I1366e13442eda829756aa4121be81eb15135c73e Gerrit-Change-Number: 13034 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 18:40:12 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Tue, 26 Feb 2019 18:40:12 +0000 Subject: Change in osmo-ccid-firmware[master]: switch UART debug to SIM7 Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/13053 Change subject: switch UART debug to SIM7 ...................................................................... switch UART debug to SIM7 SERCOM7 will mainly be used for the SIM7 interface. only if SIM7 is not present, the UART can be remapped to UART_debug. Change-Id: Idfbd067b4b0e2034337732da2ff5b7cfef8fe4ae --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/atmel_start_pins.h M sysmoOCTSIM/config/hpl_sercom_config.h M sysmoOCTSIM/driver_init.c M sysmoOCTSIM/driver_init.h M sysmoOCTSIM/examples/driver_examples.c M sysmoOCTSIM/examples/driver_examples.h M sysmoOCTSIM/main.c 8 files changed, 149 insertions(+), 190 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/53/13053/1 diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index a301385..4590623 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -1274,9 +1274,9 @@ configuration: core_gclk_selection: Generic clock generator 2 slow_gclk_selection: Generic clock generator 3 - UART_debug: - user_label: UART_debug - definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM7::driver_config_definition::UART::HAL:Driver:USART.Async + SIM7: + user_label: SIM7 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM7::driver_config_definition::USART.with.ISO7816::HAL:Driver:USART.Async functionality: USART api: HAL:Driver:USART_Async configuration: @@ -1285,30 +1285,28 @@ usart_arch_cloden: false usart_arch_dbgstop: Keep running usart_arch_dord: LSB is transmitted first - usart_arch_enc: No encoding - usart_arch_fractional: 0 usart_arch_ibon: false - usart_arch_lin_slave_enable: Disable usart_arch_runstdby: false - usart_arch_sampa: 7-8-9 (3-4-5 8-bit over-sampling) - usart_arch_sampr: 16x arithmetic usart_arch_sfde: false - usart_baud_rate: 921600 + usart_baud_rate: 9600 usart_character_size: 8 bits - usart_parity: No parity + usart_dsnack: The successive receive NACK is disable. + usart_gtime: 2-bit times + usart_inack: NACK is transmitted when a parity error is received. + usart_inverse_enabled: false + usart_iso7816_type: T=0 + usart_maxiter: 7 + usart_parity: Even parity usart_rx_enable: true usart_stop_bit: One stop bit usart_tx_enable: true optional_signals: [] variant: - specification: TXPO=0, RXPO=1, CMODE=0 + specification: TXPO=2, RXPO=0 required_signals: - name: SERCOM7/PAD/0 - pad: PB30 - label: TX - - name: SERCOM7/PAD/1 - pad: PB31 - label: RX + pad: PB21 + label: RX/TX clocks: domain_group: nodes: @@ -1503,6 +1501,12 @@ mode: Peripheral IO user_label: SIM3_IO configuration: null + SIM7_IO: + name: PB21 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB21 + mode: Peripheral IO + user_label: SIM7_IO + configuration: null VB0: name: PA20 definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PA20 @@ -1557,18 +1561,6 @@ mode: Digital output user_label: SDA4 configuration: null - UART_TX: - name: PB30 - definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB30 - mode: Peripheral IO - user_label: UART_TX - configuration: null - UART_RX: - name: PB31 - definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB31 - mode: Peripheral IO - user_label: UART_RX - configuration: null SCL2: name: PB02 definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB02 diff --git a/sysmoOCTSIM/atmel_start_pins.h b/sysmoOCTSIM/atmel_start_pins.h index 60b70bb..c877d5e 100644 --- a/sysmoOCTSIM/atmel_start_pins.h +++ b/sysmoOCTSIM/atmel_start_pins.h @@ -50,8 +50,7 @@ #define SDA1 GPIO(GPIO_PORTB, 15) #define SIM5_IO GPIO(GPIO_PORTB, 16) #define SIM3_IO GPIO(GPIO_PORTB, 20) -#define UART_TX GPIO(GPIO_PORTB, 30) -#define UART_RX GPIO(GPIO_PORTB, 31) +#define SIM7_IO GPIO(GPIO_PORTB, 21) #define SIM0_INT GPIO(GPIO_PORTC, 0) #define SIM1_INT GPIO(GPIO_PORTC, 1) #define SIM2_INT GPIO(GPIO_PORTC, 2) diff --git a/sysmoOCTSIM/config/hpl_sercom_config.h b/sysmoOCTSIM/config/hpl_sercom_config.h index 735fdc2..64607bb 100644 --- a/sysmoOCTSIM/config/hpl_sercom_config.h +++ b/sysmoOCTSIM/config/hpl_sercom_config.h @@ -1931,13 +1931,11 @@ #endif // Frame parity -// <0x0=>No parity // <0x1=>Even parity -// <0x2=>Odd parity // Parity bit mode for USART frame // usart_parity #ifndef CONF_SERCOM_7_USART_PARITY -#define CONF_SERCOM_7_USART_PARITY 0x0 +#define CONF_SERCOM_7_USART_PARITY 1 #endif // Character Size @@ -1961,11 +1959,75 @@ #define CONF_SERCOM_7_USART_SBMODE 0 #endif -// Baud rate <1-6250000> +// Baud rate <1-3000000> // USART baud rate setting // usart_baud_rate #ifndef CONF_SERCOM_7_USART_BAUD -#define CONF_SERCOM_7_USART_BAUD 921600 +#define CONF_SERCOM_7_USART_BAUD 9600 +#endif +// + +// ISO7816 configuration +// ISO7816 Protocol Type +// <0x1=> T=0 +// <0x0=> T=1 +// Define ISO7816 protocol type as 0. +// usart_iso7816_type +#ifndef CONF_SERCOM_7_USART_ISO7816_PROTOCOL_T +#define CONF_SERCOM_7_USART_ISO7816_PROTOCOL_T 0x1 +#endif + +// ISO7816 Inhibit Not Acknowledge +// <0x0=> NACK is transmitted when a parity error is received. +// <0x1=> NACK is not transmitted when a parity error is received. +// Define whether a NACK is transmitted when a parity error is received. +// usart_inack +#ifndef CONF_SERCOM_7_USART_INACK +#define CONF_SERCOM_7_USART_INACK 0x0 +#endif + +// ISO7816 Disable Successive Not Acknowledge +// <0x0=> The successive receive NACK is disable. +// <0x1=> The successive receive NACK is enable. +// Define whether NACK will be sent on parity error reception. +// usart_dsnack +#ifndef CONF_SERCOM_7_USART_DSNACK +#define CONF_SERCOM_7_USART_DSNACK 0x0 +#endif + +// ISO7816 Maximum Iterations<0-7> +// Define the maximum number of retransmit iterations. +// usart_maxiter +#ifndef CONF_SERCOM_7_USART_MAXITER +#define CONF_SERCOM_7_USART_MAXITER 0x7 +#endif + +// ISO7816 Guard Time +// <0x2=> 2-bit times +// <0x3=> 3-bit times +// <0x4=> 4-bit times +// <0x5=> 5-bit times +// <0x6=> 6-bit times +// <0x7=> 7-bit times +// Define the guard time. +// usart_gtime +#ifndef CONF_SERCOM_7_USART_GTIME +#define CONF_SERCOM_7_USART_GTIME 0x2 +#endif + +// Inverse transmission and reception enabled +// Define inverse transmission and reception enabled. +// usart_inverse_enabled +#ifndef CONF_SERCOM_7_USART_INVERSE_ENABLED +#define CONF_SERCOM_7_USART_INVERSE_ENABLED 0x0 +#endif + +#if (CONF_SERCOM_7_USART_INVERSE_ENABLED == 1) +#define CONF_SERCOM_7_USART_RXINV 0x1 +#define CONF_SERCOM_7_USART_TXINV 0x1 +#else +#define CONF_SERCOM_7_USART_RXINV 0x0 +#define CONF_SERCOM_7_USART_TXINV 0x0 #endif // @@ -2005,44 +2067,13 @@ #endif // Operating Mode -// <0x0=>USART with external clock // <0x1=>USART with internal clock -// Drive the shift register by an internal clock generated by the baud rate generator or an external clock supplied on the XCK pin. +// Drive the shift register by an internal clock generated by the baud rate generator. // usart_arch_clock_mode #ifndef CONF_SERCOM_7_USART_MODE #define CONF_SERCOM_7_USART_MODE 0x1 #endif -// Sample Rate -// <0x0=>16x arithmetic -// <0x1=>16x fractional -// <0x2=>8x arithmetic -// <0x3=>8x fractional -// <0x4=>3x arithmetic -// How many over-sampling bits used when sampling data state -// usart_arch_sampr -#ifndef CONF_SERCOM_7_USART_SAMPR -#define CONF_SERCOM_7_USART_SAMPR 0x0 -#endif - -// Sample Adjustment -// <0x0=>7-8-9 (3-4-5 8-bit over-sampling) -// <0x1=>9-10-11 (4-5-6 8-bit over-sampling) -// <0x2=>11-12-13 (5-6-7 8-bit over-sampling) -// <0x3=>13-14-15 (6-7-8 8-bit over-sampling) -// Adjust which samples to use for data sampling in asynchronous mode -// usart_arch_sampa -#ifndef CONF_SERCOM_7_USART_SAMPA -#define CONF_SERCOM_7_USART_SAMPA 0x0 -#endif - -// Fractional Part <0-7> -// Fractional part of the baud rate if baud rate generator is in fractional mode -// usart_arch_fractional -#ifndef CONF_SERCOM_7_USART_FRACTIONAL -#define CONF_SERCOM_7_USART_FRACTIONAL 0x0 -#endif - // Data Order // <0=>MSB is transmitted first // <1=>LSB is transmitted first @@ -2052,27 +2083,6 @@ #define CONF_SERCOM_7_USART_DORD 1 #endif -// Does not do anything in UART mode -#define CONF_SERCOM_7_USART_CPOL 0 - -// Encoding Format -// <0=>No encoding -// <1=>IrDA encoded -// usart_arch_enc -#ifndef CONF_SERCOM_7_USART_ENC -#define CONF_SERCOM_7_USART_ENC 0 -#endif - -// LIN Slave Enable -// Break Character Detection and Auto-Baud/LIN Slave Enable. -// Additional setting needed: 16x sample rate using fractional baud rate generation (CTRLA.SAMPR = 1). -// <0=>Disable -// <1=>Enable -// usart_arch_lin_slave_enable -#ifndef CONF_SERCOM_7_USART_LIN_SLAVE_ENABLE -#define CONF_SERCOM_7_USART_LIN_SLAVE_ENABLE 0 -#endif - // Debug Stop Mode // Behavior of the baud-rate generator when CPU is halted by external debugger. // <0=>Keep running @@ -2082,58 +2092,38 @@ #define CONF_SERCOM_7_USART_DEBUG_STOP_MODE 0 #endif +// Does not do anything in USRT mode +#define CONF_SERCOM_7_USART_SAMPR 0x0 +#define CONF_SERCOM_7_USART_SAMPA 0x0 +#define CONF_SERCOM_7_USART_FRACTIONAL 0x0 + +// Does not do anything in UART mode +#define CONF_SERCOM_7_USART_CPOL 0 + +// Does not do anything in USRT mode +#define CONF_SERCOM_7_USART_ENC 0 + // -#ifndef CONF_SERCOM_7_USART_INACK -#define CONF_SERCOM_7_USART_INACK 0x0 -#endif - -#ifndef CONF_SERCOM_7_USART_DSNACK -#define CONF_SERCOM_7_USART_DSNACK 0x0 -#endif - -#ifndef CONF_SERCOM_7_USART_MAXITER -#define CONF_SERCOM_7_USART_MAXITER 0x7 -#endif - -#ifndef CONF_SERCOM_7_USART_GTIME -#define CONF_SERCOM_7_USART_GTIME 0x2 -#endif - -#define CONF_SERCOM_7_USART_RXINV 0x0 -#define CONF_SERCOM_7_USART_TXINV 0x0 - #ifndef CONF_SERCOM_7_USART_CMODE -#define CONF_SERCOM_7_USART_CMODE 0 +#define CONF_SERCOM_7_USART_CMODE CONF_SERCOM_7_USART_ISO7816_PROTOCOL_T #endif +/* RX is on PIN_PB21 */ #ifndef CONF_SERCOM_7_USART_RXPO -#define CONF_SERCOM_7_USART_RXPO 1 /* RX is on PIN_PB31 */ +#define CONF_SERCOM_7_USART_RXPO 0 #endif +/* TX uses the same pin with RX */ #ifndef CONF_SERCOM_7_USART_TXPO -#define CONF_SERCOM_7_USART_TXPO 0 /* TX is on PIN_PB30 */ +#define CONF_SERCOM_7_USART_TXPO 2 #endif -/* Set correct parity settings in register interface based on PARITY setting */ -#if CONF_SERCOM_7_USART_LIN_SLAVE_ENABLE == 1 -#if CONF_SERCOM_7_USART_PARITY == 0 -#define CONF_SERCOM_7_USART_PMODE 0 -#define CONF_SERCOM_7_USART_FORM 4 -#else -#define CONF_SERCOM_7_USART_PMODE CONF_SERCOM_7_USART_PARITY - 1 -#define CONF_SERCOM_7_USART_FORM 5 -#endif -#else /* #if CONF_SERCOM_7_USART_LIN_SLAVE_ENABLE == 0 */ -#if CONF_SERCOM_7_USART_PARITY == 0 -#define CONF_SERCOM_7_USART_PMODE 0 -#define CONF_SERCOM_7_USART_FORM 0 -#else -#define CONF_SERCOM_7_USART_PMODE CONF_SERCOM_7_USART_PARITY - 1 -#define CONF_SERCOM_7_USART_FORM 1 -#endif -#endif +/* Set iso7816 mode */ +#define CONF_SERCOM_7_USART_PMODE (CONF_SERCOM_7_USART_PARITY - 1) +#define CONF_SERCOM_7_USART_FORM 7 +#if CONF_SERCOM_7_USART_CMODE == 0 // Calculate BAUD register value in UART mode #if CONF_SERCOM_7_USART_SAMPR == 0 #ifndef CONF_SERCOM_7_USART_BAUD_RATE @@ -2177,6 +2167,19 @@ #endif #endif +#elif CONF_SERCOM_7_USART_CMODE == 1 +#ifndef CONF_SERCOM_7_USART_BAUD_RATE +// Calculate BAUD register value in USRT mode +#define CONF_SERCOM_7_USART_BAUD_RATE (CONF_GCLK_SERCOM7_CORE_FREQUENCY) / (2 * CONF_SERCOM_7_USART_BAUD) - 1 +#endif + +#ifndef CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH +#define CONF_SERCOM_7_USART_RECEIVE_PULSE_LENGTH 0 +#endif +#else +#error CMODE value for SERCOM 7 in USART mode not known +#endif + // <<< end of configuration section >>> #endif // HPL_SERCOM_CONFIG_H diff --git a/sysmoOCTSIM/driver_init.c b/sysmoOCTSIM/driver_init.c index 1a58ad9..e56ba0d 100644 --- a/sysmoOCTSIM/driver_init.c +++ b/sysmoOCTSIM/driver_init.c @@ -33,7 +33,7 @@ #define SIM6_BUFFER_SIZE 16 /*! The buffer size for USART */ -#define UART_DEBUG_BUFFER_SIZE 16 +#define SIM7_BUFFER_SIZE 16 struct usart_async_descriptor SIM0; struct usart_async_descriptor SIM1; @@ -42,7 +42,7 @@ struct usart_async_descriptor SIM4; struct usart_async_descriptor SIM5; struct usart_async_descriptor SIM6; -struct usart_async_descriptor UART_debug; +struct usart_async_descriptor SIM7; static uint8_t SIM0_buffer[SIM0_BUFFER_SIZE]; static uint8_t SIM1_buffer[SIM1_BUFFER_SIZE]; @@ -51,7 +51,7 @@ static uint8_t SIM4_buffer[SIM4_BUFFER_SIZE]; static uint8_t SIM5_buffer[SIM5_BUFFER_SIZE]; static uint8_t SIM6_buffer[SIM6_BUFFER_SIZE]; -static uint8_t UART_debug_buffer[UART_DEBUG_BUFFER_SIZE]; +static uint8_t SIM7_buffer[SIM7_BUFFER_SIZE]; /** * \brief USART Clock initialization function @@ -317,7 +317,7 @@ * * Enables register interface and peripheral clock */ -void UART_debug_CLOCK_init() +void SIM7_CLOCK_init() { hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM7_GCLK_ID_CORE, CONF_GCLK_SERCOM7_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); @@ -331,12 +331,10 @@ * * Set each required pin to USART functionality */ -void UART_debug_PORT_init() +void SIM7_PORT_init() { - gpio_set_pin_function(UART_TX, PINMUX_PB30C_SERCOM7_PAD0); - - gpio_set_pin_function(UART_RX, PINMUX_PB31C_SERCOM7_PAD1); + gpio_set_pin_function(SIM7_IO, PINMUX_PB21D_SERCOM7_PAD0); } /** @@ -344,11 +342,11 @@ * * Enables USART peripheral, clocks and initializes USART driver */ -void UART_debug_init(void) +void SIM7_init(void) { - UART_debug_CLOCK_init(); - usart_async_init(&UART_debug, SERCOM7, UART_debug_buffer, UART_DEBUG_BUFFER_SIZE, (void *)NULL); - UART_debug_PORT_init(); + SIM7_CLOCK_init(); + usart_async_init(&SIM7, SERCOM7, SIM7_buffer, SIM7_BUFFER_SIZE, (void *)NULL); + SIM7_PORT_init(); } void USB_DEVICE_INSTANCE_PORT_init(void) @@ -860,7 +858,7 @@ SIM4_init(); SIM5_init(); SIM6_init(); - UART_debug_init(); + SIM7_init(); USB_DEVICE_INSTANCE_init(); } diff --git a/sysmoOCTSIM/driver_init.h b/sysmoOCTSIM/driver_init.h index a0fbb88..a38ccef 100644 --- a/sysmoOCTSIM/driver_init.h +++ b/sysmoOCTSIM/driver_init.h @@ -39,7 +39,7 @@ extern struct usart_async_descriptor SIM4; extern struct usart_async_descriptor SIM5; extern struct usart_async_descriptor SIM6; -extern struct usart_async_descriptor UART_debug; +extern struct usart_async_descriptor SIM7; void SIM0_PORT_init(void); void SIM0_CLOCK_init(void); @@ -69,9 +69,9 @@ void SIM6_CLOCK_init(void); void SIM6_init(void); -void UART_debug_PORT_init(void); -void UART_debug_CLOCK_init(void); -void UART_debug_init(void); +void SIM7_PORT_init(void); +void SIM7_CLOCK_init(void); +void SIM7_init(void); void USB_DEVICE_INSTANCE_CLOCK_init(void); void USB_DEVICE_INSTANCE_init(void); diff --git a/sysmoOCTSIM/examples/driver_examples.c b/sysmoOCTSIM/examples/driver_examples.c index 14f1ae5..a8747bc 100644 --- a/sysmoOCTSIM/examples/driver_examples.c +++ b/sysmoOCTSIM/examples/driver_examples.c @@ -214,7 +214,7 @@ } /** - * Example of using UART_debug to write "Hello World" using the IO abstraction. + * Example of using SIM7 to write "Hello World" using the IO abstraction. * * Since the driver is asynchronous we need to use statically allocated memory for string * because driver initiates transfer and then returns before the transmission is completed. @@ -222,22 +222,22 @@ * Once transfer has been completed the tx_cb function will be called. */ -static uint8_t example_UART_debug[12] = "Hello World!"; +static uint8_t example_SIM7[12] = "Hello World!"; -static void tx_cb_UART_debug(const struct usart_async_descriptor *const io_descr) +static void tx_cb_SIM7(const struct usart_async_descriptor *const io_descr) { /* Transfer completed */ } -void UART_debug_example(void) +void SIM7_example(void) { struct io_descriptor *io; - usart_async_register_callback(&UART_debug, USART_ASYNC_TXC_CB, tx_cb_UART_debug); - /*usart_async_register_callback(&UART_debug, USART_ASYNC_RXC_CB, rx_cb); - usart_async_register_callback(&UART_debug, USART_ASYNC_ERROR_CB, err_cb);*/ - usart_async_get_io_descriptor(&UART_debug, &io); - usart_async_enable(&UART_debug); + usart_async_register_callback(&SIM7, USART_ASYNC_TXC_CB, tx_cb_SIM7); + /*usart_async_register_callback(&SIM7, USART_ASYNC_RXC_CB, rx_cb); + usart_async_register_callback(&SIM7, USART_ASYNC_ERROR_CB, err_cb);*/ + usart_async_get_io_descriptor(&SIM7, &io); + usart_async_enable(&SIM7); - io_write(io, example_UART_debug, 12); + io_write(io, example_SIM7, 12); } diff --git a/sysmoOCTSIM/examples/driver_examples.h b/sysmoOCTSIM/examples/driver_examples.h index 4f2ce98..76856f0 100644 --- a/sysmoOCTSIM/examples/driver_examples.h +++ b/sysmoOCTSIM/examples/driver_examples.h @@ -26,7 +26,7 @@ void SIM6_example(void); -void UART_debug_example(void); +void SIM7_example(void); #ifdef __cplusplus } diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c index 50e82c6..9500e08 100644 --- a/sysmoOCTSIM/main.c +++ b/sysmoOCTSIM/main.c @@ -27,21 +27,6 @@ #include "octsim_i2c.h" #include "ncn8025.h" -volatile static bool data_arrived = false; - -static void tx_cb_UART_debug(const struct usart_async_descriptor *const io_descr) -{ - /* Transfer completed */ - //gpio_toggle_pin_level(LED_system); -} - -static void rx_cb_UART_debug(const struct usart_async_descriptor *const io_descr) -{ - /* Receive completed */ - gpio_toggle_pin_level(USER_LED); - data_arrived = true; -} - static void board_init() { int i; @@ -64,24 +49,6 @@ int main(void) { atmel_start_init(); - - usart_async_register_callback(&UART_debug, USART_ASYNC_TXC_CB, tx_cb_UART_debug); - usart_async_register_callback(&UART_debug, USART_ASYNC_RXC_CB, rx_cb_UART_debug); - usart_async_enable(&UART_debug); - - usb_start(); - board_init(); - - const char* welcome = "\r\n\r\nsysmocom sysmoOCTSIM\r\n"; - while (io_write(&UART_debug.io, (const uint8_t*)welcome, strlen(welcome)) != strlen(welcome)); // print welcome message - while (true) { // main loop - if (data_arrived) { // input on UART debug - data_arrived = false; // clear flag - uint8_t recv_char; // to store the input - while (io_read(&UART_debug.io, &recv_char, 1) == 1) { // read input - while (io_write(&UART_debug.io, &recv_char, 1) != 1); // echo back to output - } - } - } + usb_start(); } -- To view, visit https://gerrit.osmocom.org/13053 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Idfbd067b4b0e2034337732da2ff5b7cfef8fe4ae Gerrit-Change-Number: 13053 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 18:40:12 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Tue, 26 Feb 2019 18:40:12 +0000 Subject: Change in osmo-ccid-firmware[master]: add RMII clock output Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/13054 Change subject: add RMII clock output ...................................................................... add RMII clock output The TLK106 Ethernet PHY requires a 50 MHz input on XI in RMII mode. RMII_CLOCK is connected on the micro-controller on PA14 and PB11. PA14, with note "GTXCR" on the schematic, cannot be use to provide the 50 MHz clock since this is the clock output for GLK[0], which is reserved for the CPU running at 120 MHz. PB11 is the clock output pin for GCLK[5], which now divides DPLL1 at 100 MHz to the required 50 MHz. WARNING: I did not test if the output clock signal matches the requirement of the input clock signal. Change-Id: Id8409779d2835b56bbae7db2e962034c82fa3b62 --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/atmel_start_pins.h M sysmoOCTSIM/config/hpl_gclk_config.h M sysmoOCTSIM/driver_init.c 4 files changed, 52 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/54/13054/1 diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index 4590623..29ec468 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -734,7 +734,7 @@ gclk_gen_4_div: 1 gclk_gen_4_div_sel: false gclk_gen_4_oscillator: External Crystal Oscillator 8-48MHz (XOSC1) - gclk_gen_5_div: 5 + gclk_gen_5_div: 2 gclk_gen_5_div_sel: false gclk_gen_5_oscillator: Digital Phase Locked Loop (DPLL1) gclk_gen_6_div: 1 @@ -1453,6 +1453,16 @@ pad_function: M pad_initial_level: Low pad_pull_config: 'Off' + RMII_CLOCK: + name: PB11 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB11 + mode: Advanced + user_label: RMII_CLOCK + configuration: + pad_direction: Out + pad_function: M + pad_initial_level: Low + pad_pull_config: 'Off' SCL1: name: PB14 definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB14 diff --git a/sysmoOCTSIM/atmel_start_pins.h b/sysmoOCTSIM/atmel_start_pins.h index c877d5e..18a55fa 100644 --- a/sysmoOCTSIM/atmel_start_pins.h +++ b/sysmoOCTSIM/atmel_start_pins.h @@ -46,6 +46,7 @@ #define SCL3 GPIO(GPIO_PORTB, 6) #define SDA3 GPIO(GPIO_PORTB, 7) #define SIM4_IO GPIO(GPIO_PORTB, 8) +#define RMII_CLOCK GPIO(GPIO_PORTB, 11) #define SCL1 GPIO(GPIO_PORTB, 14) #define SDA1 GPIO(GPIO_PORTB, 15) #define SIM5_IO GPIO(GPIO_PORTB, 16) diff --git a/sysmoOCTSIM/config/hpl_gclk_config.h b/sysmoOCTSIM/config/hpl_gclk_config.h index 6b7586c..8c0beee 100644 --- a/sysmoOCTSIM/config/hpl_gclk_config.h +++ b/sysmoOCTSIM/config/hpl_gclk_config.h @@ -454,7 +454,7 @@ // Generic clock generator 5 division <0x0000-0xFFFF> // gclk_gen_5_div #ifndef CONF_GCLK_GEN_5_DIV -#define CONF_GCLK_GEN_5_DIV 5 +#define CONF_GCLK_GEN_5_DIV 2 #endif // // diff --git a/sysmoOCTSIM/driver_init.c b/sysmoOCTSIM/driver_init.c index e56ba0d..ef9c56b 100644 --- a/sysmoOCTSIM/driver_init.c +++ b/sysmoOCTSIM/driver_init.c @@ -691,6 +691,45 @@ gpio_set_pin_function(SDA3, GPIO_PIN_FUNCTION_OFF); + // GPIO on PB11 + + gpio_set_pin_direction(RMII_CLOCK, + // Pin direction + // pad_direction + // Off + // In + // Out + GPIO_DIRECTION_OUT); + + gpio_set_pin_level(RMII_CLOCK, + // Initial level + // pad_initial_level + // Low + // High + false); + + gpio_set_pin_function(RMII_CLOCK, + // Pin function + // pad_function + // Auto : use driver pinmux if signal is imported by driver, else turn off function + // Auto + // Off + // A + // B + // C + // D + // E + // F + // G + // H + // I + // J + // K + // L + // M + // N + GPIO_PIN_FUNCTION_M); + // GPIO on PB14 gpio_set_pin_level(SCL1, -- To view, visit https://gerrit.osmocom.org/13054 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id8409779d2835b56bbae7db2e962034c82fa3b62 Gerrit-Change-Number: 13054 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 18:40:13 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Tue, 26 Feb 2019 18:40:13 +0000 Subject: Change in osmo-ccid-firmware[master]: add debug tracing using SWO Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/13055 Change subject: add debug tracing using SWO ...................................................................... add debug tracing using SWO the UART_TX debug pin is connected to PB30, allowing to output printf debug information using SWO and save SERCOM7 for SIM7. SWO is configured as UART output at 921600 bps, with blocking write. The DEBUG flag must be set to enable output. WARNING: SWO output is also only enabled if a SWD debugger is attached. I did not find in the datasheets how to always have it enabled. Change-Id: I4c6d66e7089971294d7c006fbb600e8085e58595 --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/atmel_start_pins.h M sysmoOCTSIM/driver_init.c M sysmoOCTSIM/gcc/Makefile M sysmoOCTSIM/main.c A sysmoOCTSIM/trace.c A sysmoOCTSIM/trace.h 7 files changed, 179 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/55/13055/1 diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index 29ec468..a5b73bd 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -1583,4 +1583,14 @@ mode: Digital output user_label: SDA2 configuration: null + UART_TX: + name: PB30 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB30 + mode: Advanced + user_label: UART_TX + configuration: + pad_direction: Out + pad_function: H + pad_initial_level: Low + pad_pull_config: 'Off' toolchain_options: [] diff --git a/sysmoOCTSIM/atmel_start_pins.h b/sysmoOCTSIM/atmel_start_pins.h index 18a55fa..a2a4206 100644 --- a/sysmoOCTSIM/atmel_start_pins.h +++ b/sysmoOCTSIM/atmel_start_pins.h @@ -52,6 +52,7 @@ #define SIM5_IO GPIO(GPIO_PORTB, 16) #define SIM3_IO GPIO(GPIO_PORTB, 20) #define SIM7_IO GPIO(GPIO_PORTB, 21) +#define UART_TX GPIO(GPIO_PORTB, 30) #define SIM0_INT GPIO(GPIO_PORTC, 0) #define SIM1_INT GPIO(GPIO_PORTC, 1) #define SIM2_INT GPIO(GPIO_PORTC, 2) diff --git a/sysmoOCTSIM/driver_init.c b/sysmoOCTSIM/driver_init.c index ef9c56b..f442359 100644 --- a/sysmoOCTSIM/driver_init.c +++ b/sysmoOCTSIM/driver_init.c @@ -758,6 +758,53 @@ gpio_set_pin_function(SDA1, GPIO_PIN_FUNCTION_OFF); + // GPIO on PB30 + + gpio_set_pin_direction(UART_TX, + // Pin direction + // pad_direction + // Off + // In + // Out + GPIO_DIRECTION_OUT); + + gpio_set_pin_pull_mode(UART_TX, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_level(UART_TX, + // Initial level + // pad_initial_level + // Low + // High + false); + + gpio_set_pin_function(UART_TX, + // Pin function + // pad_function + // Auto : use driver pinmux if signal is imported by driver, else turn off function + // Auto + // Off + // A + // B + // C + // D + // E + // F + // G + // H + // I + // J + // K + // L + // M + // N + GPIO_PIN_FUNCTION_H); + // GPIO on PC00 // Set pin direction to input diff --git a/sysmoOCTSIM/gcc/Makefile b/sysmoOCTSIM/gcc/Makefile index 5e3c38c..e5c7306 100644 --- a/sysmoOCTSIM/gcc/Makefile +++ b/sysmoOCTSIM/gcc/Makefile @@ -76,6 +76,7 @@ hpl/osc32kctrl/hpl_osc32kctrl.o \ examples/driver_examples.o \ driver_init.o \ +trace.o \ hal/src/hal_usart_async.o \ hpl/sercom/hpl_sercom.o \ hal/utils/src/utils_ringbuffer.o \ @@ -117,6 +118,7 @@ "hpl/osc32kctrl/hpl_osc32kctrl.o" \ "examples/driver_examples.o" \ "driver_init.o" \ +"trace.o" \ "hal/src/hal_usart_async.o" \ "hpl/sercom/hpl_sercom.o" \ "hal/utils/src/utils_ringbuffer.o" \ @@ -155,6 +157,7 @@ "hal/src/hal_init.d" \ "hpl/mclk/hpl_mclk.d" \ "driver_init.d" \ +"trace.d" \ "hal/src/hal_usart_async.d" \ "hpl/osc32kctrl/hpl_osc32kctrl.d" \ "main.d" \ @@ -256,4 +259,4 @@ rm -f $(DEPS_AS_ARGS) rm -f $(OUTPUT_FILE_NAME).a $(OUTPUT_FILE_NAME).hex $(OUTPUT_FILE_NAME).bin \ $(OUTPUT_FILE_NAME).lss $(OUTPUT_FILE_NAME).eep $(OUTPUT_FILE_NAME).map \ - $(OUTPUT_FILE_NAME).srec \ No newline at end of file + $(OUTPUT_FILE_NAME).srec diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c index 9500e08..515f546 100644 --- a/sysmoOCTSIM/main.c +++ b/sysmoOCTSIM/main.c @@ -22,6 +22,7 @@ #include "atmel_start.h" #include "atmel_start_pins.h" +#include "trace.h" #include "i2c_bitbang.h" #include "octsim_i2c.h" @@ -50,5 +51,7 @@ { atmel_start_init(); board_init(); + trace_swo_init(); // initialize SWO for debug trace output + TRACE("\r\n\r\ninitialization complete\r\n"); usb_start(); } diff --git a/sysmoOCTSIM/trace.c b/sysmoOCTSIM/trace.c new file mode 100644 index 0000000..7048dbe --- /dev/null +++ b/sysmoOCTSIM/trace.c @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2019 sysmocom -s.f.m.c. GmbH, Author: Kevin Redon + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ +#include +#include +#include +#include +#include "trace.h" + +int __attribute__((weak)) _read(int file, char *ptr, int len); + +int __attribute__((weak)) _read(int file, char *ptr, int len) +{ + (void)file; + (void)ptr; + (void)len; + return -1; +} + +int __attribute__((weak)) _write(int file, char *ptr, int len); + +/** \warning ITM/SWO outputs only if a debugger is attached + * \warning this call is blocking + * \note since ITM does not generate interrupts upon completion, to implement non-blocking writing a timer would be required (along with a ring buffer) + */ +int __attribute__((weak)) _write(int file, char *ptr, int len) +{ +#ifdef DEBUG + if ((file != 1) && (file != 2) && (file != 3)) { + return -1; + } + + for (int i = 0; i < len; i++) { + ITM_SendChar(*ptr++); + } + return len; +#else + (void)file; + (void)ptr; + (void)len; + return -1; +#endif +} + +void trace_swo_init(void) +{ + hri_gclk_write_PCHCTRL_reg(GCLK, CM4_TRACE_GCLK_ID, GCLK_PCHCTRL_GEN_GCLK0 | GCLK_PCHCTRL_CHEN); // enable clock for CM4 TRACE + while(!hri_gclk_get_PCHCTRL_reg(GCLK, CM4_TRACE_GCLK_ID, GCLK_PCHCTRL_CHEN)); // wait for clock to be ready + CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk; // enable trace subsystem + TPI->SPPR = (2 << TPI_SPPR_TXMODE_Pos) & TPI_SPPR_TXMODE_Msk; // set SWO protocol to UART-like (asynchronous using NRZ encoding) + TPI->ACPR = ((CONF_CPU_FREQUENCY / TRACE_SWO_BAUDRATE - 1) << TPI_ACPR_PRESCALER_Pos) & TPI_ACPR_PRESCALER_Msk; // set prescaler + TPI->FFCR &= ~TPI_FFCR_EnFCont_Msk; // disable continuous formatting + ITM->LAR = 0xC5ACCE55; // unlock write access to ITM registers + ITM->TCR = ITM_TCR_TraceBusID_Msk | ITM_TCR_ITMENA_Msk; // enable multi-source trace, SWO, synchronisation packet, and ITM + ITM->TER = 1; // enable stimulus 1 + ITM->TPR = 0; // permit unprivileged access + CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk; // enable trace subsystem + +#if defined(__GNUC__) + setbuf(stdout, NULL); // don't use any buffer +#endif +} diff --git a/sysmoOCTSIM/trace.h b/sysmoOCTSIM/trace.h new file mode 100644 index 0000000..67afb53 --- /dev/null +++ b/sysmoOCTSIM/trace.h @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2019 sysmocom -s.f.m.c. GmbH, Author: Kevin Redon + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +*/ +#ifndef TRACE_H +#define TARCE_H +#include + +/** CM4 Trace clock ID, not defined in ASFv4 but in the datasheet */ +#define CM4_TRACE_GCLK_ID 47 +/** SWO UART-like trace output in bps */ +#define TRACE_SWO_BAUDRATE 921600 + +/** Output trace debug information */ +#ifndef DEBUG +#define TRACE(...) { } +#else +#define TRACE(...) { printf(__VA_ARGS__); } +#endif + +/** Initialise trace output over SWO + * \note SWO pin must be configured separately + */ +void trace_swo_init(void); +#endif -- To view, visit https://gerrit.osmocom.org/13055 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I4c6d66e7089971294d7c006fbb600e8085e58595 Gerrit-Change-Number: 13055 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 18:40:13 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Tue, 26 Feb 2019 18:40:13 +0000 Subject: Change in osmo-ccid-firmware[master]: fix ASFv4 USB stack Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/13056 Change subject: fix ASFv4 USB stack ...................................................................... fix ASFv4 USB stack this ASFv4 USB library change fixes USB transfer. two transfer-size issues existed: - on multi-packet transfer if the last packet was less than the USB transfer packet size, the packet would be received but not acknowledged - during normal transfer the packet size of a previous packet set the size of the current packet, ignoring the actual transfer size Change-Id: I4209072ee808f0e246bcd5e86917dcf1d213c26b --- M sysmoOCTSIM/hpl/usb/hpl_usb.c 1 file changed, 1 insertion(+), 3 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/56/13056/1 diff --git a/sysmoOCTSIM/hpl/usb/hpl_usb.c b/sysmoOCTSIM/hpl/usb/hpl_usb.c index b5efe6c..eec9728 100644 --- a/sysmoOCTSIM/hpl/usb/hpl_usb.c +++ b/sysmoOCTSIM/hpl/usb/hpl_usb.c @@ -1135,6 +1135,7 @@ /* Short packet. */ ept->flags.bits.need_zlp = 0; ept->trans_count += last_trans; + _usbd_ep_set_out_trans(epn, 0, ept->size, 0); } else { /* Full packets. */ ept->trans_count += trans_size; @@ -1154,9 +1155,6 @@ if (trans_next > ept->size) { if (trans_next > USB_D_DEV_TRANS_MAX) { trans_next = USB_D_DEV_TRANS_MAX; - } else { - /* Must expect multiple of ep size. */ - trans_next -= trans_next & size_mask; } } else if (trans_next < ept->size) { /* Last un-aligned packet should be cached. */ -- To view, visit https://gerrit.osmocom.org/13056 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I4209072ee808f0e246bcd5e86917dcf1d213c26b Gerrit-Change-Number: 13056 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 18:45:09 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Tue, 26 Feb 2019 18:45:09 +0000 Subject: Change in osmo-ccid-firmware[master]: Switch SERCOM7 (Debug UART) to sync mode + add STDIO In-Reply-To: References: Message-ID: K?vin Redon has posted comments on this change. ( https://gerrit.osmocom.org/13035 ) Change subject: Switch SERCOM7 (Debug UART) to sync mode + add STDIO ...................................................................... Patch Set 2: Code-Review-1 instead of using SERCOM7 for UART debug I propose we use exclusively for SIM7 and we can use SWO for debug output. this allows to also test SIM7 with debug output. see https://gerrit.osmocom.org/#/c/osmo-ccid-firmware/+/13055/ for the corresponding change. this also adds a less cluttered stdio/printf support. the only downside is SWO does not have a corresponding input (UART RX) but this can be implemented in software. -- To view, visit https://gerrit.osmocom.org/13035 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ibf4ba961d4bbf8d787558f38f3d557422587aad3 Gerrit-Change-Number: 13035 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-Comment-Date: Tue, 26 Feb 2019 18:45:09 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 18:48:08 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 26 Feb 2019 18:48:08 +0000 Subject: Change in osmo-pcu[master]: Use boolean for DL resegmentation parameter Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/13057 Change subject: Use boolean for DL resegmentation parameter ...................................................................... Use boolean for DL resegmentation parameter In some places #define was used for DL resegmentation parameter, in other int, in some other bool. Let's clarify this and always use boolean value. Change-Id: I4d4fe5fe12068a4532cb3b61d4eeb229a77c1476 --- M src/bts.h M src/gprs_coding_scheme.h M src/pcu_main.cpp M src/pcu_vty.c M tests/tbf/TbfTest.cpp 5 files changed, 9 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/57/13057/1 diff --git a/src/bts.h b/src/bts.h index 578cece..51edc82 100644 --- a/src/bts.h +++ b/src/bts.h @@ -135,8 +135,8 @@ uint32_t dl_tbf_idle_msec; /* hold time for idle DL TBFs */ uint8_t si13[GSM_MACBLOCK_LEN]; bool si13_is_set; - /* 0 to support resegmentation in DL, 1 for no reseg */ - uint8_t dl_arq_type; + /* false to support resegmentation in DL, true for no resegmentation */ + bool dl_arq_type; uint32_t ms_idle_sec; uint8_t cs_adj_enabled; diff --git a/src/gprs_coding_scheme.h b/src/gprs_coding_scheme.h index 76cab0f..3c47266 100644 --- a/src/gprs_coding_scheme.h +++ b/src/gprs_coding_scheme.h @@ -32,8 +32,6 @@ #define MAX_NUM_ARQ 2 /* max. number of ARQ */ #define MAX_NUM_MCS 9 /* max. number of MCS */ -#define EGPRS_ARQ1 0x0 -#define EGPRS_ARQ2 0x1 enum Scheme { UNKNOWN, diff --git a/src/pcu_main.cpp b/src/pcu_main.cpp index fe85160..8414ae3 100644 --- a/src/pcu_main.cpp +++ b/src/pcu_main.cpp @@ -263,7 +263,7 @@ * By default resegmentation is supported in DL * can also be configured through VTY */ - bts->dl_arq_type = EGPRS_ARQ1; + bts->dl_arq_type = false; bts->pcu_sock_path = talloc_strdup(tall_pcu_ctx, PCU_SOCK_DEFAULT); diff --git a/src/pcu_vty.c b/src/pcu_vty.c index 960c90d..2d1903d 100644 --- a/src/pcu_vty.c +++ b/src/pcu_vty.c @@ -594,9 +594,9 @@ struct gprs_rlcmac_bts *bts = bts_main_data(); if (!strcmp(argv[0], "arq2")) - bts->dl_arq_type = 1; + bts->dl_arq_type = true; else - bts->dl_arq_type = 0; + bts->dl_arq_type = false; return CMD_SUCCESS; } diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index dfed79e..f96956f 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -2487,7 +2487,7 @@ bts->dl_tbf_idle_msec = 200; bts->egprs_enabled = 1; /* ARQ II */ - bts->dl_arq_type = EGPRS_ARQ2; + bts->dl_arq_type = true; /* * Simulate a message captured during over-the-air testing, @@ -3022,7 +3022,7 @@ bts->dl_tbf_idle_msec = 200; bts->egprs_enabled = 1; /* ARQ II */ - bts->dl_arq_type = EGPRS_ARQ2; + bts->dl_arq_type = true; /* First parameter is current MCS, second one is demanded_mcs */ @@ -3052,7 +3052,7 @@ bts->egprs_enabled = 1; /* ARQ I resegmentation support */ - bts->dl_arq_type = EGPRS_ARQ1; + bts->dl_arq_type = false; /* * First parameter is current MCS, second one is demanded_mcs @@ -3083,7 +3083,7 @@ bts->dl_tbf_idle_msec = 200; bts->egprs_enabled = 1; /* ARQ II */ - bts->dl_arq_type = EGPRS_ARQ2; + bts->dl_arq_type = true; for (i = 1; i <= 9; i++) establish_and_use_egprs_dl_tbf(&the_bts, i); -- To view, visit https://gerrit.osmocom.org/13057 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I4d4fe5fe12068a4532cb3b61d4eeb229a77c1476 Gerrit-Change-Number: 13057 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 18:55:27 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Tue, 26 Feb 2019 18:55:27 +0000 Subject: Change in osmo-ccid-firmware[master]: minor: rename MUX_SSTAT to MUX_STAT Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/13058 Change subject: minor: rename MUX_SSTAT to MUX_STAT ...................................................................... minor: rename MUX_SSTAT to MUX_STAT Change-Id: I5eee17de31fdce92346641772fc0c63d4c37507a --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/atmel_start_pins.h M sysmoOCTSIM/driver_init.c 3 files changed, 31 insertions(+), 23 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/58/13058/1 diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index a5b73bd..948d1fb 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -1481,11 +1481,11 @@ mode: Digital input user_label: SWITCH configuration: null - MUX_SSTAT: + MUX_STAT: name: PC15 definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC15 mode: Digital input - user_label: MUX_SSTAT + user_label: MUX_STAT configuration: null SIM1_IO: name: PA16 @@ -1571,6 +1571,16 @@ mode: Digital output user_label: SDA4 configuration: null + UART_TX: + name: PB30 + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB30 + mode: Advanced + user_label: UART_TX + configuration: + pad_direction: Out + pad_function: H + pad_initial_level: Low + pad_pull_config: 'Off' SCL2: name: PB02 definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB02 @@ -1583,14 +1593,4 @@ mode: Digital output user_label: SDA2 configuration: null - UART_TX: - name: PB30 - definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PB30 - mode: Advanced - user_label: UART_TX - configuration: - pad_direction: Out - pad_function: H - pad_initial_level: Low - pad_pull_config: 'Off' toolchain_options: [] diff --git a/sysmoOCTSIM/atmel_start_pins.h b/sysmoOCTSIM/atmel_start_pins.h index a2a4206..c6492fa 100644 --- a/sysmoOCTSIM/atmel_start_pins.h +++ b/sysmoOCTSIM/atmel_start_pins.h @@ -58,7 +58,7 @@ #define SIM2_INT GPIO(GPIO_PORTC, 2) #define SIM3_INT GPIO(GPIO_PORTC, 3) #define SWITCH GPIO(GPIO_PORTC, 14) -#define MUX_SSTAT GPIO(GPIO_PORTC, 15) +#define MUX_STAT GPIO(GPIO_PORTC, 15) #define SIM6_IO GPIO(GPIO_PORTC, 16) #define USER_LED GPIO(GPIO_PORTC, 26) #define SCL4 GPIO(GPIO_PORTC, 27) diff --git a/sysmoOCTSIM/driver_init.c b/sysmoOCTSIM/driver_init.c index f442359..d6eb401 100644 --- a/sysmoOCTSIM/driver_init.c +++ b/sysmoOCTSIM/driver_init.c @@ -708,6 +708,14 @@ // High false); + gpio_set_pin_pull_mode(RMII_CLOCK, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + gpio_set_pin_function(RMII_CLOCK, // Pin function // pad_function @@ -768,6 +776,13 @@ // Out GPIO_DIRECTION_OUT); + gpio_set_pin_level(UART_TX, + // Initial level + // pad_initial_level + // Low + // High + false); + gpio_set_pin_pull_mode(UART_TX, // Pull configuration // pad_pull_config @@ -776,13 +791,6 @@ // Pull-down GPIO_PULL_OFF); - gpio_set_pin_level(UART_TX, - // Initial level - // pad_initial_level - // Low - // High - false); - gpio_set_pin_function(UART_TX, // Pin function // pad_function @@ -883,9 +891,9 @@ // GPIO on PC15 // Set pin direction to input - gpio_set_pin_direction(MUX_SSTAT, GPIO_DIRECTION_IN); + gpio_set_pin_direction(MUX_STAT, GPIO_DIRECTION_IN); - gpio_set_pin_pull_mode(MUX_SSTAT, + gpio_set_pin_pull_mode(MUX_STAT, // Pull configuration // pad_pull_config // Off @@ -893,7 +901,7 @@ // Pull-down GPIO_PULL_OFF); - gpio_set_pin_function(MUX_SSTAT, GPIO_PIN_FUNCTION_OFF); + gpio_set_pin_function(MUX_STAT, GPIO_PIN_FUNCTION_OFF); // GPIO on PC26 -- To view, visit https://gerrit.osmocom.org/13058 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I5eee17de31fdce92346641772fc0c63d4c37507a Gerrit-Change-Number: 13058 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 18:55:28 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Tue, 26 Feb 2019 18:55:28 +0000 Subject: Change in osmo-ccid-firmware[master]: update ASFv4 library Message-ID: K?vin Redon has uploaded this change for review. ( https://gerrit.osmocom.org/13059 Change subject: update ASFv4 library ...................................................................... update ASFv4 library this just updates the ASFv4 library files. most of the time this is just about the line ending, but that will make it easier to see future ASFv4 changes Change-Id: Ic08fd2494b63b611ac4b4e1f35c91bce9aa746c5 --- M sysmoOCTSIM/CMSIS/Include/arm_common_tables.h M sysmoOCTSIM/CMSIS/Include/arm_const_structs.h M sysmoOCTSIM/CMSIS/Include/arm_math.h M sysmoOCTSIM/CMSIS/Include/cmsis_armcc.h M sysmoOCTSIM/CMSIS/Include/cmsis_armclang.h M sysmoOCTSIM/CMSIS/Include/cmsis_compiler.h M sysmoOCTSIM/CMSIS/Include/cmsis_gcc.h M sysmoOCTSIM/CMSIS/Include/core_armv8mbl.h M sysmoOCTSIM/CMSIS/Include/core_armv8mml.h M sysmoOCTSIM/CMSIS/Include/core_cm0.h M sysmoOCTSIM/CMSIS/Include/core_cm0plus.h M sysmoOCTSIM/CMSIS/Include/core_cm23.h M sysmoOCTSIM/CMSIS/Include/core_cm3.h M sysmoOCTSIM/CMSIS/Include/core_cm33.h M sysmoOCTSIM/CMSIS/Include/core_cm4.h M sysmoOCTSIM/CMSIS/Include/core_cm7.h M sysmoOCTSIM/CMSIS/Include/core_sc000.h M sysmoOCTSIM/CMSIS/Include/core_sc300.h M sysmoOCTSIM/CMSIS/Include/tz_context.h M sysmoOCTSIM/gcc/gcc/same54n19a_flash.ld M sysmoOCTSIM/gcc/gcc/same54n19a_sram.ld M sysmoOCTSIM/include/component-version.h M sysmoOCTSIM/include/component/ac.h M sysmoOCTSIM/include/component/adc.h M sysmoOCTSIM/include/component/aes.h M sysmoOCTSIM/include/component/can.h M sysmoOCTSIM/include/component/ccl.h M sysmoOCTSIM/include/component/cmcc.h M sysmoOCTSIM/include/component/dac.h M sysmoOCTSIM/include/component/dmac.h M sysmoOCTSIM/include/component/dsu.h M sysmoOCTSIM/include/component/eic.h M sysmoOCTSIM/include/component/evsys.h M sysmoOCTSIM/include/component/freqm.h M sysmoOCTSIM/include/component/gclk.h M sysmoOCTSIM/include/component/gmac.h M sysmoOCTSIM/include/component/hmatrixb.h M sysmoOCTSIM/include/component/i2s.h M sysmoOCTSIM/include/component/icm.h M sysmoOCTSIM/include/component/mclk.h M sysmoOCTSIM/include/component/nvmctrl.h M sysmoOCTSIM/include/component/osc32kctrl.h M sysmoOCTSIM/include/component/oscctrl.h M sysmoOCTSIM/include/component/pac.h M sysmoOCTSIM/include/component/pcc.h M sysmoOCTSIM/include/component/pdec.h M sysmoOCTSIM/include/component/picop.h M sysmoOCTSIM/include/component/pm.h M sysmoOCTSIM/include/component/port.h M sysmoOCTSIM/include/component/qspi.h M sysmoOCTSIM/include/component/ramecc.h M sysmoOCTSIM/include/component/rstc.h M sysmoOCTSIM/include/component/rtc.h M sysmoOCTSIM/include/component/sdhc.h M sysmoOCTSIM/include/component/sercom.h M sysmoOCTSIM/include/component/supc.h M sysmoOCTSIM/include/component/tc.h M sysmoOCTSIM/include/component/tcc.h M sysmoOCTSIM/include/component/trng.h M sysmoOCTSIM/include/component/usb.h M sysmoOCTSIM/include/component/wdt.h M sysmoOCTSIM/include/instance/ac.h M sysmoOCTSIM/include/instance/adc0.h M sysmoOCTSIM/include/instance/adc1.h M sysmoOCTSIM/include/instance/aes.h M sysmoOCTSIM/include/instance/can0.h M sysmoOCTSIM/include/instance/can1.h M sysmoOCTSIM/include/instance/ccl.h M sysmoOCTSIM/include/instance/cmcc.h M sysmoOCTSIM/include/instance/dac.h M sysmoOCTSIM/include/instance/dmac.h M sysmoOCTSIM/include/instance/dsu.h M sysmoOCTSIM/include/instance/eic.h M sysmoOCTSIM/include/instance/evsys.h M sysmoOCTSIM/include/instance/freqm.h M sysmoOCTSIM/include/instance/gclk.h M sysmoOCTSIM/include/instance/gmac.h M sysmoOCTSIM/include/instance/hmatrix.h M sysmoOCTSIM/include/instance/i2s.h M sysmoOCTSIM/include/instance/icm.h M sysmoOCTSIM/include/instance/mclk.h M sysmoOCTSIM/include/instance/nvmctrl.h M sysmoOCTSIM/include/instance/osc32kctrl.h M sysmoOCTSIM/include/instance/oscctrl.h M sysmoOCTSIM/include/instance/pac.h M sysmoOCTSIM/include/instance/pcc.h M sysmoOCTSIM/include/instance/pdec.h M sysmoOCTSIM/include/instance/picop.h M sysmoOCTSIM/include/instance/pm.h M sysmoOCTSIM/include/instance/port.h M sysmoOCTSIM/include/instance/pukcc.h M sysmoOCTSIM/include/instance/qspi.h M sysmoOCTSIM/include/instance/ramecc.h M sysmoOCTSIM/include/instance/rstc.h M sysmoOCTSIM/include/instance/rtc.h M sysmoOCTSIM/include/instance/sdhc0.h M sysmoOCTSIM/include/instance/sdhc1.h M sysmoOCTSIM/include/instance/sercom0.h M sysmoOCTSIM/include/instance/sercom1.h M sysmoOCTSIM/include/instance/sercom2.h M sysmoOCTSIM/include/instance/sercom3.h M sysmoOCTSIM/include/instance/sercom4.h M sysmoOCTSIM/include/instance/sercom5.h M sysmoOCTSIM/include/instance/sercom6.h M sysmoOCTSIM/include/instance/sercom7.h M sysmoOCTSIM/include/instance/supc.h M sysmoOCTSIM/include/instance/tc0.h M sysmoOCTSIM/include/instance/tc1.h M sysmoOCTSIM/include/instance/tc2.h M sysmoOCTSIM/include/instance/tc3.h M sysmoOCTSIM/include/instance/tc4.h M sysmoOCTSIM/include/instance/tc5.h M sysmoOCTSIM/include/instance/tc6.h M sysmoOCTSIM/include/instance/tc7.h M sysmoOCTSIM/include/instance/tcc0.h M sysmoOCTSIM/include/instance/tcc1.h M sysmoOCTSIM/include/instance/tcc2.h M sysmoOCTSIM/include/instance/tcc3.h M sysmoOCTSIM/include/instance/tcc4.h M sysmoOCTSIM/include/instance/trng.h M sysmoOCTSIM/include/instance/usb.h M sysmoOCTSIM/include/instance/wdt.h M sysmoOCTSIM/include/pio/same54n19a.h M sysmoOCTSIM/include/pio/same54n20a.h M sysmoOCTSIM/include/pio/same54p19a.h M sysmoOCTSIM/include/pio/same54p20a.h M sysmoOCTSIM/include/same54.h M sysmoOCTSIM/include/same54n19a.h M sysmoOCTSIM/include/same54n20a.h M sysmoOCTSIM/include/same54p19a.h M sysmoOCTSIM/include/same54p20a.h M sysmoOCTSIM/include/system_same54.h 132 files changed, 89,907 insertions(+), 89,907 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/59/13059/1 -- To view, visit https://gerrit.osmocom.org/13059 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic08fd2494b63b611ac4b4e1f35c91bce9aa746c5 Gerrit-Change-Number: 13059 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 19:01:01 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 26 Feb 2019 19:01:01 +0000 Subject: Change in osmo-pcu[master]: MCS: internalize 'family' parameter Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/13060 Change subject: MCS: internalize 'family' parameter ...................................................................... MCS: internalize 'family' parameter There's no need to expose it in header file as it's only used internally for consistency checks. Change-Id: Ic705615cd2a8ca077efef9ea62a2a676f70b4aed --- M src/gprs_coding_scheme.cpp M src/gprs_coding_scheme.h 2 files changed, 24 insertions(+), 30 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/60/13060/1 diff --git a/src/gprs_coding_scheme.cpp b/src/gprs_coding_scheme.cpp index 3094ae6..bbac6e7 100644 --- a/src/gprs_coding_scheme.cpp +++ b/src/gprs_coding_scheme.cpp @@ -53,6 +53,13 @@ } }; +enum Family { + FAMILY_INVALID, + FAMILY_A, + FAMILY_B, + FAMILY_C, +}; + static struct { struct { uint8_t bytes; @@ -63,38 +70,38 @@ uint8_t optional_padding_bits; const char *name; GprsCodingScheme::HeaderType data_hdr; - GprsCodingScheme::Family family; + enum Family family; } mcs_info[GprsCodingScheme::NUM_SCHEMES] = { {{0, 0}, {0, 0}, 0, 0, "UNKNOWN", - GprsCodingScheme::HEADER_INVALID, GprsCodingScheme::FAMILY_INVALID}, + GprsCodingScheme::HEADER_INVALID, FAMILY_INVALID}, {{23, 0}, {23, 0}, 20, 0, "CS-1", - GprsCodingScheme::HEADER_GPRS_DATA, GprsCodingScheme::FAMILY_INVALID}, + GprsCodingScheme::HEADER_GPRS_DATA, FAMILY_INVALID}, {{33, 7}, {33, 7}, 30, 0, "CS-2", - GprsCodingScheme::HEADER_GPRS_DATA, GprsCodingScheme::FAMILY_INVALID}, + GprsCodingScheme::HEADER_GPRS_DATA, FAMILY_INVALID}, {{39, 3}, {39, 3}, 36, 0, "CS-3", - GprsCodingScheme::HEADER_GPRS_DATA, GprsCodingScheme::FAMILY_INVALID}, + GprsCodingScheme::HEADER_GPRS_DATA, FAMILY_INVALID}, {{53, 7}, {53, 7}, 50, 0, "CS-4", - GprsCodingScheme::HEADER_GPRS_DATA, GprsCodingScheme::FAMILY_INVALID}, + GprsCodingScheme::HEADER_GPRS_DATA, FAMILY_INVALID}, {{26, 1}, {26, 1}, 22, 0, "MCS-1", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3, GprsCodingScheme::FAMILY_C}, + GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3, FAMILY_C}, {{32, 1}, {32, 1}, 28, 0, "MCS-2", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3, GprsCodingScheme::FAMILY_B}, + GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3, FAMILY_B}, {{41, 1}, {41, 1}, 37, 48, "MCS-3", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3, GprsCodingScheme::FAMILY_A}, + GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3, FAMILY_A}, {{48, 1}, {48, 1}, 44, 0, "MCS-4", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3, GprsCodingScheme::FAMILY_C}, + GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3, FAMILY_C}, {{60, 7}, {59, 6}, 56, 0, "MCS-5", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2, GprsCodingScheme::FAMILY_B}, + GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2, FAMILY_B}, {{78, 7}, {77, 6}, 74, 48, "MCS-6", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2, GprsCodingScheme::FAMILY_A}, + GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2, FAMILY_A}, {{118, 2}, {117, 4}, 56, 0, "MCS-7", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1, GprsCodingScheme::FAMILY_B}, + GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1, FAMILY_B}, {{142, 2}, {141, 4}, 68, 0, "MCS-8", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1, GprsCodingScheme::FAMILY_A}, + GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1, FAMILY_A}, {{154, 2}, {153, 4}, 74, 0, "MCS-9", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1, GprsCodingScheme::FAMILY_A}, + GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1, FAMILY_A}, }; static struct { @@ -220,11 +227,6 @@ return mcs_info[m_scheme].data_hdr; } -GprsCodingScheme::Family GprsCodingScheme::family() const -{ - return mcs_info[m_scheme].family; -} - void GprsCodingScheme::inc(Mode mode) { if (!isCompatible(mode)) @@ -296,10 +298,10 @@ if (*this == o) return true; - if (family() == FAMILY_INVALID) + if (mcs_info[m_scheme].family == FAMILY_INVALID) return false; - return family() == o.family(); + return mcs_info[m_scheme].family == mcs_info[o.m_scheme].family; } bool GprsCodingScheme::isCombinable(GprsCodingScheme o) const diff --git a/src/gprs_coding_scheme.h b/src/gprs_coding_scheme.h index 76cab0f..6087416 100644 --- a/src/gprs_coding_scheme.h +++ b/src/gprs_coding_scheme.h @@ -59,13 +59,6 @@ NUM_HEADER_TYPES }; - enum Family { - FAMILY_INVALID, - FAMILY_A, - FAMILY_B, - FAMILY_C, - }; - GprsCodingScheme(Scheme s = UNKNOWN); operator bool() const {return m_scheme != UNKNOWN;} @@ -108,7 +101,6 @@ const char *name() const; HeaderType headerTypeData() const; HeaderType headerTypeControl() const; - Family family() const; static GprsCodingScheme getBySizeUL(unsigned size); static GprsCodingScheme getGprsByNum(unsigned num); -- To view, visit https://gerrit.osmocom.org/13060 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic705615cd2a8ca077efef9ea62a2a676f70b4aed Gerrit-Change-Number: 13060 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 19:14:02 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Tue, 26 Feb 2019 19:14:02 +0000 Subject: Change in libosmocore[master]: add osmo_string_ringbuffer and osmo_static_string() API Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/13061 Change subject: add osmo_string_ringbuffer and osmo_static_string() API ...................................................................... add osmo_string_ringbuffer and osmo_static_string() API Change-Id: I48f8951de4d209d4cd3ca1aa9ce6137918913125 --- M include/osmocom/core/utils.h M src/utils.c M tests/utils/utils_test.c M tests/utils/utils_test.ok 4 files changed, 639 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/61/13061/1 diff --git a/include/osmocom/core/utils.h b/include/osmocom/core/utils.h index 16159d3..efc9bcc 100644 --- a/include/osmocom/core/utils.h +++ b/include/osmocom/core/utils.h @@ -230,4 +230,33 @@ #define OSMO_STRBUF_PRINTF(STRBUF, fmt, args...) \ OSMO_STRBUF_APPEND(STRBUF, snprintf, fmt, ##args) +/*! State for managing a ringbuffer of static strings. See osmo_static_string(). */ +struct osmo_string_ringbuffer { + /*! Start of the usable memory. */ + char *buf; + /*! Size of the usable memory. */ + size_t buf_size; + /*! Pointer to after the last used static string. */ + char *next; + /*! Most recent usages, for sanity checking. If not NULL, should point to an array of char*[recent_len]. */ + char **recent; + /*! Number of recent usages that is considered as still in use. */ + size_t recent_len; +}; + +char *osmo_string_ringbuffer_get(struct osmo_string_ringbuffer *buf, size_t bufsize); +size_t osmo_string_ringbuffer_avail(struct osmo_string_ringbuffer *buf); +void osmo_string_ringbuffer_clear(struct osmo_string_ringbuffer *buf); + +char *osmo_static_string(size_t bufsize); + +/*! Useful to pass osmo_static_string() and size arguments without repeating the size. + * + * printf("%s\n", osmo_hexdump_buf(OSMO_STATIC_STRING(my_data_len*2), my_data, my_data_len, NULL, false)); + */ +#define OSMO_STATIC_STRING(SIZE) osmo_static_string(SIZE), (SIZE) + +extern struct osmo_string_ringbuffer osmo_static_string_buf_default; +extern struct osmo_string_ringbuffer *osmo_static_string_buf; + /*! @} */ diff --git a/src/utils.c b/src/utils.c index 2d5bcb0..12189b6 100644 --- a/src/utils.c +++ b/src/utils.c @@ -826,4 +826,160 @@ return (sum * 9) % 10 + '0'; } +/*! Return section from a string ringbuffer that is currently considered unused. + * \param[in] buf osmo_string_ringbuffer instance. + * \param[in] bufsize The amount of bytes that should be available, caller needs to include terminating nul. + * \returns Pointer to string buffer, or NULL if there is not enough unused memory available in osmo_static_string_buf. + */ +char *osmo_string_ringbuffer_get(struct osmo_string_ringbuffer *buf, size_t bufsize) +{ + char *ret; + int i; + + if (!bufsize || !buf) + return NULL; + + if (bufsize > buf->buf_size) + return NULL; + + ret = buf->next; + if (ret < buf->buf + || ret + bufsize > buf->buf + buf->buf_size) + ret = buf->buf; + + if (buf->recent) { + if (ret <= buf->recent[0] + && bufsize > buf->recent[0] - ret) + return NULL; + + /* Record used chunk in list of recent buffers */ + for (i = 0; i < buf->recent_len; i++) { + if (!buf->recent[i]) + break; + } + + if (i < buf->recent_len) + buf->recent[i] = ret; + else { + if (buf->recent_len > 1) + memmove(&buf->recent[0], &buf->recent[1], (buf->recent_len - 1) * + sizeof(buf->recent[0])); + buf->recent[buf->recent_len - 1] = ret; + } + } + + buf->next = ret + bufsize; + + return ret; +} + +/*! Reset string ringbuffer to make all of its space available. + * This can be useful to mark a buffer as unused, e.g. to recover from a full buffer, or before and after the caller + * would like to allocate an unusually large buffer. All previously allocated pointers gotten by + * osmo_string_ringbuffer_get() for this ring buffer must no longer be used. */ +void osmo_string_ringbuffer_clear(struct osmo_string_ringbuffer *buf) +{ + if (buf->recent && buf->recent_len) + memset(buf->recent, 0, buf->recent_len * sizeof(buf->recent[0])); + buf->next = NULL; +} + +/*! Return the largest amount of bytes that could be allocated at this point in time. + * \param[in] buf osmo_string_ringbuffer instance. + * \returns Size of largest continuous chunk of bytes available. + */ +size_t osmo_string_ringbuffer_avail(struct osmo_string_ringbuffer *buf) +{ + char *pos = buf->next; + if (pos < buf->buf || pos > buf->buf + buf->buf_size) + pos = buf->buf; + if (buf->recent && buf->recent[0]) { + if (pos <= buf->recent[0]) + return buf->recent[0] - pos; + + return OSMO_MAX(buf->buf_size - (pos - buf->buf), + buf->recent[0] - buf->buf); + } + return buf->buf_size - (pos - buf->buf); +} + +/*! Re-use static string ring buffer not before five osmo_static_string() calls have occured. */ +static char *default_string_buf_recent[5] = {}; + +/*! Currently, the largest requested size within libosmocore is 4100 bytes (msgb_hexdump()), allow for enough space so + * that it can be called any number of times in a row without hitting the recent[] check. To guarantee N untouched + * previous buffers, there has to be space for N+1 buffers. However, a fragmented offset may lead to needing N+2. */ +static char default_string_buf_storage[4100 * (ARRAY_SIZE(default_string_buf_recent) + 2)]; + +struct osmo_string_ringbuffer osmo_static_string_buf_default = { + .buf = default_string_buf_storage, + .buf_size = sizeof(default_string_buf_storage), + .recent = default_string_buf_recent, + .recent_len = ARRAY_SIZE(default_string_buf_recent), +}; + +struct osmo_string_ringbuffer *osmo_static_string_buf = &osmo_static_string_buf_default; + +/*! Return a static string buffer that can hold the given string length plus an additional nul character, or abort the + * program if no buffer is available. + * + * The idea is to provide distinct string buffers for various osmo_xxx_name() API implementations, so that the same + * osmo_xxx_name() function can be used multiple times in the same print format arguments. + * + * Use osmo_static_string_buf, which can be redirected by the caller to a larger buffer, if required. By default, + * osmo_static_string_buf points at osmo_static_string_buf_default, so that no initialization is necessary by the + * caller. + * + * It is the responsibility of the caller to ensure that enough string buffer space is available. If insufficient space + * is detected, abort the program using OSMO_ASSERT(false). + * + * Insufficient space is detected by considering the last N allocations as still used. Depending on the amount of bytes + * reserved each time, there can in practice be many more than N allocations without overlapping. If, for example, + * osmo_static_string_buf is configured to guarantee 5 allocations of 4100 bytes each without overlaps, that would also + * allow for 50 non-overlapping allocations of 410 bytes each. Hence this mechanism merely ensures basic sanity, so that + * the caller can at all times be sure that at least 5 concurrent allocations will succeed, and will receive a program + * error otherwise. + * + * \param bufsize The amount of bytes that should be available, caller needs to include terminating nul. + * \returns Pointer to string buffer. + */ +char *osmo_static_string(size_t bufsize) +{ + char *ret = osmo_string_ringbuffer_get(osmo_static_string_buf, bufsize); + /* If we're going to assert because of no more static strings being available, print out a status to stderr + * first. */ + if (!ret) { + int i; + fprintf(stderr, "\n\n" + "*** Static ringbuffer full:\n" + " avail = %zu\n" + " requested %zu\n" + " size = %zu\n", + osmo_string_ringbuffer_avail(osmo_static_string_buf), + bufsize, + osmo_static_string_buf->buf_size); + +#define PRINT_IDX(val, label_fmt, label_args...) \ + if (osmo_static_string_buf->val >= osmo_static_string_buf->buf \ + && osmo_static_string_buf->val <= (osmo_static_string_buf->buf + osmo_static_string_buf->buf_size)) \ + fprintf(stderr, " [%zu] " label_fmt "\n", \ + osmo_static_string_buf->val - osmo_static_string_buf->buf, ## label_args); \ + else \ + fprintf(stderr, " " label_fmt " out of bounds\n", ## label_args); + + PRINT_IDX(next, "next"); + if (osmo_static_string_buf->recent) { + for (i = 0; i < osmo_static_string_buf->recent_len; i++) { + if (!osmo_static_string_buf->recent[i]) + continue; + PRINT_IDX(recent[i], "recent[%d]", i); + } + } + +#undef PRINT_IDX + } + OSMO_ASSERT(ret); + return ret; +} + /*! @} */ diff --git a/tests/utils/utils_test.c b/tests/utils/utils_test.c index d592fe0..73589d6 100644 --- a/tests/utils/utils_test.c +++ b/tests/utils/utils_test.c @@ -1022,6 +1022,115 @@ printf("(need %d chars, had size=63) %s\n", rc, buf); } +static void string_ringbuf_test_print_pos(struct osmo_string_ringbuffer *b, char *pos, const char* label) +{ + int i; + const char *marker = "^"; + if (pos < b->buf) { + pos = b->buf; + marker = "<-"; + } + if (pos > b->buf + b->buf_size) { + pos = b->buf + b->buf_size + 5; + marker = "->"; + } + for (i = 0; i < (pos - b->buf); i++) + printf(" "); + printf(" " "%s%s\n", marker, label); +} + +void string_ringbuf_test_get(struct osmo_string_ringbuffer *b, size_t len) +{ + char *ret = osmo_string_ringbuffer_get(b, len); + int i; + static char marker = 'a'; + printf("osmo_string_ringbuffer_get(%2zu) -> ", len); + if (!ret) + printf("NULL"); + else { + + printf("buf[%zu]", ret - b->buf); + for (i = 0; i < len; i++) + ret[i] = marker; + } + printf("\n"); + + printf("buf = ["); + for (i = 0; i < b->buf_size; i++) + printf("%c", b->buf[i]? : '_'); + printf("]\n"); + string_ringbuf_test_print_pos(b, b->next, "next"); + for (i = b->recent_len-1; i >= 0; i--) + string_ringbuf_test_print_pos(b, b->recent[i], "recent"); + printf("avail = %zu\n", osmo_string_ringbuffer_avail(b)); + + marker++; + if (marker > 'z') + marker = 'a'; +} + +void string_ringbuf_test() +{ + char buf[23] = {}; + char *recent[3] = {}; + struct osmo_string_ringbuffer _b = { + .buf = buf, + .buf_size = sizeof(buf), + .recent = recent, + .recent_len = ARRAY_SIZE(recent), + }; + struct osmo_string_ringbuffer *b = &_b; + +#define CLEAR \ + memset(buf, 0, sizeof(buf)); \ + osmo_string_ringbuffer_clear(b); + + int i; + + + printf("\n\n%s\n", __func__); + + printf("\n*** Test continuous small buffers\n"); + for (i = 0; i < 26; i++) + string_ringbuf_test_get(b, i&1? 5 : 3); + + printf("\n*** Test exact use\n"); + CLEAR + string_ringbuf_test_get(b, 5); + string_ringbuf_test_get(b, 5); + string_ringbuf_test_get(b, 10); + string_ringbuf_test_get(b, 3); + string_ringbuf_test_get(b, 5); + string_ringbuf_test_get(b, 5); + string_ringbuf_test_get(b, 10); + string_ringbuf_test_get(b, 3); + + printf("\n*** Test deadlock\n"); + CLEAR + string_ringbuf_test_get(b, 5); + string_ringbuf_test_get(b, 15); + string_ringbuf_test_get(b, 3); + string_ringbuf_test_get(b, 1); + string_ringbuf_test_get(b, 1); + + printf("\n*** Test deadlock (2)\n"); + CLEAR + string_ringbuf_test_get(b, 23); + string_ringbuf_test_get(b, 1); + string_ringbuf_test_get(b, 1); + + printf("\n*** Test bounds checking: available size\n"); + CLEAR + string_ringbuf_test_get(b, 30); + string_ringbuf_test_get(b, 10); + string_ringbuf_test_get(b, 10); + string_ringbuf_test_get(b, 4); + + printf("\nTest bounds checking: invalid args\n"); + string_ringbuf_test_get(b, 0); + OSMO_ASSERT(osmo_string_ringbuffer_get(NULL, 10) == NULL); +} + int main(int argc, char **argv) { static const struct log_info log_info = {}; @@ -1040,5 +1149,6 @@ osmo_sockaddr_to_str_and_uint_test(); osmo_str_tolowupper_test(); strbuf_test(); + string_ringbuf_test(); return 0; } diff --git a/tests/utils/utils_test.ok b/tests/utils/utils_test.ok index 1215ddd..48574cb 100644 --- a/tests/utils/utils_test.ok +++ b/tests/utils/utils_test.ok @@ -342,3 +342,347 @@ (need 134 chars) T minus 10 9 8 7 6 5 4 3 2 1 ... Lift off! -- T minus 10 9 8 7 6 5 4 3 2 1 ... Lift off! -- T minus 10 9 8 7 6 5 4 3 2 1 ... Lift off! (need 134 chars, had size=63) T minus 10 9 8 7 6 5 4 3 2 1 ... Lift off! -- T minus 10 9 8 7 + + +string_ringbuf_test + +*** Test continuous small buffers +osmo_string_ringbuffer_get( 3) -> buf[0] +buf = [aaa____________________] + ^next + <-recent + <-recent + ^recent +avail = 20 +osmo_string_ringbuffer_get( 5) -> buf[3] +buf = [aaabbbbb_______________] + ^next + <-recent + ^recent + ^recent +avail = 15 +osmo_string_ringbuffer_get( 3) -> buf[8] +buf = [aaabbbbbccc____________] + ^next + ^recent + ^recent + ^recent +avail = 12 +osmo_string_ringbuffer_get( 5) -> buf[11] +buf = [aaabbbbbcccddddd_______] + ^next + ^recent + ^recent + ^recent +avail = 7 +osmo_string_ringbuffer_get( 3) -> buf[16] +buf = [aaabbbbbcccdddddeee____] + ^next + ^recent + ^recent + ^recent +avail = 8 +osmo_string_ringbuffer_get( 5) -> buf[0] +buf = [fffffbbbcccdddddeee____] + ^next + ^recent + ^recent + ^recent +avail = 6 +osmo_string_ringbuffer_get( 3) -> buf[5] +buf = [fffffgggcccdddddeee____] + ^next + ^recent + ^recent + ^recent +avail = 8 +osmo_string_ringbuffer_get( 5) -> buf[8] +buf = [fffffggghhhhhdddeee____] + ^next + ^recent + ^recent + ^recent +avail = 10 +osmo_string_ringbuffer_get( 3) -> buf[13] +buf = [fffffggghhhhhiiieee____] + ^next + ^recent + ^recent + ^recent +avail = 7 +osmo_string_ringbuffer_get( 5) -> buf[16] +buf = [fffffggghhhhhiiijjjjj__] + ^next + ^recent + ^recent + ^recent +avail = 8 +osmo_string_ringbuffer_get( 3) -> buf[0] +buf = [kkkffggghhhhhiiijjjjj__] + ^next + ^recent + ^recent + ^recent +avail = 10 +osmo_string_ringbuffer_get( 5) -> buf[3] +buf = [kkklllllhhhhhiiijjjjj__] + ^next + ^recent + ^recent + ^recent +avail = 8 +osmo_string_ringbuffer_get( 3) -> buf[8] +buf = [kkklllllmmmhhiiijjjjj__] + ^next + ^recent + ^recent + ^recent +avail = 12 +osmo_string_ringbuffer_get( 5) -> buf[11] +buf = [kkklllllmmmnnnnnjjjjj__] + ^next + ^recent + ^recent + ^recent +avail = 7 +osmo_string_ringbuffer_get( 3) -> buf[16] +buf = [kkklllllmmmnnnnnooojj__] + ^next + ^recent + ^recent + ^recent +avail = 8 +osmo_string_ringbuffer_get( 5) -> buf[0] +buf = [ppppplllmmmnnnnnooojj__] + ^next + ^recent + ^recent + ^recent +avail = 6 +osmo_string_ringbuffer_get( 3) -> buf[5] +buf = [pppppqqqmmmnnnnnooojj__] + ^next + ^recent + ^recent + ^recent +avail = 8 +osmo_string_ringbuffer_get( 5) -> buf[8] +buf = [pppppqqqrrrrrnnnooojj__] + ^next + ^recent + ^recent + ^recent +avail = 10 +osmo_string_ringbuffer_get( 3) -> buf[13] +buf = [pppppqqqrrrrrsssooojj__] + ^next + ^recent + ^recent + ^recent +avail = 7 +osmo_string_ringbuffer_get( 5) -> buf[16] +buf = [pppppqqqrrrrrsssttttt__] + ^next + ^recent + ^recent + ^recent +avail = 8 +osmo_string_ringbuffer_get( 3) -> buf[0] +buf = [uuuppqqqrrrrrsssttttt__] + ^next + ^recent + ^recent + ^recent +avail = 10 +osmo_string_ringbuffer_get( 5) -> buf[3] +buf = [uuuvvvvvrrrrrsssttttt__] + ^next + ^recent + ^recent + ^recent +avail = 8 +osmo_string_ringbuffer_get( 3) -> buf[8] +buf = [uuuvvvvvwwwrrsssttttt__] + ^next + ^recent + ^recent + ^recent +avail = 12 +osmo_string_ringbuffer_get( 5) -> buf[11] +buf = [uuuvvvvvwwwxxxxxttttt__] + ^next + ^recent + ^recent + ^recent +avail = 7 +osmo_string_ringbuffer_get( 3) -> buf[16] +buf = [uuuvvvvvwwwxxxxxyyytt__] + ^next + ^recent + ^recent + ^recent +avail = 8 +osmo_string_ringbuffer_get( 5) -> buf[0] +buf = [zzzzzvvvwwwxxxxxyyytt__] + ^next + ^recent + ^recent + ^recent +avail = 6 + +*** Test exact use +osmo_string_ringbuffer_get( 5) -> buf[0] +buf = [aaaaa__________________] + ^next + <-recent + <-recent + ^recent +avail = 18 +osmo_string_ringbuffer_get( 5) -> buf[5] +buf = [aaaaabbbbb_____________] + ^next + <-recent + ^recent + ^recent +avail = 13 +osmo_string_ringbuffer_get(10) -> buf[10] +buf = [aaaaabbbbbcccccccccc___] + ^next + ^recent + ^recent + ^recent +avail = 3 +osmo_string_ringbuffer_get( 3) -> buf[20] +buf = [aaaaabbbbbccccccccccddd] + ^next + ^recent + ^recent + ^recent +avail = 5 +osmo_string_ringbuffer_get( 5) -> buf[0] +buf = [eeeeebbbbbccccccccccddd] + ^next + ^recent + ^recent + ^recent +avail = 5 +osmo_string_ringbuffer_get( 5) -> buf[5] +buf = [eeeeefffffccccccccccddd] + ^next + ^recent + ^recent + ^recent +avail = 10 +osmo_string_ringbuffer_get(10) -> buf[10] +buf = [eeeeefffffggggggggggddd] + ^next + ^recent + ^recent + ^recent +avail = 3 +osmo_string_ringbuffer_get( 3) -> buf[20] +buf = [eeeeefffffgggggggggghhh] + ^next + ^recent + ^recent + ^recent +avail = 5 + +*** Test deadlock +osmo_string_ringbuffer_get( 5) -> buf[0] +buf = [iiiii__________________] + ^next + <-recent + <-recent + ^recent +avail = 18 +osmo_string_ringbuffer_get(15) -> buf[5] +buf = [iiiiijjjjjjjjjjjjjjj___] + ^next + <-recent + ^recent + ^recent +avail = 3 +osmo_string_ringbuffer_get( 3) -> buf[20] +buf = [iiiiijjjjjjjjjjjjjjjkkk] + ^next + ^recent + ^recent + ^recent +avail = 0 +osmo_string_ringbuffer_get( 1) -> NULL +buf = [iiiiijjjjjjjjjjjjjjjkkk] + ^next + ^recent + ^recent + ^recent +avail = 0 +osmo_string_ringbuffer_get( 1) -> NULL +buf = [iiiiijjjjjjjjjjjjjjjkkk] + ^next + ^recent + ^recent + ^recent +avail = 0 + +*** Test deadlock (2) +osmo_string_ringbuffer_get(23) -> buf[0] +buf = [nnnnnnnnnnnnnnnnnnnnnnn] + ^next + <-recent + <-recent + ^recent +avail = 0 +osmo_string_ringbuffer_get( 1) -> NULL +buf = [nnnnnnnnnnnnnnnnnnnnnnn] + ^next + <-recent + <-recent + ^recent +avail = 0 +osmo_string_ringbuffer_get( 1) -> NULL +buf = [nnnnnnnnnnnnnnnnnnnnnnn] + ^next + <-recent + <-recent + ^recent +avail = 0 + +*** Test bounds checking: available size +osmo_string_ringbuffer_get(30) -> NULL +buf = [_______________________] + <-next + <-recent + <-recent + <-recent +avail = 23 +osmo_string_ringbuffer_get(10) -> buf[0] +buf = [rrrrrrrrrr_____________] + ^next + <-recent + <-recent + ^recent +avail = 13 +osmo_string_ringbuffer_get(10) -> buf[10] +buf = [rrrrrrrrrrssssssssss___] + ^next + <-recent + ^recent + ^recent +avail = 3 +osmo_string_ringbuffer_get( 4) -> NULL +buf = [rrrrrrrrrrssssssssss___] + ^next + <-recent + ^recent + ^recent +avail = 3 + +Test bounds checking: invalid args +osmo_string_ringbuffer_get( 0) -> NULL +buf = [rrrrrrrrrrssssssssss___] + ^next + <-recent + ^recent + ^recent +avail = 3 -- To view, visit https://gerrit.osmocom.org/13061 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I48f8951de4d209d4cd3ca1aa9ce6137918913125 Gerrit-Change-Number: 13061 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 19:14:02 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Tue, 26 Feb 2019 19:14:02 +0000 Subject: Change in libosmocore[master]: use osmo_static_string() instead of numerous static buffers Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/13062 Change subject: use osmo_static_string() instead of numerous static buffers ...................................................................... use osmo_static_string() instead of numerous static buffers Change-Id: Id0eab72fa71630c8eb9edafaa370a41ca16329aa --- M include/osmocom/gsm/gsm0808_utils.h M include/osmocom/gsm/gsm23003.h M src/fsm.c M src/gb/gprs_ns.c M src/gsm/abis_nm.c M src/gsm/apn.c M src/gsm/gsm0808_utils.c M src/gsm/gsm23003.c M src/gsm/gsm48.c M src/gsm/gsm_utils.c M src/gsm/rsl.c M src/msgb.c M src/sim/core.c M src/socket.c M src/utils.c 15 files changed, 119 insertions(+), 94 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/62/13062/1 diff --git a/include/osmocom/gsm/gsm0808_utils.h b/include/osmocom/gsm/gsm0808_utils.h index e1e345d..4ca355a 100644 --- a/include/osmocom/gsm/gsm0808_utils.h +++ b/include/osmocom/gsm/gsm0808_utils.h @@ -73,7 +73,8 @@ { return get_value_string(gsm0808_cell_id_discr_names, id_discr); } const char *gsm0808_cell_id_name(const struct gsm0808_cell_id *cid); -const char *gsm0808_cell_id_name2(const struct gsm0808_cell_id *cid); +const char *gsm0808_cell_id_name2(const struct gsm0808_cell_id *cid) + OSMO_DEPRECATED("Use gsm0808_cell_id_name() instead, which now returns distinct static buffers for every invocation"); const char *gsm0808_cell_id_list_name(const struct gsm0808_cell_id_list2 *cil); int gsm0808_cell_id_list_name_buf(char *buf, size_t buflen, const struct gsm0808_cell_id_list2 *cil); int gsm0808_cell_id_u_name(char *buf, size_t buflen, diff --git a/include/osmocom/gsm/gsm23003.h b/include/osmocom/gsm/gsm23003.h index b34a677..7c04760 100644 --- a/include/osmocom/gsm/gsm23003.h +++ b/include/osmocom/gsm/gsm23003.h @@ -99,9 +99,11 @@ const char *osmo_mnc_name(uint16_t mnc, bool mnc_3_digits); const char *osmo_plmn_name(const struct osmo_plmn_id *plmn); const char *osmo_plmn_name2(const struct osmo_plmn_id *plmn); + OSMO_DEPRECATED("Use osmo_plmn_name() instead, which now returns distinct static buffers for every invocation"); const char *osmo_lai_name(const struct osmo_location_area_id *lai); const char *osmo_cgi_name(const struct osmo_cell_global_id *cgi); const char *osmo_cgi_name2(const struct osmo_cell_global_id *cgi); + OSMO_DEPRECATED("Use osmo_cgi_name() instead, which now returns distinct static buffers for every invocation"); const char *osmo_gummei_name(const struct osmo_gummei *gummei); void osmo_plmn_to_bcd(uint8_t *bcd_dst, const struct osmo_plmn_id *plmn); diff --git a/src/fsm.c b/src/fsm.c index 6e15ab7..e8c008e 100644 --- a/src/fsm.c +++ b/src/fsm.c @@ -391,9 +391,10 @@ */ const char *osmo_fsm_event_name(struct osmo_fsm *fsm, uint32_t event) { - static char buf[32]; if (!fsm->event_names) { - snprintf(buf, sizeof(buf), "%"PRIu32, event); + const size_t len = 32; + char *buf = osmo_static_string(len); + snprintf(buf, len, "%"PRIu32, event); return buf; } else return get_value_string(fsm->event_names, event); @@ -421,9 +422,10 @@ */ const char *osmo_fsm_state_name(struct osmo_fsm *fsm, uint32_t state) { - static char buf[32]; if (state >= fsm->num_states) { - snprintf(buf, sizeof(buf), "unknown %"PRIu32, state); + const size_t len = 32; + char *buf = osmo_static_string(len); + snprintf(buf, len, "unknown %"PRIu32, state); return buf; } else return fsm->states[state].name; diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c index 54964d3..5706701 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -1203,15 +1203,16 @@ const char *gprs_ns_ll_str(const struct gprs_nsvc *nsvc) { - static char buf[80]; + const size_t buflen = 80; + char *buf = osmo_static_string(buflen); switch(nsvc->ll) { case GPRS_NS_LL_UDP: - snprintf(buf, sizeof(buf), "%s:%u", + snprintf(buf, buflen, "%s:%u", inet_ntoa(nsvc->ip.bts_addr.sin_addr), osmo_ntohs(nsvc->ip.bts_addr.sin_port)); break; case GPRS_NS_LL_FR_GRE: - snprintf(buf, sizeof(buf), "%s:%u", + snprintf(buf, buflen, "%s:%u", inet_ntoa(nsvc->frgre.bts_addr.sin_addr), osmo_ntohs(nsvc->frgre.bts_addr.sin_port)); break; default: @@ -1219,7 +1220,7 @@ break; } - buf[sizeof(buf) - 1] = '\0'; + buf[buflen - 1] = '\0'; return buf; } diff --git a/src/gsm/abis_nm.c b/src/gsm/abis_nm.c index 49d05ba..5b8df57 100644 --- a/src/gsm/abis_nm.c +++ b/src/gsm/abis_nm.c @@ -930,8 +930,9 @@ const char *abis_nm_dump_foh(const struct abis_om_fom_hdr *foh) { - static char foh_buf[128]; - snprintf(foh_buf, sizeof(foh_buf), "OC=%s(%02x) INST=(%02x,%02x,%02x)", + const size_t len = 128; + char *foh_buf = osmo_static_string(len); + snprintf(foh_buf, len, "OC=%s(%02x) INST=(%02x,%02x,%02x)", get_value_string(abis_nm_obj_class_names, foh->obj_class), foh->obj_class, foh->obj_inst.bts_nr, foh->obj_inst.trx_nr, foh->obj_inst.ts_nr); diff --git a/src/gsm/apn.c b/src/gsm/apn.c index 2674663..99030d4 100644 --- a/src/gsm/apn.c +++ b/src/gsm/apn.c @@ -25,6 +25,7 @@ #include #include +#include #include #define APN_OI_GPRS_FMT "mnc%03u.mcc%03u.gprs" @@ -34,9 +35,11 @@ char *osmo_apn_qualify(unsigned int mcc, unsigned int mnc, const char *ni) { - snprintf(apn_strbuf, sizeof(apn_strbuf)-1, APN_GPRS_FMT, + const size_t len = APN_MAXLEN+1; + char *buf = osmo_static_string(len); + snprintf(buf, len-1, APN_GPRS_FMT, ni, mnc, mcc); - apn_strbuf[sizeof(apn_strbuf)-1] = '\0'; + apn_strbuf[len-1] = '\0'; return apn_strbuf; } diff --git a/src/gsm/gsm0808_utils.c b/src/gsm/gsm0808_utils.c index 54ec19c..eee6b2b 100644 --- a/src/gsm/gsm0808_utils.c +++ b/src/gsm/gsm0808_utils.c @@ -1581,8 +1581,7 @@ */ const char *gsm0808_cell_id_name(const struct gsm0808_cell_id *cid) { - static char buf[64]; - return gsm0808_cell_id_name_buf(cid, buf, sizeof(buf)); + return gsm0808_cell_id_name_buf(cid, OSMO_STATIC_STRING(64)); } /*! Like gsm0808_cell_id_name() but uses a different static buffer. @@ -1591,8 +1590,7 @@ */ const char *gsm0808_cell_id_name2(const struct gsm0808_cell_id *cid) { - static char buf[64]; - return gsm0808_cell_id_name_buf(cid, buf, sizeof(buf)); + return gsm0808_cell_id_name(cid); } /*! Return a human readable representation of the Cell Identifier List, like @@ -1640,8 +1638,9 @@ * See also gsm0808_cell_id_list_name_buf(). */ const char *gsm0808_cell_id_list_name(const struct gsm0808_cell_id_list2 *cil) { - static char buf[1024]; - gsm0808_cell_id_list_name_buf(buf, sizeof(buf), cil); + const size_t len = 1024; + char *buf = osmo_static_string(len); + gsm0808_cell_id_list_name_buf(buf, len, cil); return buf; } @@ -1650,8 +1649,9 @@ const char *gsm0808_channel_type_name(const struct gsm0808_channel_type *ct) { - static char buf[128]; - snprintf(buf, sizeof(buf), "ch_indctr=0x%x ch_rate_type=0x%x perm_spch=%s", + const size_t len = 128; + char *buf = osmo_static_string(len); + snprintf(buf, len, "ch_indctr=0x%x ch_rate_type=0x%x perm_spch=%s", ct->ch_indctr, ct->ch_rate_type, osmo_hexdump(ct->perm_spch, ct->perm_spch_len)); return buf; diff --git a/src/gsm/gsm23003.c b/src/gsm/gsm23003.c index 95fca91..0f3fa2d 100644 --- a/src/gsm/gsm23003.c +++ b/src/gsm/gsm23003.c @@ -95,8 +95,9 @@ */ const char *osmo_mcc_name(uint16_t mcc) { - static char buf[8]; - snprintf(buf, sizeof(buf), "%03u", mcc); + const size_t len = 8; + char *buf = osmo_static_string(len); + snprintf(buf, len, "%03u", mcc); return buf; } @@ -107,8 +108,9 @@ */ const char *osmo_mnc_name(uint16_t mnc, bool mnc_3_digits) { - static char buf[8]; - snprintf(buf, sizeof(buf), "%0*u", mnc_3_digits ? 3 : 2, mnc); + const size_t len = 8; + char *buf = osmo_static_string(len); + snprintf(buf, len, "%0*u", mnc_3_digits ? 3 : 2, mnc); return buf; } @@ -124,8 +126,9 @@ */ const char *osmo_plmn_name(const struct osmo_plmn_id *plmn) { - static char buf[16]; - plmn_name(buf, sizeof(buf), plmn); + const size_t len = 16; + char *buf = osmo_static_string(len); + plmn_name(buf, len, plmn); return buf; } @@ -135,9 +138,7 @@ */ const char *osmo_plmn_name2(const struct osmo_plmn_id *plmn) { - static char buf[16]; - plmn_name(buf, sizeof(buf), plmn); - return buf; + return osmo_plmn_name(plmn); } /*! Return MCC-MNC-LAC as string, in a static buffer. @@ -146,8 +147,9 @@ */ const char *osmo_lai_name(const struct osmo_location_area_id *lai) { - static char buf[32]; - snprintf(buf, sizeof(buf), "%s-%u", osmo_plmn_name(&lai->plmn), lai->lac); + const size_t len = 32; + char *buf = osmo_static_string(len); + snprintf(buf, len, "%s-%u", osmo_plmn_name(&lai->plmn), lai->lac); return buf; } @@ -163,8 +165,9 @@ */ const char *osmo_cgi_name(const struct osmo_cell_global_id *cgi) { - static char buf[32]; - return _cgi_name(cgi, buf, sizeof(buf)); + const size_t len = 32; + char *buf = osmo_static_string(len); + return _cgi_name(cgi, buf, len); } /*! Same as osmo_cgi_name(), but uses a different static buffer. @@ -174,8 +177,7 @@ */ const char *osmo_cgi_name2(const struct osmo_cell_global_id *cgi) { - static char buf[32]; - return _cgi_name(cgi, buf, sizeof(buf)); + return osmo_cgi_name(cgi); } static void to_bcd(uint8_t *bcd, uint16_t val) @@ -189,8 +191,9 @@ const char *osmo_gummei_name(const struct osmo_gummei *gummei) { - static char buf[32]; - snprintf(buf, sizeof(buf), "%s-%04x-%02x", osmo_plmn_name(&gummei->plmn), + const size_t len = 32; + char *buf = osmo_static_string(len); + snprintf(buf, len, "%s-%04x-%02x", osmo_plmn_name(&gummei->plmn), gummei->mme.group_id, gummei->mme.code); return buf; } diff --git a/src/gsm/gsm48.c b/src/gsm/gsm48.c index 4166c15..d91c9ae 100644 --- a/src/gsm/gsm48.c +++ b/src/gsm/gsm48.c @@ -188,8 +188,9 @@ */ const char *osmo_rai_name(const struct gprs_ra_id *rai) { - static char buf[32]; - snprintf(buf, sizeof(buf), "%s-%s-%u-%u", + const size_t len = 32; + char *buf = osmo_static_string(len); + snprintf(buf, len, "%s-%s-%u-%u", osmo_mcc_name(rai->mcc), osmo_mnc_name(rai->mnc, rai->mnc_3_digits), rai->lac, rai->rac); return buf; @@ -440,7 +441,8 @@ */ const char *osmo_mi_name(const uint8_t *mi, uint8_t mi_len) { - static char mi_name[10 + GSM48_MI_SIZE + 1]; + const size_t mi_name_len = 10 + GSM48_MI_SIZE + 1; + char *mi_name = osmo_static_string(mi_name_len); uint8_t mi_type; uint32_t tmsi; char mi_string[GSM48_MI_SIZE]; @@ -452,7 +454,7 @@ /* Table 10.5.4.3, reverse generate_mid_from_tmsi */ if (mi_len == GSM48_TMSI_LEN && mi[0] == (0xf0 | GSM_MI_TYPE_TMSI)) { tmsi = osmo_load32be(&mi[1]); - snprintf(mi_name, sizeof(mi_name), "TMSI-0x%08" PRIX32, tmsi); + snprintf(mi_name, mi_name_len, "TMSI-0x%08" PRIX32, tmsi); return mi_name; } return "TMSI-invalid"; @@ -461,7 +463,7 @@ case GSM_MI_TYPE_IMEI: case GSM_MI_TYPE_IMEISV: osmo_bcd2str(mi_string, sizeof(mi_string), mi, 1, (mi_len * 2) - (mi[0] & GSM_MI_ODD ? 0 : 1), true); - snprintf(mi_name, sizeof(mi_name), "%s-%s", gsm48_mi_type_name(mi_type), mi_string); + snprintf(mi_name, mi_name_len, "%s-%s", gsm48_mi_type_name(mi_type), mi_string); return mi_name; default: @@ -1059,7 +1061,8 @@ */ const char *gsm48_pdisc_msgtype_name(uint8_t pdisc, uint8_t msg_type) { - static char namebuf[64]; + const size_t len = 64; + char *buf = osmo_static_string(len); const struct value_string *msgt_names; switch (pdisc) { @@ -1083,9 +1086,9 @@ if (msgt_names) return get_value_string(msgt_names, msg_type); - snprintf(namebuf, sizeof(namebuf), "%s:0x%02x", + snprintf(buf, len, "%s:0x%02x", gsm48_pdisc_name(pdisc), msg_type); - return namebuf; + return buf; } const struct value_string gsm48_reject_value_names[] = { @@ -1189,7 +1192,8 @@ */ const char *osmo_gsm48_classmark_a5_name(const struct osmo_gsm48_classmark *cm) { - static char buf[128]; + const size_t len = 128; + char *buf = osmo_static_string(len); char cm1[42] = "no-cm1"; char cm2[42] = " no-cm2"; char cm3[42] = " no-cm2"; @@ -1212,7 +1216,7 @@ cm->classmark3[0] & (1 << 2) ? " A5/6" : "", cm->classmark3[0] & (1 << 3) ? " A5/7" : ""); - snprintf(buf, sizeof(buf), "%s%s%s", cm1, cm2, cm3); + snprintf(buf, len, "%s%s%s", cm1, cm2, cm3); return buf; } diff --git a/src/gsm/gsm_utils.c b/src/gsm/gsm_utils.c index 02cb3d5..8ae63e4 100644 --- a/src/gsm/gsm_utils.c +++ b/src/gsm/gsm_utils.c @@ -883,11 +883,12 @@ char *osmo_dump_gsmtime(const struct gsm_time *tm) { - static char buf[64]; + const size_t len = 64; + char *buf = osmo_static_string(len); - snprintf(buf, sizeof(buf), "%06"PRIu32"/%02"PRIu16"/%02"PRIu8"/%02"PRIu8"/%02"PRIu8, + snprintf(buf, len, "%06"PRIu32"/%02"PRIu16"/%02"PRIu8"/%02"PRIu8"/%02"PRIu8, tm->fn, tm->t1, tm->t2, tm->t3, (uint8_t)tm->fn%52); - buf[sizeof(buf)-1] = '\0'; + buf[len-1] = '\0'; return buf; } diff --git a/src/gsm/rsl.c b/src/gsm/rsl.c index e610ebf..47bd815 100644 --- a/src/gsm/rsl.c +++ b/src/gsm/rsl.c @@ -218,7 +218,7 @@ /*! Get human-readable string for RSL channel number */ const char *rsl_chan_nr_str(uint8_t chan_nr) { - static char str[20]; + char *str = osmo_static_string(20); int ts = chan_nr & 7; uint8_t cbits = chan_nr >> 3; diff --git a/src/msgb.c b/src/msgb.c index 3902f6e..2372c64 100644 --- a/src/msgb.c +++ b/src/msgb.c @@ -398,7 +398,8 @@ */ const char *msgb_hexdump(const struct msgb *msg) { - static char buf[4100]; + const size_t len = 4100; + char *buf = osmo_static_string(len); int buf_offs = 0; int nchars; const unsigned char *start = msg->data; @@ -421,32 +422,32 @@ if (lxhs[i] > msg->tail) continue; if (lxhs[i] < msg->data || lxhs[i] > msg->tail) { - nchars = snprintf(buf + buf_offs, sizeof(buf) - buf_offs, + nchars = snprintf(buf + buf_offs, len - buf_offs, "(L%d=data%+" PRIdPTR ") ", i+1, lxhs[i] - msg->data); buf_offs += nchars; continue; } if (lxhs[i] < start) { - nchars = snprintf(buf + buf_offs, sizeof(buf) - buf_offs, + nchars = snprintf(buf + buf_offs, len - buf_offs, "(L%d%+" PRIdPTR ") ", i+1, start - lxhs[i]); buf_offs += nchars; continue; } - nchars = snprintf(buf + buf_offs, sizeof(buf) - buf_offs, + nchars = snprintf(buf + buf_offs, len - buf_offs, "%s[L%d]> ", osmo_hexdump(start, lxhs[i] - start), i+1); - if (nchars < 0 || nchars + buf_offs >= sizeof(buf)) + if (nchars < 0 || nchars + buf_offs >= len) return "ERROR"; buf_offs += nchars; start = lxhs[i]; } - nchars = snprintf(buf + buf_offs, sizeof(buf) - buf_offs, + nchars = snprintf(buf + buf_offs, len - buf_offs, "%s", osmo_hexdump(start, msg->tail - start)); - if (nchars < 0 || nchars + buf_offs >= sizeof(buf)) + if (nchars < 0 || nchars + buf_offs >= len) return "ERROR"; buf_offs += nchars; @@ -456,17 +457,17 @@ continue; if (lxhs[i] < msg->head || lxhs[i] > msg->head + msg->data_len) { - nchars = snprintf(buf + buf_offs, sizeof(buf) - buf_offs, + nchars = snprintf(buf + buf_offs, len - buf_offs, "(L%d out of range) ", i+1); } else if (lxhs[i] <= msg->data + msg->data_len && lxhs[i] > msg->tail) { - nchars = snprintf(buf + buf_offs, sizeof(buf) - buf_offs, + nchars = snprintf(buf + buf_offs, len - buf_offs, "(L%d=tail%+" PRIdPTR ") ", i+1, lxhs[i] - msg->tail); } else continue; - if (nchars < 0 || nchars + buf_offs >= sizeof(buf)) + if (nchars < 0 || nchars + buf_offs >= len) return "ERROR"; buf_offs += nchars; } diff --git a/src/sim/core.c b/src/sim/core.c index a78cecc..3476cf9 100644 --- a/src/sim/core.c +++ b/src/sim/core.c @@ -267,11 +267,10 @@ return msg; } -/* FIXME: do we want to mark this as __thread? */ -static char sw_print_buf[256]; - char *osim_print_sw(const struct osim_card_hdl *ch, uint16_t sw_in) { + const size_t len = 256; + char *buf = osmo_static_string(len); const struct osim_card_sw *csw; if (!ch || !ch->prof) @@ -283,23 +282,23 @@ switch (csw->type) { case SW_TYPE_STR: - snprintf(sw_print_buf, sizeof(sw_print_buf), + snprintf(buf, len, "%04x (%s)", sw_in, csw->u.str); break; default: goto ret_def; } - sw_print_buf[sizeof(sw_print_buf)-1] = '\0'; + buf[len-1] = '\0'; - return sw_print_buf; + return buf; ret_def: - snprintf(sw_print_buf, sizeof(sw_print_buf), + snprintf(buf, len, "%04x (Unknown)", sw_in); - sw_print_buf[sizeof(sw_print_buf)-1] = '\0'; + buf[len-1] = '\0'; - return sw_print_buf; + return buf; } diff --git a/src/socket.c b/src/socket.c index 37fd584..44b470d 100644 --- a/src/socket.c +++ b/src/socket.c @@ -822,8 +822,9 @@ */ const char *osmo_sock_get_name2(int fd) { - static char str[OSMO_SOCK_NAME_MAXLEN]; - osmo_sock_get_name_buf(str, sizeof(str), fd); + const size_t len = OSMO_SOCK_NAME_MAXLEN; + char *str = osmo_static_string(len); + osmo_sock_get_name_buf(str, len, fd); return str; } diff --git a/src/utils.c b/src/utils.c index 12189b6..ab386f7 100644 --- a/src/utils.c +++ b/src/utils.c @@ -41,8 +41,6 @@ * * \file utils.c */ -static char namebuf[255]; - /*! get human-readable string for given value * \param[in] vs Array of value_string tuples * \param[in] val Value to be converted @@ -54,12 +52,15 @@ */ const char *get_value_string(const struct value_string *vs, uint32_t val) { + char *namebuf; + const size_t len = 19; const char *str = get_value_string_or_null(vs, val); if (str) return str; - snprintf(namebuf, sizeof(namebuf), "unknown 0x%"PRIx32, val); - namebuf[sizeof(namebuf) - 1] = '\0'; + namebuf = osmo_static_string(len); + snprintf(namebuf, len, "unknown 0x%"PRIx32, val); + namebuf[len-1] = '\0'; return namebuf; } @@ -219,7 +220,6 @@ return nibblepos >> 1; } -static char hexd_buff[4096]; static const char hex_chars[] = "0123456789abcdef"; /*! Convert binary sequence to hexadecimal ASCII string. @@ -279,11 +279,13 @@ */ char *osmo_ubit_dump(const uint8_t *bits, unsigned int len) { + const size_t buflen = OSMO_MIN(4096, len + 1); + char *buf = osmo_static_string(buflen); int i; - if (len > sizeof(hexd_buff)-1) - len = sizeof(hexd_buff)-1; - memset(hexd_buff, 0, sizeof(hexd_buff)); + if (len > buflen-1) + len = buflen - 1; + memset(buf, 0, buflen); for (i = 0; i < len; i++) { char outch; @@ -301,10 +303,10 @@ outch = 'E'; break; } - hexd_buff[i] = outch; + buf[i] = outch; } - hexd_buff[sizeof(hexd_buff)-1] = 0; - return hexd_buff; + buf[buflen-1] = 0; + return buf; } /*! Convert binary sequence to hexadecimal ASCII string @@ -320,8 +322,9 @@ */ char *osmo_hexdump(const unsigned char *buf, int len) { - osmo_hexdump_buf(hexd_buff, sizeof(hexd_buff), buf, len, " ", true); - return hexd_buff; + /* N bytes make 2N hex characters, plus N space delims, plus terminating nul */ + const size_t buflen = OSMO_MIN(4096, len * (2 + 1) + 1); + return (char*)osmo_hexdump_buf(OSMO_STATIC_STRING(buflen), buf, len, " ", true); } /*! Convert binary sequence to hexadecimal ASCII string @@ -337,8 +340,9 @@ */ char *osmo_hexdump_nospc(const unsigned char *buf, int len) { - osmo_hexdump_buf(hexd_buff, sizeof(hexd_buff), buf, len, "", true); - return hexd_buff; + /* N bytes make 2N hex characters, plus terminating nul */ + const size_t buflen = OSMO_MIN(4096, len * 2 + 1); + return (char*)osmo_hexdump_buf(OSMO_STATIC_STRING(buflen), buf, len, "", true); } /* Compat with previous typo to preserve abi */ @@ -622,7 +626,7 @@ */ const char *osmo_escape_str(const char *str, int in_len) { - return osmo_escape_str_buf(str, in_len, namebuf, sizeof(namebuf)); + return osmo_escape_str_buf(str, in_len, OSMO_STATIC_STRING(254)); } /*! Like osmo_escape_str(), but returns double-quotes around a string, or "NULL" for a NULL string. @@ -666,7 +670,7 @@ */ const char *osmo_quote_str(const char *str, int in_len) { - return osmo_quote_str_buf(str, in_len, namebuf, sizeof(namebuf)); + return osmo_quote_str_buf(str, in_len, OSMO_STATIC_STRING(254)); } /*! perform an integer square root operation on unsigned 32bit integer. @@ -747,8 +751,9 @@ */ const char *osmo_str_tolower(const char *src) { - static char buf[128]; - osmo_str_tolower_buf(buf, sizeof(buf), src); + const size_t len = 128; + char *buf = osmo_static_string(len); + osmo_str_tolower_buf(buf, len, src); return buf; } @@ -790,8 +795,9 @@ */ const char *osmo_str_toupper(const char *src) { - static char buf[128]; - osmo_str_toupper_buf(buf, sizeof(buf), src); + const size_t len = 128; + char *buf = osmo_static_string(len); + osmo_str_toupper_buf(buf, len, src); return buf; } -- To view, visit https://gerrit.osmocom.org/13062 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id0eab72fa71630c8eb9edafaa370a41ca16329aa Gerrit-Change-Number: 13062 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 19:14:10 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 26 Feb 2019 19:14:10 +0000 Subject: Change in osmo-pcu[master]: MCS: remove dead code Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/13063 Change subject: MCS: remove dead code ...................................................................... MCS: remove dead code As a preparation for (M)CS fixes in follow-up patches, remove unused operators from GprsCodingScheme class. Change-Id: Ieef3b095a6732300e5efa395b989843112b9ca78 --- M src/gprs_coding_scheme.h 1 file changed, 0 insertions(+), 14 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/63/13063/1 diff --git a/src/gprs_coding_scheme.h b/src/gprs_coding_scheme.h index 76cab0f..ee30c8a 100644 --- a/src/gprs_coding_scheme.h +++ b/src/gprs_coding_scheme.h @@ -220,20 +220,6 @@ GprsCodingScheme::Scheme(a) < GprsCodingScheme::Scheme(b); } -inline bool operator >(GprsCodingScheme a, GprsCodingScheme b) -{ - return b < a; -} - -inline bool operator <=(GprsCodingScheme a, GprsCodingScheme b) -{ - return a == b || a < b; -} - -inline bool operator >=(GprsCodingScheme a, GprsCodingScheme b) -{ - return a == b || a > b; -} inline GprsCodingScheme::Scheme GprsCodingScheme::get_retx_mcs( const GprsCodingScheme mcs, const GprsCodingScheme demanded_mcs, -- To view, visit https://gerrit.osmocom.org/13063 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ieef3b095a6732300e5efa395b989843112b9ca78 Gerrit-Change-Number: 13063 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Tue Feb 26 20:22:47 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 26 Feb 2019 20:22:47 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in xUbuntu_16.04/i586 In-Reply-To: References: Message-ID: <5c75a0329bb2b_2529100c5fc13279be@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/xUbuntu_16.04/i586 Package network:osmocom:nightly/osmo-sgsn failed to build in xUbuntu_16.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 117s] | #define HAVE_MEMORY_H 1 [ 117s] | #define HAVE_STRINGS_H 1 [ 117s] | #define HAVE_INTTYPES_H 1 [ 117s] | #define HAVE_STDINT_H 1 [ 117s] | #define HAVE_UNISTD_H 1 [ 117s] | #define HAVE_DLFCN_H 1 [ 117s] | #define LT_OBJDIR ".libs/" [ 117s] | #define BUILD_IU 1 [ 117s] | #define STDC_HEADERS 1 [ 117s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 117s] | [ 117s] | configure: exit 0 [ 117s] [ 117s] debian/rules:65: recipe for target 'override_dh_auto_test' failed [ 117s] make[1]: *** [override_dh_auto_test] Error 1 [ 117s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 117s] debian/rules:45: recipe for target 'build' failed [ 117s] make: *** [build] Error 2 [ 117s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 117s] [ 117s] lamb06 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Tue Feb 26 20:22:33 UTC 2019. [ 117s] [ 117s] ### VM INTERACTION START ### [ 121s] [ 109.496459] sysrq: SysRq : Power Off [ 121s] [ 109.512836] reboot: Power down [ 121s] ### VM INTERACTION END ### [ 121s] [ 121s] lamb06 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Tue Feb 26 20:22:37 UTC 2019. [ 121s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 26 20:24:30 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 26 Feb 2019 20:24:30 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_8.0/i586 In-Reply-To: References: Message-ID: <5c75a08e17cdc_2529100c5fc13285a2@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/Debian_8.0/i586 Package network:osmocom:nightly/osmo-sgsn failed to build in Debian_8.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 156s] [ 156s] PROCESSING ALIVE_ACK from 0x05060708:32000 [ 156s] 0b [ 156s] @@ -7311,7 +7311,7 @@ [ 156s] MESSAGE to SGSN at 0x05060708:32000, msg length 1 [ 156s] 0a [ 156s] [ 156s] -result (RESET_ACK) = 1 [ 156s] +result (RESET_ACK) = 0 [ 156s] [ 156s] PROCESSING ALIVE_ACK from 0x05060708:32000 [ 156s] 0b [ 156s] 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) [ 156s] debian/rules:65: recipe for target 'override_dh_auto_test' failed [ 156s] make[1]: *** [override_dh_auto_test] Error 1 [ 156s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 156s] debian/rules:45: recipe for target 'build' failed [ 156s] make: *** [build] Error 2 [ 156s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 156s] [ 156s] cloud129 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Tue Feb 26 20:24:14 UTC 2019. [ 156s] [ 156s] ### VM INTERACTION START ### [ 157s] Powering off. [ 157s] [ 129.877062] reboot: Power down [ 158s] ### VM INTERACTION END ### [ 158s] [ 158s] cloud129 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Tue Feb 26 20:24:17 UTC 2019. [ 158s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 26 20:26:13 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 26 Feb 2019 20:26:13 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_9.0/i586 In-Reply-To: References: Message-ID: <5c75a10482ada_2529100c5fc13288c1@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/Debian_9.0/i586 Package network:osmocom:nightly/osmo-sgsn failed to build in Debian_9.0/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 171s] [ 171s] PROCESSING ALIVE_ACK from 0x05060708:32000 [ 171s] 0b [ 171s] @@ -7311,7 +7311,7 @@ [ 171s] MESSAGE to SGSN at 0x05060708:32000, msg length 1 [ 171s] 0a [ 171s] [ 171s] -result (RESET_ACK) = 1 [ 171s] +result (RESET_ACK) = 0 [ 171s] [ 171s] PROCESSING ALIVE_ACK from 0x05060708:32000 [ 171s] 0b [ 171s] 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) [ 171s] debian/rules:65: recipe for target 'override_dh_auto_test' failed [ 171s] make[1]: *** [override_dh_auto_test] Error 1 [ 171s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 171s] debian/rules:45: recipe for target 'build' failed [ 171s] make: *** [build] Error 2 [ 171s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 171s] [ 171s] cloud120 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Tue Feb 26 20:26:03 UTC 2019. [ 171s] [ 171s] ### VM INTERACTION START ### [ 174s] [ 143.185129] sysrq: SysRq : Power Off [ 174s] [ 143.198425] reboot: Power down [ 175s] ### VM INTERACTION END ### [ 175s] [ 175s] cloud120 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Tue Feb 26 20:26:08 UTC 2019. [ 175s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 26 20:27:04 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 26 Feb 2019 20:27:04 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in xUbuntu_17.10/x86_64 In-Reply-To: References: Message-ID: <5c75a12659afb_2529100c5fc1329141@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/xUbuntu_17.10/x86_64 Package network:osmocom:nightly/osmo-sgsn failed to build in xUbuntu_17.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 124s] [ 124s] PROCESSING ALIVE_ACK from 0x05060708:32000 [ 124s] 0b [ 124s] @@ -7311,7 +7311,7 @@ [ 124s] MESSAGE to SGSN at 0x05060708:32000, msg length 1 [ 124s] 0a [ 124s] [ 124s] -result (RESET_ACK) = 1 [ 124s] +result (RESET_ACK) = 0 [ 124s] [ 124s] PROCESSING ALIVE_ACK from 0x05060708:32000 [ 124s] 0b [ 124s] 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) [ 124s] debian/rules:65: recipe for target 'override_dh_auto_test' failed [ 124s] make[1]: *** [override_dh_auto_test] Error 1 [ 124s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 124s] debian/rules:45: recipe for target 'build' failed [ 124s] make: *** [build] Error 2 [ 124s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 124s] [ 124s] lamb61 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Tue Feb 26 20:26:51 UTC 2019. [ 124s] [ 124s] ### VM INTERACTION START ### [ 127s] [ 114.194149] sysrq: SysRq : Power Off [ 127s] [ 114.199165] reboot: Power down [ 127s] ### VM INTERACTION END ### [ 127s] [ 127s] lamb61 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Tue Feb 26 20:26:56 UTC 2019. [ 127s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 26 20:28:13 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 26 Feb 2019 20:28:13 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_8.0/x86_64 In-Reply-To: References: Message-ID: <5c75a161dfbe6_2529100c5fc1329435@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/Debian_8.0/x86_64 Package network:osmocom:nightly/osmo-sgsn failed to build in Debian_8.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 169s] | #define HAVE_MEMORY_H 1 [ 169s] | #define HAVE_STRINGS_H 1 [ 169s] | #define HAVE_INTTYPES_H 1 [ 169s] | #define HAVE_STDINT_H 1 [ 169s] | #define HAVE_UNISTD_H 1 [ 169s] | #define HAVE_DLFCN_H 1 [ 169s] | #define LT_OBJDIR ".libs/" [ 169s] | #define BUILD_IU 1 [ 169s] | #define STDC_HEADERS 1 [ 169s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 169s] | [ 169s] | configure: exit 0 [ 169s] [ 169s] debian/rules:65: recipe for target 'override_dh_auto_test' failed [ 169s] make[1]: *** [override_dh_auto_test] Error 1 [ 169s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 169s] debian/rules:45: recipe for target 'build' failed [ 169s] make: *** [build] Error 2 [ 169s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 169s] [ 169s] build35 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Tue Feb 26 20:27:44 UTC 2019. [ 169s] [ 169s] ### VM INTERACTION START ### [ 170s] Powering off. [ 170s] [ 155.661212] reboot: Power down [ 190s] ### VM INTERACTION END ### [ 190s] [ 190s] build35 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Tue Feb 26 20:28:07 UTC 2019. [ 190s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 26 20:28:47 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 26 Feb 2019 20:28:47 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in xUbuntu_18.04/i586 In-Reply-To: References: Message-ID: <5c75a19be3a5c_2529100c5fc1329982@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/xUbuntu_18.04/i586 Package network:osmocom:nightly/osmo-sgsn failed to build in xUbuntu_18.04/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 146s] | #define HAVE_MEMORY_H 1 [ 146s] | #define HAVE_STRINGS_H 1 [ 146s] | #define HAVE_INTTYPES_H 1 [ 146s] | #define HAVE_STDINT_H 1 [ 146s] | #define HAVE_UNISTD_H 1 [ 146s] | #define HAVE_DLFCN_H 1 [ 146s] | #define LT_OBJDIR ".libs/" [ 146s] | #define BUILD_IU 1 [ 146s] | #define STDC_HEADERS 1 [ 146s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 146s] | [ 146s] | configure: exit 0 [ 146s] [ 146s] debian/rules:65: recipe for target 'override_dh_auto_test' failed [ 146s] make[1]: *** [override_dh_auto_test] Error 1 [ 146s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 146s] debian/rules:45: recipe for target 'build' failed [ 146s] make: *** [build] Error 2 [ 146s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 146s] [ 146s] lamb15 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Tue Feb 26 20:28:29 UTC 2019. [ 146s] [ 146s] ### VM INTERACTION START ### [ 149s] [ 137.008663] sysrq: SysRq : Power Off [ 149s] [ 137.014481] reboot: Power down [ 149s] ### VM INTERACTION END ### [ 149s] [ 149s] lamb15 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Tue Feb 26 20:28:33 UTC 2019. [ 149s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 26 20:32:47 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 26 Feb 2019 20:32:47 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in xUbuntu_18.10/x86_64 In-Reply-To: References: Message-ID: <5c75a28c279cd_2529100c5fc1330165@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/xUbuntu_18.10/x86_64 Package network:osmocom:nightly/osmo-sgsn failed to build in xUbuntu_18.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 315s] | #define HAVE_STDLIB_H 1 [ 315s] | #define HAVE_STRING_H 1 [ 315s] | #define HAVE_MEMORY_H 1 [ 315s] | #define HAVE_STRINGS_H 1 [ 315s] | #define HAVE_INTTYPES_H 1 [ 315s] | #define HAVE_STDINT_H 1 [ 315s] | #define HAVE_UNISTD_H 1 [ 315s] | #define HAVE_DLFCN_H 1 [ 315s] | #define LT_OBJDIR ".libs/" [ 315s] | #define BUILD_IU 1 [ 315s] | #define STDC_HEADERS 1 [ 315s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 315s] | [ 315s] | configure: exit 0 [ 315s] [ 315s] make[1]: *** [debian/rules:65: override_dh_auto_test] Error 1 [ 315s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 315s] make: *** [debian/rules:45: build] Error 2 [ 315s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 315s] [ 315s] cloud128 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Tue Feb 26 20:32:38 UTC 2019. [ 315s] [ 315s] ### VM INTERACTION START ### [ 318s] [ 271.936948] sysrq: SysRq : Power Off [ 318s] [ 271.948832] reboot: Power down [ 319s] ### VM INTERACTION END ### [ 319s] [ 319s] cloud128 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Tue Feb 26 20:32:44 UTC 2019. [ 319s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 26 20:34:30 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 26 Feb 2019 20:34:30 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_9.0/x86_64 In-Reply-To: References: Message-ID: <5c75a2e63ed25_2529100c5fc133043e@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/Debian_9.0/x86_64 Package network:osmocom:nightly/osmo-sgsn failed to build in Debian_9.0/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 105s] | #define HAVE_MEMORY_H 1 [ 105s] | #define HAVE_STRINGS_H 1 [ 105s] | #define HAVE_INTTYPES_H 1 [ 105s] | #define HAVE_STDINT_H 1 [ 105s] | #define HAVE_UNISTD_H 1 [ 105s] | #define HAVE_DLFCN_H 1 [ 105s] | #define LT_OBJDIR ".libs/" [ 105s] | #define BUILD_IU 1 [ 105s] | #define STDC_HEADERS 1 [ 105s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 105s] | [ 105s] | configure: exit 0 [ 105s] [ 105s] debian/rules:65: recipe for target 'override_dh_auto_test' failed [ 105s] make[1]: *** [override_dh_auto_test] Error 1 [ 105s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 105s] debian/rules:45: recipe for target 'build' failed [ 105s] make: *** [build] Error 2 [ 105s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 105s] [ 105s] lamb14 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Tue Feb 26 20:34:16 UTC 2019. [ 105s] [ 105s] ### VM INTERACTION START ### [ 108s] [ 94.876555] sysrq: SysRq : Power Off [ 108s] [ 94.882516] reboot: Power down [ 108s] ### VM INTERACTION END ### [ 108s] [ 108s] lamb14 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Tue Feb 26 20:34:20 UTC 2019. [ 108s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Tue Feb 26 20:44:39 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 26 Feb 2019 20:44:39 +0000 Subject: Change in osmo-pcu[master]: MCS: move Coding Scheme enum to C header Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/13064 Change subject: MCS: move Coding Scheme enum to C header ...................................................................... MCS: move Coding Scheme enum to C header Move generic MCS enum to C header file to simplify further modifications and testing. Change-Id: I993b49d9a82b8c7ad677d52d11003794aeabe117 --- M src/Makefile.am A src/coding_scheme.h M src/gprs_coding_scheme.cpp M src/gprs_coding_scheme.h M src/gprs_ms.cpp M src/gprs_ms.h M src/rlc.cpp M src/tbf_dl.cpp M src/tbf_ul.cpp M tests/edge/EdgeTest.cpp M tests/tbf/TbfTest.cpp 11 files changed, 247 insertions(+), 230 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/64/13064/1 diff --git a/src/Makefile.am b/src/Makefile.am index 50e0eda..eb4a2bb 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -97,6 +97,7 @@ cxx_linuxlist.h \ gprs_codel.h \ gprs_coding_scheme.h \ + coding_scheme.h \ egprs_rlc_compression.h osmo_pcu_SOURCES = pcu_main.cpp diff --git a/src/coding_scheme.h b/src/coding_scheme.h new file mode 100644 index 0000000..3705ea4 --- /dev/null +++ b/src/coding_scheme.h @@ -0,0 +1,29 @@ +/* coding_scheme.h + * + * Copyright (C) 2015-2019 by sysmocom s.f.m.c. GmbH + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#pragma once + +enum CodingScheme { + UNKNOWN, + /* GPRS Coding Schemes: */ + CS1, CS2, CS3, CS4, + /* EDGE/EGPRS Modulation and Coding Schemes: */ + MCS1, MCS2, MCS3, MCS4, MCS5, MCS6, MCS7, MCS8, MCS9, + NUM_SCHEMES +}; diff --git a/src/gprs_coding_scheme.cpp b/src/gprs_coding_scheme.cpp index 3094ae6..3769363 100644 --- a/src/gprs_coding_scheme.cpp +++ b/src/gprs_coding_scheme.cpp @@ -27,7 +27,7 @@ * 1st level is Original MCS( index 0 corresponds to MCS1 and so on) * 2nd level is MS MCS (index 0 corresponds to MCS1 and so on) */ -enum GprsCodingScheme::Scheme GprsCodingScheme::egprs_mcs_retx_tbl[MAX_NUM_ARQ] +enum CodingScheme GprsCodingScheme::egprs_mcs_retx_tbl[MAX_NUM_ARQ] [MAX_NUM_MCS][MAX_NUM_MCS] = { { {MCS1, MCS1, MCS1, MCS1, MCS1, MCS1, MCS1, MCS1, MCS1}, @@ -64,7 +64,7 @@ const char *name; GprsCodingScheme::HeaderType data_hdr; GprsCodingScheme::Family family; -} mcs_info[GprsCodingScheme::NUM_SCHEMES] = { +} mcs_info[NUM_SCHEMES] = { {{0, 0}, {0, 0}, 0, 0, "UNKNOWN", GprsCodingScheme::HEADER_INVALID, GprsCodingScheme::FAMILY_INVALID}, {{23, 0}, {23, 0}, 20, 0, "CS-1", @@ -231,7 +231,7 @@ /* This should not happen. TODO: Use assert? */ return; - Scheme new_cs(Scheme(m_scheme + 1)); + CodingScheme new_cs(CodingScheme(m_scheme + 1)); if (!GprsCodingScheme(new_cs).isCompatible(mode)) /* Clipping, do not change the value */ return; @@ -245,7 +245,7 @@ /* This should not happen. TODO: Use assert? */ return; - Scheme new_cs(Scheme(m_scheme - 1)); + CodingScheme new_cs(CodingScheme(m_scheme - 1)); if (!GprsCodingScheme(new_cs).isCompatible(mode)) /* Clipping, do not change the value */ return; @@ -264,7 +264,7 @@ if (!isValid()) return; - m_scheme = Scheme(m_scheme + 1); + m_scheme = CodingScheme(m_scheme + 1); } void GprsCodingScheme::dec() @@ -278,7 +278,7 @@ if (!isValid()) return; - m_scheme = Scheme(m_scheme - 1); + m_scheme = CodingScheme(m_scheme - 1); } const char *GprsCodingScheme::modeName(Mode mode) diff --git a/src/gprs_coding_scheme.h b/src/gprs_coding_scheme.h index ee30c8a..1121d13 100644 --- a/src/gprs_coding_scheme.h +++ b/src/gprs_coding_scheme.h @@ -25,6 +25,7 @@ extern "C" { #include + #include "coding_scheme.h" } class GprsCodingScheme { @@ -35,14 +36,6 @@ #define EGPRS_ARQ1 0x0 #define EGPRS_ARQ2 0x1 - enum Scheme { - UNKNOWN, - CS1, CS2, CS3, CS4, - MCS1, MCS2, MCS3, MCS4, - MCS5, MCS6, MCS7, MCS8, MCS9, - NUM_SCHEMES - }; - enum Mode { GPRS, EGPRS_GMSK, @@ -66,14 +59,14 @@ FAMILY_C, }; - GprsCodingScheme(Scheme s = UNKNOWN); + GprsCodingScheme(CodingScheme s = UNKNOWN); operator bool() const {return m_scheme != UNKNOWN;} - operator Scheme() const {return m_scheme;} + operator CodingScheme() const {return m_scheme;} uint8_t to_num() const; - GprsCodingScheme& operator =(Scheme s); - bool operator == (Scheme s) const; + GprsCodingScheme& operator =(CodingScheme s); + bool operator == (CodingScheme s) const; GprsCodingScheme& operator =(GprsCodingScheme o); bool isValid() const {return UNKNOWN <= m_scheme && m_scheme <= MCS9;} @@ -115,16 +108,16 @@ static GprsCodingScheme getEgprsByNum(unsigned num); static const char *modeName(Mode mode); - static Scheme get_retx_mcs(const GprsCodingScheme mcs, + static CodingScheme get_retx_mcs(const GprsCodingScheme mcs, const GprsCodingScheme retx_mcs, const unsigned arq_type); - static enum Scheme egprs_mcs_retx_tbl[MAX_NUM_ARQ] + static enum CodingScheme egprs_mcs_retx_tbl[MAX_NUM_ARQ] [MAX_NUM_MCS][MAX_NUM_MCS]; private: GprsCodingScheme(int s); /* fail on use */ GprsCodingScheme& operator =(int s); /* fail on use */ - enum Scheme m_scheme; + enum CodingScheme m_scheme; }; inline uint8_t GprsCodingScheme::to_num() const @@ -159,14 +152,14 @@ return HEADER_GPRS_CONTROL; } -inline GprsCodingScheme::GprsCodingScheme(Scheme s) +inline GprsCodingScheme::GprsCodingScheme(CodingScheme s) : m_scheme(s) { if (!isValid()) m_scheme = UNKNOWN; } -inline GprsCodingScheme& GprsCodingScheme::operator =(Scheme s) +inline GprsCodingScheme& GprsCodingScheme::operator =(CodingScheme s) { m_scheme = s; @@ -187,7 +180,7 @@ if (num < 1 || num > 4) return GprsCodingScheme(); - return GprsCodingScheme(Scheme(CS1 + (num - 1))); + return GprsCodingScheme(CodingScheme(CS1 + (num - 1))); } inline GprsCodingScheme GprsCodingScheme::getEgprsByNum(unsigned num) @@ -195,16 +188,11 @@ if (num < 1 || num > 9) return GprsCodingScheme(); - return GprsCodingScheme(Scheme(MCS1 + (num - 1))); + return GprsCodingScheme(CodingScheme(MCS1 + (num - 1))); } /* The coding schemes form a partial ordering */ -inline bool operator ==(GprsCodingScheme a, GprsCodingScheme b) -{ - return GprsCodingScheme::Scheme(a) == GprsCodingScheme::Scheme(b); -} - -inline bool GprsCodingScheme::operator == (Scheme scheme) const +inline bool GprsCodingScheme::operator == (CodingScheme scheme) const { return this->m_scheme == scheme; } @@ -216,11 +204,10 @@ inline bool operator <(GprsCodingScheme a, GprsCodingScheme b) { - return a.isCompatible(b) && - GprsCodingScheme::Scheme(a) < GprsCodingScheme::Scheme(b); + return a.isCompatible(b) && a.to_num() < b.to_num(); } -inline GprsCodingScheme::Scheme GprsCodingScheme::get_retx_mcs( +inline CodingScheme GprsCodingScheme::get_retx_mcs( const GprsCodingScheme mcs, const GprsCodingScheme demanded_mcs, const unsigned arq_type) diff --git a/src/gprs_ms.cpp b/src/gprs_ms.cpp index 740ef6b..e31cc87 100644 --- a/src/gprs_ms.cpp +++ b/src/gprs_ms.cpp @@ -225,13 +225,13 @@ m_current_cs_ul = GprsCodingScheme::getGprsByNum( m_bts->bts_data()->initial_cs_ul); if (!m_current_cs_ul.isValid()) - m_current_cs_ul = GprsCodingScheme::CS1; + m_current_cs_ul = CS1; } if (!m_current_cs_dl.isGprs()) { m_current_cs_dl = GprsCodingScheme::getGprsByNum( m_bts->bts_data()->initial_cs_dl); if (!m_current_cs_dl.isValid()) - m_current_cs_dl = GprsCodingScheme::CS1; + m_current_cs_dl = CS1; } break; @@ -241,13 +241,13 @@ m_current_cs_ul = GprsCodingScheme::getEgprsByNum( m_bts->bts_data()->initial_mcs_ul); if (!m_current_cs_ul.isValid()) - m_current_cs_ul = GprsCodingScheme::MCS1; + m_current_cs_ul = MCS1; } if (!m_current_cs_dl.isEgprs()) { m_current_cs_dl = GprsCodingScheme::getEgprsByNum( m_bts->bts_data()->initial_mcs_dl); if (!m_current_cs_dl.isValid()) - m_current_cs_dl = GprsCodingScheme::MCS1; + m_current_cs_dl = MCS1; } break; } @@ -565,7 +565,7 @@ if (m_current_cs_ul.isGprs()) { if (!bts_data->max_cs_ul) - return GprsCodingScheme(GprsCodingScheme::CS4); + return GprsCodingScheme(CS4); return GprsCodingScheme::getGprsByNum(bts_data->max_cs_ul); } @@ -578,10 +578,10 @@ else if (bts_data->max_cs_ul) return GprsCodingScheme::getEgprsByNum(bts_data->max_cs_ul); - return GprsCodingScheme(GprsCodingScheme::MCS4); + return GprsCodingScheme(MCS4); } -void GprsMs::set_current_cs_dl(GprsCodingScheme::Scheme scheme) +void GprsMs::set_current_cs_dl(CodingScheme scheme) { m_current_cs_dl = scheme; } @@ -595,7 +595,7 @@ if (m_current_cs_dl.isGprs()) { if (!bts_data->max_cs_dl) - return GprsCodingScheme(GprsCodingScheme::CS4); + return GprsCodingScheme(CS4); return GprsCodingScheme::getGprsByNum(bts_data->max_cs_dl); } @@ -608,7 +608,7 @@ else if (bts_data->max_cs_dl) return GprsCodingScheme::getEgprsByNum(bts_data->max_cs_dl); - return GprsCodingScheme(GprsCodingScheme::MCS4); + return GprsCodingScheme(MCS4); } void GprsMs::update_cs_ul(const pcu_l1_meas *meas) @@ -733,7 +733,7 @@ cs.dec(mode()); /* CS-2 doesn't gain throughput with small packets, further reduce to CS-1 */ - if (cs == GprsCodingScheme(GprsCodingScheme::CS2)) + if (cs == GprsCodingScheme(CS2)) cs.dec(mode()); return cs; diff --git a/src/gprs_ms.h b/src/gprs_ms.h index 857f0c9..0a9efb8 100644 --- a/src/gprs_ms.h +++ b/src/gprs_ms.h @@ -86,7 +86,7 @@ uint8_t egprs_ms_class() const; void set_ms_class(uint8_t ms_class); void set_egprs_ms_class(uint8_t ms_class); - void set_current_cs_dl(GprsCodingScheme::Scheme scheme); + void set_current_cs_dl(CodingScheme scheme); GprsCodingScheme current_cs_ul() const; GprsCodingScheme current_cs_dl() const; diff --git a/src/rlc.cpp b/src/rlc.cpp index ee88bd9..323fde4 100644 --- a/src/rlc.cpp +++ b/src/rlc.cpp @@ -391,27 +391,27 @@ enum egprs_puncturing_values punct2, bool with_padding) { /* validate that punct and punct2 are as expected */ - switch (GprsCodingScheme::Scheme(cs)) { - case GprsCodingScheme::MCS9: - case GprsCodingScheme::MCS8: - case GprsCodingScheme::MCS7: + switch (CodingScheme(cs)) { + case MCS9: + case MCS8: + case MCS7: if (punct2 == EGPRS_PS_INVALID) { LOGP(DRLCMACDL, LOGL_ERROR, "Invalid punct2 value for coding scheme %d: %d\n", - GprsCodingScheme::Scheme(cs), punct2); + CodingScheme(cs), punct2); return -1; } /* fall through */ - case GprsCodingScheme::MCS6: - case GprsCodingScheme::MCS5: - case GprsCodingScheme::MCS4: - case GprsCodingScheme::MCS3: - case GprsCodingScheme::MCS2: - case GprsCodingScheme::MCS1: + case MCS6: + case MCS5: + case MCS4: + case MCS3: + case MCS2: + case MCS1: if (punct == EGPRS_PS_INVALID) { LOGP(DRLCMACDL, LOGL_ERROR, "Invalid punct value for coding scheme %d: %d\n", - GprsCodingScheme::Scheme(cs), punct); + CodingScheme(cs), punct); return -1; } break; @@ -420,26 +420,26 @@ } /* See 3GPP TS 44.060 10.4.8a.3.1, 10.4.8a.2.1, 10.4.8a.1.1 */ - switch (GprsCodingScheme::Scheme(cs)) { - case GprsCodingScheme::MCS1: return 0b1011 + + switch (CodingScheme(cs)) { + case MCS1: return 0b1011 + punct % EGPRS_MAX_PS_NUM_2; - case GprsCodingScheme::MCS2: return 0b1001 + + case MCS2: return 0b1001 + punct % EGPRS_MAX_PS_NUM_2; - case GprsCodingScheme::MCS3: return (with_padding ? 0b0110 : 0b0011) + + case MCS3: return (with_padding ? 0b0110 : 0b0011) + punct % EGPRS_MAX_PS_NUM_3; - case GprsCodingScheme::MCS4: return 0b0000 + + case MCS4: return 0b0000 + punct % EGPRS_MAX_PS_NUM_3; - case GprsCodingScheme::MCS5: return 0b100 + + case MCS5: return 0b100 + punct % EGPRS_MAX_PS_NUM_2; - case GprsCodingScheme::MCS6: return (with_padding ? 0b010 : 0b000) + + case MCS6: return (with_padding ? 0b010 : 0b000) + punct % EGPRS_MAX_PS_NUM_2; - case GprsCodingScheme::MCS7: return 0b10100 + + case MCS7: return 0b10100 + 3 * (punct % EGPRS_MAX_PS_NUM_3) + punct2 % EGPRS_MAX_PS_NUM_3; - case GprsCodingScheme::MCS8: return 0b01011 + + case MCS8: return 0b01011 + 3 * (punct % EGPRS_MAX_PS_NUM_3) + punct2 % EGPRS_MAX_PS_NUM_3; - case GprsCodingScheme::MCS9: return 0b00000 + + case MCS9: return 0b00000 + 4 * (punct % EGPRS_MAX_PS_NUM_3) + punct2 % EGPRS_MAX_PS_NUM_3; default: ; @@ -454,24 +454,24 @@ *punct2 = -1; *with_padding = 0; - switch (GprsCodingScheme::Scheme(cs)) { - case GprsCodingScheme::MCS1: + switch (CodingScheme(cs)) { + case MCS1: cps -= 0b1011; *punct = cps % 2; break; - case GprsCodingScheme::MCS2: + case MCS2: cps -= 0b1001; *punct = cps % 2; break; - case GprsCodingScheme::MCS3: + case MCS3: cps -= 0b0011; *punct = cps % 3; *with_padding = cps >= 3; break; - case GprsCodingScheme::MCS4: + case MCS4: cps -= 0b0000; *punct = cps % 3; break; - case GprsCodingScheme::MCS5: + case MCS5: cps -= 0b100; *punct = cps % 2; break; - case GprsCodingScheme::MCS6: + case MCS6: cps -= 0b000; *punct = cps % 2; *with_padding = cps >= 2; break; - case GprsCodingScheme::MCS7: + case MCS7: cps -= 0b10100; *punct = cps / 3; *punct2 = cps % 3; break; - case GprsCodingScheme::MCS8: + case MCS8: cps -= 0b01011; *punct = cps / 3; *punct2 = cps % 3; break; - case GprsCodingScheme::MCS9: + case MCS9: cps -= 0b00000; *punct = cps / 4; *punct2 = cps % 3; break; default: ; } @@ -501,23 +501,23 @@ return punct; /* TS 44.060 9.3.2.1.1 */ - if ((GprsCodingScheme::Scheme(cs) == GprsCodingScheme::MCS9) && - (GprsCodingScheme::Scheme(cs_current) == GprsCodingScheme::MCS6)) { + if ((CodingScheme(cs) == MCS9) && + (CodingScheme(cs_current) == MCS6)) { if ((punct == EGPRS_PS_1) || (punct == EGPRS_PS_3)) return EGPRS_PS_1; else if (punct == EGPRS_PS_2) return EGPRS_PS_2; - } else if ((GprsCodingScheme::Scheme(cs) == GprsCodingScheme::MCS6) && - (GprsCodingScheme::Scheme(cs_current) == GprsCodingScheme::MCS9)) { + } else if ((CodingScheme(cs) == MCS6) && + (CodingScheme(cs_current) == MCS9)) { if (punct == EGPRS_PS_1) return EGPRS_PS_3; else if (punct == EGPRS_PS_2) return EGPRS_PS_2; - } else if ((GprsCodingScheme::Scheme(cs) == GprsCodingScheme::MCS7) && - (GprsCodingScheme::Scheme(cs_current) == GprsCodingScheme::MCS5)) + } else if ((CodingScheme(cs) == MCS7) && + (CodingScheme(cs_current) == MCS5)) return EGPRS_PS_1; - else if ((GprsCodingScheme::Scheme(cs) == GprsCodingScheme::MCS5) && - (GprsCodingScheme::Scheme(cs_current) == GprsCodingScheme::MCS7)) + else if ((CodingScheme(cs) == MCS5) && + (CodingScheme(cs_current) == MCS7)) return EGPRS_PS_2; else if (cs != cs_current) return EGPRS_PS_1; @@ -540,19 +540,19 @@ void gprs_update_punct_scheme(enum egprs_puncturing_values *punct, const GprsCodingScheme &cs) { - switch (GprsCodingScheme::Scheme(cs)) { - case GprsCodingScheme::MCS1 : - case GprsCodingScheme::MCS2 : - case GprsCodingScheme::MCS5 : - case GprsCodingScheme::MCS6 : + switch (CodingScheme(cs)) { + case MCS1 : + case MCS2 : + case MCS5 : + case MCS6 : *punct = ((enum egprs_puncturing_values)((*punct + 1) % EGPRS_MAX_PS_NUM_2)); break; - case GprsCodingScheme::MCS3 : - case GprsCodingScheme::MCS4 : - case GprsCodingScheme::MCS7 : - case GprsCodingScheme::MCS8 : - case GprsCodingScheme::MCS9 : + case MCS3 : + case MCS4 : + case MCS7 : + case MCS8 : + case MCS9 : *punct = ((enum egprs_puncturing_values)((*punct + 1) % EGPRS_MAX_PS_NUM_3)); break; diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 0ef3032..7b0052f 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -395,9 +395,9 @@ * transistion is handled. * Refer commit be881c028fc4da00c4046ecd9296727975c206a3 */ - if (m_rlc.block(bsn)->cs_init == GprsCodingScheme::MCS8) + if (m_rlc.block(bsn)->cs_init == MCS8) m_rlc.block(bsn)->cs_current_trans = - GprsCodingScheme::MCS8; + MCS8; } else m_rlc.block(bsn)->cs_current_trans = m_rlc.block(bsn)->cs_last; @@ -701,9 +701,9 @@ * if the intial mcs is 8 and retransmission mcs is either 6 or 3 * we have to include the padding of 6 octets in first segment */ - if ((GprsCodingScheme::Scheme(cs_init) == GprsCodingScheme::MCS8) && - (GprsCodingScheme::Scheme(cs) == GprsCodingScheme::MCS6 || - GprsCodingScheme::Scheme(cs) == GprsCodingScheme::MCS3)) { + if ((CodingScheme(cs_init) == MCS8) && + (CodingScheme(cs) == MCS6 || + CodingScheme(cs) == MCS3)) { if (spb_status == EGPRS_RESEG_DL_DEFAULT || spb_status == EGPRS_RESEG_SECOND_SEG_SENT) need_padding = true; @@ -715,7 +715,7 @@ * Refer commit be881c028fc4da00c4046ecd9296727975c206a3 * dated 2016-02-07 23:45:40 (UTC) */ - if (cs != GprsCodingScheme(GprsCodingScheme::MCS8)) + if (cs != GprsCodingScheme(MCS8)) cs.decToSingleBlock(&need_padding); } @@ -1261,19 +1261,19 @@ if (cs_current_trans.headerTypeData() == GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3) { if (*block_status_dl == EGPRS_RESEG_FIRST_SEG_SENT) { - switch (GprsCodingScheme::Scheme(cs_init)) { - case GprsCodingScheme::MCS6 : - case GprsCodingScheme::MCS9 : + switch (CodingScheme(cs_init)) { + case MCS6 : + case MCS9 : *block_data = &rlc_data->block[37]; break; - case GprsCodingScheme::MCS7 : - case GprsCodingScheme::MCS5 : + case MCS7 : + case MCS5 : *block_data = &rlc_data->block[28]; break; - case GprsCodingScheme::MCS8 : + case MCS8 : *block_data = &rlc_data->block[31]; break; - case GprsCodingScheme::MCS4 : + case MCS4 : *block_data = &rlc_data->block[22]; break; default: @@ -1291,10 +1291,10 @@ (cs_init.headerTypeData() == GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2)) { return EGPRS_RESEG_FIRST_SEG_SENT; - } else if ((GprsCodingScheme::Scheme(cs_init) == - GprsCodingScheme::MCS4) && - (GprsCodingScheme::Scheme(cs_current_trans) == - GprsCodingScheme::MCS1)) { + } else if ((CodingScheme(cs_init) == + MCS4) && + (CodingScheme(cs_current_trans) == + MCS1)) { return EGPRS_RESEG_FIRST_SEG_SENT; } } @@ -1343,10 +1343,10 @@ GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2)) { bts->spb_downlink_first_segment(); return EGPRS_RLCMAC_DL_FIRST_SEG; - } else if ((GprsCodingScheme::Scheme(cs_init) == - GprsCodingScheme::MCS4) && - (GprsCodingScheme::Scheme(cs_current_trans) == - GprsCodingScheme::MCS1)) { + } else if ((CodingScheme(cs_init) == + MCS4) && + (CodingScheme(cs_current_trans) == + MCS1)) { bts->spb_downlink_first_segment(); return EGPRS_RLCMAC_DL_FIRST_SEG; } @@ -1367,61 +1367,61 @@ { uint8_t coding_scheme = 0; - coding_scheme = GprsCodingScheme::Scheme(cs); + coding_scheme = CodingScheme(cs); if (cs.isGprs()) { switch (coding_scheme) { - case GprsCodingScheme::CS1 : + case CS1 : bts->gprs_dl_cs1(); rate_ctr_inc(&m_dl_gprs_ctrs->ctr[TBF_CTR_GPRS_DL_CS1]); break; - case GprsCodingScheme::CS2 : + case CS2 : bts->gprs_dl_cs2(); rate_ctr_inc(&m_dl_gprs_ctrs->ctr[TBF_CTR_GPRS_DL_CS2]); break; - case GprsCodingScheme::CS3 : + case CS3 : bts->gprs_dl_cs3(); rate_ctr_inc(&m_dl_gprs_ctrs->ctr[TBF_CTR_GPRS_DL_CS3]); break; - case GprsCodingScheme::CS4 : + case CS4 : bts->gprs_dl_cs4(); rate_ctr_inc(&m_dl_gprs_ctrs->ctr[TBF_CTR_GPRS_DL_CS4]); break; } } else { switch (coding_scheme) { - case GprsCodingScheme::MCS1 : + case MCS1 : bts->egprs_dl_mcs1(); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS1]); break; - case GprsCodingScheme::MCS2 : + case MCS2 : bts->egprs_dl_mcs2(); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS2]); break; - case GprsCodingScheme::MCS3 : + case MCS3 : bts->egprs_dl_mcs3(); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS3]); break; - case GprsCodingScheme::MCS4 : + case MCS4 : bts->egprs_dl_mcs4(); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS4]); break; - case GprsCodingScheme::MCS5 : + case MCS5 : bts->egprs_dl_mcs5(); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS5]); break; - case GprsCodingScheme::MCS6 : + case MCS6 : bts->egprs_dl_mcs6(); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS6]); break; - case GprsCodingScheme::MCS7 : + case MCS7 : bts->egprs_dl_mcs7(); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS7]); break; - case GprsCodingScheme::MCS8 : + case MCS8 : bts->egprs_dl_mcs8(); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS8]); break; - case GprsCodingScheme::MCS9 : + case MCS9 : bts->egprs_dl_mcs9(); rate_ctr_inc(&m_dl_egprs_ctrs->ctr[TBF_CTR_EGPRS_DL_MCS9]); break; diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp index 7937f8b..bc36733 100644 --- a/src/tbf_ul.cpp +++ b/src/tbf_ul.cpp @@ -501,18 +501,18 @@ * upgrade the MCS to the type 2 */ if (assemble_status == EGPRS_RESEG_DEFAULT) { - switch (GprsCodingScheme::Scheme(rlc->cs)) { - case GprsCodingScheme::MCS3 : - block->cs_last = GprsCodingScheme::MCS6; + switch (CodingScheme(rlc->cs)) { + case MCS3 : + block->cs_last = MCS6; LOGPTBFUL(this, LOGL_DEBUG, "Upgrading to MCS6\n"); break; - case GprsCodingScheme::MCS2 : - block->cs_last = GprsCodingScheme::MCS5; + case MCS2 : + block->cs_last = MCS5; LOGPTBFUL(this, LOGL_DEBUG, "Upgrading to MCS5\n"); break; - case GprsCodingScheme::MCS1 : + case MCS1 : LOGPTBFUL(this, LOGL_DEBUG, "Upgrading to MCS4\n"); - block->cs_last = GprsCodingScheme::MCS4; + block->cs_last = MCS4; break; default: LOGPTBFUL(this, LOGL_ERROR, @@ -528,61 +528,61 @@ { uint8_t coding_scheme = 0; - coding_scheme = GprsCodingScheme::Scheme(cs); + coding_scheme = CodingScheme(cs); if (cs.isGprs()) { switch (coding_scheme) { - case GprsCodingScheme::CS1 : + case CS1 : bts->gprs_ul_cs1(); rate_ctr_inc(&m_ul_gprs_ctrs->ctr[TBF_CTR_GPRS_UL_CS1]); break; - case GprsCodingScheme::CS2 : + case CS2 : bts->gprs_ul_cs2(); rate_ctr_inc(&m_ul_gprs_ctrs->ctr[TBF_CTR_GPRS_UL_CS2]); break; - case GprsCodingScheme::CS3 : + case CS3 : bts->gprs_ul_cs3(); rate_ctr_inc(&m_ul_gprs_ctrs->ctr[TBF_CTR_GPRS_UL_CS3]); break; - case GprsCodingScheme::CS4 : + case CS4 : bts->gprs_ul_cs4(); rate_ctr_inc(&m_ul_gprs_ctrs->ctr[TBF_CTR_GPRS_UL_CS4]); break; } } else { switch (coding_scheme) { - case GprsCodingScheme::MCS1 : + case MCS1 : bts->egprs_ul_mcs1(); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS1]); break; - case GprsCodingScheme::MCS2 : + case MCS2 : bts->egprs_ul_mcs2(); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS2]); break; - case GprsCodingScheme::MCS3 : + case MCS3 : bts->egprs_ul_mcs3(); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS3]); break; - case GprsCodingScheme::MCS4 : + case MCS4 : bts->egprs_ul_mcs4(); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS4]); break; - case GprsCodingScheme::MCS5 : + case MCS5 : bts->egprs_ul_mcs5(); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS5]); break; - case GprsCodingScheme::MCS6 : + case MCS6 : bts->egprs_ul_mcs6(); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS6]); break; - case GprsCodingScheme::MCS7 : + case MCS7 : bts->egprs_ul_mcs7(); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS7]); break; - case GprsCodingScheme::MCS8 : + case MCS8 : bts->egprs_ul_mcs8(); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS8]); break; - case GprsCodingScheme::MCS9 : + case MCS9 : bts->egprs_ul_mcs9(); rate_ctr_inc(&m_ul_egprs_ctrs->ctr[TBF_CTR_EGPRS_UL_MCS9]); break; diff --git a/tests/edge/EdgeTest.cpp b/tests/edge/EdgeTest.cpp index 98ca206..9f19872 100644 --- a/tests/edge/EdgeTest.cpp +++ b/tests/edge/EdgeTest.cpp @@ -110,33 +110,33 @@ unsigned i; unsigned last_size_UL; unsigned last_size_DL; - GprsCodingScheme::Scheme gprs_schemes[] = { - GprsCodingScheme::CS1, - GprsCodingScheme::CS2, - GprsCodingScheme::CS3, - GprsCodingScheme::CS4 + CodingScheme gprs_schemes[] = { + CS1, + CS2, + CS3, + CS4 }; struct { - GprsCodingScheme::Scheme s; + CodingScheme s; bool is_gmsk; } egprs_schemes[] = { - {GprsCodingScheme::MCS1, true}, - {GprsCodingScheme::MCS2, true}, - {GprsCodingScheme::MCS3, true}, - {GprsCodingScheme::MCS4, true}, - {GprsCodingScheme::MCS5, false}, - {GprsCodingScheme::MCS6, false}, - {GprsCodingScheme::MCS7, false}, - {GprsCodingScheme::MCS8, false}, - {GprsCodingScheme::MCS9, false}, + {MCS1, true}, + {MCS2, true}, + {MCS3, true}, + {MCS4, true}, + {MCS5, false}, + {MCS6, false}, + {MCS7, false}, + {MCS8, false}, + {MCS9, false}, }; printf("=== start %s ===\n", __func__); GprsCodingScheme cs; OSMO_ASSERT(!cs); - OSMO_ASSERT(GprsCodingScheme::Scheme(cs) == GprsCodingScheme::UNKNOWN); - OSMO_ASSERT(cs == GprsCodingScheme(GprsCodingScheme::UNKNOWN)); + OSMO_ASSERT(CodingScheme(cs) == UNKNOWN); + OSMO_ASSERT(cs == GprsCodingScheme(UNKNOWN)); OSMO_ASSERT(!cs.isCompatible(GprsCodingScheme::GPRS)); OSMO_ASSERT(!cs.isCompatible(GprsCodingScheme::EGPRS_GMSK)); OSMO_ASSERT(!cs.isCompatible(GprsCodingScheme::EGPRS)); @@ -149,7 +149,7 @@ OSMO_ASSERT(current_cs.isGprs()); OSMO_ASSERT(!current_cs.isEgprs()); OSMO_ASSERT(!current_cs.isEgprsGmsk()); - OSMO_ASSERT(GprsCodingScheme::Scheme(current_cs) == gprs_schemes[i]); + OSMO_ASSERT(CodingScheme(current_cs) == gprs_schemes[i]); OSMO_ASSERT(current_cs == GprsCodingScheme(gprs_schemes[i])); /* Check strong monotonicity */ @@ -176,7 +176,7 @@ OSMO_ASSERT(!current_cs.isGprs()); OSMO_ASSERT(current_cs.isEgprs()); OSMO_ASSERT(!!current_cs.isEgprsGmsk() == !!egprs_schemes[i].is_gmsk); - OSMO_ASSERT(GprsCodingScheme::Scheme(current_cs) == egprs_schemes[i].s); + OSMO_ASSERT(CodingScheme(current_cs) == egprs_schemes[i].s); OSMO_ASSERT(current_cs == GprsCodingScheme(egprs_schemes[i].s)); /* Check strong monotonicity */ @@ -208,7 +208,7 @@ printf("=== start %s ===\n", __func__); /* TS 44.060, B.1 */ - cs = GprsCodingScheme::CS4; + cs = CS4; rdbi.data_len = cs.maxDataBlockBytes(); rdbi.e = 0; rdbi.ti = 0; @@ -232,7 +232,7 @@ OSMO_ASSERT(!chunks[2].is_complete); /* TS 44.060, B.2 */ - cs = GprsCodingScheme::CS1; + cs = CS1; rdbi.data_len = cs.maxDataBlockBytes(); rdbi.e = 0; rdbi.ti = 0; @@ -266,7 +266,7 @@ OSMO_ASSERT(!chunks[1].is_complete); /* TS 44.060, B.3 */ - cs = GprsCodingScheme::CS1; + cs = CS1; rdbi.data_len = cs.maxDataBlockBytes(); rdbi.e = 0; rdbi.ti = 0; @@ -287,7 +287,7 @@ OSMO_ASSERT(chunks[1].is_complete); /* TS 44.060, B.4 */ - cs = GprsCodingScheme::CS1; + cs = CS1; rdbi.data_len = cs.maxDataBlockBytes(); rdbi.e = 1; rdbi.ti = 0; @@ -303,7 +303,7 @@ OSMO_ASSERT(!chunks[0].is_complete); /* TS 44.060, B.6 */ - cs = GprsCodingScheme::CS1; + cs = CS1; rdbi.data_len = cs.maxDataBlockBytes(); rdbi.e = 1; rdbi.ti = 0; @@ -319,7 +319,7 @@ OSMO_ASSERT(chunks[0].is_complete); /* TS 44.060, B.8.1 */ - cs = GprsCodingScheme::MCS4; + cs = MCS4; rdbi.data_len = cs.maxDataBlockBytes(); rdbi.e = 0; rdbi.ti = 0; @@ -348,7 +348,7 @@ * includes the FBI/E header bits into the N2 octet count which * is not consistent with Section 10.3a.1 & 10.3a.2. */ - cs = GprsCodingScheme::MCS2; + cs = MCS2; rdbi.data_len = cs.maxDataBlockBytes(); rdbi.e = 0; rdbi.ti = 0; @@ -412,7 +412,7 @@ /* Note that the spec confuses the byte numbering here, too (see above) */ - cs = GprsCodingScheme::MCS2; + cs = MCS2; rdbi.data_len = cs.maxDataBlockBytes(); rdbi.e = 1; rdbi.ti = 0; @@ -428,7 +428,7 @@ OSMO_ASSERT(chunks[0].is_complete); /* CS-1, TLLI, last block, single chunk until the end of the block */ - cs = GprsCodingScheme::CS1; + cs = CS1; rdbi.data_len = cs.maxDataBlockBytes(); rdbi.e = 1; rdbi.ti = 1; @@ -449,7 +449,7 @@ OSMO_ASSERT(chunks[0].is_complete); /* Like TS 44.060, B.2, first RLC block but with TLLI */ - cs = GprsCodingScheme::CS1; + cs = CS1; rdbi.data_len = cs.maxDataBlockBytes(); rdbi.e = 0; rdbi.ti = 1; @@ -471,7 +471,7 @@ OSMO_ASSERT(!chunks[0].is_complete); /* Like TS 44.060, B.8.1 but with TLLI */ - cs = GprsCodingScheme::MCS4; + cs = MCS4; rdbi.data_len = cs.maxDataBlockBytes(); rdbi.e = 0; rdbi.ti = 1; @@ -538,7 +538,7 @@ llc.init(); /* TS 44.060, B.1 */ - cs = GprsCodingScheme::CS4; + cs = CS4; gprs_rlc_data_block_info_init(&rdbi, cs, false, 0); num_chunks = 0; write_offset = 0; @@ -589,7 +589,7 @@ OSMO_ASSERT(data[2] == 0); /* TS 44.060, B.2 */ - cs = GprsCodingScheme::CS1; + cs = CS1; /* Block 1 */ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0); @@ -649,7 +649,7 @@ OSMO_ASSERT(data[1] == 0); /* TS 44.060, B.3 */ - cs = GprsCodingScheme::CS1; + cs = CS1; /* Block 1 */ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0); @@ -688,7 +688,7 @@ OSMO_ASSERT(data[2] == 0); /* TS 44.060, B.4 */ - cs = GprsCodingScheme::CS1; + cs = CS1; /* Block 1 */ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0); @@ -713,7 +713,7 @@ OSMO_ASSERT(data[0] == 0); /* TS 44.060, B.5 */ - cs = GprsCodingScheme::CS1; + cs = CS1; /* Block 1 */ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0); @@ -738,7 +738,7 @@ OSMO_ASSERT(data[0] == 0); /* TS 44.060, B.7 */ - cs = GprsCodingScheme::CS1; + cs = CS1; /* Block 1 */ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0); @@ -796,7 +796,7 @@ OSMO_ASSERT(data[1] == 0); /* TS 44.060, B.8.1 */ - cs = GprsCodingScheme::MCS4; + cs = MCS4; /* Block 1 */ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0); @@ -854,7 +854,7 @@ * includes the FBI/E header bits into the N2 octet count which * is not consistent with Section 10.3a.1 & 10.3a.2. */ - cs = GprsCodingScheme::MCS2; + cs = MCS2; /* Block 1 */ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0); @@ -986,7 +986,7 @@ /* Note that the spec confuses the byte numbering here, too (see above) */ - cs = GprsCodingScheme::MCS2; + cs = MCS2; /* Block 1 */ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0); @@ -1012,7 +1012,7 @@ /* Final block with an LLC of size data_len-1 */ - cs = GprsCodingScheme::MCS2; + cs = MCS2; /* Block 1 */ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0); @@ -1040,7 +1040,7 @@ /* Final block with an LLC of size data_len-2 */ - cs = GprsCodingScheme::MCS2; + cs = MCS2; /* Block 1 */ gprs_rlc_data_block_info_init(&rdbi, cs, false, 0); @@ -1076,13 +1076,13 @@ uint8_t saved_block[256]; uint8_t test_block[256]; uint8_t out_block[256]; - GprsCodingScheme::Scheme scheme; + CodingScheme scheme; int pattern; volatile unsigned int block_idx, i; - for (scheme = GprsCodingScheme::CS1; - scheme < GprsCodingScheme::NUM_SCHEMES; - scheme = GprsCodingScheme::Scheme(scheme + 1)) + for (scheme = CS1; + scheme < NUM_SCHEMES; + scheme = CodingScheme(scheme + 1)) { GprsCodingScheme cs(scheme); @@ -1143,13 +1143,13 @@ printf("=== start %s ===\n", __func__); gprs_rlc_data_info_init_dl(&rlc, - GprsCodingScheme(GprsCodingScheme::CS1), false, 0); + GprsCodingScheme(CS1), false, 0); OSMO_ASSERT(rlc.num_data_blocks == 1); OSMO_ASSERT(rlc.data_offs_bits[0] == 24); OSMO_ASSERT(rlc.block_info[0].data_len == 20); gprs_rlc_data_info_init_dl(&rlc, - GprsCodingScheme(GprsCodingScheme::MCS1), false, 0); + GprsCodingScheme(MCS1), false, 0); OSMO_ASSERT(rlc.num_data_blocks == 1); OSMO_ASSERT(rlc.data_offs_bits[0] == 33); OSMO_ASSERT(rlc.block_info[0].data_len == 22); @@ -1188,7 +1188,7 @@ int rc, offs; /*without padding*/ - cs = GprsCodingScheme::MCS5; + cs = MCS5; egprs2 = (struct gprs_rlc_ul_header_egprs_2 *) data; egprs2->r = 1; egprs2->si = 1; @@ -1213,7 +1213,7 @@ OSMO_ASSERT(rlc.block_info[0].bsn == 0); /* with padding case */ - cs = GprsCodingScheme::MCS6; + cs = MCS6; egprs2 = (struct gprs_rlc_ul_header_egprs_2 *) data; egprs2->r = 1; egprs2->si = 1; @@ -1293,7 +1293,7 @@ tfi = 1; /* MCS 7 */ - cs = GprsCodingScheme::MCS7; + cs = MCS7; egprs1 = (struct gprs_rlc_ul_header_egprs_1 *) data; egprs1->si = 1; egprs1->r = 1; @@ -1321,7 +1321,7 @@ OSMO_ASSERT(rlc.tfi == 1); /* MCS 8 */ - cs = GprsCodingScheme::MCS8; + cs = MCS8; egprs1 = (struct gprs_rlc_ul_header_egprs_1 *) data; egprs1->si = 1; egprs1->r = 1; @@ -1349,7 +1349,7 @@ OSMO_ASSERT(rlc.tfi == 1); /* MCS 9 */ - cs = GprsCodingScheme::MCS9; + cs = MCS9; egprs1 = (struct gprs_rlc_ul_header_egprs_1 *) data; egprs1->si = 1; egprs1->r = 1; diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index dfed79e..70f74af 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -711,7 +711,7 @@ * TS 44.060, B.8.1 * first seg received first, later second seg */ - cs = GprsCodingScheme::MCS3; + cs = MCS3; egprs3 = (struct gprs_rlc_ul_header_egprs_3 *) data_msg; egprs3->si = 0; egprs3->r = 1; @@ -854,7 +854,7 @@ * TS 44.060, B.8.1 * first seg received first, later second seg */ - cs = GprsCodingScheme::MCS3; + cs = MCS3; egprs3 = (struct gprs_rlc_ul_header_egprs_3 *) data_msg; egprs3->si = 1; egprs3->r = 1; @@ -899,7 +899,7 @@ OSMO_ASSERT(block->spb_status.block_status_ul == EGPRS_RESEG_DEFAULT); OSMO_ASSERT(block->cs_last == - GprsCodingScheme::MCS6); + MCS6); /* Assembled MCS is MCS6. so the size is 74 */ OSMO_ASSERT(block->len == 74); @@ -909,7 +909,7 @@ */ memset(data_msg, 0, sizeof(data_msg)); - cs = GprsCodingScheme::MCS3; + cs = MCS3; egprs3 = (struct gprs_rlc_ul_header_egprs_3 *) data_msg; egprs3->si = 1; egprs3->r = 1; @@ -954,7 +954,7 @@ OSMO_ASSERT(block->spb_status.block_status_ul == EGPRS_RESEG_DEFAULT); OSMO_ASSERT(block->cs_last == - GprsCodingScheme::MCS6); + MCS6); /* Assembled MCS is MCS6. so the size is 74 */ OSMO_ASSERT(block->len == 74); @@ -962,7 +962,7 @@ * TS 44.060, B.8.1 * Error scenario with spb as 1 */ - cs = GprsCodingScheme::MCS3; + cs = MCS3; egprs3 = (struct gprs_rlc_ul_header_egprs_3 *) data_msg; egprs3->si = 1; egprs3->r = 1; @@ -999,7 +999,7 @@ for (i = 0; i < 42; i++) data_msg[i] = i; - cs = GprsCodingScheme::MCS3; + cs = MCS3; egprs3 = (struct gprs_rlc_ul_header_egprs_3 *) data_msg; egprs3->si = 1; egprs3->r = 1; @@ -1023,7 +1023,7 @@ OSMO_ASSERT(block->spb_status.block_status_ul == EGPRS_RESEG_FIRST_SEG_RXD); - cs = GprsCodingScheme::MCS3; + cs = MCS3; egprs3 = (struct gprs_rlc_ul_header_egprs_3 *) data_msg; egprs3->si = 1; egprs3->r = 1; @@ -1049,9 +1049,9 @@ /* Assembled MCS is MCS6. so the size is 74 */ OSMO_ASSERT(block->len == 74); OSMO_ASSERT(block->cs_last == - GprsCodingScheme::MCS6); + MCS6); - cs = GprsCodingScheme::MCS3; + cs = MCS3; egprs3 = (struct gprs_rlc_ul_header_egprs_3 *) data_msg; egprs3->si = 1; egprs3->r = 1; @@ -1075,7 +1075,7 @@ OSMO_ASSERT(block->spb_status.block_status_ul == EGPRS_RESEG_FIRST_SEG_RXD); - cs = GprsCodingScheme::MCS3; + cs = MCS3; egprs3 = (struct gprs_rlc_ul_header_egprs_3 *) data_msg; egprs3->si = 1; egprs3->r = 1; @@ -1099,7 +1099,7 @@ OSMO_ASSERT(block->spb_status.block_status_ul == EGPRS_RESEG_FIRST_SEG_RXD); - cs = GprsCodingScheme::MCS3; + cs = MCS3; egprs3 = (struct gprs_rlc_ul_header_egprs_3 *) data_msg; egprs3->si = 1; egprs3->r = 1; @@ -1123,11 +1123,11 @@ OSMO_ASSERT(block->spb_status.block_status_ul == EGPRS_RESEG_DEFAULT); OSMO_ASSERT(block->cs_last == - GprsCodingScheme::MCS6); + MCS6); /* Assembled MCS is MCS6. so the size is 74 */ OSMO_ASSERT(block->len == 74); - cs = GprsCodingScheme::MCS3; + cs = MCS3; egprs3 = (struct gprs_rlc_ul_header_egprs_3 *) data_msg; egprs3->si = 1; egprs3->r = 1; @@ -1151,7 +1151,7 @@ OSMO_ASSERT(block->spb_status.block_status_ul == EGPRS_RESEG_SECOND_SEG_RXD); - cs = GprsCodingScheme::MCS3; + cs = MCS3; egprs3 = (struct gprs_rlc_ul_header_egprs_3 *) data_msg; egprs3->si = 1; egprs3->r = 1; @@ -1176,7 +1176,7 @@ OSMO_ASSERT(block->spb_status.block_status_ul == EGPRS_RESEG_DEFAULT); OSMO_ASSERT(block->cs_last == - GprsCodingScheme::MCS6); + MCS6); /* Assembled MCS is MCS6. so the size is 74 */ OSMO_ASSERT(block->len == 74); @@ -2389,7 +2389,7 @@ OSMO_ASSERT(ms->ta() == qta/4); OSMO_ASSERT(ms->ul_tbf() == ul_tbf); - cs = GprsCodingScheme::MCS4; + cs = MCS4; egprs3 = (struct gprs_rlc_ul_header_egprs_3 *) data_msg; egprs3->si = 0; egprs3->r = 1; @@ -2775,8 +2775,8 @@ OSMO_ASSERT(bsn1 == 0); dl_tbf->ms()->set_current_cs_dl - (static_cast < GprsCodingScheme::Scheme > - (GprsCodingScheme::CS4 + demanded_mcs)); + (static_cast < CodingScheme > + (CS4 + demanded_mcs)); fn = fn_add_blocks(fn, 1); @@ -2807,8 +2807,8 @@ /* Handle (MCS3, MCS3) -> MCS6 case */ dl_tbf->ms()->set_current_cs_dl - (static_cast < GprsCodingScheme::Scheme > - (GprsCodingScheme::CS4 + mcs)); + (static_cast < CodingScheme > + (CS4 + mcs)); NACK(dl_tbf, 0); @@ -2856,8 +2856,8 @@ NACK(dl_tbf, 0); dl_tbf->ms()->set_current_cs_dl - (static_cast < GprsCodingScheme::Scheme > - (GprsCodingScheme::CS4 + demanded_mcs)); + (static_cast < CodingScheme > + (CS4 + demanded_mcs)); fn = fn_add_blocks(fn, 1); @@ -2943,8 +2943,8 @@ /* Set the demanded MCS to demanded_mcs */ dl_tbf->ms()->set_current_cs_dl - (static_cast < GprsCodingScheme::Scheme > - (GprsCodingScheme::CS4 + demanded_mcs)); + (static_cast < CodingScheme > + (CS4 + demanded_mcs)); fn = fn_add_blocks(fn, 1); /* Retransmit the first RLC data block with demanded_mcs */ @@ -2970,8 +2970,8 @@ NACK(dl_tbf, 1); dl_tbf->ms()->set_current_cs_dl - (static_cast < GprsCodingScheme::Scheme > - (GprsCodingScheme::CS4 + demanded_mcs)); + (static_cast < CodingScheme > + (CS4 + demanded_mcs)); fn = fn_add_blocks(fn, 1); /* Send first, second RLC data blocks with demanded_mcs */ -- To view, visit https://gerrit.osmocom.org/13064 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I993b49d9a82b8c7ad677d52d11003794aeabe117 Gerrit-Change-Number: 13064 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Tue Feb 26 20:45:07 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 20:45:07 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--disable-?= =?UTF-8?Q?iu,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9063?= In-Reply-To: <1964476912.492.1551198036105.JavaMail.jenkins@jenkins.osmocom.org> References: <1964476912.492.1551198036105.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1064157810.494.1551213907443.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 411.04 KB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7fa59ca35bc0(ns:nsvc) with 12 counters validating counter group 0x7fa59ca35bc0(ns:nsvc) with 12 counters validating counter group 0x7fa59ca35bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 20:45:04.599443521 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 20:45:04.631443110 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 20:45:34 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 20:45:34 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--enable-i?= =?UTF-8?Q?u,0,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9063?= In-Reply-To: <1407996806.491.1551198035243.JavaMail.jenkins@jenkins.osmocom.org> References: <1407996806.491.1551198035243.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <2007221503.495.1551213934375.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 1.24 MB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 20:45:33.653528376 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 20:45:33.685528181 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From admin at opensuse.org Tue Feb 26 20:49:38 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 26 Feb 2019 20:49:38 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in xUbuntu_18.04/x86_64 In-Reply-To: References: Message-ID: <5c75a66a4bf51_2529100c5fc1332492@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/xUbuntu_18.04/x86_64 Package network:osmocom:nightly/osmo-sgsn failed to build in xUbuntu_18.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 141s] [ 141s] PROCESSING ALIVE_ACK from 0x05060708:32000 [ 141s] 0b [ 141s] @@ -7311,7 +7311,7 @@ [ 141s] MESSAGE to SGSN at 0x05060708:32000, msg length 1 [ 141s] 0a [ 141s] [ 141s] -result (RESET_ACK) = 1 [ 141s] +result (RESET_ACK) = 0 [ 141s] [ 141s] PROCESSING ALIVE_ACK from 0x05060708:32000 [ 141s] 0b [ 141s] 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) [ 141s] debian/rules:65: recipe for target 'override_dh_auto_test' failed [ 141s] make[1]: *** [override_dh_auto_test] Error 1 [ 141s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 141s] debian/rules:45: recipe for target 'build' failed [ 141s] make: *** [build] Error 2 [ 141s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 141s] [ 141s] lamb15 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Tue Feb 26 20:49:17 UTC 2019. [ 141s] [ 141s] ### VM INTERACTION START ### [ 144s] [ 132.050853] sysrq: SysRq : Power Off [ 144s] [ 132.056363] reboot: Power down [ 144s] ### VM INTERACTION END ### [ 144s] [ 144s] lamb15 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Tue Feb 26 20:49:21 UTC 2019. [ 144s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Tue Feb 26 20:53:55 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 26 Feb 2019 20:53:55 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in xUbuntu_16.04/x86_64 In-Reply-To: References: Message-ID: <5c75a7781c3ee_2529100c5fc133372@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/xUbuntu_16.04/x86_64 Package network:osmocom:nightly/osmo-sgsn failed to build in xUbuntu_16.04/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 177s] | #define HAVE_MEMORY_H 1 [ 177s] | #define HAVE_STRINGS_H 1 [ 177s] | #define HAVE_INTTYPES_H 1 [ 177s] | #define HAVE_STDINT_H 1 [ 177s] | #define HAVE_UNISTD_H 1 [ 177s] | #define HAVE_DLFCN_H 1 [ 177s] | #define LT_OBJDIR ".libs/" [ 177s] | #define BUILD_IU 1 [ 177s] | #define STDC_HEADERS 1 [ 177s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 177s] | [ 177s] | configure: exit 0 [ 177s] [ 177s] debian/rules:65: recipe for target 'override_dh_auto_test' failed [ 177s] make[1]: *** [override_dh_auto_test] Error 1 [ 177s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 177s] debian/rules:45: recipe for target 'build' failed [ 177s] make: *** [build] Error 2 [ 177s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 177s] [ 177s] lamb22 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Tue Feb 26 20:53:38 UTC 2019. [ 177s] [ 177s] ### VM INTERACTION START ### [ 180s] [ 160.970226] sysrq: SysRq : Power Off [ 180s] [ 160.976345] reboot: Power down [ 180s] ### VM INTERACTION END ### [ 180s] [ 180s] lamb22 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Tue Feb 26 20:53:42 UTC 2019. [ 180s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Tue Feb 26 20:54:52 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Tue, 26 Feb 2019 20:54:52 +0000 Subject: Change in libosmocore[master]: fix api doc typo for osmo_plmn_name2() Message-ID: Neels Hofmeyr has uploaded this change for review. ( https://gerrit.osmocom.org/13065 Change subject: fix api doc typo for osmo_plmn_name2() ...................................................................... fix api doc typo for osmo_plmn_name2() Change-Id: Ic2652c7e4ffe1e707022168ac6c0da7c88ae7f45 --- M src/gsm/gsm23003.c 1 file changed, 1 insertion(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/65/13065/1 diff --git a/src/gsm/gsm23003.c b/src/gsm/gsm23003.c index 95fca91..720c09b 100644 --- a/src/gsm/gsm23003.c +++ b/src/gsm/gsm23003.c @@ -129,7 +129,7 @@ return buf; } -/*! Same as osmo_mcc_mnc_name(), but returning in a different static buffer. +/*! Same as osmo_plmn_name(), but returning in a different static buffer. * \param[in] plmn MCC-MNC value. * \returns string in static buffer. */ -- To view, visit https://gerrit.osmocom.org/13065 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ic2652c7e4ffe1e707022168ac6c0da7c88ae7f45 Gerrit-Change-Number: 13065 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 20:57:59 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Tue, 26 Feb 2019 20:57:59 +0000 Subject: Change in libosmocore[master]: log: fsm: allow logging the timeout on state change In-Reply-To: References: Message-ID: Neels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/12987 ) Change subject: log: fsm: allow logging the timeout on state change ...................................................................... log: fsm: allow logging the timeout on state change Add a flag that adds timeout info to osmo_fsm_inst state change logging. To not affect unit testing, make this an opt-in feature that is disabled by default -- mostly because osmo_fsm_inst_state_chg_keep_timer() will produce non-deterministic logging depending on timing (logs remaining time). Unit tests that don't verify log output and those that use fake time may also enable this feature. Do so in fsm_test.c. The idea is that in due course we will add osmo_fsm_log_timeouts(true) calls to all of our production applications' main() initialization. Change-Id: I089b81021a1a4ada1205261470da032b82d57872 --- M include/osmocom/core/fsm.h M src/fsm.c M tests/fsm/fsm_test.c M tests/fsm/fsm_test.err 4 files changed, 53 insertions(+), 12 deletions(-) Approvals: Neels Hofmeyr: Looks good to me, approved Jenkins Builder: Verified diff --git a/include/osmocom/core/fsm.h b/include/osmocom/core/fsm.h index df7e348..ae1c857 100644 --- a/include/osmocom/core/fsm.h +++ b/include/osmocom/core/fsm.h @@ -118,6 +118,7 @@ }; void osmo_fsm_log_addr(bool log_addr); +void osmo_fsm_log_timeouts(bool log_timeouts); /*! Log using FSM instance's context, on explicit logging subsystem and level. * \param fi An osmo_fsm_inst. diff --git a/src/fsm.c b/src/fsm.c index 6e15ab7..eb457a1 100644 --- a/src/fsm.c +++ b/src/fsm.c @@ -90,6 +90,7 @@ LLIST_HEAD(osmo_g_fsms); static bool fsm_log_addr = true; +static bool fsm_log_timeouts = false; /*! specify if FSM instance addresses should be logged or not * @@ -104,6 +105,26 @@ fsm_log_addr = log_addr; } +/*! Enable or disable logging of timeout values for FSM instance state changes. + * + * By default, state changes are logged by state name only, omitting the timeout. When passing true, each state change + * will also log the T number and the chosen timeout in seconds. osmo_fsm_inst_state_chg_keep_timer() will log remaining + * timeout in millisecond precision. + * + * The default for this is false to reflect legacy behavior. Since various C tests that verify logging output already + * existed prior to this option, keeping timeout logging off makes sure that they continue to pass. Particularly, + * osmo_fsm_inst_state_chg_keep_timer() may cause non-deterministic logging of remaining timeout values. + * + * For any program that does not explicitly require deterministic logging output, i.e. anything besides regression tests + * involving FSM instances, it is recommended to call osmo_fsm_log_timeouts(true). + * + * \param[in] log_timeouts Pass true to log timeouts on state transitions, false to omit timeouts. + */ +void osmo_fsm_log_timeouts(bool log_timeouts) +{ + fsm_log_timeouts = log_timeouts; +} + struct osmo_fsm *osmo_fsm_find_by_name(const char *name) { struct osmo_fsm *fsm; @@ -436,6 +457,7 @@ struct osmo_fsm *fsm = fi->fsm; uint32_t old_state = fi->state; const struct osmo_fsm_state *st = &fsm->states[fi->state]; + struct timeval remaining; /* Limit to 0x7fffffff seconds as explained by * _osmo_fsm_inst_state_chg()'s API doc. */ @@ -458,8 +480,23 @@ if (st->onleave) st->onleave(fi, new_state); - LOGPFSMSRC(fi, file, line, "state_chg to %s\n", - osmo_fsm_state_name(fsm, new_state)); + if (fsm_log_timeouts) { + if (keep_timer && fi->timer.active && (osmo_timer_remaining(&fi->timer, NULL, &remaining) == 0)) + LOGPFSMSRC(fi, file, line, "State change to %s (keeping T%d, %ld.%03lds remaining)\n", + osmo_fsm_state_name(fsm, new_state), + fi->T, remaining.tv_sec, remaining.tv_usec / 1000); + else if (timeout_secs && !keep_timer) + LOGPFSMSRC(fi, file, line, "State change to %s (T%d, %lus)\n", + osmo_fsm_state_name(fsm, new_state), + T, timeout_secs); + else + LOGPFSMSRC(fi, file, line, "State change to %s (no timeout)\n", + osmo_fsm_state_name(fsm, new_state)); + } else { + LOGPFSMSRC(fi, file, line, "state_chg to %s\n", + osmo_fsm_state_name(fsm, new_state)); + } + fi->state = new_state; st = &fsm->states[new_state]; diff --git a/tests/fsm/fsm_test.c b/tests/fsm/fsm_test.c index 7aac8d3..f8ebdc7 100644 --- a/tests/fsm/fsm_test.c +++ b/tests/fsm/fsm_test.c @@ -406,6 +406,9 @@ osmo_fsm_log_addr(false); + /* Using fake time to get deterministic timeout logging */ + osmo_fsm_log_timeouts(true); + log_init(&log_info, NULL); stderr_target = log_target_create_stderr(); log_add_target(stderr_target); diff --git a/tests/fsm/fsm_test.err b/tests/fsm/fsm_test.err index bf474ab..13cbacd 100644 --- a/tests/fsm/fsm_test.err +++ b/tests/fsm/fsm_test.err @@ -3,9 +3,9 @@ Test_FSM(my_id){NULL}: Received Event EV_B Test_FSM(my_id){NULL}: Event EV_B not permitted Test_FSM(my_id){NULL}: Received Event EV_A -Test_FSM(my_id){NULL}: state_chg to ONE +Test_FSM(my_id){NULL}: State change to ONE (no timeout) Test_FSM(my_id){ONE}: Received Event EV_B -Test_FSM(my_id){ONE}: state_chg to TWO +Test_FSM(my_id){ONE}: State change to TWO (T2342, 1s) Test_FSM(my_id){TWO}: Timeout of T2342 Timer Test_FSM(my_id){TWO}: Deallocated @@ -83,16 +83,16 @@  --- test_state_chg_keep_timer() Test_FSM{NULL}: Allocated -Test_FSM{NULL}: state_chg to ONE -Test_FSM{ONE}: state_chg to TWO +Test_FSM{NULL}: State change to ONE (no timeout) +Test_FSM{ONE}: State change to TWO (no timeout) Test_FSM{TWO}: Terminating (cause = OSMO_FSM_TERM_REQUEST) Test_FSM{TWO}: Freeing instance Test_FSM{TWO}: Deallocated Total time passed: 0.000000 s Test_FSM{NULL}: Allocated -Test_FSM{NULL}: state_chg to ONE +Test_FSM{NULL}: State change to ONE (T10, 10s) Total time passed: 2.000342 s -Test_FSM{ONE}: state_chg to TWO +Test_FSM{ONE}: State change to TWO (keeping T10, 7.999s remaining) Total time passed: 2.000342 s Total time passed: 9.999999 s Total time passed: 10.000000 s @@ -104,14 +104,14 @@ --- test_state_chg_T() Test_FSM{NULL}: Allocated -Test_FSM{NULL}: state_chg to ONE -Test_FSM{ONE}: state_chg to TWO +Test_FSM{NULL}: State change to ONE (T42, 23s) +Test_FSM{ONE}: State change to TWO (no timeout) Test_FSM{TWO}: Terminating (cause = OSMO_FSM_TERM_REQUEST) Test_FSM{TWO}: Freeing instance Test_FSM{TWO}: Deallocated Test_FSM{NULL}: Allocated -Test_FSM{NULL}: state_chg to ONE -Test_FSM{ONE}: state_chg to TWO +Test_FSM{NULL}: State change to ONE (T42, 23s) +Test_FSM{ONE}: State change to TWO (no timeout) Test_FSM{TWO}: Terminating (cause = OSMO_FSM_TERM_REQUEST) Test_FSM{TWO}: Freeing instance Test_FSM{TWO}: Deallocated -- To view, visit https://gerrit.osmocom.org/12987 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I089b81021a1a4ada1205261470da032b82d57872 Gerrit-Change-Number: 12987 Gerrit-PatchSet: 3 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Vadim Yanitskiy -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Tue Feb 26 20:59:04 2019 From: admin at opensuse.org (OBS Notification) Date: Tue, 26 Feb 2019 20:59:04 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in xUbuntu_17.10/i586 In-Reply-To: References: Message-ID: <5c75a8a6e3ea9_2529100c5fc13343c3@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/xUbuntu_17.10/i586 Package network:osmocom:nightly/osmo-sgsn failed to build in xUbuntu_17.10/i586 Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 78s] | #define HAVE_MEMORY_H 1 [ 78s] | #define HAVE_STRINGS_H 1 [ 78s] | #define HAVE_INTTYPES_H 1 [ 78s] | #define HAVE_STDINT_H 1 [ 78s] | #define HAVE_UNISTD_H 1 [ 78s] | #define HAVE_DLFCN_H 1 [ 78s] | #define LT_OBJDIR ".libs/" [ 78s] | #define BUILD_IU 1 [ 78s] | #define STDC_HEADERS 1 [ 78s] | #define HAVE_TM_GMTOFF_IN_TM 1 [ 78s] | [ 78s] | configure: exit 0 [ 78s] [ 78s] debian/rules:65: recipe for target 'override_dh_auto_test' failed [ 78s] make[1]: *** [override_dh_auto_test] Error 1 [ 78s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 78s] debian/rules:45: recipe for target 'build' failed [ 78s] make: *** [build] Error 2 [ 78s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 78s] [ 78s] build76 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Tue Feb 26 20:58:52 UTC 2019. [ 78s] [ 78s] ### VM INTERACTION START ### [ 81s] [ 73.396255] sysrq: SysRq : Power Off [ 81s] [ 73.399088] reboot: Power down [ 81s] ### VM INTERACTION END ### [ 81s] [ 81s] build76 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Tue Feb 26 20:58:55 UTC 2019. [ 81s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Tue Feb 26 21:01:54 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 26 Feb 2019 21:01:54 +0000 Subject: Change in osmo-pcu[master]: Make get_retx_mcs() into regular function Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/13066 Change subject: Make get_retx_mcs() into regular function ...................................................................... Make get_retx_mcs() into regular function Moving from header-defined inline function allows us to hide egprs_mcs_retx_tbl definition and simplify further changes. Change-Id: I95258d1558a3b918ae83f1a69e7c3de2b97e5627 --- M src/gprs_coding_scheme.cpp M src/gprs_coding_scheme.h 2 files changed, 14 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/66/13066/1 diff --git a/src/gprs_coding_scheme.cpp b/src/gprs_coding_scheme.cpp index 3769363..1231f0e 100644 --- a/src/gprs_coding_scheme.cpp +++ b/src/gprs_coding_scheme.cpp @@ -21,13 +21,16 @@ #include "gprs_coding_scheme.h" +#define MAX_NUM_ARQ 2 /* max. number of ARQ */ +#define MAX_NUM_MCS 9 /* max. number of MCS */ + /* * 44.060 Table 8.1.1.1 and Table 8.1.1.2 * It has 3 level indexing. 0th level is ARQ type * 1st level is Original MCS( index 0 corresponds to MCS1 and so on) * 2nd level is MS MCS (index 0 corresponds to MCS1 and so on) */ -enum CodingScheme GprsCodingScheme::egprs_mcs_retx_tbl[MAX_NUM_ARQ] +static enum CodingScheme egprs_mcs_retx_tbl[MAX_NUM_ARQ] [MAX_NUM_MCS][MAX_NUM_MCS] = { { {MCS1, MCS1, MCS1, MCS1, MCS1, MCS1, MCS1, MCS1, MCS1}, @@ -53,6 +56,16 @@ } }; +CodingScheme GprsCodingScheme::get_retx_mcs(const GprsCodingScheme mcs, + const GprsCodingScheme demanded_mcs, + const unsigned arq_type) +{ + OSMO_ASSERT(mcs.to_num() > 0); + OSMO_ASSERT(demanded_mcs.to_num() > 0); + + return egprs_mcs_retx_tbl[arq_type][mcs.to_num() - 1][demanded_mcs.to_num() - 1]; +} + static struct { struct { uint8_t bytes; diff --git a/src/gprs_coding_scheme.h b/src/gprs_coding_scheme.h index 1121d13..89054f5 100644 --- a/src/gprs_coding_scheme.h +++ b/src/gprs_coding_scheme.h @@ -31,8 +31,6 @@ class GprsCodingScheme { public: -#define MAX_NUM_ARQ 2 /* max. number of ARQ */ -#define MAX_NUM_MCS 9 /* max. number of MCS */ #define EGPRS_ARQ1 0x0 #define EGPRS_ARQ2 0x1 @@ -111,9 +109,6 @@ static CodingScheme get_retx_mcs(const GprsCodingScheme mcs, const GprsCodingScheme retx_mcs, const unsigned arq_type); - - static enum CodingScheme egprs_mcs_retx_tbl[MAX_NUM_ARQ] - [MAX_NUM_MCS][MAX_NUM_MCS]; private: GprsCodingScheme(int s); /* fail on use */ GprsCodingScheme& operator =(int s); /* fail on use */ @@ -206,15 +201,3 @@ { return a.isCompatible(b) && a.to_num() < b.to_num(); } - -inline CodingScheme GprsCodingScheme::get_retx_mcs( - const GprsCodingScheme mcs, - const GprsCodingScheme demanded_mcs, - const unsigned arq_type) -{ - OSMO_ASSERT(mcs.to_num() > 0); - OSMO_ASSERT(demanded_mcs.to_num() > 0); - - return egprs_mcs_retx_tbl[arq_type][mcs.to_num() - 1] - [demanded_mcs.to_num() - 1]; -} -- To view, visit https://gerrit.osmocom.org/13066 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I95258d1558a3b918ae83f1a69e7c3de2b97e5627 Gerrit-Change-Number: 13066 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Tue Feb 26 21:11:18 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 21:11:18 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--disable-?= =?UTF-8?Q?iu,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9064?= In-Reply-To: <1064157810.494.1551213907443.JavaMail.jenkins@jenkins.osmocom.org> References: <1064157810.494.1551213907443.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <902578852.496.1551215478138.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 388.25 KB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 21:11:17.292281188 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 21:11:17.324281077 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 21:11:27 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 21:11:27 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--enable-i?= =?UTF-8?Q?u,0,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9064?= In-Reply-To: <2007221503.495.1551213934375.JavaMail.jenkins@jenkins.osmocom.org> References: <2007221503.495.1551213934375.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1312332643.497.1551215487328.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 1.24 MB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7f8366ebdbc0(ns:nsvc) with 12 counters validating counter group 0x7f8366ebdbc0(ns:nsvc) with 12 counters validating counter group 0x7f8366ebdbc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 21:11:26.594817476 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 21:11:26.626817453 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 21:13:02 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 21:13:02 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--disable-?= =?UTF-8?Q?iu,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9065?= In-Reply-To: <902578852.496.1551215478138.JavaMail.jenkins@jenkins.osmocom.org> References: <902578852.496.1551215478138.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <484588446.498.1551215582363.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 412.50 KB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 21:13:01.479897738 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 21:13:01.511897613 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 21:13:05 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 21:13:05 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--enable-i?= =?UTF-8?Q?u,0,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9065?= In-Reply-To: <1312332643.497.1551215487328.JavaMail.jenkins@jenkins.osmocom.org> References: <1312332643.497.1551215487328.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <836548448.499.1551215585910.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 1.15 MB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 21:13:05.019883954 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 21:13:05.055883814 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 21:16:56 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 21:16:56 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--disable-?= =?UTF-8?Q?iu,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9066?= In-Reply-To: <484588446.498.1551215582363.JavaMail.jenkins@jenkins.osmocom.org> References: <484588446.498.1551215582363.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1820975548.500.1551215816372.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 413.42 KB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7fb236676bc0(ns:nsvc) with 12 counters validating counter group 0x7fb236676bc0(ns:nsvc) with 12 counters validating counter group 0x7fb236676bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 21:16:53.302945361 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 21:16:53.338944898 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 21:17:40 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 21:17:40 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--enable-i?= =?UTF-8?Q?u,0,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9066?= In-Reply-To: <836548448.499.1551215585910.JavaMail.jenkins@jenkins.osmocom.org> References: <836548448.499.1551215585910.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <2015062981.501.1551215860355.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 1.24 MB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7fa25da33bc0(ns:nsvc) with 12 counters validating counter group 0x7fa25da33bc0(ns:nsvc) with 12 counters validating counter group 0x7fa25da33bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 21:17:37.926372853 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 21:17:37.954372493 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 21:23:55 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 21:23:55 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--disable-?= =?UTF-8?Q?iu,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9067?= In-Reply-To: <1820975548.500.1551215816372.JavaMail.jenkins@jenkins.osmocom.org> References: <1820975548.500.1551215816372.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <825584312.502.1551216235637.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 414.60 KB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7f6429d4dbc0(ns:nsvc) with 12 counters validating counter group 0x7f6429d4dbc0(ns:nsvc) with 12 counters validating counter group 0x7f6429d4dbc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 21:23:55.078286385 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 21:23:55.106286364 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From jenkins at lists.osmocom.org Tue Feb 26 21:25:05 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 21:25:05 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-sgsn_=C2=BB_--enable-i?= =?UTF-8?Q?u,0,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9067?= In-Reply-To: <2015062981.501.1551215860355.JavaMail.jenkins@jenkins.osmocom.org> References: <2015062981.501.1551215860355.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <580656919.503.1551216305834.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 1.24 MB...] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) Unregistering TLLI afe2b700 NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA Got LLC message, CRC: a5ba79 (computed a5ba79) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA Got LLC message, CRC: 017a81 (computed 017a81) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA Got LLC message, CRC: fcdc9c (computed fcdc9c) DETACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, PTMSI efe2b700 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition was in progress when receiving a DETACH_REQ. NSEI=4096(BSS) IMSI not yet acquired, faking a DETACH_ACC. NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) Unregistering TLLI afe2b700 Removing TLLI afe2b700 from list (P-TMSI or IMSI are not set) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x684a29 CMD=UI DATA Got LLC message, CRC: 684a29 (computed 684a29) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI afe2b700 to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA Got LLC message, CRC: 36f8b7 (computed 36f8b7) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) DETACH_REQ: Got TLLI afe2b700, IMSI 12131415161718 gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x20a217 CMD=UI DATA Got LLC message, CRC: 20a217 (computed 20a217) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) DETACH_ACK: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) Updated LLC message, CRC: 824988 -> 824988 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) Unregistering TLLI afe2b700 NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x824988 CMD=UI DATA Got LLC message, CRC: 824988 (computed 824988) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x8a2c65 CMD=UI DATA Got LLC message, CRC: 8a2c65 (computed 8a2c65) validating counter group 0x44fc00(gbproxy:global) with 12 counters counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '03242526' (9) The TLLI has changed from c00004d2 to c000162e validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, length 2, max_len exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Removing TLLI c00004d2 from list (stale, age 2, max_age exceeded) validating counter group 0x451460(gbproxy:peer) with 33 counters Checking IMSI '03242526' (9) Adding TLLI c00004d2 to list Checking IMSI '06272829' (9) Adding TLLI c000162e to list Checking IMSI '12345678' (9) Adding TLLI c0000d80 to list Removing TLLI c00004d2 from list (stale, age 3, max_age exceeded) Removing TLLI c000162e from list (stale, age 2, max_age exceeded) counter group 'gbproxy:global' already exists for index 0, instead using index 1. This is a software bug that needs fixing. validating counter group 0x44fc00(gbproxy:global) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters validating counter group 0x7ffff6f02bc0(ns:nsvc) with 12 counters signal 'NS-RESET' for unknown peer NSEI=4096/NSVCI=4097 signal 'NS-UNBLOCK' for unknown peer NSEI=4096/NSVCI=4097 NSEI=4096 Rx BVC RESET (BVCI=4098) Allocationg new peer for BVCI=4098 via NSEI=4096 validating counter group 0x451460(gbproxy:peer) with 33 counters NSEI=4096/BVCI=4098 Cell ID 112-332-16464-96 NSEI=4096 proxying BTS->SGSN (NS_BVCI=0, NSEI=256) NSEI=256 proxying SGSN->BSS (NS_BVCI=0, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) ATTACH_REQ: Got TLLI 8000dead, BSSGP RAID 001-99-99-96, old RAID 112-332-16464-96, PTMSI fbc54679 Adding TLLI 8000dead to list NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xba6cff CMD=UI DATA Got LLC message, CRC: ba6cff (computed ba6cff) Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. GMM: Got TLLI 8000dead gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) DETACH_ACK: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, invalidate gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition in progress, storing message (DETACH_ACK) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xc314ba CMD=UI DATA Got LLC message, CRC: c314ba (computed c314ba) ID_RESP: Got TLLI 8000dead, BSSGP RAID 112-332-16464-96, IMSI 12131415161718 gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) gbproxy_validate_tlli({current = 8000dead, assigned = 00000000, net_vld = 0, bss_vld = 0}, 8000dead) NSEI=4096(BSS) IMSI acquisition succeeded, flushing stored messages LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x016d16 CMD=UI DATA Got LLC message, CRC: 016d16 (computed 016d16) NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x4192f8 CMD=UI DATA Got LLC message, CRC: 4192f8 (computed 4192f8) Removing TLLI 8000dead from list link_info deleted while flushing stored messages validating counter group 0x44fc00(gbproxy:global) with 12 counters test_gbproxy_parse_bssgp_unitdata: Test passed; Failed to parse invalid message 00 00 23 94 01 e1 55 cf ea 00 00 04 08 88 72 f4 80 10 18 00 9c 40 00 80 0e 00 06 01 c0 41 6c 43 38 validating counter group 0x44fc00(gbproxy:global) with 12 counters talloc report on 'null_context' (total 40 bytes in 2 blocks) struct signal_handler contains 40 bytes in 1 blocks (ref 0) 0x60d00000cf00 --- expout 2019-02-26 21:25:04.724449605 +0000 +++ /build/tests/testsuite.dir/at-groups/2/stdout 2019-02-26 21:25:04.772449349 +0000 @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Tue Feb 26 21:31:00 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 26 Feb 2019 21:31:00 +0000 Subject: Change in osmo-pcu[master]: Move blocks/bits size computation to C file Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/13067 Change subject: Move blocks/bits size computation to C file ...................................................................... Move blocks/bits size computation to C file Move functions which compute number of blocks or bits depending on header type into C file to simplify further modifications and testing. Change-Id: Id0873f85e1f16a72e17e7fbc4ad76b194917067f --- M debian/copyright M src/Makefile.am A src/coding_scheme.c M src/coding_scheme.h M src/decoding.cpp M src/encoding.cpp M src/gprs_bssgp_pcu.cpp M src/gprs_coding_scheme.cpp M src/gprs_coding_scheme.h M src/rlc.cpp M src/tbf_dl.cpp M tests/edge/EdgeTest.cpp 12 files changed, 125 insertions(+), 99 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/67/13067/1 diff --git a/debian/copyright b/debian/copyright index 853cd6e..39e810c 100644 --- a/debian/copyright +++ b/debian/copyright @@ -13,6 +13,8 @@ Files: src/gprs_ms_storage.h src/gprs_ms_storage.cpp src/gprs_ms.h + src/coding_scheme.c + src/coding_scheme.h src/gprs_coding_scheme.cpp src/gprs_coding_scheme.h src/cxx_linuxlist.h diff --git a/src/Makefile.am b/src/Makefile.am index eb4a2bb..51b047e 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -63,6 +63,7 @@ rlc.cpp \ osmobts_sock.cpp \ gprs_codel.c \ + coding_scheme.c \ gprs_coding_scheme.cpp \ egprs_rlc_compression.cpp diff --git a/src/coding_scheme.c b/src/coding_scheme.c new file mode 100644 index 0000000..91ece40 --- /dev/null +++ b/src/coding_scheme.c @@ -0,0 +1,61 @@ +/* coding_scheme.c + * + * Copyright (C) 2019 by sysmocom s.f.m.c. GmbH + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#include +#include + +#include + +#include "coding_scheme.h" + +static struct { + struct { + uint8_t data_header_bits; + } uplink, downlink; + uint8_t data_block_header_bits; + uint8_t num_blocks; + const char *name; +} hdr_type_info[NUM_HEADER_TYPES] = { + { { 0 }, { 0 }, 0, 0, "INVALID" }, + { { 1 * 8 + 0 }, { 1 * 8 + 0 }, 0, 0, "CONTROL" }, + { { 3 * 8 + 0 }, { 3 * 8 + 0 }, 0, 1, "GPRS_DATA" }, + { { 5 * 8 + 6 }, { 5 * 8 + 0 }, 2, 2, "EGPRS_DATA_TYPE1" }, + { { 4 * 8 + 5 }, { 3 * 8 + 4 }, 2, 1, "EGPRS_DATA_TYPE2" }, + { { 3 * 8 + 7 }, { 3 * 8 + 7 }, 2, 1, "EGPRS_DATA_TYPE3" }, +}; + +uint8_t numDataBlocks(enum HeaderType ht) +{ + return hdr_type_info[ht].num_blocks; +} + +uint8_t numDataHeaderBitsUL(enum HeaderType ht) +{ + return hdr_type_info[ht].uplink.data_header_bits; +} + +uint8_t numDataHeaderBitsDL(enum HeaderType ht) +{ + return hdr_type_info[ht].downlink.data_header_bits; +} + +uint8_t numDataBlockHeaderBits(enum HeaderType ht) +{ + return hdr_type_info[ht].data_block_header_bits; +} diff --git a/src/coding_scheme.h b/src/coding_scheme.h index 3705ea4..b7093d1 100644 --- a/src/coding_scheme.h +++ b/src/coding_scheme.h @@ -27,3 +27,20 @@ MCS1, MCS2, MCS3, MCS4, MCS5, MCS6, MCS7, MCS8, MCS9, NUM_SCHEMES }; + +enum HeaderType { + HEADER_INVALID, + HEADER_GPRS_CONTROL, + HEADER_GPRS_DATA, + HEADER_EGPRS_DATA_TYPE_1, + HEADER_EGPRS_DATA_TYPE_2, + HEADER_EGPRS_DATA_TYPE_3, + NUM_HEADER_TYPES +}; + +enum HeaderType headerTypeData(enum CodingScheme mcs); + +uint8_t numDataBlocks(enum HeaderType ht); +uint8_t numDataHeaderBitsUL(enum HeaderType ht); +uint8_t numDataHeaderBitsDL(enum HeaderType ht); +uint8_t numDataBlockHeaderBits(enum HeaderType ht); diff --git a/src/decoding.cpp b/src/decoding.cpp index 0dbb10a..3410291 100644 --- a/src/decoding.cpp +++ b/src/decoding.cpp @@ -355,16 +355,16 @@ { unsigned int cur_bit = 0; switch(cs.headerTypeData()) { - case GprsCodingScheme::HEADER_GPRS_DATA : + case HEADER_GPRS_DATA : cur_bit = rlc_parse_ul_data_header_gprs(rlc, data, cs); break; - case GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3 : + case HEADER_EGPRS_DATA_TYPE_3 : cur_bit = rlc_parse_ul_data_header_egprs_type_3(rlc, data, cs); break; - case GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2 : + case HEADER_EGPRS_DATA_TYPE_2 : cur_bit = rlc_parse_ul_data_header_egprs_type_2(rlc, data, cs); break; - case GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1 : + case HEADER_EGPRS_DATA_TYPE_1 : cur_bit = rlc_parse_ul_data_header_egprs_type_1(rlc, data, cs); break; default: diff --git a/src/encoding.cpp b/src/encoding.cpp index 4c8cdb0..4a57ce3 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -1104,7 +1104,7 @@ unsigned int bsn_delta; switch(cs.headerTypeData()) { - case GprsCodingScheme::HEADER_GPRS_DATA: + case HEADER_GPRS_DATA: gprs = static_cast ((void *)data); @@ -1120,7 +1120,7 @@ gprs->bsn = rlc->block_info[0].bsn; break; - case GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1: + case HEADER_EGPRS_DATA_TYPE_1: egprs1 = static_cast ((void *)data); @@ -1159,7 +1159,7 @@ data[offs] = (data[offs] & 0b11110011) | e_fbi_header; break; - case GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2: + case HEADER_EGPRS_DATA_TYPE_2: egprs2 = static_cast ((void *)data); @@ -1183,7 +1183,7 @@ data[offs] = (data[offs] & 0b11001111) | e_fbi_header; break; - case GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3: + case HEADER_EGPRS_DATA_TYPE_3: egprs3 = static_cast ((void *)data); diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index f63fac3..ae2ab7c 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -26,6 +26,7 @@ #include #include #include +#include "coding_scheme.h" #define BSSGP_TIMER_T1 30 /* Guards the (un)blocking procedures */ #define BSSGP_TIMER_T2 30 /* Guards the reset procedure */ @@ -607,7 +608,7 @@ static uint32_t gprs_bssgp_max_leak_rate(GprsCodingScheme cs, int num_pdch) { - int bytes_per_rlc_block = cs.maxDataBlockBytes() * cs.numDataBlocks(); + int bytes_per_rlc_block = cs.maxDataBlockBytes() * numDataBlocks(cs.headerTypeData()); /* n byte payload per 20ms */ return bytes_per_rlc_block * (1000 / 20) * num_pdch; diff --git a/src/gprs_coding_scheme.cpp b/src/gprs_coding_scheme.cpp index 1231f0e..d7934ec 100644 --- a/src/gprs_coding_scheme.cpp +++ b/src/gprs_coding_scheme.cpp @@ -75,55 +75,39 @@ uint8_t data_bytes; uint8_t optional_padding_bits; const char *name; - GprsCodingScheme::HeaderType data_hdr; + enum HeaderType data_hdr; GprsCodingScheme::Family family; } mcs_info[NUM_SCHEMES] = { {{0, 0}, {0, 0}, 0, 0, "UNKNOWN", - GprsCodingScheme::HEADER_INVALID, GprsCodingScheme::FAMILY_INVALID}, + HEADER_INVALID, GprsCodingScheme::FAMILY_INVALID}, {{23, 0}, {23, 0}, 20, 0, "CS-1", - GprsCodingScheme::HEADER_GPRS_DATA, GprsCodingScheme::FAMILY_INVALID}, + HEADER_GPRS_DATA, GprsCodingScheme::FAMILY_INVALID}, {{33, 7}, {33, 7}, 30, 0, "CS-2", - GprsCodingScheme::HEADER_GPRS_DATA, GprsCodingScheme::FAMILY_INVALID}, + HEADER_GPRS_DATA, GprsCodingScheme::FAMILY_INVALID}, {{39, 3}, {39, 3}, 36, 0, "CS-3", - GprsCodingScheme::HEADER_GPRS_DATA, GprsCodingScheme::FAMILY_INVALID}, + HEADER_GPRS_DATA, GprsCodingScheme::FAMILY_INVALID}, {{53, 7}, {53, 7}, 50, 0, "CS-4", - GprsCodingScheme::HEADER_GPRS_DATA, GprsCodingScheme::FAMILY_INVALID}, + HEADER_GPRS_DATA, GprsCodingScheme::FAMILY_INVALID}, {{26, 1}, {26, 1}, 22, 0, "MCS-1", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3, GprsCodingScheme::FAMILY_C}, + HEADER_EGPRS_DATA_TYPE_3, GprsCodingScheme::FAMILY_C}, {{32, 1}, {32, 1}, 28, 0, "MCS-2", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3, GprsCodingScheme::FAMILY_B}, + HEADER_EGPRS_DATA_TYPE_3, GprsCodingScheme::FAMILY_B}, {{41, 1}, {41, 1}, 37, 48, "MCS-3", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3, GprsCodingScheme::FAMILY_A}, + HEADER_EGPRS_DATA_TYPE_3, GprsCodingScheme::FAMILY_A}, {{48, 1}, {48, 1}, 44, 0, "MCS-4", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3, GprsCodingScheme::FAMILY_C}, + HEADER_EGPRS_DATA_TYPE_3, GprsCodingScheme::FAMILY_C}, {{60, 7}, {59, 6}, 56, 0, "MCS-5", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2, GprsCodingScheme::FAMILY_B}, + HEADER_EGPRS_DATA_TYPE_2, GprsCodingScheme::FAMILY_B}, {{78, 7}, {77, 6}, 74, 48, "MCS-6", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2, GprsCodingScheme::FAMILY_A}, + HEADER_EGPRS_DATA_TYPE_2, GprsCodingScheme::FAMILY_A}, {{118, 2}, {117, 4}, 56, 0, "MCS-7", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1, GprsCodingScheme::FAMILY_B}, + HEADER_EGPRS_DATA_TYPE_1, GprsCodingScheme::FAMILY_B}, {{142, 2}, {141, 4}, 68, 0, "MCS-8", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1, GprsCodingScheme::FAMILY_A}, + HEADER_EGPRS_DATA_TYPE_1, GprsCodingScheme::FAMILY_A}, {{154, 2}, {153, 4}, 74, 0, "MCS-9", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1, GprsCodingScheme::FAMILY_A}, -}; - -static struct { - struct { - uint8_t data_header_bits; - } uplink, downlink; - uint8_t data_block_header_bits; - uint8_t num_blocks; - const char *name; -} hdr_type_info[GprsCodingScheme::NUM_HEADER_TYPES] = { - {{0}, {0}, 0, 0, "INVALID"}, - {{1*8 + 0}, {1*8 + 0}, 0, 0, "CONTROL"}, - {{3*8 + 0}, {3*8 + 0}, 0, 1, "GPRS_DATA"}, - {{5*8 + 6}, {5*8 + 0}, 2, 2, "EGPRS_DATA_TYPE1"}, - {{4*8 + 5}, {3*8 + 4}, 2, 1, "EGPRS_DATA_TYPE2"}, - {{3*8 + 7}, {3*8 + 7}, 2, 1, "EGPRS_DATA_TYPE3"}, + HEADER_EGPRS_DATA_TYPE_1, GprsCodingScheme::FAMILY_A}, }; GprsCodingScheme GprsCodingScheme::getBySizeUL(unsigned size) @@ -203,32 +187,12 @@ return mcs_info[m_scheme].optional_padding_bits; } -uint8_t GprsCodingScheme::numDataBlocks() const -{ - return hdr_type_info[headerTypeData()].num_blocks; -} - -uint8_t GprsCodingScheme::numDataHeaderBitsUL() const -{ - return hdr_type_info[headerTypeData()].uplink.data_header_bits; -} - -uint8_t GprsCodingScheme::numDataHeaderBitsDL() const -{ - return hdr_type_info[headerTypeData()].downlink.data_header_bits; -} - -uint8_t GprsCodingScheme::numDataBlockHeaderBits() const -{ - return hdr_type_info[headerTypeData()].data_block_header_bits; -} - const char *GprsCodingScheme::name() const { return mcs_info[m_scheme].name; } -GprsCodingScheme::HeaderType GprsCodingScheme::headerTypeData() const +enum HeaderType GprsCodingScheme::headerTypeData() const { return mcs_info[m_scheme].data_hdr; } @@ -315,11 +279,6 @@ return family() == o.family(); } -bool GprsCodingScheme::isCombinable(GprsCodingScheme o) const -{ - return numDataBlocks() == o.numDataBlocks(); -} - void GprsCodingScheme::decToSingleBlock(bool *needStuffing) { switch (m_scheme) { diff --git a/src/gprs_coding_scheme.h b/src/gprs_coding_scheme.h index 89054f5..8715f16 100644 --- a/src/gprs_coding_scheme.h +++ b/src/gprs_coding_scheme.h @@ -40,16 +40,6 @@ EGPRS, }; - enum HeaderType { - HEADER_INVALID, - HEADER_GPRS_CONTROL, - HEADER_GPRS_DATA, - HEADER_EGPRS_DATA_TYPE_1, - HEADER_EGPRS_DATA_TYPE_2, - HEADER_EGPRS_DATA_TYPE_3, - NUM_HEADER_TYPES - }; - enum Family { FAMILY_INVALID, FAMILY_A, @@ -74,7 +64,6 @@ bool isCompatible(Mode mode) const; bool isCompatible(GprsCodingScheme o) const; bool isFamilyCompatible(GprsCodingScheme o) const; - bool isCombinable(GprsCodingScheme o) const; void inc(Mode mode); void dec(Mode mode); @@ -91,13 +80,9 @@ uint8_t spareBitsUL() const; uint8_t spareBitsDL() const; uint8_t maxDataBlockBytes() const; - uint8_t numDataBlocks() const; - uint8_t numDataHeaderBitsUL() const; - uint8_t numDataHeaderBitsDL() const; - uint8_t numDataBlockHeaderBits() const; uint8_t optionalPaddingBits() const; const char *name() const; - HeaderType headerTypeData() const; + enum HeaderType headerTypeData() const; HeaderType headerTypeControl() const; Family family() const; @@ -142,7 +127,7 @@ return (isGprs() && o.isGprs()) || (isEgprs() && o.isEgprs()); } -inline GprsCodingScheme::HeaderType GprsCodingScheme::headerTypeControl() const +inline enum HeaderType GprsCodingScheme::headerTypeControl() const { return HEADER_GPRS_CONTROL; } diff --git a/src/rlc.cpp b/src/rlc.cpp index 323fde4..b08ad48 100644 --- a/src/rlc.cpp +++ b/src/rlc.cpp @@ -336,7 +336,7 @@ rlc->es_p = 0; rlc->rrbp = 0; rlc->pr = 0; - rlc->num_data_blocks = cs.numDataBlocks(); + rlc->num_data_blocks = numDataBlocks(cs.headerTypeData()); rlc->with_padding = with_padding; OSMO_ASSERT(rlc->num_data_blocks <= ARRAY_SIZE(rlc->block_info)); @@ -347,7 +347,7 @@ rlc->data_offs_bits[i] = header_bits + padding_bits + - (i+1) * cs.numDataBlockHeaderBits() + + (i+1) * numDataBlockHeaderBits(cs.headerTypeData()) + i * 8 * rlc->block_info[0].data_len; } } @@ -356,7 +356,7 @@ GprsCodingScheme cs, bool with_padding, const unsigned int spb) { return gprs_rlc_data_header_init(rlc, cs, with_padding, - cs.numDataHeaderBitsDL(), spb); + numDataHeaderBitsDL(cs.headerTypeData()), spb); } void gprs_rlc_data_info_init_ul(struct gprs_rlc_data_info *rlc, @@ -367,7 +367,7 @@ * for both DL and UL */ return gprs_rlc_data_header_init(rlc, cs, with_padding, - cs.numDataHeaderBitsUL(), 0); + numDataHeaderBitsUL(cs.headerTypeData()), 0); } void gprs_rlc_data_block_info_init(struct gprs_rlc_data_block_info *rdbi, diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index 7b0052f..bebeb2a 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -457,7 +457,7 @@ bts->rlc_resent(); } - *may_combine = m_rlc.block(bsn)->cs_current_trans.numDataBlocks() > 1; + *may_combine = numDataBlocks(m_rlc.block(bsn)->cs_current_trans.headerTypeData()) > 1; return bsn; } @@ -1259,7 +1259,7 @@ * MCS4: second segment starts at 44/2 = 22 */ if (cs_current_trans.headerTypeData() == - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3) { + HEADER_EGPRS_DATA_TYPE_3) { if (*block_status_dl == EGPRS_RESEG_FIRST_SEG_SENT) { switch (CodingScheme(cs_init)) { case MCS6 : @@ -1287,9 +1287,9 @@ } return EGPRS_RESEG_SECOND_SEG_SENT; } else if ((cs_init.headerTypeData() == - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1) || + HEADER_EGPRS_DATA_TYPE_1) || (cs_init.headerTypeData() == - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2)) { + HEADER_EGPRS_DATA_TYPE_2)) { return EGPRS_RESEG_FIRST_SEG_SENT; } else if ((CodingScheme(cs_init) == MCS4) && @@ -1327,7 +1327,7 @@ /* Table 10.4.8b.1 of 44.060 */ if (cs_current_trans.headerTypeData() == - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3) { + HEADER_EGPRS_DATA_TYPE_3) { /* * if we are sending the second segment the spb should be 3 * other wise it should be 2 @@ -1338,9 +1338,9 @@ bts->spb_downlink_second_segment(); return EGPRS_RLCMAC_DL_SEC_SEG; } else if ((cs_init.headerTypeData() == - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1) || + HEADER_EGPRS_DATA_TYPE_1) || (cs_init.headerTypeData() == - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2)) { + HEADER_EGPRS_DATA_TYPE_2)) { bts->spb_downlink_first_segment(); return EGPRS_RLCMAC_DL_FIRST_SEG; } else if ((CodingScheme(cs_init) == diff --git a/tests/edge/EdgeTest.cpp b/tests/edge/EdgeTest.cpp index 9f19872..c381d99 100644 --- a/tests/edge/EdgeTest.cpp +++ b/tests/edge/EdgeTest.cpp @@ -71,8 +71,8 @@ OSMO_ASSERT(expected_size == cs.sizeDL()); /* Check data block sizes */ - OSMO_ASSERT(cs.maxDataBlockBytes() * cs.numDataBlocks() < cs.maxBytesDL()); - OSMO_ASSERT(cs.maxDataBlockBytes() * cs.numDataBlocks() < cs.maxBytesUL()); + OSMO_ASSERT(cs.maxDataBlockBytes() * numDataBlocks(cs.headerTypeData()) < cs.maxBytesDL()); + OSMO_ASSERT(cs.maxDataBlockBytes() * numDataBlocks(cs.headerTypeData()) < cs.maxBytesUL()); /* Check inc/dec */ new_cs = cs; @@ -160,9 +160,9 @@ /* Check header types */ OSMO_ASSERT(current_cs.headerTypeData() == - GprsCodingScheme::HEADER_GPRS_DATA); + HEADER_GPRS_DATA); OSMO_ASSERT(current_cs.headerTypeControl() == - GprsCodingScheme::HEADER_GPRS_CONTROL); + HEADER_GPRS_CONTROL); check_coding_scheme(current_cs, GprsCodingScheme::GPRS); } @@ -1094,7 +1094,7 @@ test_block[cs.maxDataBlockBytes()-1] = pattern ^ 0xff; for (block_idx = 0; - block_idx < cs.numDataBlocks(); + block_idx < numDataBlocks(cs.headerTypeData()); block_idx++) { struct gprs_rlc_data_info rlc; -- To view, visit https://gerrit.osmocom.org/13067 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id0873f85e1f16a72e17e7fbc4ad76b194917067f Gerrit-Change-Number: 13067 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 21:38:14 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 21:38:14 +0000 Subject: Change in osmo-sgsn[master]: gbproxy_test: Fix test expectations of gprs_ns_rcvmsg() Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13068 Change subject: gbproxy_test: Fix test expectations of gprs_ns_rcvmsg() ...................................................................... gbproxy_test: Fix test expectations of gprs_ns_rcvmsg() gprs_ns_rcvmsg() in old libosmocore returns "number of bytes transmitted by any response PDU we sent as a result of the received message", while modern libosmocore simply retunrs '0' for any successfully received message. Let's make sure any non-negative responses lead to a reproducible test output with both old and new libosmocore. Change-Id: I7a48d14aed19825b87a02ccf9ee9cbfe0853342c --- M tests/gbproxy/gbproxy_test.c M tests/gbproxy/gbproxy_test.ok 2 files changed, 340 insertions(+), 334 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-sgsn refs/changes/68/13068/1 diff --git a/tests/gbproxy/gbproxy_test.c b/tests/gbproxy/gbproxy_test.c index 55776be..f5c730d 100644 --- a/tests/gbproxy/gbproxy_test.c +++ b/tests/gbproxy/gbproxy_test.c @@ -1302,7 +1302,13 @@ ret = gprs_ns_rcvmsg(nsi, msg, peer, GPRS_NS_LL_UDP); - printf("result (%s) = %d\n\n", text, ret); + /* gprs_ns_rcvmsg() in old libosmocore returns "number of bytes + * transmitted by any response PDU we sent as a result of the + * received message", while modern libosmocore simply retunrs '0' + * for any successfully received message. Let's make sure any + * non-negative responses lead to a reproducible test output + * with both old and new libosmocore. */ + printf("result (%s) = %d\n\n", text, ret < 0 ? ret : 0); msgb_free(msg); diff --git a/tests/gbproxy/gbproxy_test.ok b/tests/gbproxy/gbproxy_test.ok index 9016ed3..75f31ab 100644 --- a/tests/gbproxy/gbproxy_test.ok +++ b/tests/gbproxy/gbproxy_test.ok @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -19,7 +19,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 06 -result (ALIVE_ACK) = 1 +result (ALIVE_ACK) = 0 PROCESSING UNBLOCK_ACK from 0x05060708:32000 07 @@ -34,7 +34,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 Current NS-VCIs: VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 @@ -59,7 +59,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -67,7 +67,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -77,7 +77,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -96,7 +96,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 Current NS-VCIs: VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 @@ -124,7 +124,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 --- Initialise BSS 2 --- @@ -141,7 +141,7 @@ MESSAGE to BSS at 0x01020304:2222, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:2222 0a @@ -149,7 +149,7 @@ MESSAGE to BSS at 0x01020304:2222, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:2222 06 @@ -159,7 +159,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x2001/1.2.3.4:2222 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:2222 0b @@ -178,7 +178,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 Current NS-VCIs: VCI 0x2001, NSEI 0x2000, peer 0x01020304:2222 @@ -213,7 +213,7 @@ MESSAGE to BSS at 0x01020304:2222, msg length 9 00 00 00 00 23 04 82 20 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 --- Move BSS 1 to new port --- @@ -230,7 +230,7 @@ MESSAGE to BSS at 0x01020304:3333, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:3333 0a @@ -238,7 +238,7 @@ MESSAGE to BSS at 0x01020304:3333, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:3333 06 @@ -248,7 +248,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:3333 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:3333 0b @@ -293,7 +293,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -301,7 +301,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -311,7 +311,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x2001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -356,7 +356,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -364,7 +364,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -374,7 +374,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x2001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -419,7 +419,7 @@ MESSAGE to BSS at 0x01020304:4444, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:4444 0a @@ -427,7 +427,7 @@ MESSAGE to BSS at 0x01020304:4444, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:4444 06 @@ -437,7 +437,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x2001/1.2.3.4:4444 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:4444 0b @@ -484,7 +484,7 @@ MESSAGE to BSS at 0x01020304:3333, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:3333 0a @@ -492,7 +492,7 @@ MESSAGE to BSS at 0x01020304:3333, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:3333 06 @@ -502,7 +502,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x2001/1.2.3.4:3333 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:3333 0b @@ -548,7 +548,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -556,7 +556,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -566,7 +566,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -611,7 +611,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 12 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 Current NS-VCIs: VCI 0x2001, NSEI 0x2000, peer 0x01020304:3333 @@ -649,7 +649,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 12 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 --- Reset BSS 1 with the old BVCI --- @@ -665,7 +665,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 Current NS-VCIs: VCI 0x2001, NSEI 0x2000, peer 0x01020304:3333 @@ -703,7 +703,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 --- Reset BSS 1 with the old BVCI again --- @@ -719,7 +719,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 Current NS-VCIs: VCI 0x2001, NSEI 0x2000, peer 0x01020304:3333 @@ -757,7 +757,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 --- Send message from BSS 1 to SGSN, BVCI 0x1012 --- @@ -771,7 +771,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 10 12 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Send message from SGSN to BSS 1, BVCI 0x1012 --- @@ -785,7 +785,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 4 00 00 10 12 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Send message from BSS 1 to SGSN, BVCI 0x1002 --- @@ -799,7 +799,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 10 12 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Send message from SGSN to BSS 1, BVCI 0x1002 --- @@ -813,7 +813,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 4 00 00 10 12 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Send message from BSS 2 to SGSN, BVCI 0x2002 --- @@ -827,7 +827,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 20 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Send message from SGSN to BSS 2, BVCI 0x2002 --- @@ -841,7 +841,7 @@ MESSAGE to BSS at 0x01020304:3333, msg length 4 00 00 20 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Reset BSS 1 with the old BVCI on BSS2's link --- @@ -857,7 +857,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 Current NS-VCIs: VCI 0x2001, NSEI 0x2000, peer 0x01020304:3333 @@ -898,7 +898,7 @@ MESSAGE to BSS at 0x01020304:3333, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 --- Send message from BSS 1 to SGSN, BVCI 0x1002 --- @@ -912,7 +912,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 10 12 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Send message from SGSN to BSS 1, BVCI 0x1002 --- @@ -926,7 +926,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 4 00 00 10 12 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Send message from SGSN to BSS 1, BVCI 0x10ff (invalid) --- @@ -940,7 +940,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 14 00 00 00 00 41 07 81 05 04 82 10 ff 15 80 -result (UNITDATA) = 14 +result (UNITDATA) = 0 Peers: NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -971,7 +971,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 06 -result (ALIVE_ACK) = 1 +result (ALIVE_ACK) = 0 PROCESSING UNBLOCK_ACK from 0x05060708:32000 07 @@ -986,7 +986,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 Current NS-VCIs: VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 @@ -1011,7 +1011,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -1019,7 +1019,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -1029,7 +1029,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -1063,7 +1063,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 10 02 @@ -1075,7 +1075,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -1094,7 +1094,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 20 02 @@ -1106,7 +1106,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 20 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 Peers: NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 @@ -1125,7 +1125,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 10 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 PROCESSING UNITDATA from 0x05060708:32000 00 00 10 02 @@ -1137,7 +1137,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 4 00 00 10 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Send message from BSS 1 to SGSN and back, BVCI 2 --- @@ -1151,7 +1151,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 20 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 PROCESSING UNITDATA from 0x05060708:32000 00 00 20 02 @@ -1163,7 +1163,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 4 00 00 20 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Change NSEI --- @@ -1180,7 +1180,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -1188,7 +1188,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -1198,7 +1198,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -1233,7 +1233,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 10 02 @@ -1245,7 +1245,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 Peers: NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 @@ -1267,7 +1267,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 30 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 30 02 @@ -1279,7 +1279,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 30 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 Peers: NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 @@ -1301,7 +1301,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 10 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 PROCESSING UNITDATA from 0x05060708:32000 00 00 10 02 @@ -1313,7 +1313,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 4 00 00 10 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Send message from BSS 1 to SGSN and back, BVCI 2 (should fail) --- @@ -1327,7 +1327,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 20 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 Peers: NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 @@ -1369,7 +1369,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 30 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 PROCESSING UNITDATA from 0x05060708:32000 00 00 30 02 @@ -1381,7 +1381,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 4 00 00 30 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Change NSVCI --- @@ -1400,7 +1400,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -1408,7 +1408,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -1418,7 +1418,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x2001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -1459,7 +1459,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 10 02 @@ -1471,7 +1471,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 Peers: NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 @@ -1497,7 +1497,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 40 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 40 02 @@ -1509,7 +1509,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 40 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 Peers: NSEI 8192, BVCI 16386, not blocked, RAI 112-332-16464-96 @@ -1535,7 +1535,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 10 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 PROCESSING UNITDATA from 0x05060708:32000 00 00 10 02 @@ -1547,7 +1547,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 4 00 00 10 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Send message from BSS 1 to SGSN and back, BVCI 2 (should fail) --- @@ -1561,7 +1561,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 20 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 Peers: NSEI 8192, BVCI 16386, not blocked, RAI 112-332-16464-96 @@ -1608,7 +1608,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 30 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 PROCESSING UNITDATA from 0x05060708:32000 00 00 30 02 @@ -1620,7 +1620,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 4 00 00 30 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Send message from BSS 1 to SGSN and back, BVCI 4 --- @@ -1634,7 +1634,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 40 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 PROCESSING UNITDATA from 0x05060708:32000 00 00 40 02 @@ -1646,7 +1646,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 4 00 00 40 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 Gbproxy global: Peers: @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1683,7 +1683,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 06 -result (ALIVE_ACK) = 1 +result (ALIVE_ACK) = 0 PROCESSING UNBLOCK_ACK from 0x05060708:32000 07 @@ -1698,7 +1698,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 --- Initialise BSS 1 --- @@ -1715,7 +1715,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -1723,7 +1723,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -1733,7 +1733,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -1752,7 +1752,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 10 02 @@ -1764,7 +1764,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 Current NS-VCIs: VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 @@ -1795,7 +1795,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 80 00 de ad 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 16 6d 01 -result (ATTACH REQUEST) = 79 +result (ATTACH REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -1813,7 +1813,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 27 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba -result (IDENT REQUEST) = 27 +result (IDENT REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -1831,7 +1831,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 44 00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 -result (IDENT RESPONSE) = 44 +result (IDENT RESPONSE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -1849,7 +1849,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -1868,7 +1868,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 09 08 03 39 d7 bc -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -1888,7 +1888,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d -result (GMM INFO) = 70 +result (GMM INFO) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -1910,7 +1910,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 80 00 be ef 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 0d 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 46 42 6e -result (ATTACH REQUEST) = 79 +result (ATTACH REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -1931,7 +1931,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 27 00 00 10 02 00 80 00 be ef 00 50 20 16 82 02 58 0e 89 41 c0 0d 08 15 01 0c a6 18 -result (IDENT REQUEST) = 27 +result (IDENT REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -1952,7 +1952,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 44 00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 11 08 16 08 11 12 99 99 99 16 17 18 bf d2 01 -result (IDENT RESPONSE) = 44 +result (IDENT RESPONSE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -1973,7 +1973,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 80 00 be ef 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 3a 6d d4 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -1993,7 +1993,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 15 08 03 86 ac 47 -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2013,7 +2013,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 -result (GMM INFO) = 70 +result (GMM INFO) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2044,7 +2044,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 06 -result (ALIVE_ACK) = 1 +result (ALIVE_ACK) = 0 PROCESSING UNBLOCK_ACK from 0x05060708:32000 07 @@ -2059,7 +2059,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 Current NS-VCIs: VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 @@ -2084,7 +2084,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -2092,7 +2092,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -2102,7 +2102,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -2121,7 +2121,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 21 63 54 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 Current NS-VCIs: VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 @@ -2150,7 +2150,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 PROCESSING BVC_SUSPEND from 0x01020304:1111 00 00 00 00 0b 1f 84 cc d1 75 8b 1b 86 11 22 33 40 50 60 @@ -2162,7 +2162,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 19 00 00 00 00 0b 1f 84 cc d1 75 8b 1b 86 21 63 54 40 50 60 -result (BVC_SUSPEND) = 19 +result (BVC_SUSPEND) = 0 PROCESSING BVC_SUSPEND_ACK from 0x05060708:32000 00 00 00 00 0c 1f 84 cc d1 75 8b 1b 86 21 63 54 40 50 60 1d 81 01 @@ -2174,7 +2174,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 22 00 00 00 00 0c 1f 84 cc d1 75 8b 1b 86 11 22 33 40 50 60 1d 81 01 -result (BVC_SUSPEND_ACK) = 22 +result (BVC_SUSPEND_ACK) = 0 Gbproxy global: Peers: @@ -2195,7 +2195,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 bb c5 46 79 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 21 63 54 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 8e cd 32 -result (ATTACH REQUEST) = 79 +result (ATTACH REQUEST) = 0 PROCESSING IDENT REQUEST from 0x05060708:32000 00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba @@ -2207,7 +2207,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 27 00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba -result (IDENT REQUEST) = 27 +result (IDENT REQUEST) = 0 PROCESSING IDENT RESPONSE from 0x01020304:1111 00 00 10 02 01 bb c5 46 79 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 11 01 c0 0d 08 16 08 11 12 13 14 15 16 17 18 b7 1b 9a @@ -2219,7 +2219,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 44 00 00 10 02 01 bb c5 46 79 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 11 01 c0 0d 08 16 08 11 12 13 14 15 16 17 18 b7 1b 9a -result (IDENT RESPONSE) = 44 +result (IDENT RESPONSE) = 0 PROCESSING ATTACH ACCEPT from 0x05060708:32000 00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 @@ -2231,7 +2231,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 be 38 c0 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 PROCESSING ATTACH COMPLETE from 0x01020304:1111 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 08 01 c0 11 08 03 ea 67 11 @@ -2243,7 +2243,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 08 01 c0 11 08 03 ea 67 11 -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 PROCESSING ACT PDP CTX REQ (REPLACE APN) from 0x01020304:1111 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02 @@ -2255,7 +2255,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 85 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 3a 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 08 03 66 6f 6f 03 62 61 72 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 24 9d 75 -result (ACT PDP CTX REQ (REPLACE APN)) = 85 +result (ACT PDP CTX REQ (REPLACE APN)) = 0 PROCESSING GMM INFO from 0x05060708:32000 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d @@ -2267,7 +2267,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d -result (GMM INFO) = 70 +result (GMM INFO) = 0 PROCESSING ACT PDP CTX REQ (REPLACE APN) from 0x01020304:1111 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02 @@ -2279,7 +2279,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 85 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 3a 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 08 03 66 6f 6f 03 62 61 72 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 24 9d 75 -result (ACT PDP CTX REQ (REPLACE APN)) = 85 +result (ACT PDP CTX REQ (REPLACE APN)) = 0 PROCESSING ACT PDP CTX REQ (REMOVE APN) from 0x01020304:1111 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02 @@ -2291,7 +2291,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 75 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 30 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 85 fa 60 -result (ACT PDP CTX REQ (REMOVE APN)) = 75 +result (ACT PDP CTX REQ (REMOVE APN)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2316,7 +2316,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 48 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 15 01 c0 19 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 7e e1 41 -result (DETACH REQ) = 48 +result (DETACH REQ) = 0 PROCESSING DETACH ACC from 0x05060708:32000 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 15 08 06 00 f7 35 f0 @@ -2328,7 +2328,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 71 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 15 08 06 00 f7 35 f0 -result (DETACH ACC) = 71 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2355,7 +2355,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 89 00 00 10 02 01 bb c5 46 79 00 00 04 08 88 21 63 54 40 50 60 70 80 00 80 0e 00 3e 01 c0 15 08 08 10 21 63 54 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 1d f0 41 -result (RA UPD REQ) = 89 +result (RA UPD REQ) = 0 PROCESSING RA UPD ACC from 0x05060708:32000 00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 19 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 ef e2 b7 00 17 16 d7 59 65 @@ -2367,7 +2367,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 91 00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 19 08 09 00 49 11 22 33 40 50 60 19 54 ab b3 18 05 f4 ef e2 b7 00 17 16 3a 03 54 -result (RA UPD ACC) = 91 +result (RA UPD ACC) = 0 PROCESSING ACT PDP CTX REQ (REMOVE APN) from 0x01020304:1111 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02 @@ -2379,7 +2379,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 75 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 30 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 85 fa 60 -result (ACT PDP CTX REQ (REMOVE APN)) = 75 +result (ACT PDP CTX REQ (REMOVE APN)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2408,7 +2408,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 48 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 15 01 c0 19 08 05 09 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 84 0c eb -result (DETACH REQ (PWR OFF)) = 48 +result (DETACH REQ (PWR OFF)) = 0 Gbproxy global: Peers: @@ -2438,7 +2438,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 bb 00 be ef 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb 00 be ef 99 99 99 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 2d c7 df -result (ATTACH REQUEST (foreign RAI)) = 79 +result (ATTACH REQUEST (foreign RAI)) = 0 TLLI is already detached, shouldn't patch PROCESSING ACT PDP CTX REQ from 0x01020304:1111 @@ -2451,7 +2451,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 80 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02 -result (ACT PDP CTX REQ) = 80 +result (ACT PDP CTX REQ) = 0 Invalid RAI, shouldn't patch PROCESSING BVC_SUSPEND_ACK from 0x05060708:32000 @@ -2464,7 +2464,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 28 00 00 00 00 41 07 81 21 15 92 0c 1f 84 cc d1 75 8b 1b 86 00 f1 99 00 63 60 1d 81 01 -result (BVC_SUSPEND_ACK) = 28 +result (BVC_SUSPEND_ACK) = 0 Gbproxy global: Invalid Routing Area Identifier : 1 @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2507,7 +2507,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 06 -result (ALIVE_ACK) = 1 +result (ALIVE_ACK) = 0 PROCESSING UNBLOCK_ACK from 0x05060708:32000 07 @@ -2522,7 +2522,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 --- Initialise BSS 1 --- @@ -2539,7 +2539,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -2547,7 +2547,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -2557,7 +2557,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -2576,7 +2576,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 21 63 54 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 10 02 @@ -2588,7 +2588,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 Current NS-VCIs: VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 @@ -2620,7 +2620,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 00 63 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 16 6d 01 -result (ATTACH REQUEST) = 79 +result (ATTACH REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2640,7 +2640,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 27 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba -result (IDENT REQUEST) = 27 +result (IDENT REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2661,7 +2661,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 44 00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 -result (IDENT RESPONSE) = 44 +result (IDENT RESPONSE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2682,7 +2682,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 0c 0a 29 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2706,7 +2706,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 08 01 c0 09 08 03 39 d7 bc -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2731,7 +2731,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d -result (GMM INFO) = 70 +result (GMM INFO) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2756,7 +2756,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 85 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 3a 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 08 03 66 6f 6f 03 62 61 72 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 24 9d 75 -result (ACT PDP CTX REQ (REPLACE APN)) = 85 +result (ACT PDP CTX REQ (REPLACE APN)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2783,7 +2783,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 42 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 0f 41 fb 01 00 0e 00 64 11 05 16 01 90 66 b3 28 -result (XID (UL)) = 42 +result (XID (UL)) = 0 PROCESSING XID (DL) from 0x05060708:32000 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e @@ -2795,7 +2795,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 74 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e -result (XID (DL)) = 74 +result (XID (DL)) = 0 PROCESSING LL11 DNS QUERY (UL) from 0x01020304:1111 00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 @@ -2807,7 +2807,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 93 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 -result (LL11 DNS QUERY (UL)) = 93 +result (LL11 DNS QUERY (UL)) = 0 PROCESSING LL11 DNS RESP (DL) from 0x05060708:32000 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 @@ -2819,7 +2819,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 271 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 -result (LL11 DNS RESP (DL)) = 271 +result (LL11 DNS RESP (DL)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2846,7 +2846,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 89 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 70 80 00 80 0e 00 3e 01 c0 11 08 08 10 21 63 54 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 69 a3 ae -result (RA UPD REQ (P-TMSI 2)) = 89 +result (RA UPD REQ (P-TMSI 2)) = 0 PROCESSING RA UDP ACC (P-TMSI 2) from 0x05060708:32000 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 0d 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 e0 98 76 54 17 16 9f e8 ea @@ -2858,7 +2858,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 91 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 0d 08 09 00 49 11 22 33 40 50 60 19 54 ab b3 18 05 f4 c0 de ad 02 17 16 bb 4d a0 -result (RA UDP ACC (P-TMSI 2)) = 91 +result (RA UDP ACC (P-TMSI 2)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2887,7 +2887,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 89 00 00 10 02 01 e0 98 76 54 00 00 04 08 88 21 63 54 40 50 60 70 80 00 80 0e 00 3e 01 c0 15 08 08 10 21 63 54 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 1d f0 41 -result (RA UPD REQ (P-TMSI 3)) = 89 +result (RA UPD REQ (P-TMSI 3)) = 0 PROCESSING RA UDP ACC (P-TMSI 3) from 0x05060708:32000 00 00 10 02 00 e0 98 76 54 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 11 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 e0 54 32 10 17 16 1b a3 a8 @@ -2899,7 +2899,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 91 00 00 10 02 00 c0 de ad 02 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 11 08 09 00 49 11 22 33 40 50 60 19 54 ab b3 18 05 f4 c0 de ad 03 17 16 6e 58 26 -result (RA UDP ACC (P-TMSI 3)) = 91 +result (RA UDP ACC (P-TMSI 3)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2928,7 +2928,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 e0 54 32 10 00 00 04 08 88 21 63 54 40 50 60 70 80 00 80 0e 00 08 01 c0 19 08 0a d5 5f 5e -result (RA UPD COMPLETE) = 35 +result (RA UPD COMPLETE) = 0 PROCESSING GMM INFO from 0x05060708:32000 00 00 10 02 00 e0 54 32 10 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 @@ -2940,7 +2940,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 -result (GMM INFO) = 70 +result (GMM INFO) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2970,7 +2970,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 23 00 00 00 00 2c 1f 84 e0 54 32 10 0f 81 01 04 82 10 02 25 83 00 00 0c -result (LLC_DISCARDED) = 23 +result (LLC_DISCARDED) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3000,7 +3000,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 19 00 00 00 00 0b 1f 84 e0 54 32 10 1b 86 21 63 54 40 50 60 -result (BVC_SUSPEND) = 19 +result (BVC_SUSPEND) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3030,7 +3030,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 22 00 00 00 00 0c 1f 84 c0 de ad 03 1b 86 11 22 33 40 50 60 1d 81 01 -result (BVC_SUSPEND_ACK) = 22 +result (BVC_SUSPEND_ACK) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3060,7 +3060,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 38 00 00 00 00 06 0d 88 11 12 13 14 15 16 17 18 0a 82 07 04 1b 86 11 22 33 40 50 60 18 83 00 00 00 20 84 c0 de ad 03 -result (PAGING_PS) = 38 +result (PAGING_PS) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3090,7 +3090,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 23 00 00 00 00 2c 1f 84 e0 54 32 10 0f 81 01 04 82 ee e1 25 83 00 00 0c -result (LLC_DISCARDED) = 23 +result (LLC_DISCARDED) = 0 Gbproxy global: PROCESSING BVC_SUSPEND_ACK from 0x05060708:32000 @@ -3103,7 +3103,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 28 00 00 00 00 41 07 81 21 15 92 0c 1f 84 e0 54 32 10 1b 86 00 f1 99 00 63 60 1d 81 01 -result (BVC_SUSPEND_ACK) = 28 +result (BVC_SUSPEND_ACK) = 0 Gbproxy global: Invalid Routing Area Identifier : 1 @@ -3118,7 +3118,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 22 00 00 00 00 0c 1f 84 c0 de ad 03 1b 86 11 22 33 40 50 60 1d 81 01 -result (BVC_SUSPEND_ACK) = 22 +result (BVC_SUSPEND_ACK) = 0 Gbproxy global: Invalid Routing Area Identifier : 1 @@ -3133,7 +3133,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 62 00 00 10 02 00 ee ba db ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 00 83 00 00 00 0e 88 41 c0 09 08 21 04 ba 3d -result (GMM INFO) = 62 +result (GMM INFO) = 0 PROCESSING GMM INFO from 0x05060708:32000 00 00 10 02 00 ee ba db ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 0d 08 21 68 71 6b @@ -3145,7 +3145,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 ee ba db ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 0d 08 21 68 71 6b -result (GMM INFO) = 70 +result (GMM INFO) = 0 PROCESSING DETACH REQ from 0x01020304:1111 00 00 10 02 01 c0 de ad 03 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 1d 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb aa cc a3 @@ -3157,7 +3157,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 48 00 00 10 02 01 e0 54 32 10 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 15 01 c0 1d 08 05 01 18 05 f4 e0 54 32 10 19 03 b9 97 cb ea 6d af -result (DETACH REQ) = 48 +result (DETACH REQ) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3190,7 +3190,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 71 00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 19 08 06 00 04 ff 52 -result (DETACH ACC) = 71 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3235,7 +3235,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 06 -result (ALIVE_ACK) = 1 +result (ALIVE_ACK) = 0 PROCESSING UNBLOCK_ACK from 0x05060708:32000 07 @@ -3250,7 +3250,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 --- Initialise BSS 1 --- @@ -3267,7 +3267,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -3275,7 +3275,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -3285,7 +3285,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -3304,7 +3304,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 21 63 54 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 10 02 @@ -3316,7 +3316,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 Current NS-VCIs: VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 @@ -3348,7 +3348,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 00 63 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 16 6d 01 -result (ATTACH REQUEST) = 79 +result (ATTACH REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3368,7 +3368,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 27 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba -result (IDENT REQUEST) = 27 +result (IDENT REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3389,7 +3389,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 44 00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 -result (IDENT RESPONSE) = 44 +result (IDENT RESPONSE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3410,7 +3410,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 0c 0a 29 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3434,7 +3434,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 09 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 42 f6 fc -result (ATTACH ACCEPT (duplicated)) = 92 +result (ATTACH ACCEPT (duplicated)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3458,7 +3458,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 08 01 c0 09 08 03 39 d7 bc -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3483,7 +3483,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 0d 08 21 68 71 6b -result (GMM INFO) = 70 +result (GMM INFO) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3508,7 +3508,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 48 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 15 01 c0 0d 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 37 67 c6 -result (DETACH REQ) = 48 +result (DETACH REQ) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3534,7 +3534,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 71 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 11 08 06 00 cf 8a 58 -result (DETACH ACC) = 71 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3570,7 +3570,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 06 -result (ALIVE_ACK) = 1 +result (ALIVE_ACK) = 0 PROCESSING UNBLOCK_ACK from 0x05060708:32000 07 @@ -3585,7 +3585,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 --- Initialise BSS 1 --- @@ -3602,7 +3602,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -3610,7 +3610,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -3620,7 +3620,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -3639,7 +3639,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 21 63 54 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 10 02 @@ -3651,7 +3651,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 Current NS-VCIs: VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 @@ -3722,7 +3722,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 27 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba -result (IDENT REQUEST) = 27 +result (IDENT REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3743,7 +3743,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 44 00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 -result (IDENT RESPONSE) = 44 +result (IDENT RESPONSE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3764,7 +3764,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 0c 0a 29 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3788,7 +3788,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 08 01 c0 0d 08 03 55 1c ea -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3813,7 +3813,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d -result (GMM INFO) = 70 +result (GMM INFO) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3838,7 +3838,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 42 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 0f 41 fb 01 00 0e 00 64 11 05 16 01 90 66 b3 28 -result (XID (UL)) = 42 +result (XID (UL)) = 0 PROCESSING XID (DL) from 0x05060708:32000 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e @@ -3850,7 +3850,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 74 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e -result (XID (DL)) = 74 +result (XID (DL)) = 0 PROCESSING LL11 DNS QUERY (UL) from 0x01020304:1111 00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 @@ -3862,7 +3862,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 93 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 -result (LL11 DNS QUERY (UL)) = 93 +result (LL11 DNS QUERY (UL)) = 0 PROCESSING LL11 DNS RESP (DL) from 0x05060708:32000 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 @@ -3874,7 +3874,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 271 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 -result (LL11 DNS RESP (DL)) = 271 +result (LL11 DNS RESP (DL)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3899,7 +3899,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 23 00 00 00 00 2c 1f 84 ef e2 b7 00 0f 81 01 04 82 10 02 25 83 00 00 0c -result (LLC_DISCARDED) = 23 +result (LLC_DISCARDED) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3924,7 +3924,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 29 00 00 00 00 41 07 81 27 15 93 2c 1f 84 ef e2 b7 00 0f 81 01 04 82 10 02 25 83 00 00 0c -result (LLC_DISCARDED) = 29 +result (LLC_DISCARDED) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3949,7 +3949,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 19 00 00 00 00 0b 1f 84 ef e2 b7 00 1b 86 21 63 54 40 50 60 -result (BVC_SUSPEND) = 19 +result (BVC_SUSPEND) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3974,7 +3974,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 22 00 00 00 00 0c 1f 84 c0 de ad 01 1b 86 11 22 33 40 50 60 1d 81 01 -result (BVC_SUSPEND_ACK) = 22 +result (BVC_SUSPEND_ACK) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3999,7 +3999,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 23 00 00 00 00 2c 1f 84 ef e2 b7 00 0f 81 01 04 82 ee e1 25 83 00 00 0c -result (LLC_DISCARDED) = 23 +result (LLC_DISCARDED) = 0 Gbproxy global: BSSGP protocol error (SGSN): 1 @@ -4013,7 +4013,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 28 00 00 00 00 41 07 81 21 15 92 0c 1f 84 ef e2 b7 00 1b 86 00 f1 99 00 63 60 1d 81 01 -result (BVC_SUSPEND_ACK) = 28 +result (BVC_SUSPEND_ACK) = 0 Gbproxy global: Invalid Routing Area Identifier : 1 @@ -4029,7 +4029,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 22 00 00 00 00 0c 1f 84 c0 de ad 01 1b 86 11 22 33 40 50 60 1d 81 01 -result (BVC_SUSPEND_ACK) = 22 +result (BVC_SUSPEND_ACK) = 0 Gbproxy global: Invalid Routing Area Identifier : 1 @@ -4045,7 +4045,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 48 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 15 01 c0 11 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 6d b1 de -result (DETACH REQ) = 48 +result (DETACH REQ) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4071,7 +4071,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 71 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 0d 08 06 00 aa ab ee -result (DETACH ACC) = 71 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4136,7 +4136,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 91 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 11 08 09 00 49 11 22 33 40 50 60 19 54 ab b3 18 05 f4 c0 de ad 03 17 16 6e 58 26 -result (RA UDP ACC) = 91 +result (RA UDP ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4194,7 +4194,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 71 00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 15 08 06 00 f7 35 f0 -result (DETACH ACC) = 71 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4364,7 +4364,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 06 -result (ALIVE_ACK) = 1 +result (ALIVE_ACK) = 0 PROCESSING UNBLOCK_ACK from 0x05060708:32000 07 @@ -4379,7 +4379,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 --- Initialise SGSN 2 --- @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -4400,7 +4400,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 06 -result (ALIVE_ACK) = 1 +result (ALIVE_ACK) = 0 PROCESSING UNBLOCK_ACK from 0x15161718:32001 07 @@ -4415,7 +4415,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 --- Initialise BSS 1 --- @@ -4432,7 +4432,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -4440,7 +4440,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -4450,7 +4450,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -4469,7 +4469,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 00 00 -result (BVC_RESET) = 9 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 00 00 @@ -4495,7 +4495,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 21 63 54 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 10 02 @@ -4507,7 +4507,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 PROCESSING BVC_RESET_ACK from 0x15161718:32001 00 00 00 00 23 04 82 10 02 @@ -4515,7 +4515,7 @@ CALLBACK, event 0, msg length 5, bvci 0x0000 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 1 +result (BVC_RESET_ACK) = 0 Current NS-VCIs: VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 @@ -4559,7 +4559,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 28 00 00 10 02 26 1e 81 01 05 82 01 dc 03 82 02 76 01 82 00 50 1c 82 02 58 06 82 00 03 -result (FLOW_CONTROL_BVC) = 28 +result (FLOW_CONTROL_BVC) = 0 PROCESSING FLOW_CONTROL_BVC_ACK from 0x05060708:32000 00 00 10 02 27 1e 81 01 @@ -4571,7 +4571,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 8 00 00 10 02 27 1e 81 01 -result (FLOW_CONTROL_BVC_ACK) = 8 +result (FLOW_CONTROL_BVC_ACK) = 0 PROCESSING FLOW_CONTROL_BVC_ACK from 0x15161718:32001 00 00 10 02 27 1e 81 01 @@ -4632,7 +4632,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 27 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba -result (IDENT REQUEST) = 27 +result (IDENT REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4653,7 +4653,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 44 00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 -result (IDENT RESPONSE) = 44 +result (IDENT RESPONSE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4674,7 +4674,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 0c 0a 29 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4698,7 +4698,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 08 01 c0 0d 08 03 55 1c ea -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4723,7 +4723,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d -result (GMM INFO) = 70 +result (GMM INFO) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4748,7 +4748,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 42 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 0f 41 fb 01 00 0e 00 64 11 05 16 01 90 66 b3 28 -result (XID (UL)) = 42 +result (XID (UL)) = 0 PROCESSING XID (DL) from 0x05060708:32000 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e @@ -4760,7 +4760,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 74 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e -result (XID (DL)) = 74 +result (XID (DL)) = 0 PROCESSING LL11 DNS QUERY (UL) from 0x01020304:1111 00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 @@ -4772,7 +4772,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 93 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 -result (LL11 DNS QUERY (UL)) = 93 +result (LL11 DNS QUERY (UL)) = 0 PROCESSING LL11 DNS RESP (DL) from 0x05060708:32000 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 @@ -4784,7 +4784,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 271 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 -result (LL11 DNS RESP (DL)) = 271 +result (LL11 DNS RESP (DL)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4809,7 +4809,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 23 00 00 00 00 2c 1f 84 ef e2 b7 00 0f 81 01 04 82 10 02 25 83 00 00 0c -result (LLC_DISCARDED) = 23 +result (LLC_DISCARDED) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4834,7 +4834,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 29 00 00 00 00 41 07 81 27 15 93 2c 1f 84 ef e2 b7 00 0f 81 01 04 82 10 02 25 83 00 00 0c -result (LLC_DISCARDED) = 29 +result (LLC_DISCARDED) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4859,7 +4859,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 19 00 00 00 00 0b 1f 84 ef e2 b7 00 1b 86 21 63 54 40 50 60 -result (BVC_SUSPEND) = 19 +result (BVC_SUSPEND) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4884,7 +4884,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 22 00 00 00 00 0c 1f 84 c0 de ad 01 1b 86 11 22 33 40 50 60 1d 81 01 -result (BVC_SUSPEND_ACK) = 22 +result (BVC_SUSPEND_ACK) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4963,7 +4963,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 27 00 00 10 02 00 80 00 be ef 00 50 20 16 82 02 58 0e 89 41 c0 0d 08 15 01 0c a6 18 -result (IDENT REQUEST) = 27 +result (IDENT REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5015,7 +5015,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 80 00 be ef 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 03 32 40 fa -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5067,7 +5067,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 -result (GMM INFO) = 70 +result (GMM INFO) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5105,7 +5105,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 74 00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e -result (XID (DL)) = 74 +result (XID (DL)) = 0 PROCESSING LL11 DNS QUERY (UL) from 0x01020304:1111 00 00 10 02 01 c0 de ad 03 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 @@ -5129,7 +5129,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 271 00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 -result (LL11 DNS RESP (DL)) = 271 +result (LL11 DNS RESP (DL)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5181,7 +5181,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 29 00 00 00 00 41 07 81 27 15 93 2c 1f 84 e0 98 76 54 0f 81 01 04 82 10 02 25 83 00 00 0c -result (LLC_DISCARDED) = 29 +result (LLC_DISCARDED) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5233,7 +5233,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 22 00 00 00 00 0c 1f 84 c0 de ad 03 1b 86 11 22 33 40 50 60 1d 81 01 -result (BVC_SUSPEND_ACK) = 22 +result (BVC_SUSPEND_ACK) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5315,7 +5315,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 27 00 00 10 02 00 80 00 fe ed 00 50 20 16 82 02 58 0e 89 41 c0 19 08 15 01 a2 f2 a4 -result (IDENT REQUEST) = 27 +result (IDENT REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5369,7 +5369,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 80 00 fe ed 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 26 27 28 00 81 00 0e 9e 41 c0 1d 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 05 3e 78 6e -result (ATTACH ACCEPT (P-TMSI 1)) = 92 +result (ATTACH ACCEPT (P-TMSI 1)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5423,7 +5423,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 c0 de ad 05 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 26 27 28 00 81 00 0e 88 41 c0 21 08 21 ca 60 90 -result (GMM INFO) = 70 +result (GMM INFO) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5452,7 +5452,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 48 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 15 01 c0 31 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 57 e6 15 -result (DETACH REQ) = 48 +result (DETACH REQ) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5480,7 +5480,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 71 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 25 08 06 00 4d 09 cd -result (DETACH ACC) = 71 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5539,7 +5539,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 71 00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 89 41 c0 29 08 06 00 be c3 6f -result (DETACH ACC) = 71 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5597,7 +5597,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 71 00 00 10 02 00 c0 de ad 05 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 26 27 28 00 81 00 0e 89 41 c0 2d 08 06 00 86 7c c7 -result (DETACH ACC) = 71 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -5637,7 +5637,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 06 -result (ALIVE_ACK) = 1 +result (ALIVE_ACK) = 0 PROCESSING UNBLOCK_ACK from 0x05060708:32000 07 @@ -5652,7 +5652,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 --- Initialise BSS 1 --- @@ -5669,7 +5669,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -5677,7 +5677,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -5687,7 +5687,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -5706,7 +5706,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 10 02 @@ -5718,7 +5718,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 Current NS-VCIs: VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 @@ -5785,7 +5785,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 27 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba -result (IDENT REQUEST) = 27 +result (IDENT REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5803,7 +5803,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 44 00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 -result (IDENT RESPONSE) = 44 +result (IDENT RESPONSE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5821,7 +5821,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5840,7 +5840,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 0d 08 03 55 1c ea -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5860,7 +5860,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d -result (GMM INFO) = 70 +result (GMM INFO) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5880,7 +5880,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 48 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 11 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 6d b1 de -result (DETACH REQ) = 48 +result (DETACH REQ) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5901,7 +5901,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 71 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 0d 08 06 00 aa ab ee -result (DETACH ACC) = 71 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5923,7 +5923,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 15 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 e6 71 c7 -result (ATTACH REQUEST) = 79 +result (ATTACH REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5945,7 +5945,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 3a 6d d4 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5967,7 +5967,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 19 08 03 32 f1 bc -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5989,7 +5989,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 73 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 15 08 05 01 25 0a 67 0e 96 -result (DETACH REQ (re-attach)) = 73 +result (DETACH REQ (re-attach)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6011,7 +6011,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 1d 08 06 3d 1c 8b -result (DETACH ACC) = 35 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6033,7 +6033,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 21 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 44 db cc -result (ATTACH REQUEST) = 79 +result (ATTACH REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6055,7 +6055,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 19 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 27 3c 84 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6077,7 +6077,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 25 08 03 9b c6 47 -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6099,7 +6099,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 73 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 1d 08 05 02 25 0a dd 56 6c -result (DETACH REQ) = 73 +result (DETACH REQ) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6121,7 +6121,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 29 08 06 4c bd dd -result (DETACH ACC) = 35 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6143,7 +6143,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 82 00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 37 01 c0 2d 08 01 02 f5 e0 21 08 02 08 11 12 13 14 15 16 17 18 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 a5 85 76 -result (ATTACH REQUEST (IMSI)) = 82 +result (ATTACH REQUEST (IMSI)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6165,7 +6165,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 21 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 cf 80 6e -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6187,7 +6187,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 31 08 03 fc 2b 11 -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6209,7 +6209,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 73 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 25 08 05 02 25 0a 8e ee 85 -result (DETACH REQ) = 73 +result (DETACH REQ) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6231,7 +6231,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 35 08 06 f3 c6 26 -result (DETACH ACC) = 35 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6253,7 +6253,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 39 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 e4 85 12 -result (ATTACH REQUEST) = 79 +result (ATTACH REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6275,7 +6275,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 29 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 d2 d1 3e -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6297,7 +6297,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 3d 08 03 48 76 ea -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6319,7 +6319,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 89 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 70 80 00 80 0e 00 3e 01 c0 41 08 08 10 11 22 33 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 30 73 32 -result (RA UPD REQ) = 89 +result (RA UPD REQ) = 0 PROCESSING RA UDP REJ from 0x05060708:32000 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8a 41 c0 2d 08 0b 0a 00 41 30 a7 @@ -6331,7 +6331,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 72 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8a 41 c0 2d 08 0b 0a 00 41 30 a7 -result (RA UDP REJ) = 72 +result (RA UDP REJ) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6404,7 +6404,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 31 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 f5 22 ce -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6428,7 +6428,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 4d 08 03 79 84 ea -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6452,7 +6452,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 73 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 35 08 05 02 25 0a 9b fa 57 -result (DETACH REQ) = 73 +result (DETACH REQ) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6476,7 +6476,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 51 08 06 a5 d9 70 -result (DETACH ACC) = 35 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6500,7 +6500,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 55 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 f9 cc e9 -result (ATTACH REQUEST (local TLLI)) = 79 +result (ATTACH REQUEST (local TLLI)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6524,7 +6524,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 39 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 e8 73 9e -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6548,7 +6548,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 59 08 03 1e 69 bc -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6572,7 +6572,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 73 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 3d 08 05 01 25 0a 21 a2 ad -result (DETACH REQ (re-attach)) = 73 +result (DETACH REQ (re-attach)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6596,7 +6596,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 5d 08 06 11 84 8b -result (DETACH ACC) = 35 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6620,7 +6620,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 61 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 5b 66 e2 -result (ATTACH REQUEST) = 79 +result (ATTACH REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6644,7 +6644,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 41 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 9e 50 40 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6668,7 +6668,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 65 08 03 b7 5e 47 -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6692,7 +6692,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 45 08 21 9c 7f c6 -result (GMM INFO) = 70 +result (GMM INFO) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6716,7 +6716,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 82 00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 37 01 c0 69 08 01 02 f5 e0 21 08 02 08 11 12 13 14 15 16 17 18 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 e1 11 8e -result (ATTACH REQUEST (unexpected, IMSI)) = 82 +result (ATTACH REQUEST (unexpected, IMSI)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6740,7 +6740,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 49 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 83 01 10 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6764,7 +6764,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 6d 08 03 6f c8 ea -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6788,7 +6788,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 73 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 4d 08 05 02 25 0a 51 0e 1b -result (DETACH REQ) = 73 +result (DETACH REQ) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6812,7 +6812,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 71 08 06 b3 95 70 -result (DETACH ACC) = 35 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6836,7 +6836,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 75 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 ab 17 53 -result (ATTACH REQUEST) = 79 +result (ATTACH REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6860,7 +6860,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 51 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 a4 f2 e0 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6884,7 +6884,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 79 08 03 08 25 bc -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6908,7 +6908,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 55 08 21 97 59 c6 -result (GMM INFO) = 70 +result (GMM INFO) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6932,7 +6932,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 7d 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 a2 24 d0 -result (ATTACH REQUEST (unexpected)) = 79 +result (ATTACH REQUEST (unexpected)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6956,7 +6956,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 59 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 b9 a3 b0 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6980,7 +6980,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 81 08 03 b9 71 10 -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -7004,7 +7004,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 73 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 5d 08 05 02 25 0a 44 1a c9 -result (DETACH REQ) = 73 +result (DETACH REQ) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -7028,7 +7028,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 85 08 06 b6 9c 27 -result (DETACH ACC) = 35 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -7100,7 +7100,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 71 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 61 08 04 07 79 ba a5 -result (ATTACH REJECT) = 71 +result (ATTACH REJECT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -7198,7 +7198,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 73 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 65 08 05 02 25 0a 17 a2 20 -result (DETACH REQ (MT)) = 73 +result (DETACH REQ (MT)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -7227,7 +7227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 9d 08 06 65 2c 8a -result (DETACH ACC) = 35 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7319,7 +7319,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 06 -result (ALIVE_ACK) = 1 +result (ALIVE_ACK) = 0 PROCESSING UNBLOCK_ACK from 0x05060708:32000 07 @@ -7334,7 +7334,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 --- Initialise BSS 1 --- @@ -7351,7 +7351,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -7359,7 +7359,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -7369,7 +7369,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -7388,7 +7388,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 10 02 @@ -7400,7 +7400,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 Current NS-VCIs: VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 @@ -7449,7 +7449,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 27 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba -result (IDENT REQUEST) = 27 +result (IDENT REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 -- To view, visit https://gerrit.osmocom.org/13068 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I7a48d14aed19825b87a02ccf9ee9cbfe0853342c Gerrit-Change-Number: 13068 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 21:52:25 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Tue, 26 Feb 2019 21:52:25 +0000 Subject: Change in osmo-sgsn[master]: gbproxy_test: Fix test expectations of gprs_ns_rcvmsg() In-Reply-To: References: Message-ID: Neels Hofmeyr has posted comments on this change. ( https://gerrit.osmocom.org/13068 ) Change subject: gbproxy_test: Fix test expectations of gprs_ns_rcvmsg() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13068 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7a48d14aed19825b87a02ccf9ee9cbfe0853342c Gerrit-Change-Number: 13068 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Comment-Date: Tue, 26 Feb 2019 21:52:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 21:52:35 2019 From: gerrit-no-reply at lists.osmocom.org (Neels Hofmeyr) Date: Tue, 26 Feb 2019 21:52:35 +0000 Subject: Change in osmo-sgsn[master]: gbproxy_test: Fix test expectations of gprs_ns_rcvmsg() In-Reply-To: References: Message-ID: Neels Hofmeyr has submitted this change and it was merged. ( https://gerrit.osmocom.org/13068 ) Change subject: gbproxy_test: Fix test expectations of gprs_ns_rcvmsg() ...................................................................... gbproxy_test: Fix test expectations of gprs_ns_rcvmsg() gprs_ns_rcvmsg() in old libosmocore returns "number of bytes transmitted by any response PDU we sent as a result of the received message", while modern libosmocore simply retunrs '0' for any successfully received message. Let's make sure any non-negative responses lead to a reproducible test output with both old and new libosmocore. Change-Id: I7a48d14aed19825b87a02ccf9ee9cbfe0853342c --- M tests/gbproxy/gbproxy_test.c M tests/gbproxy/gbproxy_test.ok 2 files changed, 340 insertions(+), 334 deletions(-) Approvals: Jenkins Builder: Verified Neels Hofmeyr: Looks good to me, approved diff --git a/tests/gbproxy/gbproxy_test.c b/tests/gbproxy/gbproxy_test.c index 55776be..f5c730d 100644 --- a/tests/gbproxy/gbproxy_test.c +++ b/tests/gbproxy/gbproxy_test.c @@ -1302,7 +1302,13 @@ ret = gprs_ns_rcvmsg(nsi, msg, peer, GPRS_NS_LL_UDP); - printf("result (%s) = %d\n\n", text, ret); + /* gprs_ns_rcvmsg() in old libosmocore returns "number of bytes + * transmitted by any response PDU we sent as a result of the + * received message", while modern libosmocore simply retunrs '0' + * for any successfully received message. Let's make sure any + * non-negative responses lead to a reproducible test output + * with both old and new libosmocore. */ + printf("result (%s) = %d\n\n", text, ret < 0 ? ret : 0); msgb_free(msg); diff --git a/tests/gbproxy/gbproxy_test.ok b/tests/gbproxy/gbproxy_test.ok index 9016ed3..75f31ab 100644 --- a/tests/gbproxy/gbproxy_test.ok +++ b/tests/gbproxy/gbproxy_test.ok @@ -11,7 +11,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -19,7 +19,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 06 -result (ALIVE_ACK) = 1 +result (ALIVE_ACK) = 0 PROCESSING UNBLOCK_ACK from 0x05060708:32000 07 @@ -34,7 +34,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 Current NS-VCIs: VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 @@ -59,7 +59,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -67,7 +67,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -77,7 +77,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -96,7 +96,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 Current NS-VCIs: VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 @@ -124,7 +124,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 --- Initialise BSS 2 --- @@ -141,7 +141,7 @@ MESSAGE to BSS at 0x01020304:2222, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:2222 0a @@ -149,7 +149,7 @@ MESSAGE to BSS at 0x01020304:2222, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:2222 06 @@ -159,7 +159,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x2001/1.2.3.4:2222 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:2222 0b @@ -178,7 +178,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 Current NS-VCIs: VCI 0x2001, NSEI 0x2000, peer 0x01020304:2222 @@ -213,7 +213,7 @@ MESSAGE to BSS at 0x01020304:2222, msg length 9 00 00 00 00 23 04 82 20 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 --- Move BSS 1 to new port --- @@ -230,7 +230,7 @@ MESSAGE to BSS at 0x01020304:3333, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:3333 0a @@ -238,7 +238,7 @@ MESSAGE to BSS at 0x01020304:3333, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:3333 06 @@ -248,7 +248,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:3333 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:3333 0b @@ -293,7 +293,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -301,7 +301,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -311,7 +311,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x2001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -356,7 +356,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -364,7 +364,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -374,7 +374,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x2001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -419,7 +419,7 @@ MESSAGE to BSS at 0x01020304:4444, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:4444 0a @@ -427,7 +427,7 @@ MESSAGE to BSS at 0x01020304:4444, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:4444 06 @@ -437,7 +437,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x2001/1.2.3.4:4444 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:4444 0b @@ -484,7 +484,7 @@ MESSAGE to BSS at 0x01020304:3333, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:3333 0a @@ -492,7 +492,7 @@ MESSAGE to BSS at 0x01020304:3333, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:3333 06 @@ -502,7 +502,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x2001/1.2.3.4:3333 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:3333 0b @@ -548,7 +548,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -556,7 +556,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -566,7 +566,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -611,7 +611,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 12 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 Current NS-VCIs: VCI 0x2001, NSEI 0x2000, peer 0x01020304:3333 @@ -649,7 +649,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 12 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 --- Reset BSS 1 with the old BVCI --- @@ -665,7 +665,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 Current NS-VCIs: VCI 0x2001, NSEI 0x2000, peer 0x01020304:3333 @@ -703,7 +703,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 --- Reset BSS 1 with the old BVCI again --- @@ -719,7 +719,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 Current NS-VCIs: VCI 0x2001, NSEI 0x2000, peer 0x01020304:3333 @@ -757,7 +757,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 --- Send message from BSS 1 to SGSN, BVCI 0x1012 --- @@ -771,7 +771,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 10 12 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Send message from SGSN to BSS 1, BVCI 0x1012 --- @@ -785,7 +785,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 4 00 00 10 12 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Send message from BSS 1 to SGSN, BVCI 0x1002 --- @@ -799,7 +799,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 10 12 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Send message from SGSN to BSS 1, BVCI 0x1002 --- @@ -813,7 +813,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 4 00 00 10 12 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Send message from BSS 2 to SGSN, BVCI 0x2002 --- @@ -827,7 +827,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 20 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Send message from SGSN to BSS 2, BVCI 0x2002 --- @@ -841,7 +841,7 @@ MESSAGE to BSS at 0x01020304:3333, msg length 4 00 00 20 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Reset BSS 1 with the old BVCI on BSS2's link --- @@ -857,7 +857,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 Current NS-VCIs: VCI 0x2001, NSEI 0x2000, peer 0x01020304:3333 @@ -898,7 +898,7 @@ MESSAGE to BSS at 0x01020304:3333, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 --- Send message from BSS 1 to SGSN, BVCI 0x1002 --- @@ -912,7 +912,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 10 12 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Send message from SGSN to BSS 1, BVCI 0x1002 --- @@ -926,7 +926,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 4 00 00 10 12 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Send message from SGSN to BSS 1, BVCI 0x10ff (invalid) --- @@ -940,7 +940,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 14 00 00 00 00 41 07 81 05 04 82 10 ff 15 80 -result (UNITDATA) = 14 +result (UNITDATA) = 0 Peers: NSEI 8192, BVCI 8194, not blocked, RAI 112-332-16464-96 @@ -963,7 +963,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -971,7 +971,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 06 -result (ALIVE_ACK) = 1 +result (ALIVE_ACK) = 0 PROCESSING UNBLOCK_ACK from 0x05060708:32000 07 @@ -986,7 +986,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 Current NS-VCIs: VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 @@ -1011,7 +1011,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -1019,7 +1019,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -1029,7 +1029,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -1063,7 +1063,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 10 02 @@ -1075,7 +1075,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -1094,7 +1094,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 20 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 20 02 @@ -1106,7 +1106,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 20 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 Peers: NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 @@ -1125,7 +1125,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 10 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 PROCESSING UNITDATA from 0x05060708:32000 00 00 10 02 @@ -1137,7 +1137,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 4 00 00 10 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Send message from BSS 1 to SGSN and back, BVCI 2 --- @@ -1151,7 +1151,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 20 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 PROCESSING UNITDATA from 0x05060708:32000 00 00 20 02 @@ -1163,7 +1163,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 4 00 00 20 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Change NSEI --- @@ -1180,7 +1180,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -1188,7 +1188,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -1198,7 +1198,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -1233,7 +1233,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 10 02 @@ -1245,7 +1245,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 Peers: NSEI 4096, BVCI 8194, not blocked, RAI 112-332-16464-96 @@ -1267,7 +1267,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 30 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 30 02 @@ -1279,7 +1279,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 30 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 Peers: NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 @@ -1301,7 +1301,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 10 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 PROCESSING UNITDATA from 0x05060708:32000 00 00 10 02 @@ -1313,7 +1313,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 4 00 00 10 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Send message from BSS 1 to SGSN and back, BVCI 2 (should fail) --- @@ -1327,7 +1327,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 20 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 Peers: NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 @@ -1369,7 +1369,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 30 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 PROCESSING UNITDATA from 0x05060708:32000 00 00 30 02 @@ -1381,7 +1381,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 4 00 00 30 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Change NSVCI --- @@ -1400,7 +1400,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -1408,7 +1408,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -1418,7 +1418,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x2001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -1459,7 +1459,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 10 02 @@ -1471,7 +1471,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 Peers: NSEI 8192, BVCI 12290, not blocked, RAI 112-332-16464-96 @@ -1497,7 +1497,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 40 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 40 02 @@ -1509,7 +1509,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 40 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 Peers: NSEI 8192, BVCI 16386, not blocked, RAI 112-332-16464-96 @@ -1535,7 +1535,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 10 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 PROCESSING UNITDATA from 0x05060708:32000 00 00 10 02 @@ -1547,7 +1547,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 4 00 00 10 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Send message from BSS 1 to SGSN and back, BVCI 2 (should fail) --- @@ -1561,7 +1561,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 20 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 Peers: NSEI 8192, BVCI 16386, not blocked, RAI 112-332-16464-96 @@ -1608,7 +1608,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 30 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 PROCESSING UNITDATA from 0x05060708:32000 00 00 30 02 @@ -1620,7 +1620,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 4 00 00 30 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 --- Send message from BSS 1 to SGSN and back, BVCI 4 --- @@ -1634,7 +1634,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 4 00 00 40 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 PROCESSING UNITDATA from 0x05060708:32000 00 00 40 02 @@ -1646,7 +1646,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 4 00 00 40 02 -result (UNITDATA) = 4 +result (UNITDATA) = 0 Gbproxy global: Peers: @@ -1675,7 +1675,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -1683,7 +1683,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 06 -result (ALIVE_ACK) = 1 +result (ALIVE_ACK) = 0 PROCESSING UNBLOCK_ACK from 0x05060708:32000 07 @@ -1698,7 +1698,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 --- Initialise BSS 1 --- @@ -1715,7 +1715,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -1723,7 +1723,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -1733,7 +1733,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -1752,7 +1752,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 10 02 @@ -1764,7 +1764,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 Current NS-VCIs: VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 @@ -1795,7 +1795,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 80 00 de ad 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 16 6d 01 -result (ATTACH REQUEST) = 79 +result (ATTACH REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -1813,7 +1813,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 27 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba -result (IDENT REQUEST) = 27 +result (IDENT REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -1831,7 +1831,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 44 00 00 10 02 01 80 00 de ad 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 -result (IDENT RESPONSE) = 44 +result (IDENT RESPONSE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -1849,7 +1849,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -1868,7 +1868,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 09 08 03 39 d7 bc -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -1888,7 +1888,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d -result (GMM INFO) = 70 +result (GMM INFO) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -1910,7 +1910,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 80 00 be ef 00 00 04 08 88 00 f1 99 00 63 60 12 34 00 80 0e 00 34 01 c0 0d 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 46 42 6e -result (ATTACH REQUEST) = 79 +result (ATTACH REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -1931,7 +1931,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 27 00 00 10 02 00 80 00 be ef 00 50 20 16 82 02 58 0e 89 41 c0 0d 08 15 01 0c a6 18 -result (IDENT REQUEST) = 27 +result (IDENT REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -1952,7 +1952,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 44 00 00 10 02 01 80 00 be ef 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 11 08 16 08 11 12 99 99 99 16 17 18 bf d2 01 -result (IDENT RESPONSE) = 44 +result (IDENT RESPONSE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -1973,7 +1973,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 80 00 be ef 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 3a 6d d4 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -1993,7 +1993,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 15 08 03 86 ac 47 -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2013,7 +2013,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 -result (GMM INFO) = 70 +result (GMM INFO) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2036,7 +2036,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2044,7 +2044,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 06 -result (ALIVE_ACK) = 1 +result (ALIVE_ACK) = 0 PROCESSING UNBLOCK_ACK from 0x05060708:32000 07 @@ -2059,7 +2059,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 Current NS-VCIs: VCI 0x0101, NSEI 0x0100, peer 0x05060708:32000 @@ -2084,7 +2084,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -2092,7 +2092,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -2102,7 +2102,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -2121,7 +2121,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 21 63 54 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 Current NS-VCIs: VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 @@ -2150,7 +2150,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 PROCESSING BVC_SUSPEND from 0x01020304:1111 00 00 00 00 0b 1f 84 cc d1 75 8b 1b 86 11 22 33 40 50 60 @@ -2162,7 +2162,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 19 00 00 00 00 0b 1f 84 cc d1 75 8b 1b 86 21 63 54 40 50 60 -result (BVC_SUSPEND) = 19 +result (BVC_SUSPEND) = 0 PROCESSING BVC_SUSPEND_ACK from 0x05060708:32000 00 00 00 00 0c 1f 84 cc d1 75 8b 1b 86 21 63 54 40 50 60 1d 81 01 @@ -2174,7 +2174,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 22 00 00 00 00 0c 1f 84 cc d1 75 8b 1b 86 11 22 33 40 50 60 1d 81 01 -result (BVC_SUSPEND_ACK) = 22 +result (BVC_SUSPEND_ACK) = 0 Gbproxy global: Peers: @@ -2195,7 +2195,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 bb c5 46 79 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 21 63 54 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 8e cd 32 -result (ATTACH REQUEST) = 79 +result (ATTACH REQUEST) = 0 PROCESSING IDENT REQUEST from 0x05060708:32000 00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba @@ -2207,7 +2207,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 27 00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba -result (IDENT REQUEST) = 27 +result (IDENT REQUEST) = 0 PROCESSING IDENT RESPONSE from 0x01020304:1111 00 00 10 02 01 bb c5 46 79 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 11 01 c0 0d 08 16 08 11 12 13 14 15 16 17 18 b7 1b 9a @@ -2219,7 +2219,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 44 00 00 10 02 01 bb c5 46 79 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 11 01 c0 0d 08 16 08 11 12 13 14 15 16 17 18 b7 1b 9a -result (IDENT RESPONSE) = 44 +result (IDENT RESPONSE) = 0 PROCESSING ATTACH ACCEPT from 0x05060708:32000 00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 @@ -2231,7 +2231,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 be 38 c0 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 PROCESSING ATTACH COMPLETE from 0x01020304:1111 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 08 01 c0 11 08 03 ea 67 11 @@ -2243,7 +2243,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 08 01 c0 11 08 03 ea 67 11 -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 PROCESSING ACT PDP CTX REQ (REPLACE APN) from 0x01020304:1111 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02 @@ -2255,7 +2255,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 85 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 3a 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 08 03 66 6f 6f 03 62 61 72 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 24 9d 75 -result (ACT PDP CTX REQ (REPLACE APN)) = 85 +result (ACT PDP CTX REQ (REPLACE APN)) = 0 PROCESSING GMM INFO from 0x05060708:32000 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d @@ -2267,7 +2267,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d -result (GMM INFO) = 70 +result (GMM INFO) = 0 PROCESSING ACT PDP CTX REQ (REPLACE APN) from 0x01020304:1111 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02 @@ -2279,7 +2279,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 85 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 3a 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 08 03 66 6f 6f 03 62 61 72 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 24 9d 75 -result (ACT PDP CTX REQ (REPLACE APN)) = 85 +result (ACT PDP CTX REQ (REPLACE APN)) = 0 PROCESSING ACT PDP CTX REQ (REMOVE APN) from 0x01020304:1111 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02 @@ -2291,7 +2291,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 75 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 30 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 85 fa 60 -result (ACT PDP CTX REQ (REMOVE APN)) = 75 +result (ACT PDP CTX REQ (REMOVE APN)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2316,7 +2316,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 48 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 15 01 c0 19 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 7e e1 41 -result (DETACH REQ) = 48 +result (DETACH REQ) = 0 PROCESSING DETACH ACC from 0x05060708:32000 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 15 08 06 00 f7 35 f0 @@ -2328,7 +2328,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 71 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 15 08 06 00 f7 35 f0 -result (DETACH ACC) = 71 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2355,7 +2355,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 89 00 00 10 02 01 bb c5 46 79 00 00 04 08 88 21 63 54 40 50 60 70 80 00 80 0e 00 3e 01 c0 15 08 08 10 21 63 54 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 1d f0 41 -result (RA UPD REQ) = 89 +result (RA UPD REQ) = 0 PROCESSING RA UPD ACC from 0x05060708:32000 00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 19 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 ef e2 b7 00 17 16 d7 59 65 @@ -2367,7 +2367,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 91 00 00 10 02 00 bb c5 46 79 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 19 08 09 00 49 11 22 33 40 50 60 19 54 ab b3 18 05 f4 ef e2 b7 00 17 16 3a 03 54 -result (RA UPD ACC) = 91 +result (RA UPD ACC) = 0 PROCESSING ACT PDP CTX REQ (REMOVE APN) from 0x01020304:1111 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02 @@ -2379,7 +2379,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 75 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 30 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 85 fa 60 -result (ACT PDP CTX REQ (REMOVE APN)) = 75 +result (ACT PDP CTX REQ (REMOVE APN)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2408,7 +2408,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 48 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 15 01 c0 19 08 05 09 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 84 0c eb -result (DETACH REQ (PWR OFF)) = 48 +result (DETACH REQ (PWR OFF)) = 0 Gbproxy global: Peers: @@ -2438,7 +2438,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 bb 00 be ef 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb 00 be ef 99 99 99 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 2d c7 df -result (ATTACH REQUEST (foreign RAI)) = 79 +result (ATTACH REQUEST (foreign RAI)) = 0 TLLI is already detached, shouldn't patch PROCESSING ACT PDP CTX REQ from 0x01020304:1111 @@ -2451,7 +2451,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 80 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 75 30 00 80 0e 00 35 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 03 02 61 62 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 5a ff 02 -result (ACT PDP CTX REQ) = 80 +result (ACT PDP CTX REQ) = 0 Invalid RAI, shouldn't patch PROCESSING BVC_SUSPEND_ACK from 0x05060708:32000 @@ -2464,7 +2464,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 28 00 00 00 00 41 07 81 21 15 92 0c 1f 84 cc d1 75 8b 1b 86 00 f1 99 00 63 60 1d 81 01 -result (BVC_SUSPEND_ACK) = 28 +result (BVC_SUSPEND_ACK) = 0 Gbproxy global: Invalid Routing Area Identifier : 1 @@ -2499,7 +2499,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -2507,7 +2507,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 06 -result (ALIVE_ACK) = 1 +result (ALIVE_ACK) = 0 PROCESSING UNBLOCK_ACK from 0x05060708:32000 07 @@ -2522,7 +2522,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 --- Initialise BSS 1 --- @@ -2539,7 +2539,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -2547,7 +2547,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -2557,7 +2557,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -2576,7 +2576,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 21 63 54 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 10 02 @@ -2588,7 +2588,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 Current NS-VCIs: VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 @@ -2620,7 +2620,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 00 63 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 16 6d 01 -result (ATTACH REQUEST) = 79 +result (ATTACH REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2640,7 +2640,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 27 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba -result (IDENT REQUEST) = 27 +result (IDENT REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2661,7 +2661,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 44 00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 -result (IDENT RESPONSE) = 44 +result (IDENT RESPONSE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2682,7 +2682,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 0c 0a 29 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2706,7 +2706,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 08 01 c0 09 08 03 39 d7 bc -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2731,7 +2731,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d -result (GMM INFO) = 70 +result (GMM INFO) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2756,7 +2756,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 85 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 3a 01 c0 0d 0a 41 05 03 0c 00 00 1f 10 00 00 00 00 00 00 00 00 02 01 21 28 08 03 66 6f 6f 03 62 61 72 27 14 80 80 21 10 01 00 00 10 81 06 00 00 00 00 83 06 00 00 00 00 24 9d 75 -result (ACT PDP CTX REQ (REPLACE APN)) = 85 +result (ACT PDP CTX REQ (REPLACE APN)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2783,7 +2783,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 42 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 0f 41 fb 01 00 0e 00 64 11 05 16 01 90 66 b3 28 -result (XID (UL)) = 42 +result (XID (UL)) = 0 PROCESSING XID (DL) from 0x05060708:32000 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e @@ -2795,7 +2795,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 74 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e -result (XID (DL)) = 74 +result (XID (DL)) = 0 PROCESSING LL11 DNS QUERY (UL) from 0x01020304:1111 00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 @@ -2807,7 +2807,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 93 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 -result (LL11 DNS QUERY (UL)) = 93 +result (LL11 DNS QUERY (UL)) = 0 PROCESSING LL11 DNS RESP (DL) from 0x05060708:32000 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 @@ -2819,7 +2819,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 271 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 -result (LL11 DNS RESP (DL)) = 271 +result (LL11 DNS RESP (DL)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2846,7 +2846,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 89 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 70 80 00 80 0e 00 3e 01 c0 11 08 08 10 21 63 54 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 69 a3 ae -result (RA UPD REQ (P-TMSI 2)) = 89 +result (RA UPD REQ (P-TMSI 2)) = 0 PROCESSING RA UDP ACC (P-TMSI 2) from 0x05060708:32000 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 0d 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 e0 98 76 54 17 16 9f e8 ea @@ -2858,7 +2858,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 91 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 0d 08 09 00 49 11 22 33 40 50 60 19 54 ab b3 18 05 f4 c0 de ad 02 17 16 bb 4d a0 -result (RA UDP ACC (P-TMSI 2)) = 91 +result (RA UDP ACC (P-TMSI 2)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2887,7 +2887,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 89 00 00 10 02 01 e0 98 76 54 00 00 04 08 88 21 63 54 40 50 60 70 80 00 80 0e 00 3e 01 c0 15 08 08 10 21 63 54 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 1d f0 41 -result (RA UPD REQ (P-TMSI 3)) = 89 +result (RA UPD REQ (P-TMSI 3)) = 0 PROCESSING RA UDP ACC (P-TMSI 3) from 0x05060708:32000 00 00 10 02 00 e0 98 76 54 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 11 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 e0 54 32 10 17 16 1b a3 a8 @@ -2899,7 +2899,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 91 00 00 10 02 00 c0 de ad 02 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 11 08 09 00 49 11 22 33 40 50 60 19 54 ab b3 18 05 f4 c0 de ad 03 17 16 6e 58 26 -result (RA UDP ACC (P-TMSI 3)) = 91 +result (RA UDP ACC (P-TMSI 3)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2928,7 +2928,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 e0 54 32 10 00 00 04 08 88 21 63 54 40 50 60 70 80 00 80 0e 00 08 01 c0 19 08 0a d5 5f 5e -result (RA UPD COMPLETE) = 35 +result (RA UPD COMPLETE) = 0 PROCESSING GMM INFO from 0x05060708:32000 00 00 10 02 00 e0 54 32 10 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 @@ -2940,7 +2940,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 -result (GMM INFO) = 70 +result (GMM INFO) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -2970,7 +2970,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 23 00 00 00 00 2c 1f 84 e0 54 32 10 0f 81 01 04 82 10 02 25 83 00 00 0c -result (LLC_DISCARDED) = 23 +result (LLC_DISCARDED) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3000,7 +3000,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 19 00 00 00 00 0b 1f 84 e0 54 32 10 1b 86 21 63 54 40 50 60 -result (BVC_SUSPEND) = 19 +result (BVC_SUSPEND) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3030,7 +3030,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 22 00 00 00 00 0c 1f 84 c0 de ad 03 1b 86 11 22 33 40 50 60 1d 81 01 -result (BVC_SUSPEND_ACK) = 22 +result (BVC_SUSPEND_ACK) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3060,7 +3060,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 38 00 00 00 00 06 0d 88 11 12 13 14 15 16 17 18 0a 82 07 04 1b 86 11 22 33 40 50 60 18 83 00 00 00 20 84 c0 de ad 03 -result (PAGING_PS) = 38 +result (PAGING_PS) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3090,7 +3090,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 23 00 00 00 00 2c 1f 84 e0 54 32 10 0f 81 01 04 82 ee e1 25 83 00 00 0c -result (LLC_DISCARDED) = 23 +result (LLC_DISCARDED) = 0 Gbproxy global: PROCESSING BVC_SUSPEND_ACK from 0x05060708:32000 @@ -3103,7 +3103,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 28 00 00 00 00 41 07 81 21 15 92 0c 1f 84 e0 54 32 10 1b 86 00 f1 99 00 63 60 1d 81 01 -result (BVC_SUSPEND_ACK) = 28 +result (BVC_SUSPEND_ACK) = 0 Gbproxy global: Invalid Routing Area Identifier : 1 @@ -3118,7 +3118,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 22 00 00 00 00 0c 1f 84 c0 de ad 03 1b 86 11 22 33 40 50 60 1d 81 01 -result (BVC_SUSPEND_ACK) = 22 +result (BVC_SUSPEND_ACK) = 0 Gbproxy global: Invalid Routing Area Identifier : 1 @@ -3133,7 +3133,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 62 00 00 10 02 00 ee ba db ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 00 83 00 00 00 0e 88 41 c0 09 08 21 04 ba 3d -result (GMM INFO) = 62 +result (GMM INFO) = 0 PROCESSING GMM INFO from 0x05060708:32000 00 00 10 02 00 ee ba db ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 0d 08 21 68 71 6b @@ -3145,7 +3145,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 ee ba db ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 0d 08 21 68 71 6b -result (GMM INFO) = 70 +result (GMM INFO) = 0 PROCESSING DETACH REQ from 0x01020304:1111 00 00 10 02 01 c0 de ad 03 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 1d 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb aa cc a3 @@ -3157,7 +3157,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 48 00 00 10 02 01 e0 54 32 10 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 15 01 c0 1d 08 05 01 18 05 f4 e0 54 32 10 19 03 b9 97 cb ea 6d af -result (DETACH REQ) = 48 +result (DETACH REQ) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3190,7 +3190,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 71 00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 19 08 06 00 04 ff 52 -result (DETACH ACC) = 71 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3227,7 +3227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3235,7 +3235,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 06 -result (ALIVE_ACK) = 1 +result (ALIVE_ACK) = 0 PROCESSING UNBLOCK_ACK from 0x05060708:32000 07 @@ -3250,7 +3250,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 --- Initialise BSS 1 --- @@ -3267,7 +3267,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -3275,7 +3275,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -3285,7 +3285,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -3304,7 +3304,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 21 63 54 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 10 02 @@ -3316,7 +3316,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 Current NS-VCIs: VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 @@ -3348,7 +3348,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 00 63 60 12 34 00 80 0e 00 34 01 c0 01 08 01 02 f5 e0 21 08 02 05 f4 fb c5 46 79 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 16 6d 01 -result (ATTACH REQUEST) = 79 +result (ATTACH REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3368,7 +3368,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 27 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba -result (IDENT REQUEST) = 27 +result (IDENT REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3389,7 +3389,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 44 00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 05 08 16 08 11 12 13 14 15 16 17 18 ad 05 28 -result (IDENT RESPONSE) = 44 +result (IDENT RESPONSE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3410,7 +3410,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 0c 0a 29 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3434,7 +3434,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 09 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 42 f6 fc -result (ATTACH ACCEPT (duplicated)) = 92 +result (ATTACH ACCEPT (duplicated)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3458,7 +3458,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 08 01 c0 09 08 03 39 d7 bc -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3483,7 +3483,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 0d 08 21 68 71 6b -result (GMM INFO) = 70 +result (GMM INFO) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3508,7 +3508,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 48 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 15 01 c0 0d 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 37 67 c6 -result (DETACH REQ) = 48 +result (DETACH REQ) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3534,7 +3534,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 71 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 11 08 06 00 cf 8a 58 -result (DETACH ACC) = 71 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3562,7 +3562,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -3570,7 +3570,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 06 -result (ALIVE_ACK) = 1 +result (ALIVE_ACK) = 0 PROCESSING UNBLOCK_ACK from 0x05060708:32000 07 @@ -3585,7 +3585,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 --- Initialise BSS 1 --- @@ -3602,7 +3602,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -3610,7 +3610,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -3620,7 +3620,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -3639,7 +3639,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 21 63 54 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 10 02 @@ -3651,7 +3651,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 Current NS-VCIs: VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 @@ -3722,7 +3722,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 27 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba -result (IDENT REQUEST) = 27 +result (IDENT REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3743,7 +3743,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 44 00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 -result (IDENT RESPONSE) = 44 +result (IDENT RESPONSE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3764,7 +3764,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 0c 0a 29 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3788,7 +3788,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 08 01 c0 0d 08 03 55 1c ea -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3813,7 +3813,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d -result (GMM INFO) = 70 +result (GMM INFO) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3838,7 +3838,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 42 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 0f 41 fb 01 00 0e 00 64 11 05 16 01 90 66 b3 28 -result (XID (UL)) = 42 +result (XID (UL)) = 0 PROCESSING XID (DL) from 0x05060708:32000 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e @@ -3850,7 +3850,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 74 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e -result (XID (DL)) = 74 +result (XID (DL)) = 0 PROCESSING LL11 DNS QUERY (UL) from 0x01020304:1111 00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 @@ -3862,7 +3862,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 93 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 -result (LL11 DNS QUERY (UL)) = 93 +result (LL11 DNS QUERY (UL)) = 0 PROCESSING LL11 DNS RESP (DL) from 0x05060708:32000 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 @@ -3874,7 +3874,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 271 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 -result (LL11 DNS RESP (DL)) = 271 +result (LL11 DNS RESP (DL)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3899,7 +3899,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 23 00 00 00 00 2c 1f 84 ef e2 b7 00 0f 81 01 04 82 10 02 25 83 00 00 0c -result (LLC_DISCARDED) = 23 +result (LLC_DISCARDED) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3924,7 +3924,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 29 00 00 00 00 41 07 81 27 15 93 2c 1f 84 ef e2 b7 00 0f 81 01 04 82 10 02 25 83 00 00 0c -result (LLC_DISCARDED) = 29 +result (LLC_DISCARDED) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3949,7 +3949,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 19 00 00 00 00 0b 1f 84 ef e2 b7 00 1b 86 21 63 54 40 50 60 -result (BVC_SUSPEND) = 19 +result (BVC_SUSPEND) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3974,7 +3974,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 22 00 00 00 00 0c 1f 84 c0 de ad 01 1b 86 11 22 33 40 50 60 1d 81 01 -result (BVC_SUSPEND_ACK) = 22 +result (BVC_SUSPEND_ACK) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -3999,7 +3999,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 23 00 00 00 00 2c 1f 84 ef e2 b7 00 0f 81 01 04 82 ee e1 25 83 00 00 0c -result (LLC_DISCARDED) = 23 +result (LLC_DISCARDED) = 0 Gbproxy global: BSSGP protocol error (SGSN): 1 @@ -4013,7 +4013,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 28 00 00 00 00 41 07 81 21 15 92 0c 1f 84 ef e2 b7 00 1b 86 00 f1 99 00 63 60 1d 81 01 -result (BVC_SUSPEND_ACK) = 28 +result (BVC_SUSPEND_ACK) = 0 Gbproxy global: Invalid Routing Area Identifier : 1 @@ -4029,7 +4029,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 22 00 00 00 00 0c 1f 84 c0 de ad 01 1b 86 11 22 33 40 50 60 1d 81 01 -result (BVC_SUSPEND_ACK) = 22 +result (BVC_SUSPEND_ACK) = 0 Gbproxy global: Invalid Routing Area Identifier : 1 @@ -4045,7 +4045,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 48 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 15 01 c0 11 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 6d b1 de -result (DETACH REQ) = 48 +result (DETACH REQ) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4071,7 +4071,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 71 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 0d 08 06 00 aa ab ee -result (DETACH ACC) = 71 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4136,7 +4136,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 91 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 11 08 09 00 49 11 22 33 40 50 60 19 54 ab b3 18 05 f4 c0 de ad 03 17 16 6e 58 26 -result (RA UDP ACC) = 91 +result (RA UDP ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4194,7 +4194,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 71 00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 15 08 06 00 f7 35 f0 -result (DETACH ACC) = 71 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4356,7 +4356,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -4364,7 +4364,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 06 -result (ALIVE_ACK) = 1 +result (ALIVE_ACK) = 0 PROCESSING UNBLOCK_ACK from 0x05060708:32000 07 @@ -4379,7 +4379,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 --- Initialise SGSN 2 --- @@ -4392,7 +4392,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x15161718:32001 0b @@ -4400,7 +4400,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 06 -result (ALIVE_ACK) = 1 +result (ALIVE_ACK) = 0 PROCESSING UNBLOCK_ACK from 0x15161718:32001 07 @@ -4415,7 +4415,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 --- Initialise BSS 1 --- @@ -4432,7 +4432,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -4440,7 +4440,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -4450,7 +4450,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -4469,7 +4469,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 00 00 -result (BVC_RESET) = 9 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 00 00 @@ -4495,7 +4495,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 21 63 54 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 10 02 @@ -4507,7 +4507,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 PROCESSING BVC_RESET_ACK from 0x15161718:32001 00 00 00 00 23 04 82 10 02 @@ -4515,7 +4515,7 @@ CALLBACK, event 0, msg length 5, bvci 0x0000 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 1 +result (BVC_RESET_ACK) = 0 Current NS-VCIs: VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 @@ -4559,7 +4559,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 28 00 00 10 02 26 1e 81 01 05 82 01 dc 03 82 02 76 01 82 00 50 1c 82 02 58 06 82 00 03 -result (FLOW_CONTROL_BVC) = 28 +result (FLOW_CONTROL_BVC) = 0 PROCESSING FLOW_CONTROL_BVC_ACK from 0x05060708:32000 00 00 10 02 27 1e 81 01 @@ -4571,7 +4571,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 8 00 00 10 02 27 1e 81 01 -result (FLOW_CONTROL_BVC_ACK) = 8 +result (FLOW_CONTROL_BVC_ACK) = 0 PROCESSING FLOW_CONTROL_BVC_ACK from 0x15161718:32001 00 00 10 02 27 1e 81 01 @@ -4632,7 +4632,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 27 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba -result (IDENT REQUEST) = 27 +result (IDENT REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4653,7 +4653,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 44 00 00 10 02 01 78 de ad 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 -result (IDENT RESPONSE) = 44 +result (IDENT RESPONSE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4674,7 +4674,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 01 0c 0a 29 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4698,7 +4698,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 08 01 c0 0d 08 03 55 1c ea -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4723,7 +4723,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d -result (GMM INFO) = 70 +result (GMM INFO) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4748,7 +4748,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 42 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 0f 41 fb 01 00 0e 00 64 11 05 16 01 90 66 b3 28 -result (XID (UL)) = 42 +result (XID (UL)) = 0 PROCESSING XID (DL) from 0x05060708:32000 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e @@ -4760,7 +4760,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 74 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e -result (XID (DL)) = 74 +result (XID (DL)) = 0 PROCESSING LL11 DNS QUERY (UL) from 0x01020304:1111 00 00 10 02 01 c0 de ad 01 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 @@ -4772,7 +4772,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 93 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 -result (LL11 DNS QUERY (UL)) = 93 +result (LL11 DNS QUERY (UL)) = 0 PROCESSING LL11 DNS RESP (DL) from 0x05060708:32000 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 @@ -4784,7 +4784,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 271 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 -result (LL11 DNS RESP (DL)) = 271 +result (LL11 DNS RESP (DL)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4809,7 +4809,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 23 00 00 00 00 2c 1f 84 ef e2 b7 00 0f 81 01 04 82 10 02 25 83 00 00 0c -result (LLC_DISCARDED) = 23 +result (LLC_DISCARDED) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4834,7 +4834,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 29 00 00 00 00 41 07 81 27 15 93 2c 1f 84 ef e2 b7 00 0f 81 01 04 82 10 02 25 83 00 00 0c -result (LLC_DISCARDED) = 29 +result (LLC_DISCARDED) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4859,7 +4859,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 19 00 00 00 00 0b 1f 84 ef e2 b7 00 1b 86 21 63 54 40 50 60 -result (BVC_SUSPEND) = 19 +result (BVC_SUSPEND) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4884,7 +4884,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 22 00 00 00 00 0c 1f 84 c0 de ad 01 1b 86 11 22 33 40 50 60 1d 81 01 -result (BVC_SUSPEND_ACK) = 22 +result (BVC_SUSPEND_ACK) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -4963,7 +4963,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 27 00 00 10 02 00 80 00 be ef 00 50 20 16 82 02 58 0e 89 41 c0 0d 08 15 01 0c a6 18 -result (IDENT REQUEST) = 27 +result (IDENT REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5015,7 +5015,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 80 00 be ef 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 03 32 40 fa -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5067,7 +5067,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 88 41 c0 15 08 21 bb c1 c6 -result (GMM INFO) = 70 +result (GMM INFO) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5105,7 +5105,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 74 00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 8c 41 fb 30 84 10 61 b6 64 e4 a9 1a 9e -result (XID (DL)) = 74 +result (XID (DL)) = 0 PROCESSING LL11 DNS QUERY (UL) from 0x01020304:1111 00 00 10 02 01 c0 de ad 03 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 42 0b c0 01 65 00 00 00 45 00 00 38 95 72 00 00 45 11 20 85 0a c0 07 e4 ac 10 01 0a ad ab 00 35 00 24 0e 1c 3b e0 01 00 00 01 00 00 00 00 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 47 8f 07 @@ -5129,7 +5129,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 271 00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 00 d0 4b c0 01 65 00 00 00 45 00 00 c6 00 00 40 00 3e 11 7c 69 ac 10 01 0a 0a c0 07 e4 00 35 ad ab 00 b2 74 4e 3b e0 81 80 00 01 00 01 00 05 00 00 01 6d 05 68 65 69 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 0e 10 00 04 c1 63 90 58 c0 0e 00 02 00 01 00 00 0e 10 00 16 03 6e 73 32 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 03 6e 65 74 00 c0 0e 00 02 00 01 00 00 0e 10 00 10 02 6e 73 01 73 08 70 6c 75 73 6c 69 6e 65 c0 14 c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 0e c0 0e 00 02 00 01 00 00 0e 10 00 05 02 6e 73 c0 5f c0 0e 00 02 00 01 00 00 0e 10 00 12 02 6e 73 0c 70 6f 70 2d 68 61 6e 6e 6f 76 65 72 c0 14 aa df 31 -result (LL11 DNS RESP (DL)) = 271 +result (LL11 DNS RESP (DL)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5181,7 +5181,7 @@ MESSAGE to SGSN 2 at 0x15161718:32001, msg length 29 00 00 00 00 41 07 81 27 15 93 2c 1f 84 e0 98 76 54 0f 81 01 04 82 10 02 25 83 00 00 0c -result (LLC_DISCARDED) = 29 +result (LLC_DISCARDED) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5233,7 +5233,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 22 00 00 00 00 0c 1f 84 c0 de ad 03 1b 86 11 22 33 40 50 60 1d 81 01 -result (BVC_SUSPEND_ACK) = 22 +result (BVC_SUSPEND_ACK) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5315,7 +5315,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 27 00 00 10 02 00 80 00 fe ed 00 50 20 16 82 02 58 0e 89 41 c0 19 08 15 01 a2 f2 a4 -result (IDENT REQUEST) = 27 +result (IDENT REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5369,7 +5369,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 80 00 fe ed 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 26 27 28 00 81 00 0e 9e 41 c0 1d 08 02 01 49 04 11 22 33 40 50 60 19 cd d7 08 17 16 18 05 f4 c0 de ad 05 3e 78 6e -result (ATTACH ACCEPT (P-TMSI 1)) = 92 +result (ATTACH ACCEPT (P-TMSI 1)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5423,7 +5423,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 c0 de ad 05 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 26 27 28 00 81 00 0e 88 41 c0 21 08 21 ca 60 90 -result (GMM INFO) = 70 +result (GMM INFO) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5452,7 +5452,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 48 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 21 63 54 40 50 60 12 34 00 80 0e 00 15 01 c0 31 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 57 e6 15 -result (DETACH REQ) = 48 +result (DETACH REQ) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5480,7 +5480,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 71 00 00 10 02 00 c0 de ad 01 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 25 08 06 00 4d 09 cd -result (DETACH ACC) = 71 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5539,7 +5539,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 71 00 00 10 02 00 c0 de ad 03 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 16 17 18 00 81 00 0e 89 41 c0 29 08 06 00 be c3 6f -result (DETACH ACC) = 71 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5597,7 +5597,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 71 00 00 10 02 00 c0 de ad 05 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 99 99 99 26 27 28 00 81 00 0e 89 41 c0 2d 08 06 00 86 7c c7 -result (DETACH ACC) = 71 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5629,7 +5629,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -5637,7 +5637,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 06 -result (ALIVE_ACK) = 1 +result (ALIVE_ACK) = 0 PROCESSING UNBLOCK_ACK from 0x05060708:32000 07 @@ -5652,7 +5652,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 --- Initialise BSS 1 --- @@ -5669,7 +5669,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -5677,7 +5677,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -5687,7 +5687,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -5706,7 +5706,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 10 02 @@ -5718,7 +5718,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 Current NS-VCIs: VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 @@ -5785,7 +5785,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 27 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba -result (IDENT REQUEST) = 27 +result (IDENT REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5803,7 +5803,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 44 00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 11 01 c0 09 08 16 08 11 12 13 14 15 16 17 18 ba 14 c3 -result (IDENT RESPONSE) = 44 +result (IDENT RESPONSE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5821,7 +5821,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 05 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 53 62 f1 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5840,7 +5840,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 0d 08 03 55 1c ea -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5860,7 +5860,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 09 08 21 04 ba 3d -result (GMM INFO) = 70 +result (GMM INFO) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5880,7 +5880,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 48 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 15 01 c0 11 08 05 01 18 05 f4 ef e2 b7 00 19 03 b9 97 cb 6d b1 de -result (DETACH REQ) = 48 +result (DETACH REQ) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5901,7 +5901,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 71 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 0d 08 06 00 aa ab ee -result (DETACH ACC) = 71 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5923,7 +5923,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 15 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 e6 71 c7 -result (ATTACH REQUEST) = 79 +result (ATTACH REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5945,7 +5945,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 11 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 3a 6d d4 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5967,7 +5967,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 19 08 03 32 f1 bc -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -5989,7 +5989,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 73 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 15 08 05 01 25 0a 67 0e 96 -result (DETACH REQ (re-attach)) = 73 +result (DETACH REQ (re-attach)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6011,7 +6011,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 1d 08 06 3d 1c 8b -result (DETACH ACC) = 35 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6033,7 +6033,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 21 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 44 db cc -result (ATTACH REQUEST) = 79 +result (ATTACH REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6055,7 +6055,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 19 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 27 3c 84 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6077,7 +6077,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 25 08 03 9b c6 47 -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6099,7 +6099,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 73 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 1d 08 05 02 25 0a dd 56 6c -result (DETACH REQ) = 73 +result (DETACH REQ) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6121,7 +6121,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 29 08 06 4c bd dd -result (DETACH ACC) = 35 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6143,7 +6143,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 82 00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 37 01 c0 2d 08 01 02 f5 e0 21 08 02 08 11 12 13 14 15 16 17 18 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 a5 85 76 -result (ATTACH REQUEST (IMSI)) = 82 +result (ATTACH REQUEST (IMSI)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6165,7 +6165,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 21 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 cf 80 6e -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6187,7 +6187,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 31 08 03 fc 2b 11 -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6209,7 +6209,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 73 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 25 08 05 02 25 0a 8e ee 85 -result (DETACH REQ) = 73 +result (DETACH REQ) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6231,7 +6231,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 35 08 06 f3 c6 26 -result (DETACH ACC) = 35 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6253,7 +6253,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 39 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 e4 85 12 -result (ATTACH REQUEST) = 79 +result (ATTACH REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6275,7 +6275,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 29 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 d2 d1 3e -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6297,7 +6297,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 3d 08 03 48 76 ea -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6319,7 +6319,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 89 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 70 80 00 80 0e 00 3e 01 c0 41 08 08 10 11 22 33 40 50 60 1d 19 13 42 33 57 2b f7 c8 48 02 13 48 50 c8 48 02 14 48 50 c8 48 02 17 49 10 c8 48 02 00 19 8b b2 92 17 16 27 07 04 31 02 e5 e0 32 02 20 00 30 73 32 -result (RA UPD REQ) = 89 +result (RA UPD REQ) = 0 PROCESSING RA UDP REJ from 0x05060708:32000 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8a 41 c0 2d 08 0b 0a 00 41 30 a7 @@ -6331,7 +6331,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 72 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8a 41 c0 2d 08 0b 0a 00 41 30 a7 -result (RA UDP REJ) = 72 +result (RA UDP REJ) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6404,7 +6404,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 31 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 f5 22 ce -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6428,7 +6428,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 4d 08 03 79 84 ea -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6452,7 +6452,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 73 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 35 08 05 02 25 0a 9b fa 57 -result (DETACH REQ) = 73 +result (DETACH REQ) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6476,7 +6476,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 51 08 06 a5 d9 70 -result (DETACH ACC) = 35 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6500,7 +6500,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 55 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 f9 cc e9 -result (ATTACH REQUEST (local TLLI)) = 79 +result (ATTACH REQUEST (local TLLI)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6524,7 +6524,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 39 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 e8 73 9e -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6548,7 +6548,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 59 08 03 1e 69 bc -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6572,7 +6572,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 73 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 3d 08 05 01 25 0a 21 a2 ad -result (DETACH REQ (re-attach)) = 73 +result (DETACH REQ (re-attach)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6596,7 +6596,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 5d 08 06 11 84 8b -result (DETACH ACC) = 35 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6620,7 +6620,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 61 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 5b 66 e2 -result (ATTACH REQUEST) = 79 +result (ATTACH REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6644,7 +6644,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 41 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 9e 50 40 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6668,7 +6668,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 65 08 03 b7 5e 47 -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6692,7 +6692,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 45 08 21 9c 7f c6 -result (GMM INFO) = 70 +result (GMM INFO) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6716,7 +6716,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 82 00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 37 01 c0 69 08 01 02 f5 e0 21 08 02 08 11 12 13 14 15 16 17 18 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 e1 11 8e -result (ATTACH REQUEST (unexpected, IMSI)) = 82 +result (ATTACH REQUEST (unexpected, IMSI)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6740,7 +6740,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 49 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 83 01 10 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6764,7 +6764,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 6d 08 03 6f c8 ea -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6788,7 +6788,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 73 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 4d 08 05 02 25 0a 51 0e 1b -result (DETACH REQ) = 73 +result (DETACH REQ) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6812,7 +6812,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 71 08 06 b3 95 70 -result (DETACH ACC) = 35 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6836,7 +6836,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 75 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 ab 17 53 -result (ATTACH REQUEST) = 79 +result (ATTACH REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6860,7 +6860,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 51 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 a4 f2 e0 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6884,7 +6884,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 79 08 03 08 25 bc -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6908,7 +6908,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 70 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 88 41 c0 55 08 21 97 59 c6 -result (GMM INFO) = 70 +result (GMM INFO) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6932,7 +6932,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 79 00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 34 01 c0 7d 08 01 02 f5 e0 21 08 02 05 f4 ef e2 b7 00 11 22 33 40 50 60 19 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 a2 24 d0 -result (ATTACH REQUEST (unexpected)) = 79 +result (ATTACH REQUEST (unexpected)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6956,7 +6956,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 92 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9e 41 c0 59 08 02 01 49 04 21 63 54 40 50 60 19 cd d7 08 17 16 18 05 f4 ef e2 b7 00 b9 a3 b0 -result (ATTACH ACCEPT) = 92 +result (ATTACH ACCEPT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -6980,7 +6980,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 81 08 03 b9 71 10 -result (ATTACH COMPLETE) = 35 +result (ATTACH COMPLETE) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -7004,7 +7004,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 73 00 00 10 02 00 ef e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 5d 08 05 02 25 0a 44 1a c9 -result (DETACH REQ) = 73 +result (DETACH REQ) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -7028,7 +7028,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 ef e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 85 08 06 b6 9c 27 -result (DETACH ACC) = 35 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -7100,7 +7100,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 71 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 89 41 c0 61 08 04 07 79 ba a5 -result (ATTACH REJECT) = 71 +result (ATTACH REJECT) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -7198,7 +7198,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 73 00 00 10 02 00 af e2 b7 00 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 8b 41 c0 65 08 05 02 25 0a 17 a2 20 -result (DETACH REQ (MT)) = 73 +result (DETACH REQ (MT)) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -7227,7 +7227,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 35 00 00 10 02 01 af e2 b7 00 00 00 04 08 88 11 22 33 40 50 60 12 34 00 80 0e 00 08 01 c0 9d 08 06 65 2c 8a -result (DETACH ACC) = 35 +result (DETACH ACC) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 @@ -7311,7 +7311,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0a -result (RESET_ACK) = 1 +result (RESET_ACK) = 0 PROCESSING ALIVE_ACK from 0x05060708:32000 0b @@ -7319,7 +7319,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 06 -result (ALIVE_ACK) = 1 +result (ALIVE_ACK) = 0 PROCESSING UNBLOCK_ACK from 0x05060708:32000 07 @@ -7334,7 +7334,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 --- Initialise BSS 1 --- @@ -7351,7 +7351,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0a -result (RESET) = 9 +result (RESET) = 0 PROCESSING ALIVE from 0x01020304:1111 0a @@ -7359,7 +7359,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 1 0b -result (ALIVE) = 1 +result (ALIVE) = 0 PROCESSING UNBLOCK from 0x01020304:1111 06 @@ -7369,7 +7369,7 @@ ==> got signal NS_UNBLOCK, NS-VC 0x1001/1.2.3.4:1111 -result (UNBLOCK) = 1 +result (UNBLOCK) = 0 PROCESSING ALIVE_ACK from 0x01020304:1111 0b @@ -7388,7 +7388,7 @@ MESSAGE to SGSN at 0x05060708:32000, msg length 22 00 00 00 00 22 04 82 10 02 07 81 08 08 88 11 22 33 40 50 60 10 00 -result (BVC_RESET) = 22 +result (BVC_RESET) = 0 PROCESSING BVC_RESET_ACK from 0x05060708:32000 00 00 00 00 23 04 82 10 02 @@ -7400,7 +7400,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 9 00 00 00 00 23 04 82 10 02 -result (BVC_RESET_ACK) = 9 +result (BVC_RESET_ACK) = 0 Current NS-VCIs: VCI 0x1001, NSEI 0x1000, peer 0x01020304:1111 @@ -7449,7 +7449,7 @@ MESSAGE to BSS at 0x01020304:1111, msg length 27 00 00 10 02 00 80 00 de ad 00 50 20 16 82 02 58 0e 89 41 c0 01 08 15 01 ff 6c ba -result (IDENT REQUEST) = 27 +result (IDENT REQUEST) = 0 Peers: NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96 -- To view, visit https://gerrit.osmocom.org/13068 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-sgsn Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I7a48d14aed19825b87a02ccf9ee9cbfe0853342c Gerrit-Change-Number: 13068 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Tue Feb 26 21:59:23 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 21:59:23 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_norm?= =?UTF-8?Q?al_:_master-osmo-sgsn_=C2=BB_--disa?= =?UTF-8?Q?ble-iu,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9068?= In-Reply-To: <825584312.502.1551216235637.JavaMail.jenkins@jenkins.osmocom.org> References: <825584312.502.1551216235637.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <604675132.504.1551218363505.JavaMail.jenkins@jenkins.osmocom.org> See From jenkins at lists.osmocom.org Tue Feb 26 21:59:38 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Tue, 26 Feb 2019 21:59:38 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-sgsn_=C2=BB_--ena?= =?UTF-8?Q?ble-iu,0,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#9068?= In-Reply-To: <580656919.503.1551216305834.JavaMail.jenkins@jenkins.osmocom.org> References: <580656919.503.1551216305834.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1166128613.505.1551218378109.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Tue Feb 26 22:12:48 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 26 Feb 2019 22:12:48 +0000 Subject: Change in osmo-pcu[master]: MCS: use value_string for conversion Message-ID: Max has uploaded this change for review. ( https://gerrit.osmocom.org/13069 Change subject: MCS: use value_string for conversion ...................................................................... MCS: use value_string for conversion Change-Id: I212ebb892ab162821633974d5a6c7e315d308370 --- M src/coding_scheme.c M src/coding_scheme.h M src/decoding.cpp M src/encoding.cpp M src/gprs_bssgp_pcu.cpp M src/gprs_coding_scheme.cpp M src/gprs_coding_scheme.h M src/gprs_ms.cpp M src/pcu_vty_functions.cpp M src/pdch.cpp M src/tbf_dl.cpp M src/tbf_ul.cpp 12 files changed, 66 insertions(+), 35 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-pcu refs/changes/69/13069/1 diff --git a/src/coding_scheme.c b/src/coding_scheme.c index 91ece40..9310c53 100644 --- a/src/coding_scheme.c +++ b/src/coding_scheme.c @@ -24,6 +24,28 @@ #include "coding_scheme.h" +const struct value_string mcs_names[] = { + { UNKNOWN, "UNKNOWN" }, + { CS1, "CS-1" }, + { CS2, "CS-2" }, + { CS3, "CS-3" }, + { CS4, "CS-4" }, + { MCS1, "MCS-1" }, + { MCS2, "MCS-2" }, + { MCS3, "MCS-3" }, + { MCS4, "MCS-4" }, + { MCS5, "MCS-5" }, + { MCS6, "MCS-6" }, + { MCS7, "MCS-7" }, + { MCS8, "MCS-8" }, + { MCS9, "MCS-9" }, + { 0, NULL } +}; + +const char *mcs_name(enum CodingScheme val) { + return get_value_string(mcs_names, val); +} + static struct { struct { uint8_t data_header_bits; diff --git a/src/coding_scheme.h b/src/coding_scheme.h index b7093d1..12c832b 100644 --- a/src/coding_scheme.h +++ b/src/coding_scheme.h @@ -19,6 +19,8 @@ #pragma once +#include + enum CodingScheme { UNKNOWN, /* GPRS Coding Schemes: */ @@ -28,6 +30,9 @@ NUM_SCHEMES }; +extern const struct value_string mcs_names[]; +const char *mcs_name(enum CodingScheme val); + enum HeaderType { HEADER_INVALID, HEADER_GPRS_CONTROL, diff --git a/src/decoding.cpp b/src/decoding.cpp index 3410291..1473ff7 100644 --- a/src/decoding.cpp +++ b/src/decoding.cpp @@ -370,7 +370,7 @@ default: LOGP(DRLCMACDL, LOGL_ERROR, "Decoding of uplink %s data blocks not yet supported.\n", - cs.name()); + mcs_name(cs)); return -ENOTSUP; }; diff --git a/src/encoding.cpp b/src/encoding.cpp index 4a57ce3..b9c4dcc 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -1213,7 +1213,7 @@ default: LOGP(DRLCMACDL, LOGL_ERROR, "Encoding of uplink %s data blocks not yet supported.\n", - cs.name()); + mcs_name(cs)); return -ENOTSUP; }; @@ -1602,7 +1602,7 @@ count_payload); LOGP(DRLCMACDL, LOGL_ERROR, "%s data block encoding not implemented\n", - cs.name()); + mcs_name(cs)); return AR_NEED_MORE_BLOCKS; } diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp index ae2ab7c..6143531 100644 --- a/src/gprs_bssgp_pcu.cpp +++ b/src/gprs_bssgp_pcu.cpp @@ -26,7 +26,11 @@ #include #include #include -#include "coding_scheme.h" + +extern "C" { + #include + #include "coding_scheme.h" +} #define BSSGP_TIMER_T1 30 /* Guards the (un)blocking procedures */ #define BSSGP_TIMER_T2 30 /* Guards the reset procedure */ @@ -775,7 +779,7 @@ LOGP(DBSSGP, LOGL_DEBUG, "Computed BVC leak rate = %d, num_pdch = %d, cs = %s\n", - leak_rate, num_pdch, max_cs_dl.name()); + leak_rate, num_pdch, mcs_name(max_cs_dl)); }; if (ms_leak_rate == 0) { @@ -799,7 +803,7 @@ LOGP(DBSSGP, LOGL_DEBUG, "Computed MS default leak rate = %d, ms_num_pdch = %d, " "cs = %s\n", - ms_leak_rate, ms_num_pdch, max_cs_dl.name()); + ms_leak_rate, ms_num_pdch, mcs_name(max_cs_dl)); }; /* TODO: Force leak_rate to 0 on buffer bloat */ diff --git a/src/gprs_coding_scheme.cpp b/src/gprs_coding_scheme.cpp index d7934ec..c044023 100644 --- a/src/gprs_coding_scheme.cpp +++ b/src/gprs_coding_scheme.cpp @@ -187,11 +187,6 @@ return mcs_info[m_scheme].optional_padding_bits; } -const char *GprsCodingScheme::name() const -{ - return mcs_info[m_scheme].name; -} - enum HeaderType GprsCodingScheme::headerTypeData() const { return mcs_info[m_scheme].data_hdr; diff --git a/src/gprs_coding_scheme.h b/src/gprs_coding_scheme.h index 8715f16..5fa3419 100644 --- a/src/gprs_coding_scheme.h +++ b/src/gprs_coding_scheme.h @@ -81,7 +81,7 @@ uint8_t spareBitsDL() const; uint8_t maxDataBlockBytes() const; uint8_t optionalPaddingBits() const; - const char *name() const; + enum HeaderType headerTypeData() const; HeaderType headerTypeControl() const; Family family() const; diff --git a/src/gprs_ms.cpp b/src/gprs_ms.cpp index e31cc87..883b92d 100644 --- a/src/gprs_ms.cpp +++ b/src/gprs_ms.cpp @@ -34,6 +34,7 @@ #include #include #include + #include "coding_scheme.h" } #define GPRS_CODEL_SLOW_INTERVAL_MS 4000 @@ -527,7 +528,7 @@ LOGP(DRLCMACDL, LOGL_INFO, "MS (IMSI %s): High error rate %d%%, " "reducing CS level to %s\n", - imsi(), error_rate, m_current_cs_dl.name()); + imsi(), error_rate, mcs_name(m_current_cs_dl)); m_last_cs_not_low = now; } } else if (error_rate < bts_data->cs_adj_lower_limit) { @@ -539,7 +540,7 @@ "MS (IMSI %s): Low error rate %d%%, " "increasing DL CS level to %s\n", imsi(), error_rate, - m_current_cs_dl.name()); + mcs_name(m_current_cs_dl)); m_last_cs_not_low = now; } else { LOGP(DRLCMACDL, LOGL_DEBUG, @@ -627,7 +628,7 @@ if (!max_cs_ul) { LOGP(DRLCMACMEAS, LOGL_ERROR, "max_cs_ul cannot be derived (current UL CS: %s)\n", - m_current_cs_ul.name()); + mcs_name(m_current_cs_ul)); return; } @@ -669,7 +670,7 @@ "modifying uplink CS level: %s -> %s\n", imsi(), meas->link_qual, old_link_qual, low, high, - m_current_cs_ul.name(), new_cs_ul.name()); + mcs_name(m_current_cs_ul), mcs_name(new_cs_ul)); m_current_cs_ul = new_cs_ul; } diff --git a/src/pcu_vty_functions.cpp b/src/pcu_vty_functions.cpp index c71959d..47a0559 100644 --- a/src/pcu_vty_functions.cpp +++ b/src/pcu_vty_functions.cpp @@ -41,6 +41,7 @@ #include #include #include + #include "coding_scheme.h" } static void tbf_print_vty_info(struct vty *vty, gprs_rlcmac_tbf *tbf) @@ -70,7 +71,7 @@ } if (tbf->trx != NULL) vty_out(vty, " TRX_ID=%d", tbf->trx->trx_no); - vty_out(vty, " CS=%s", tbf->current_cs().name()); + vty_out(vty, " CS=%s", mcs_name(tbf->current_cs())); if (ul_tbf) { gprs_rlc_ul_window *win = ul_tbf->window(); @@ -127,8 +128,8 @@ vty_out(vty, "MS TLLI=%08x, TA=%d, CS-UL=%s, CS-DL=%s, LLC=%zd, Cl=%d, E-Cl=%d," " TBF-UL=%s, TBF-DL=%s, IMSI=%s%s", ms->tlli(), - ms->ta(), ms->current_cs_ul().name(), - ms->current_cs_dl().name(), + ms->ta(), mcs_name(ms->current_cs_ul()), + mcs_name(ms->current_cs_dl()), ms->llc_queue()->size(), ms->ms_class(), ms->egprs_ms_class(), @@ -148,9 +149,9 @@ vty_out(vty, "MS TLLI=%08x, IMSI=%s%s", ms->tlli(), ms->imsi(), VTY_NEWLINE); vty_out(vty, " Timing advance (TA): %d%s", ms->ta(), VTY_NEWLINE); - vty_out(vty, " Coding scheme uplink: %s%s", ms->current_cs_ul().name(), + vty_out(vty, " Coding scheme uplink: %s%s", mcs_name(ms->current_cs_ul()), VTY_NEWLINE); - vty_out(vty, " Coding scheme downlink: %s%s", ms->current_cs_dl().name(), + vty_out(vty, " Coding scheme downlink: %s%s", mcs_name(ms->current_cs_dl()), VTY_NEWLINE); vty_out(vty, " Mode: %s%s", GprsCodingScheme::modeName(ms->mode()), VTY_NEWLINE); diff --git a/src/pdch.cpp b/src/pdch.cpp index 22a1605..c6c677c 100644 --- a/src/pdch.cpp +++ b/src/pdch.cpp @@ -43,6 +43,7 @@ #include #include #include + #include "coding_scheme.h" } #include @@ -738,7 +739,7 @@ bts()->rlc_ul_bytes(len); LOGP(DRLCMACUL, LOGL_DEBUG, "Got RLC block, coding scheme: %s, " - "length: %d (%d))\n", cs.name(), len, cs.usedSizeUL()); + "length: %d (%d))\n", mcs_name(cs), len, cs.usedSizeUL()); if (cs.isGprs()) return rcv_block_gprs(data, len, fn, meas, cs); @@ -748,7 +749,7 @@ bts()->decode_error(); LOGP(DRLCMACUL, LOGL_ERROR, "Unsupported coding scheme %s\n", - cs.name()); + mcs_name(cs)); return -EINVAL; } @@ -768,7 +769,7 @@ if (!bts()->bts_data()->egprs_enabled) { LOGP(DRLCMACUL, LOGL_ERROR, "Got %s RLC block but EGPRS is not enabled\n", - cs.name()); + mcs_name(cs)); return -EINVAL; } bts()->send_gsmtap(PCU_GSMTAP_C_UL_DATA_EGPRS, true, trx_no(), ts_no, GSMTAP_CHANNEL_PDTCH, fn, @@ -784,7 +785,7 @@ if (rc < 0) { LOGP(DRLCMACUL, LOGL_ERROR, "Got %s RLC block but header parsing has failed\n", - cs.name()); + mcs_name(cs)); bts()->decode_error(); return rc; } @@ -793,7 +794,7 @@ "Got %s RLC block: " "R=%d, SI=%d, TFI=%d, CPS=%d, RSB=%d, " "rc=%d\n", - cs.name(), + mcs_name(cs), rlc_dec.r, rlc_dec.si, rlc_dec.tfi, rlc_dec.cps, rlc_dec.rsb, rc); diff --git a/src/tbf_dl.cpp b/src/tbf_dl.cpp index bebeb2a..8257689 100644 --- a/src/tbf_dl.cpp +++ b/src/tbf_dl.cpp @@ -46,6 +46,7 @@ #include #include #include + #include "coding_scheme.h" } #include @@ -429,7 +430,7 @@ new_cs = force_cs ? force_cs : current_cs(); LOGPTBFDL(this, LOGL_DEBUG, "Sending new block at BSN %d, CS=%s\n", - m_window.v_s(), new_cs.name()); + m_window.v_s(), mcs_name(new_cs)); bsn = create_new_bsn(fn, new_cs); } else if (!m_window.window_empty()) { @@ -443,7 +444,7 @@ /* Nothing left to send, create dummy LLC commands */ LOGPTBFDL(this, LOGL_DEBUG, "Sending new dummy block at BSN %d, CS=%s\n", - m_window.v_s(), current_cs().name()); + m_window.v_s(), mcs_name(current_cs())); bsn = create_new_bsn(fn, current_cs()); /* Don't send a second block, so don't set cs_current_trans */ } @@ -624,7 +625,7 @@ } while (ar == Encoding::AR_COMPLETED_SPACE_LEFT); LOGPTBFDL(this, LOGL_DEBUG, "data block (BSN %d, %s): %s\n", - bsn, rlc_data->cs_last.name(), + bsn, mcs_name(rlc_data->cs_last), osmo_hexdump(rlc_data->block, block_data_len)); /* raise send state and set ack state array */ m_window.m_v_b.mark_unacked(bsn); @@ -867,7 +868,7 @@ Encoding::rlc_write_dl_data_header(&rlc, msg_data); LOGPTBFDL(this, LOGL_DEBUG, "msg block (BSN %d, %s%s): %s\n", - index, cs.name(), + index, mcs_name(cs), need_padding ? ", padded" : "", msgb_hexdump(dl_msg)); @@ -1281,7 +1282,7 @@ "FIXME: Software error: hit invalid condition. " "headerType(%d) blockstatus(%d) cs(%s) PLEASE FIX!\n", cs_current_trans.headerTypeData(), - *block_status_dl, cs_init.name()); + *block_status_dl, mcs_name(cs_init)); break; } diff --git a/src/tbf_ul.cpp b/src/tbf_ul.cpp index bc36733..0bf5765 100644 --- a/src/tbf_ul.cpp +++ b/src/tbf_ul.cpp @@ -43,6 +43,7 @@ #include #include #include + #include "coding_scheme.h" } #include @@ -212,7 +213,7 @@ LOGPTBFUL(this, LOGL_DEBUG, "Got %s RLC data block: CV=%d, BSN=%d, SPB=%d, PI=%d, E=%d, TI=%d, bitoffs=%d\n", - rlc->cs.name(), + mcs_name(rlc->cs), rdbi->cv, rdbi->bsn, rdbi->spb, rdbi->pi, rdbi->e, rdbi->ti, rlc->data_offs_bits[block_idx]); @@ -278,7 +279,7 @@ bts->decode_error(); LOGPTBFUL(this, LOGL_NOTICE, "Failed to decode TLLI of %s UL DATA TFI=%d.\n", - rlc->cs.name(), rlc->tfi); + mcs_name(rlc->cs), rlc->tfi); m_window.invalidate_bsn(rdbi->bsn); continue; } @@ -479,7 +480,7 @@ LOGPTBFUL(this, LOGL_DEBUG, "Got SPB(%d) cs(%s) data block with BSN (%d), TFI(%d).\n", - rdbi->spb, rlc->cs.name(), rdbi->bsn, rlc->tfi); + rdbi->spb, mcs_name(rlc->cs), rdbi->bsn, rlc->tfi); egprs_rlc_ul_reseg_bsn_state assemble_status = EGPRS_RESEG_INVALID; @@ -517,7 +518,7 @@ default: LOGPTBFUL(this, LOGL_ERROR, "cs(%s) Error in Upgrading to higher MCS\n", - rlc->cs.name()); + mcs_name(rlc->cs)); break; } } -- To view, visit https://gerrit.osmocom.org/13069 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I212ebb892ab162821633974d5a6c7e315d308370 Gerrit-Change-Number: 13069 Gerrit-PatchSet: 1 Gerrit-Owner: Max -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 22:40:15 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 22:40:15 +0000 Subject: Change in osmo-pcu[master]: MCS: remove dead code In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13063 ) Change subject: MCS: remove dead code ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13063 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ieef3b095a6732300e5efa395b989843112b9ca78 Gerrit-Change-Number: 13063 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Tue, 26 Feb 2019 22:40:15 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 22:40:55 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 22:40:55 +0000 Subject: Change in osmo-pcu[master]: MCS: remove dead code In-Reply-To: References: Message-ID: Harald Welte has removed a vote on this change. Change subject: MCS: remove dead code ...................................................................... Removed Code-Review+2 by Harald Welte -- To view, visit https://gerrit.osmocom.org/13063 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: deleteVote Gerrit-Change-Id: Ieef3b095a6732300e5efa395b989843112b9ca78 Gerrit-Change-Number: 13063 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 22:41:43 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 22:41:43 +0000 Subject: Change in osmo-pcu[master]: MCS: move Coding Scheme enum to C header In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13064 ) Change subject: MCS: move Coding Scheme enum to C header ...................................................................... Patch Set 1: the code you're touching is undoubtedly C++ code. I'm not sure if it's an improvement to turn [more] parts of it into C. Also, I don't see from your changes or from the commitlog *why* this simplifies testing. It's not clear that C++ can be tested less than C ?1? -- To view, visit https://gerrit.osmocom.org/13064 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I993b49d9a82b8c7ad677d52d11003794aeabe117 Gerrit-Change-Number: 13064 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Harald Welte Gerrit-Comment-Date: Tue, 26 Feb 2019 22:41:43 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 22:43:14 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 22:43:14 +0000 Subject: Change in libosmocore[master]: fix api doc typo for osmo_plmn_name2() In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13065 ) Change subject: fix api doc typo for osmo_plmn_name2() ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13065 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic2652c7e4ffe1e707022168ac6c0da7c88ae7f45 Gerrit-Change-Number: 13065 Gerrit-PatchSet: 1 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Tue, 26 Feb 2019 22:43:14 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 22:43:20 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 22:43:20 +0000 Subject: Change in libosmocore[master]: fix api doc typo for osmo_plmn_name2() In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13065 ) Change subject: fix api doc typo for osmo_plmn_name2() ...................................................................... fix api doc typo for osmo_plmn_name2() Change-Id: Ic2652c7e4ffe1e707022168ac6c0da7c88ae7f45 --- M src/gsm/gsm23003.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/gsm/gsm23003.c b/src/gsm/gsm23003.c index 95fca91..720c09b 100644 --- a/src/gsm/gsm23003.c +++ b/src/gsm/gsm23003.c @@ -129,7 +129,7 @@ return buf; } -/*! Same as osmo_mcc_mnc_name(), but returning in a different static buffer. +/*! Same as osmo_plmn_name(), but returning in a different static buffer. * \param[in] plmn MCC-MNC value. * \returns string in static buffer. */ -- To view, visit https://gerrit.osmocom.org/13065 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic2652c7e4ffe1e707022168ac6c0da7c88ae7f45 Gerrit-Change-Number: 13065 Gerrit-PatchSet: 2 Gerrit-Owner: Neels Hofmeyr Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 22:43:56 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 22:43:56 +0000 Subject: Change in osmo-pcu[master]: MCS: internalize 'family' parameter In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13060 ) Change subject: MCS: internalize 'family' parameter ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13060 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic705615cd2a8ca077efef9ea62a2a676f70b4aed Gerrit-Change-Number: 13060 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 26 Feb 2019 22:43:56 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 22:45:47 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 22:45:47 +0000 Subject: Change in osmo-ccid-firmware[master]: add RMII clock output In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13054 ) Change subject: add RMII clock output ...................................................................... Patch Set 1: Code-Review-1 I don't see how this could work without a hardware bugfix, see https://projects.sysmocom.de/issues/4482 -- To view, visit https://gerrit.osmocom.org/13054 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id8409779d2835b56bbae7db2e962034c82fa3b62 Gerrit-Change-Number: 13054 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Tue, 26 Feb 2019 22:45:47 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 22:45:56 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 22:45:56 +0000 Subject: Change in osmo-ccid-firmware[master]: fix ASFv4 USB stack In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13056 ) Change subject: fix ASFv4 USB stack ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13056 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4209072ee808f0e246bcd5e86917dcf1d213c26b Gerrit-Change-Number: 13056 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Tue, 26 Feb 2019 22:45:56 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 22:49:18 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 22:49:18 +0000 Subject: Change in osmo-ccid-firmware[master]: add debug tracing using SWO In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13055 ) Change subject: add debug tracing using SWO ...................................................................... Patch Set 1: this is taking a quite different route than https://gerrit.osmocom.org/#/c/osmo-ccid-firmware/+/13035/ The problem I see with SWO is that it's only uni-directional, while we typically have some kind of textual debug console in our devices. I guess for R&D it doesn't matter if you have 7 or 8 SIM cards active. For production you can then enable the last one. Maybe in the end it will have to be a single #define at compile time that decides if we use SWO or UART7 as output? It would be great to align the code bases and use the I/O abstraction that ASF4 provides, see the patch I referenced above: https://gerrit.osmocom.org/#/c/osmo-ccid-firmware/+/13035/ -- To view, visit https://gerrit.osmocom.org/13055 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4c6d66e7089971294d7c006fbb600e8085e58595 Gerrit-Change-Number: 13055 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Harald Welte Gerrit-Comment-Date: Tue, 26 Feb 2019 22:49:18 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 22:51:17 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 22:51:17 +0000 Subject: Change in osmo-pcu[master]: EDGE tests: reduce code duplication In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13051 ) Change subject: EDGE tests: reduce code duplication ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13051 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I8a9528032629e5df629996da5cd8b808efede017 Gerrit-Change-Number: 13051 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 26 Feb 2019 22:51:17 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 22:52:28 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 22:52:28 +0000 Subject: Change in osmo-pcu[master]: EDGE tests: remove no-op check In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13052 ) Change subject: EDGE tests: remove no-op check ...................................................................... Patch Set 1: maybe this is to present a unified interface of GPRS and EGPRS coding? Maybe there are (future) cases where the return isn't envisioned as being const? -- To view, visit https://gerrit.osmocom.org/13052 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie0f81fe05a2b3f432de7d1f3446e8115d7524ff4 Gerrit-Change-Number: 13052 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 26 Feb 2019 22:52:28 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 23:00:37 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 26 Feb 2019 23:00:37 +0000 Subject: Change in osmo-pcu[master]: MCS: internalize 'family' parameter In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/13060 ) Change subject: MCS: internalize 'family' parameter ...................................................................... MCS: internalize 'family' parameter There's no need to expose it in header file as it's only used internally for consistency checks. Change-Id: Ic705615cd2a8ca077efef9ea62a2a676f70b4aed --- M src/gprs_coding_scheme.cpp M src/gprs_coding_scheme.h 2 files changed, 24 insertions(+), 30 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/gprs_coding_scheme.cpp b/src/gprs_coding_scheme.cpp index 3094ae6..bbac6e7 100644 --- a/src/gprs_coding_scheme.cpp +++ b/src/gprs_coding_scheme.cpp @@ -53,6 +53,13 @@ } }; +enum Family { + FAMILY_INVALID, + FAMILY_A, + FAMILY_B, + FAMILY_C, +}; + static struct { struct { uint8_t bytes; @@ -63,38 +70,38 @@ uint8_t optional_padding_bits; const char *name; GprsCodingScheme::HeaderType data_hdr; - GprsCodingScheme::Family family; + enum Family family; } mcs_info[GprsCodingScheme::NUM_SCHEMES] = { {{0, 0}, {0, 0}, 0, 0, "UNKNOWN", - GprsCodingScheme::HEADER_INVALID, GprsCodingScheme::FAMILY_INVALID}, + GprsCodingScheme::HEADER_INVALID, FAMILY_INVALID}, {{23, 0}, {23, 0}, 20, 0, "CS-1", - GprsCodingScheme::HEADER_GPRS_DATA, GprsCodingScheme::FAMILY_INVALID}, + GprsCodingScheme::HEADER_GPRS_DATA, FAMILY_INVALID}, {{33, 7}, {33, 7}, 30, 0, "CS-2", - GprsCodingScheme::HEADER_GPRS_DATA, GprsCodingScheme::FAMILY_INVALID}, + GprsCodingScheme::HEADER_GPRS_DATA, FAMILY_INVALID}, {{39, 3}, {39, 3}, 36, 0, "CS-3", - GprsCodingScheme::HEADER_GPRS_DATA, GprsCodingScheme::FAMILY_INVALID}, + GprsCodingScheme::HEADER_GPRS_DATA, FAMILY_INVALID}, {{53, 7}, {53, 7}, 50, 0, "CS-4", - GprsCodingScheme::HEADER_GPRS_DATA, GprsCodingScheme::FAMILY_INVALID}, + GprsCodingScheme::HEADER_GPRS_DATA, FAMILY_INVALID}, {{26, 1}, {26, 1}, 22, 0, "MCS-1", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3, GprsCodingScheme::FAMILY_C}, + GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3, FAMILY_C}, {{32, 1}, {32, 1}, 28, 0, "MCS-2", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3, GprsCodingScheme::FAMILY_B}, + GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3, FAMILY_B}, {{41, 1}, {41, 1}, 37, 48, "MCS-3", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3, GprsCodingScheme::FAMILY_A}, + GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3, FAMILY_A}, {{48, 1}, {48, 1}, 44, 0, "MCS-4", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3, GprsCodingScheme::FAMILY_C}, + GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_3, FAMILY_C}, {{60, 7}, {59, 6}, 56, 0, "MCS-5", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2, GprsCodingScheme::FAMILY_B}, + GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2, FAMILY_B}, {{78, 7}, {77, 6}, 74, 48, "MCS-6", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2, GprsCodingScheme::FAMILY_A}, + GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_2, FAMILY_A}, {{118, 2}, {117, 4}, 56, 0, "MCS-7", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1, GprsCodingScheme::FAMILY_B}, + GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1, FAMILY_B}, {{142, 2}, {141, 4}, 68, 0, "MCS-8", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1, GprsCodingScheme::FAMILY_A}, + GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1, FAMILY_A}, {{154, 2}, {153, 4}, 74, 0, "MCS-9", - GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1, GprsCodingScheme::FAMILY_A}, + GprsCodingScheme::HEADER_EGPRS_DATA_TYPE_1, FAMILY_A}, }; static struct { @@ -220,11 +227,6 @@ return mcs_info[m_scheme].data_hdr; } -GprsCodingScheme::Family GprsCodingScheme::family() const -{ - return mcs_info[m_scheme].family; -} - void GprsCodingScheme::inc(Mode mode) { if (!isCompatible(mode)) @@ -296,10 +298,10 @@ if (*this == o) return true; - if (family() == FAMILY_INVALID) + if (mcs_info[m_scheme].family == FAMILY_INVALID) return false; - return family() == o.family(); + return mcs_info[m_scheme].family == mcs_info[o.m_scheme].family; } bool GprsCodingScheme::isCombinable(GprsCodingScheme o) const diff --git a/src/gprs_coding_scheme.h b/src/gprs_coding_scheme.h index 76cab0f..6087416 100644 --- a/src/gprs_coding_scheme.h +++ b/src/gprs_coding_scheme.h @@ -59,13 +59,6 @@ NUM_HEADER_TYPES }; - enum Family { - FAMILY_INVALID, - FAMILY_A, - FAMILY_B, - FAMILY_C, - }; - GprsCodingScheme(Scheme s = UNKNOWN); operator bool() const {return m_scheme != UNKNOWN;} @@ -108,7 +101,6 @@ const char *name() const; HeaderType headerTypeData() const; HeaderType headerTypeControl() const; - Family family() const; static GprsCodingScheme getBySizeUL(unsigned size); static GprsCodingScheme getGprsByNum(unsigned num); -- To view, visit https://gerrit.osmocom.org/13060 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ic705615cd2a8ca077efef9ea62a2a676f70b4aed Gerrit-Change-Number: 13060 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 23:01:02 2019 From: gerrit-no-reply at lists.osmocom.org (Max) Date: Tue, 26 Feb 2019 23:01:02 +0000 Subject: Change in osmo-pcu[master]: EDGE tests: reduce code duplication In-Reply-To: References: Message-ID: Max has submitted this change and it was merged. ( https://gerrit.osmocom.org/13051 ) Change subject: EDGE tests: reduce code duplication ...................................................................... EDGE tests: reduce code duplication * move duplicated code into helper function * use proper parameter types Change-Id: I8a9528032629e5df629996da5cd8b808efede017 --- M tests/edge/EdgeTest.cpp 1 file changed, 15 insertions(+), 8 deletions(-) Approvals: Harald Welte: Looks good to me, approved Jenkins Builder: Verified diff --git a/tests/edge/EdgeTest.cpp b/tests/edge/EdgeTest.cpp index 98ca206..6ce2334 100644 --- a/tests/edge/EdgeTest.cpp +++ b/tests/edge/EdgeTest.cpp @@ -105,11 +105,22 @@ } +static bool check_strong_monotonicity(const GprsCodingScheme *cs, uint8_t last_UL, uint8_t last_DL) +{ + if (cs->maxBytesUL() <= last_UL) + return false; + + if (cs->maxBytesDL() <= last_DL) + return false; + + return true; +} + static void test_coding_scheme() { unsigned i; - unsigned last_size_UL; - unsigned last_size_DL; + uint8_t last_size_UL; + uint8_t last_size_DL; GprsCodingScheme::Scheme gprs_schemes[] = { GprsCodingScheme::CS1, GprsCodingScheme::CS2, @@ -152,9 +163,7 @@ OSMO_ASSERT(GprsCodingScheme::Scheme(current_cs) == gprs_schemes[i]); OSMO_ASSERT(current_cs == GprsCodingScheme(gprs_schemes[i])); - /* Check strong monotonicity */ - OSMO_ASSERT(current_cs.maxBytesUL() > last_size_UL); - OSMO_ASSERT(current_cs.maxBytesDL() > last_size_DL); + OSMO_ASSERT(check_strong_monotonicity(¤t_cs, last_size_UL, last_size_DL)); last_size_UL = current_cs.maxBytesUL(); last_size_DL = current_cs.maxBytesDL(); @@ -179,9 +188,7 @@ OSMO_ASSERT(GprsCodingScheme::Scheme(current_cs) == egprs_schemes[i].s); OSMO_ASSERT(current_cs == GprsCodingScheme(egprs_schemes[i].s)); - /* Check strong monotonicity */ - OSMO_ASSERT(current_cs.maxBytesUL() > last_size_UL); - OSMO_ASSERT(current_cs.maxBytesDL() > last_size_DL); + OSMO_ASSERT(check_strong_monotonicity(¤t_cs, last_size_UL, last_size_DL)); last_size_UL = current_cs.maxBytesUL(); last_size_DL = current_cs.maxBytesDL(); -- To view, visit https://gerrit.osmocom.org/13051 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I8a9528032629e5df629996da5cd8b808efede017 Gerrit-Change-Number: 13051 Gerrit-PatchSet: 2 Gerrit-Owner: Max Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 23:06:53 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 23:06:53 +0000 Subject: Change in osmo-ccid-firmware[master]: minor: rename MUX_SSTAT to MUX_STAT In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13058 ) Change subject: minor: rename MUX_SSTAT to MUX_STAT ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13058 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5eee17de31fdce92346641772fc0c63d4c37507a Gerrit-Change-Number: 13058 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Tue, 26 Feb 2019 23:06:53 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 23:08:00 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 23:08:00 +0000 Subject: Change in osmo-ccid-firmware[master]: update ASFv4 library In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13059 ) Change subject: update ASFv4 library ...................................................................... Patch Set 1: why merge this? you can always simply do a "diff -w" when diffing ASF and our repository. Worked quite fine with the two updates I did. -- To view, visit https://gerrit.osmocom.org/13059 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ic08fd2494b63b611ac4b4e1f35c91bce9aa746c5 Gerrit-Change-Number: 13059 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Harald Welte Gerrit-Comment-Date: Tue, 26 Feb 2019 23:08:00 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 23:10:35 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 23:10:35 +0000 Subject: Change in osmo-pcu[master]: Use boolean for DL resegmentation parameter In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13057 ) Change subject: Use boolean for DL resegmentation parameter ...................................................................... Patch Set 1: there is no downlink arq type "true" or "false". While I agree i fthere are only two discrete values you should use a type with only two options, but if those optionsare not something that can be "true" or "false", using bool is just as wrong as using int, isn't it? -- To view, visit https://gerrit.osmocom.org/13057 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-pcu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4d4fe5fe12068a4532cb3b61d4eeb229a77c1476 Gerrit-Change-Number: 13057 Gerrit-PatchSet: 1 Gerrit-Owner: Max Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Reviewer: osmith Gerrit-Comment-Date: Tue, 26 Feb 2019 23:10:35 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 23:10:59 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 23:10:59 +0000 Subject: Change in osmo-hlr[master]: hlr.c: move hlr_ctx to the top In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13050 ) Change subject: hlr.c: move hlr_ctx to the top ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13050 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5edf0a233ff323a63e321a1ca47736b5b212d1bb Gerrit-Change-Number: 13050 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 26 Feb 2019 23:10:59 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 23:12:03 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 23:12:03 +0000 Subject: Change in osmo-hlr[master]: hlr.c: move hlr_ctx to the top In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13050 ) Change subject: hlr.c: move hlr_ctx to the top ...................................................................... hlr.c: move hlr_ctx to the top Allow all functions to use hlr_ctx, so it can be used by the upcoming read_cb_forward() function in [1]. That new function is placed next to the existing read_cb() function, which is above the current hlr_ctx declaration. [1]: Change-Id: Ia4f345abc877baaf0a8f73b8988e6514d9589bf5 Related: OS#3793 Change-Id: I5edf0a233ff323a63e321a1ca47736b5b212d1bb --- M src/hlr.c 1 file changed, 1 insertion(+), 2 deletions(-) Approvals: Jenkins Builder: Verified Max: Looks good to me, but someone else must approve Harald Welte: Looks good to me, approved diff --git a/src/hlr.c b/src/hlr.c index c544310..f374ccc 100644 --- a/src/hlr.c +++ b/src/hlr.c @@ -47,6 +47,7 @@ #include "hlr_ussd.h" struct hlr *g_hlr; +static void *hlr_ctx = NULL; static int quit = 0; /* Trigger 'Insert Subscriber Data' messages to all connected GSUP clients. @@ -608,8 +609,6 @@ } } -static void *hlr_ctx = NULL; - static void signal_hdlr(int signal) { switch (signal) { -- To view, visit https://gerrit.osmocom.org/13050 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5edf0a233ff323a63e321a1ca47736b5b212d1bb Gerrit-Change-Number: 13050 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 23:16:09 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 23:16:09 +0000 Subject: Change in osmo-msc[master]: libmsc/ran_conn.c: add missing 'break' to OSMO_RAT_EUTRAN_SGS In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13015 ) Change subject: libmsc/ran_conn.c: add missing 'break' to OSMO_RAT_EUTRAN_SGS ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13015 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I18dfd08ea0857f2751164a295dd9de20a2024ac3 Gerrit-Change-Number: 13015 Gerrit-PatchSet: 1 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 26 Feb 2019 23:16:09 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 23:16:10 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 23:16:10 +0000 Subject: Change in osmo-msc[master]: libmsc/ran_conn.c: add missing 'break' to OSMO_RAT_EUTRAN_SGS In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13015 ) Change subject: libmsc/ran_conn.c: add missing 'break' to OSMO_RAT_EUTRAN_SGS ...................................................................... libmsc/ran_conn.c: add missing 'break' to OSMO_RAT_EUTRAN_SGS Change-Id: I18dfd08ea0857f2751164a295dd9de20a2024ac3 Fixes: CID#190874 --- M src/libmsc/ran_conn.c 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, approved Jenkins Builder: Verified diff --git a/src/libmsc/ran_conn.c b/src/libmsc/ran_conn.c index be6bde0..79709c6 100644 --- a/src/libmsc/ran_conn.c +++ b/src/libmsc/ran_conn.c @@ -683,6 +683,7 @@ break; case OSMO_RAT_EUTRAN_SGS: conn->log_subsys = DSGS; + break; default: conn->log_subsys = DMSC; break; -- To view, visit https://gerrit.osmocom.org/13015 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I18dfd08ea0857f2751164a295dd9de20a2024ac3 Gerrit-Change-Number: 13015 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 23:16:42 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 23:16:42 +0000 Subject: Change in osmo-msc[master]: libmsc/sgs_iface.c: fix SGS_STATE_NS11 counter reference In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13016 ) Change subject: libmsc/sgs_iface.c: fix SGS_STATE_NS11 counter reference ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13016 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ifbb1a37e644ae8bf8e7959f6f6cd6403ac1f2f1b Gerrit-Change-Number: 13016 Gerrit-PatchSet: 2 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Tue, 26 Feb 2019 23:16:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Tue Feb 26 23:16:45 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Tue, 26 Feb 2019 23:16:45 +0000 Subject: Change in osmo-msc[master]: libmsc/sgs_iface.c: fix SGS_STATE_NS11 counter reference In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13016 ) Change subject: libmsc/sgs_iface.c: fix SGS_STATE_NS11 counter reference ...................................................................... libmsc/sgs_iface.c: fix SGS_STATE_NS11 counter reference The SGS_STATE_TS11 is not for counters, it's for timers! Change-Id: Ifbb1a37e644ae8bf8e7959f6f6cd6403ac1f2f1b Fixes: CID#190872 Out-of-bounds read (OVERRUN) --- M src/libmsc/sgs_iface.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Harald Welte: Looks good to me, approved Max: Looks good to me, approved Pau Espin Pedrol: Looks good to me, but someone else must approve Jenkins Builder: Verified diff --git a/src/libmsc/sgs_iface.c b/src/libmsc/sgs_iface.c index 1c2146a..4f262a5 100644 --- a/src/libmsc/sgs_iface.c +++ b/src/libmsc/sgs_iface.c @@ -1129,7 +1129,7 @@ mme->ns11_remaining--; } else { LOGMME(mme, LOGL_ERROR, "Ts11 expired more than %u (Ns11) times, giving up\n", - sgs->cfg.counter[SGS_STATE_TS11]); + sgs->cfg.counter[SGS_STATE_NS11]); osmo_fsm_inst_state_chg(fi, SGS_VLRR_ST_NULL, 0, 0); } break; -- To view, visit https://gerrit.osmocom.org/13016 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ifbb1a37e644ae8bf8e7959f6f6cd6403ac1f2f1b Gerrit-Change-Number: 13016 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 00:16:57 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Wed, 27 Feb 2019 00:16:57 +0000 Subject: Change in osmo-ccid-firmware[master]: fix ASFv4 USB stack In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13056 ) Change subject: fix ASFv4 USB stack ...................................................................... fix ASFv4 USB stack this ASFv4 USB library change fixes USB transfer. two transfer-size issues existed: - on multi-packet transfer if the last packet was less than the USB transfer packet size, the packet would be received but not acknowledged - during normal transfer the packet size of a previous packet set the size of the current packet, ignoring the actual transfer size Change-Id: I4209072ee808f0e246bcd5e86917dcf1d213c26b --- M sysmoOCTSIM/hpl/usb/hpl_usb.c 1 file changed, 1 insertion(+), 3 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/sysmoOCTSIM/hpl/usb/hpl_usb.c b/sysmoOCTSIM/hpl/usb/hpl_usb.c index b5efe6c..eec9728 100644 --- a/sysmoOCTSIM/hpl/usb/hpl_usb.c +++ b/sysmoOCTSIM/hpl/usb/hpl_usb.c @@ -1135,6 +1135,7 @@ /* Short packet. */ ept->flags.bits.need_zlp = 0; ept->trans_count += last_trans; + _usbd_ep_set_out_trans(epn, 0, ept->size, 0); } else { /* Full packets. */ ept->trans_count += trans_size; @@ -1154,9 +1155,6 @@ if (trans_next > ept->size) { if (trans_next > USB_D_DEV_TRANS_MAX) { trans_next = USB_D_DEV_TRANS_MAX; - } else { - /* Must expect multiple of ep size. */ - trans_next -= trans_next & size_mask; } } else if (trans_next < ept->size) { /* Last un-aligned packet should be cached. */ -- To view, visit https://gerrit.osmocom.org/13056 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I4209072ee808f0e246bcd5e86917dcf1d213c26b Gerrit-Change-Number: 13056 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Wed Feb 27 02:36:03 2019 From: admin at opensuse.org (OBS Notification) Date: Wed, 27 Feb 2019 02:36:03 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Debian_9.0/armv7l In-Reply-To: References: Message-ID: <5c75f797c38b9_2529100c5fc1447712@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/Debian_9.0/armv7l Package network:osmocom:nightly/osmo-sgsn failed to build in Debian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 164s] [ 164s] PROCESSING ALIVE_ACK from 0x05060708:32000 [ 164s] 0b [ 164s] @@ -7311,7 +7311,7 @@ [ 164s] MESSAGE to SGSN at 0x05060708:32000, msg length 1 [ 164s] 0a [ 164s] [ 164s] -result (RESET_ACK) = 1 [ 164s] +result (RESET_ACK) = 0 [ 164s] [ 164s] PROCESSING ALIVE_ACK from 0x05060708:32000 [ 164s] 0b [ 164s] 2. testsuite.at:10: 2. gbproxy (testsuite.at:10): FAILED (testsuite.at:13) [ 164s] debian/rules:65: recipe for target 'override_dh_auto_test' failed [ 164s] make[1]: *** [override_dh_auto_test] Error 1 [ 164s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 164s] debian/rules:45: recipe for target 'build' failed [ 164s] make: *** [build] Error 2 [ 164s] dpkg-buildpackage: error: debian/rules build gave error exit status 2 [ 164s] [ 164s] armbuild22 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Wed Feb 27 02:35:48 UTC 2019. [ 164s] [ 164s] ### VM INTERACTION START ### [ 167s] [ 149.798655] SysRq : Power Off [ 167s] [ 149.813083] reboot: Power down [ 168s] ### VM INTERACTION END ### [ 168s] [ 168s] armbuild22 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Wed Feb 27 02:35:52 UTC 2019. [ 168s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From admin at opensuse.org Wed Feb 27 03:08:54 2019 From: admin at opensuse.org (OBS Notification) Date: Wed, 27 Feb 2019 03:08:54 +0000 Subject: Build failure of network:osmocom:nightly/osmo-sgsn in Raspbian_9.0/armv7l In-Reply-To: References: Message-ID: <5c75ff54e1d60_2529100c5fc145412b@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/osmo-sgsn/Raspbian_9.0/armv7l Package network:osmocom:nightly/osmo-sgsn failed to build in Raspbian_9.0/armv7l Check out the package for editing: osc checkout network:osmocom:nightly osmo-sgsn Last lines of build log: [ 192s] NSEI=4096 proxying BTS->SGSN (NS_BVCI=4098, NSEI=256) [ 192s] LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xdf2421 CMD=UI DATA [ 192s] Got LLC message, CRC: df2421 (computed df2421) [ 192s] LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA [ 192s] Got LLC message, CRC: a5ba79 (computed a5ba79) [ 192s] ATTACH_REJ: Got TLLI afe2b700, IMSI 12131415161718, invalidate [ 192s] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) [ 192s] gbproxy_validate_tlli({current = afe2b700, assigned = 00000000, net_vld = 0, bss_vld = 0}, afe2b700) [ 192s] Unregistering TLLI afe2b700 [ 192s] NSEI=256 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) [ 192s] LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0xa5ba79 CMD=UI DATA [ 192s] Got LLC message, CRC: a5ba79 (computed a5ba79) [ 192s] LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0x017a81 CMD=UI DATA [ 192s] Got LLC message, CRC: 017a81 (computed 017a81) [ 192s] ATTACH_REQ: Got TLLI afe2b700, BSSGP RAID 112-332-16464-96, old RAID 112-332-16464-96, PTMSI fbc54679 [ 192s] Adding TLLI afe2b700 to list [ 192s] NSEI=4096(BSS) IMSI acquisition in progress, storing message (ATTACH_REQ) [ 192s] NSEI=4096(BSS) IMSI is required but not available, initiating identification procedure (ATTACH_REQ) [ 192s] NSEI=0 proxying SGSN->BSS (NS_BVCI=4098, NSEI=4096) [ 192s] LLC SAPI=1 R U GEA? IOV-UI=0x000000 FCS=0x36f8b7 CMD=UI DATA [ 192s] Got LLC message, CRC: 36f8b7 (computed 36f8b7) [ 192s] Unhandled GSM 04.08 message type IDENTITY REQUEST for protocol discriminator GMM. [ 192s] LLC SAPI=1 C U GEA? IOV-UI=0x000000 FCS=0xfcdc9c CMD=UI DATA [ 194s] Got L[ 168.382713] SysRq : Power Off [ 194s] [ 168.383969] reboot: Power down [ 194s] ### VM INTERACTION END ### [ 194s] [ 194s] armbuild01 failed "build osmo-sgsn_1.4.0.2.b6f8b7.dsc" at Wed Feb 27 03:08:37 UTC 2019. [ 194s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Wed Feb 27 07:15:10 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Wed, 27 Feb 2019 07:15:10 +0000 Subject: Change in osmo-gsm-tester[master]: pyflakes: Remove occurrences of using undefined variables Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/13072 Change subject: pyflakes: Remove occurrences of using undefined variables ...................................................................... pyflakes: Remove occurrences of using undefined variables Mention the attribute right away and remove a method that looks to have been broken (more vs. more_rules). Change-Id: Iba18a96ff804780e66c69b459e112f9d42b7b2ff --- M src/osmo_gsm_tester/bts_nanobts.py M src/osmo_gsm_tester/resource.py 2 files changed, 1 insertion(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/72/13072/1 diff --git a/src/osmo_gsm_tester/bts_nanobts.py b/src/osmo_gsm_tester/bts_nanobts.py index 5fe8bae..4cdb98e 100644 --- a/src/osmo_gsm_tester/bts_nanobts.py +++ b/src/osmo_gsm_tester/bts_nanobts.py @@ -92,7 +92,7 @@ def start(self, keepalive=False): if self.conf.get('ipa_unit_id') is None: - raise log.Error('No attribute %s provided in conf!' % attr) + raise log.Error('No attribute ipa_unit_id provided in conf!') self.run_dir = util.Dir(self.suite_run.get_test_run_dir().new_dir(self.name())) self._configure() diff --git a/src/osmo_gsm_tester/resource.py b/src/osmo_gsm_tester/resource.py index 29f641e..98651ce 100644 --- a/src/osmo_gsm_tester/resource.py +++ b/src/osmo_gsm_tester/resource.py @@ -395,11 +395,6 @@ raise RuntimeError('adding a list of resources to itself?') config.add(self, copy.deepcopy(more)) - def combine(self, more_rules): - if more_rules is self: - raise RuntimeError('combining a list of resource rules with itself?') - config.combine(self, copy.deepcopy(more)) - def mark_reserved_by(self, origin_id): for key, item_list in self.items(): for item in item_list: -- To view, visit https://gerrit.osmocom.org/13072 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iba18a96ff804780e66c69b459e112f9d42b7b2ff Gerrit-Change-Number: 13072 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 07:15:08 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Wed, 27 Feb 2019 07:15:08 +0000 Subject: Change in osmo-gsm-tester[master]: pyflake: Remove imports of unused modules Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/13070 Change subject: pyflake: Remove imports of unused modules ...................................................................... pyflake: Remove imports of unused modules Change-Id: I7496030e5857078cd66a36a5e46c9a50217ce6e3 --- M src/osmo_gsm_tester/osmo_ggsn.py M src/osmo_gsm_tester/osmo_hlr.py M src/osmo_gsm_tester/osmo_mgcpgw.py M src/osmo_gsm_tester/osmo_mgw.py M src/osmo_gsm_tester/osmo_sgsn.py M src/osmo_gsm_tester/pcap_recorder.py M src/osmo_gsm_tester/resource.py M src/osmo_gsm_tester/template.py M src/osmo_gsm_tester/util.py 9 files changed, 7 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/70/13070/1 diff --git a/src/osmo_gsm_tester/osmo_ggsn.py b/src/osmo_gsm_tester/osmo_ggsn.py index 2fdc792..0ece596 100644 --- a/src/osmo_gsm_tester/osmo_ggsn.py +++ b/src/osmo_gsm_tester/osmo_ggsn.py @@ -20,7 +20,7 @@ import os import pprint -from . import log, util, config, template, process, osmo_ctrl, pcap_recorder +from . import log, util, config, template, process, pcap_recorder class OsmoGgsn(log.Origin): diff --git a/src/osmo_gsm_tester/osmo_hlr.py b/src/osmo_gsm_tester/osmo_hlr.py index a4633e3..1c361dd 100644 --- a/src/osmo_gsm_tester/osmo_hlr.py +++ b/src/osmo_gsm_tester/osmo_hlr.py @@ -18,11 +18,10 @@ # along with this program. If not, see . import os -import re import pprint import sqlite3 -from . import log, util, config, template, process, osmo_ctrl, pcap_recorder +from . import log, util, config, template, process, pcap_recorder class OsmoHlr(log.Origin): run_dir = None diff --git a/src/osmo_gsm_tester/osmo_mgcpgw.py b/src/osmo_gsm_tester/osmo_mgcpgw.py index 668e4ce..20bb689 100644 --- a/src/osmo_gsm_tester/osmo_mgcpgw.py +++ b/src/osmo_gsm_tester/osmo_mgcpgw.py @@ -20,7 +20,7 @@ import os import pprint -from . import log, util, config, template, process, osmo_ctrl, pcap_recorder +from . import log, util, config, template, process, pcap_recorder class OsmoMgcpgw(log.Origin): diff --git a/src/osmo_gsm_tester/osmo_mgw.py b/src/osmo_gsm_tester/osmo_mgw.py index 1d5596e..ca7bd51 100644 --- a/src/osmo_gsm_tester/osmo_mgw.py +++ b/src/osmo_gsm_tester/osmo_mgw.py @@ -20,7 +20,7 @@ import os import pprint -from . import log, util, config, template, process, osmo_ctrl, pcap_recorder +from . import log, util, config, template, process, pcap_recorder class OsmoMgw(log.Origin): diff --git a/src/osmo_gsm_tester/osmo_sgsn.py b/src/osmo_gsm_tester/osmo_sgsn.py index 07cf059..9ffaaed 100644 --- a/src/osmo_gsm_tester/osmo_sgsn.py +++ b/src/osmo_gsm_tester/osmo_sgsn.py @@ -20,7 +20,7 @@ import os import pprint -from . import log, util, config, template, process, osmo_ctrl, pcap_recorder +from . import log, util, config, template, process, pcap_recorder class OsmoSgsn(log.Origin): diff --git a/src/osmo_gsm_tester/pcap_recorder.py b/src/osmo_gsm_tester/pcap_recorder.py index 70833d0..e0f0098 100644 --- a/src/osmo_gsm_tester/pcap_recorder.py +++ b/src/osmo_gsm_tester/pcap_recorder.py @@ -18,11 +18,8 @@ # along with this program. If not, see . import os -import random -import re -import socket -from . import log, util, config, template, process, osmo_ctrl +from . import log, process class PcapRecorder(log.Origin): diff --git a/src/osmo_gsm_tester/resource.py b/src/osmo_gsm_tester/resource.py index 4f48dc4..29f641e 100644 --- a/src/osmo_gsm_tester/resource.py +++ b/src/osmo_gsm_tester/resource.py @@ -18,7 +18,6 @@ # along with this program. If not, see . import os -import time import copy import atexit import pprint @@ -27,8 +26,6 @@ from . import config from . import util from . import schema -from . import modem -from . import osmo_nitb from . import bts_sysmo, bts_osmotrx, bts_osmovirtual, bts_octphy, bts_nanobts from .util import is_dict, is_list diff --git a/src/osmo_gsm_tester/template.py b/src/osmo_gsm_tester/template.py index 0ddfc84..c890963 100644 --- a/src/osmo_gsm_tester/template.py +++ b/src/osmo_gsm_tester/template.py @@ -18,8 +18,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -import os, sys -from mako.template import Template +import os from mako.lookup import TemplateLookup from . import log diff --git a/src/osmo_gsm_tester/util.py b/src/osmo_gsm_tester/util.py index 27c71cf..930c86a 100644 --- a/src/osmo_gsm_tester/util.py +++ b/src/osmo_gsm_tester/util.py @@ -27,9 +27,6 @@ import atexit import threading import importlib.util -import fcntl -import tty -import readline import subprocess # This mirrors enum osmo_auth_algo in libosmocore/include/osmocom/crypt/auth.h -- To view, visit https://gerrit.osmocom.org/13070 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I7496030e5857078cd66a36a5e46c9a50217ce6e3 Gerrit-Change-Number: 13070 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 07:15:10 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Wed, 27 Feb 2019 07:15:10 +0000 Subject: Change in osmo-gsm-tester[master]: pyflakes: Remove assigned but unread variables Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/13071 Change subject: pyflakes: Remove assigned but unread variables ...................................................................... pyflakes: Remove assigned but unread variables Change-Id: Ie257ac051739ea6f846d1aac2c8f778638b5f8a6 --- M src/osmo_gsm_tester/modem.py M src/osmo_gsm_tester/osmo_nitb.py M src/osmo_gsm_tester/template.py M src/osmo_gsm_tester/util.py 4 files changed, 8 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/71/13071/1 diff --git a/src/osmo_gsm_tester/modem.py b/src/osmo_gsm_tester/modem.py index f9b827a..95ebb6b 100644 --- a/src/osmo_gsm_tester/modem.py +++ b/src/osmo_gsm_tester/modem.py @@ -125,7 +125,7 @@ user_data = (result_handler, error_handler, user_data) # See https://lazka.github.io/pgi-docs/Gio-2.0/classes/DBusProxy.html#Gio.DBusProxy.call - ret = instance._bus.con.call( + instance._bus.con.call( instance._bus_name, instance._path, proxymethod._iface_name, proxymethod.__name__, GLib.Variant(proxymethod._sinargs, proxymethod_args), @@ -596,14 +596,14 @@ if self.is_attached(): self.detach() connmgr = self.dbus.interface(I_CONNMGR) - prop = connmgr.SetProperty('RoamingAllowed', Variant('b', allow_roaming)) - prop = connmgr.SetProperty('Powered', Variant('b', True)) + connmgr.SetProperty('RoamingAllowed', Variant('b', allow_roaming)) + connmgr.SetProperty('Powered', Variant('b', True)) def detach(self): self.dbg('detach') connmgr = self.dbus.interface(I_CONNMGR) - prop = connmgr.SetProperty('RoamingAllowed', Variant('b', False)) - prop = connmgr.SetProperty('Powered', Variant('b', False)) + connmgr.SetProperty('RoamingAllowed', Variant('b', False)) + connmgr.SetProperty('Powered', Variant('b', False)) connmgr.DeactivateAll() connmgr.ResetContexts() # Requires Powered=false @@ -734,7 +734,7 @@ call_dbus_obj = systembus_get(call_id) props = call_dbus_obj.GetProperties() state = props.get('State') - except Exception as e: + except Exception: self.log('asking call state for non existent call') log.log_exn() state = 'disconnected' diff --git a/src/osmo_gsm_tester/osmo_nitb.py b/src/osmo_gsm_tester/osmo_nitb.py index 66ab2a6..e161ccb 100644 --- a/src/osmo_gsm_tester/osmo_nitb.py +++ b/src/osmo_gsm_tester/osmo_nitb.py @@ -176,8 +176,6 @@ return osmo_ctrl.OsmoCtrl(self.nitb.addr(), OsmoNitbCtrl.PORT) def subscriber_add(self, imsi, msisdn, ki=None, algo=None): - created = False - if algo: value = '%s,%s,%s,%s' % (imsi,msisdn,algo,ki) else: diff --git a/src/osmo_gsm_tester/template.py b/src/osmo_gsm_tester/template.py index c890963..6ce7ebd 100644 --- a/src/osmo_gsm_tester/template.py +++ b/src/osmo_gsm_tester/template.py @@ -51,7 +51,6 @@ template = _lookup.get_template(tmpl_name) _logger.dbg('rendering', tmpl_name) - line_info_name = tmpl_name.replace('-', '_').replace('.', '_') return template.render(**dict2obj(values)) # vim: expandtab tabstop=4 shiftwidth=4 diff --git a/src/osmo_gsm_tester/util.py b/src/osmo_gsm_tester/util.py index 930c86a..e9a1f30 100644 --- a/src/osmo_gsm_tester/util.py +++ b/src/osmo_gsm_tester/util.py @@ -64,7 +64,7 @@ for line in proc.stdout.readlines(): if 'inet' in line and ' ' + ip + '/' in line: return line.split()[-1] - except Exception as e: + except Exception: pass return None @@ -79,7 +79,7 @@ if words[i] == 'src': return words[i+1] i += 1 - except Exception as e: + except Exception: pass return None -- To view, visit https://gerrit.osmocom.org/13071 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie257ac051739ea6f846d1aac2c8f778638b5f8a6 Gerrit-Change-Number: 13071 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 07:15:12 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Wed, 27 Feb 2019 07:15:12 +0000 Subject: Change in osmo-gsm-tester[master]: pyflakes: Rename local variable to not shadow import Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/13073 Change subject: pyflakes: Rename local variable to not shadow import ...................................................................... pyflakes: Rename local variable to not shadow import Change-Id: Ib70130dbbeeeb9813eaea707bf66f1db91088b92 --- M src/osmo_gsm_tester/report.py 1 file changed, 2 insertions(+), 2 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/73/13073/1 diff --git a/src/osmo_gsm_tester/report.py b/src/osmo_gsm_tester/report.py index 224cc46..4919937 100644 --- a/src/osmo_gsm_tester/report.py +++ b/src/osmo_gsm_tester/report.py @@ -42,8 +42,8 @@ testsuite.set('time', str(math.ceil(suite.duration))) testsuite.set('tests', str(len(suite.tests))) testsuite.set('failures', str(suite.count_test_results()[2])) - for test in suite.tests: - testcase = test_to_junit(test) + for suite_test in suite.tests: + testcase = test_to_junit(suite_test) testsuite.append(testcase) return testsuite -- To view, visit https://gerrit.osmocom.org/13073 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ib70130dbbeeeb9813eaea707bf66f1db91088b92 Gerrit-Change-Number: 13073 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 08:08:43 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Wed, 27 Feb 2019 08:08:43 +0000 Subject: Change in osmo-gsm-tester[master]: pyflakes: Remove imports of unused modules In-Reply-To: References: Message-ID: Holger Freyther has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/13070 ) Change subject: pyflakes: Remove imports of unused modules ...................................................................... pyflakes: Remove imports of unused modules Change-Id: I7496030e5857078cd66a36a5e46c9a50217ce6e3 --- M src/osmo_gsm_tester/osmo_ggsn.py M src/osmo_gsm_tester/osmo_hlr.py M src/osmo_gsm_tester/osmo_mgcpgw.py M src/osmo_gsm_tester/osmo_mgw.py M src/osmo_gsm_tester/osmo_sgsn.py M src/osmo_gsm_tester/pcap_recorder.py M src/osmo_gsm_tester/resource.py M src/osmo_gsm_tester/template.py M src/osmo_gsm_tester/util.py 9 files changed, 7 insertions(+), 18 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/70/13070/2 -- To view, visit https://gerrit.osmocom.org/13070 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I7496030e5857078cd66a36a5e46c9a50217ce6e3 Gerrit-Change-Number: 13070 Gerrit-PatchSet: 2 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 08:39:55 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Wed, 27 Feb 2019 08:39:55 +0000 Subject: Change in osmo-gsm-tester[master]: resource: Introduce a type attribute to the resource definition Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/13074 Change subject: resource: Introduce a type attribute to the resource definition ...................................................................... resource: Introduce a type attribute to the resource definition Change-Id: Ie1fd10ec878311b7347118badb1b9dce5b49e976 --- M src/osmo_gsm_tester/resource.py 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/74/13074/1 diff --git a/src/osmo_gsm_tester/resource.py b/src/osmo_gsm_tester/resource.py index 4f48dc4..292bac6 100644 --- a/src/osmo_gsm_tester/resource.py +++ b/src/osmo_gsm_tester/resource.py @@ -78,6 +78,7 @@ 'bts[].osmo_trx.multi_arfcn': schema.BOOL_STR, 'arfcn[].arfcn': schema.INT, 'arfcn[].band': schema.BAND, + 'modem[].type': schema.STR, 'modem[].label': schema.STR, 'modem[].path': schema.STR, 'modem[].imsi': schema.IMSI, -- To view, visit https://gerrit.osmocom.org/13074 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Ie1fd10ec878311b7347118badb1b9dce5b49e976 Gerrit-Change-Number: 13074 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 08:39:56 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Wed, 27 Feb 2019 08:39:56 +0000 Subject: Change in osmo-gsm-tester[master]: resource: Use a factory to initiate a modem Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/13075 Change subject: resource: Use a factory to initiate a modem ...................................................................... resource: Use a factory to initiate a modem Change-Id: I4baa791c92196cda477b2d969d4f67dfbe1152af --- M src/osmo_gsm_tester/resource.py M src/osmo_gsm_tester/suite.py 2 files changed, 13 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/75/13075/1 diff --git a/src/osmo_gsm_tester/resource.py b/src/osmo_gsm_tester/resource.py index 292bac6..b574ad4 100644 --- a/src/osmo_gsm_tester/resource.py +++ b/src/osmo_gsm_tester/resource.py @@ -107,6 +107,14 @@ 'nanobts': bts_nanobts.NanoBts, } + +KNOWN_MS_TYPES = { + # Map None to ofono for forward compability + None: modem.Modem, + 'ofono': modem.Modem, +} + + def register_bts_type(name, clazz): KNOWN_BTS_TYPES[name] = clazz diff --git a/src/osmo_gsm_tester/suite.py b/src/osmo_gsm_tester/suite.py index e5ac9a8..7cfbf65 100644 --- a/src/osmo_gsm_tester/suite.py +++ b/src/osmo_gsm_tester/suite.py @@ -327,8 +327,12 @@ def modem(self, specifics=None): conf = self.reserved_resources.get(resource.R_MODEM, specifics=specifics) + ms_type = conf.get('type') + ms_class = resource.KNOWN_MS_TYPES.get(ms_type) + if ms_class is None: + raise RuntimeError('No such Modem type is defined: %r' % ms_type) self.dbg('create Modem object', conf=conf) - ms = modem.Modem(self, conf) + ms = ms_class(self, conf) self.register_for_cleanup(ms) return ms -- To view, visit https://gerrit.osmocom.org/13075 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I4baa791c92196cda477b2d969d4f67dfbe1152af Gerrit-Change-Number: 13075 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 08:39:56 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Wed, 27 Feb 2019 08:39:56 +0000 Subject: Change in osmo-gsm-tester[master]: resource: Introduce a base class for the modem Message-ID: Holger Freyther has uploaded this change for review. ( https://gerrit.osmocom.org/13076 Change subject: resource: Introduce a base class for the modem ...................................................................... resource: Introduce a base class for the modem Extract IMSI, KI and authentication algorithm into a base class. Change-Id: Id547cdcc241a307a2ea59b5fbac6b8d7a9d95639 --- M src/osmo_gsm_tester/modem.py 1 file changed, 21 insertions(+), 10 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/76/13076/1 diff --git a/src/osmo_gsm_tester/modem.py b/src/osmo_gsm_tester/modem.py index f9b827a..2f1b5a0 100644 --- a/src/osmo_gsm_tester/modem.py +++ b/src/osmo_gsm_tester/modem.py @@ -318,6 +318,22 @@ return self.property_is('Online', True) +class ModemBase(log.Origin, metaclass=ABCMeta): + """Base for everything about mobile/modem.""" + + def __init__(self, name, conf): + super().__init__(log.C_TST, name) + self._conf = conf + + def imsi(self): + return self._conf.get('imsi') + + def ki(self): + return self._conf.get('ki') + + def auth_algo(self): + return self._conf.get('auth_algo', None) + class Modem(log.Origin): 'convenience for ofono Modem interaction' @@ -327,16 +343,14 @@ CTX_PROT_IPv46 = 'dual' def __init__(self, suite_run, conf): - self.suite_run = suite_run - self.conf = conf self.syspath = conf.get('path') self.dbuspath = get_dbuspath_from_syspath(self.syspath) - super().__init__(log.C_TST, self.dbuspath) + super().__init__(self.dbuspath, conf) self.dbg('creating from syspath %s' % self.syspath) self.msisdn = None self._ki = None self._imsi = None - self.run_dir = util.Dir(self.suite_run.get_test_run_dir().new_dir(self.name().strip('/'))) + self.run_dir = util.Dir(suite_run.get_test_run_dir().new_dir(self.name().strip('/'))) self.sms_received_list = [] self.dbus = ModemDbusInteraction(self.dbuspath) self.register_attempts = 0 @@ -423,7 +437,7 @@ self.dbg('got SIM properties', props) self._imsi = props.get('SubscriberIdentity', None) else: - self._imsi = self.conf.get('imsi') + self._imsi = super().imsi() if self._imsi is None: raise log.Error('No IMSI') return self._imsi @@ -434,13 +448,10 @@ def ki(self): if self._ki is not None: return self._ki - return self.conf.get('ki') - - def auth_algo(self): - return self.conf.get('auth_algo', None) + return super().ki() def features(self): - return self.conf.get('features', []) + return self._conf.get('features', []) def _required_ifaces(self): req_ifaces = (I_NETREG,) -- To view, visit https://gerrit.osmocom.org/13076 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id547cdcc241a307a2ea59b5fbac6b8d7a9d95639 Gerrit-Change-Number: 13076 Gerrit-PatchSet: 1 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 08:43:39 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Wed, 27 Feb 2019 08:43:39 +0000 Subject: Change in osmo-gsm-tester[master]: resource: Use a factory to initiate a modem In-Reply-To: References: Message-ID: Holger Freyther has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/13075 ) Change subject: resource: Use a factory to initiate a modem ...................................................................... resource: Use a factory to initiate a modem Change-Id: I4baa791c92196cda477b2d969d4f67dfbe1152af --- M src/osmo_gsm_tester/modem.py M src/osmo_gsm_tester/resource.py M src/osmo_gsm_tester/suite.py 3 files changed, 14 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/75/13075/2 -- To view, visit https://gerrit.osmocom.org/13075 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I4baa791c92196cda477b2d969d4f67dfbe1152af Gerrit-Change-Number: 13075 Gerrit-PatchSet: 2 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 08:43:39 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Wed, 27 Feb 2019 08:43:39 +0000 Subject: Change in osmo-gsm-tester[master]: resource: Introduce a base class for the modem In-Reply-To: References: Message-ID: Holger Freyther has uploaded a new patch set (#2). ( https://gerrit.osmocom.org/13076 ) Change subject: resource: Introduce a base class for the modem ...................................................................... resource: Introduce a base class for the modem Extract IMSI, KI and authentication algorithm into a base class. Change-Id: Id547cdcc241a307a2ea59b5fbac6b8d7a9d95639 --- M src/osmo_gsm_tester/modem.py M src/osmo_gsm_tester/suite.py 2 files changed, 22 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/76/13076/2 -- To view, visit https://gerrit.osmocom.org/13076 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Id547cdcc241a307a2ea59b5fbac6b8d7a9d95639 Gerrit-Change-Number: 13076 Gerrit-PatchSet: 2 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 08:44:56 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Wed, 27 Feb 2019 08:44:56 +0000 Subject: Change in osmo-gsm-tester[master]: resource: Use a factory to initiate a modem In-Reply-To: References: Message-ID: Holger Freyther has uploaded a new patch set (#3). ( https://gerrit.osmocom.org/13075 ) Change subject: resource: Use a factory to initiate a modem ...................................................................... resource: Use a factory to initiate a modem Change-Id: I4baa791c92196cda477b2d969d4f67dfbe1152af --- M src/osmo_gsm_tester/resource.py M src/osmo_gsm_tester/suite.py 2 files changed, 13 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/75/13075/3 -- To view, visit https://gerrit.osmocom.org/13075 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I4baa791c92196cda477b2d969d4f67dfbe1152af Gerrit-Change-Number: 13075 Gerrit-PatchSet: 3 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 08:44:56 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Wed, 27 Feb 2019 08:44:56 +0000 Subject: Change in osmo-gsm-tester[master]: resource: Introduce a base class for the modem In-Reply-To: References: Message-ID: Holger Freyther has uploaded a new patch set (#3). ( https://gerrit.osmocom.org/13076 ) Change subject: resource: Introduce a base class for the modem ...................................................................... resource: Introduce a base class for the modem Extract IMSI, KI and authentication algorithm into a base class. Change-Id: Id547cdcc241a307a2ea59b5fbac6b8d7a9d95639 --- M src/osmo_gsm_tester/modem.py M src/osmo_gsm_tester/suite.py 2 files changed, 23 insertions(+), 11 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-gsm-tester refs/changes/76/13076/3 -- To view, visit https://gerrit.osmocom.org/13076 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Id547cdcc241a307a2ea59b5fbac6b8d7a9d95639 Gerrit-Change-Number: 13076 Gerrit-PatchSet: 3 Gerrit-Owner: Holger Freyther -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Wed Feb 27 09:42:00 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 27 Feb 2019 09:42:00 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_master-osmo-trx_=C2=BB_--with-ss?= =?UTF-8?Q?e,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#908?= Message-ID: <1288522371.520.1551260520127.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 107.63 KB...] Searching INPUT for files to process... Reading and parsing tag files Parsing files Building group list... Building directory list... Building namespace list... Building file list... Building class list... Associating documentation with classes... Computing nesting relations for classes... Building example list... Searching for enumerations... Searching for documented typedefs... Searching for members imported via using declarations... Searching for included using directives... Searching for documented variables... Building interface member list... Building member list... Searching for friends... Searching for documented defines... Computing class inheritance relations... Computing class usage relations... Flushing cached template relations that have become invalid... Computing class relations... Add enum values to enums... Searching for member function documentation... Creating members for template instances... Building page list... Search for main page... Computing page relations... Determining the scope of groups... Sorting lists... Freeing entry tree Determining which enums are documented Computing member relations... Building full member lists recursively... Adding members to member groups. Computing member references... Inheriting documentation... Generating disk names... Adding source references... Adding xrefitems... Sorting member lists... Computing dependencies between directories... Generating citations page... Counting data structures... Resolving user defined references... Finding anchors and sections in the documentation... Transferring function references... Combining using relations... Adding members to index pages... Generating style sheet... Generating search indices... Generating example documentation... Generating file sources... Generating file documentation... Generating page documentation... Generating group documentation... Generating class documentation... Generating namespace index... Generating graph info page... Generating directory documentation... Generating index page... Generating page index... Generating module index... Generating namespace index... Generating namespace member index... Generating annotated compound index... Generating alphabetical compound index... Generating hierarchical class index... Generating graphical class hierarchy... Generating member index... Generating file index... Generating file member index... Generating example index... finalizing index lists... writing tag file... Running dot... Running dot for graph 1/1 lookup cache used 0/65536 hits=0 misses=0 finished... make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_guide.html /usr/bin/install -c -m 644 ../README ' cp -r html make[5]: Leaving directory ' make[4]: Leaving directory ' make[3]: Leaving directory ' make[2]: Leaving directory ' Making install in firmware make[2]: Entering directory ' Making install in include make[3]: Entering directory ' make[4]: Entering directory ' make[4]: Nothing to be done for 'install-exec-am'. /bin/mkdir -p ' /usr/bin/install -c -m 644 usrp_i2c_addr.h usrp_spi_defs.h fpga_regs_common.h fpga_regs_standard.h ' make[4]: Leaving directory ' make[3]: Leaving directory ' Making install in lib make[3]: Entering directory ' sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c delay.c -o delay.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c fx2utils.c -o fx2utils.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c i2c.c -o i2c.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c isr.c -o isr.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c timer.c -o timer.rel sdcc -mmcs51 --no-xinit-opt -I../../firmware/include -c usb_common.c -o usb_common.rel timer.c:45: warning 158: overflow in implicit constant conversion usb_common.c:65: warning 196: pointer target lost const qualifier usb_common.c:66: warning 196: pointer target lost const qualifier usb_common.c:67: warning 196: pointer target lost const qualifier usb_common.c:68: warning 196: pointer target lost const qualifier usb_common.c:71: warning 196: pointer target lost const qualifier usb_common.c:72: warning 196: pointer target lost const qualifier usb_common.c:73: warning 196: pointer target lost const qualifier usb_common.c:74: warning 196: pointer target lost const qualifier isr.c:73: warning 94: comparison is always false due to limited range of data type -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'volatile-unsigned-char xdata' to type 'volatile-unsigned-char xdata* xdata' -:0: warning 154: converting integral to pointer without a cast from type 'int fixed' to type 'volatile-unsigned-char xdata* xdata' isr.c:100: warning 94: comparison is always false due to limited range of data type usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:216: warning 126: unreachable code usb_common.c:217: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:225: warning 126: unreachable code usb_common.c:226: warning 126: unreachable code usb_common.c:184: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG usb_common.c:315: warning 110: conditional flow changed by optimizer: so said EVELYN the modified DOG rm -f libfx2.lib touch libfx2.lib for obj in delay.rel fx2utils.rel i2c.rel isr.rel timer.rel usb_common.rel; do basename $obj .rel >> libfx2.lib ; done make[3]: Leaving directory ' Making install in src make[3]: Entering directory ' Making install in common make[4]: Entering directory ' make[5]: Entering directory ' make[5]: Nothing to be done for 'install-exec-am'. make[5]: Nothing to be done for 'install-data-am'. make[5]: Leaving directory ' make[4]: Leaving directory ' Making install in usrp2 make[4]: Entering directory ' test -f `basename 'eeprom_boot.a51'` || ln -s 'eeprom_boot.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_init.rel `test -f 'eeprom_init.c' || echo './'`eeprom_init.c test -f `basename '_startup.a51'` || ln -s '_startup.a51' . test -f `basename 'vectors.a51'` || ln -s 'vectors.a51' . srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_common.rel `test -f 'usrp_common.c' || echo './'`usrp_common.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o board_specific.rel `test -f 'board_specific.c' || echo './'`board_specific.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_load.rel `test -f 'fpga_load.c' || echo './'`fpga_load.c test -f ../common/`basename 'eeprom_boot.a51'` -o \ \! -f `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` \ || ln -s `dirname 'eeprom_boot.a51'`/../common/`basename 'eeprom_boot.a51'` ../common/`basename 'eeprom_boot.a51'` test -f ../common/`basename '_startup.a51'` -o \ \! -f `dirname '_startup.a51'`/../common/`basename '_startup.a51'` \ || ln -s `dirname '_startup.a51'`/../common/`basename '_startup.a51'` ../common/`basename '_startup.a51'` test -f ../common/`basename 'vectors.a51'` -o \ \! -f `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` \ || ln -s `dirname 'vectors.a51'`/../common/`basename 'vectors.a51'` ../common/`basename 'vectors.a51'` sdas8051 -plosgff `basename '_startup.a51'` sdas8051 -plosgff `basename 'vectors.a51'` sdas8051 -plosgff `basename 'eeprom_boot.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o fpga_rev2.rel `test -f 'fpga_rev2.c' || echo './'`fpga_rev2.c sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o init_gpif.rel `test -f 'init_gpif.c' || echo './'`init_gpif.c srcdir=. ./edit-gpif ./gpif.c usrp_gpif.c usrp_gpif_inline.h board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'bits' board_specific.c:65: warning 85: in function set_sleep_bits unreferenced function argument : 'mask' ../common/fpga_load.c:139: warning 85: in function clock_out_config_byte unreferenced function argument : 'bits' ../common/fpga_load.c:181: warning 126: unreachable code test -f `basename 'usb_descriptors.a51'` || ln -s 'usb_descriptors.a51' . sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o spi.rel `test -f 'spi.c' || echo './'`spi.c test -f ../common/`basename 'usb_descriptors.a51'` -o \ \! -f `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` \ || ln -s `dirname 'usb_descriptors.a51'`/../common/`basename 'usb_descriptors.a51'` ../common/`basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o eeprom_io.rel `test -f 'eeprom_io.c' || echo './'`eeprom_io.c sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o eeprom_boot.ihx eeprom_boot.rel eeprom_init.rel _startup.rel sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_main.rel `test -f 'usrp_main.c' || echo './'`usrp_main.c sdas8051 -plosgff `basename 'usb_descriptors.a51'` sdcc -mmcs51 --no-xinit-opt -I../../../firmware/include -I../../../firmware/src/usrp2 -I../../../firmware/src/common -I../../../firmware/src/common -DHAVE_USRP2 \ -c -o usrp_gpif.rel `test -f 'usrp_gpif.c' || echo './'`usrp_gpif.c ./../common/build_eeprom.py -p -r2 eeprom_boot.ihx > burn-usrp2-eeprom ./../common/build_eeprom.py -p -r4 eeprom_boot.ihx > burn-usrp4-eeprom usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:194: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion usrp_gpif.c:201: warning 158: overflow in implicit constant conversion chmod +x burn-usrp4-eeprom chmod +x burn-usrp2-eeprom usrp_main.c:223: warning 112: function 'setup_flowstate_common' implicit declaration usrp_main.c:260: warning 112: function 'setup_flowstate_write' implicit declaration usrp_main.c:282: warning 112: function 'setup_flowstate_read' implicit declaration usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization usrp_main.c:223: warning 84: 'auto' variable 'setup_flowstate_common' may be used before initialization usrp_main.c:260: warning 84: 'auto' variable 'setup_flowstate_write' may be used before initialization usrp_main.c:282: warning 84: 'auto' variable 'setup_flowstate_read' may be used before initialization sdcc -mmcs51 --no-xinit-opt --code-loc 0x0000 --code-size 0x1800 --xram-loc 0x1800 --xram-size 0x0800 -Wl '-b USBDESCSEG = 0xE000' -L ../../lib libfx2.lib -o std.ihx vectors.rel usrp_main.rel usrp_common.rel board_specific.rel fpga_load.rel fpga_rev2.rel init_gpif.rel usrp_gpif.rel usb_descriptors.rel spi.rel eeprom_io.rel _startup.rel ?ASlink-Warning-Undefined Global '_setup_flowstate_read' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_write' referenced by module 'usrp_main' ?ASlink-Warning-Undefined Global '_setup_flowstate_common' referenced by module 'usrp_main' Makefile:688: recipe for target 'std.ihx' failed make[4]: *** [std.ihx] Error 1 make[4]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[3]: *** [install-recursive] Error 1 make[3]: Leaving directory ' Makefile:404: recipe for target 'install-recursive' failed make[2]: *** [install-recursive] Error 1 make[2]: Leaving directory ' Makefile:628: recipe for target 'install-recursive' failed make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory ' Makefile:925: recipe for target 'install' failed make: *** [install] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Wed Feb 27 11:30:49 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 27 Feb 2019 11:30:49 +0000 Subject: Change in libosmo-netif[master]: AMR: add spec reference for AMR frame types Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/13077 Change subject: AMR: add spec reference for AMR frame types ...................................................................... AMR: add spec reference for AMR frame types Change-Id: I39a602ae96570c9609680ff67e0946a696091cbe --- M include/osmocom/netif/amr.h 1 file changed, 3 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/77/13077/1 diff --git a/include/osmocom/netif/amr.h b/include/osmocom/netif/amr.h index b0ab8a3..5b48bcb 100644 --- a/include/osmocom/netif/amr.h +++ b/include/osmocom/netif/amr.h @@ -69,6 +69,9 @@ return (uint8_t *)amrh + sizeof(struct amr_hdr); } +/* AMR voice frame type identifiers + * See also 3GPP TS 26.101, Table 1a: Interpretation of Frame Type, Mode + * Indication and Mode Request fields */ #define AMR_FT_0 0 /* 4.75 */ #define AMR_FT_1 1 /* 5.15 */ #define AMR_FT_2 2 /* 5.90 */ -- To view, visit https://gerrit.osmocom.org/13077 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I39a602ae96570c9609680ff67e0946a696091cbe Gerrit-Change-Number: 13077 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 11:30:50 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 27 Feb 2019 11:30:50 +0000 Subject: Change in libosmo-netif[master]: AMR: add define constants for AMR payload length Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/13078 Change subject: AMR: add define constants for AMR payload length ...................................................................... AMR: add define constants for AMR payload length AMR uses different payload sizes, those sizes are well defined in RFC 3267. Lets add define constants and replace the magic values with the define constants. Also correct the value for AMR_FT_SID in amr_ft_to_bytes from 6 to 5 (39bits / 8 = 4.875 bytes ==> 5 byte, see also RFC 3267, chapter 3.6) Change-Id: I65b5da920d58015b875d6dcf17aacdc04b58955e --- M include/osmocom/netif/amr.h M src/amr.c 2 files changed, 21 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/78/13078/1 diff --git a/include/osmocom/netif/amr.h b/include/osmocom/netif/amr.h index 5b48bcb..1f048b1 100644 --- a/include/osmocom/netif/amr.h +++ b/include/osmocom/netif/amr.h @@ -83,6 +83,18 @@ #define AMR_FT_SID 8 /* SID */ #define AMR_FT_MAX 9 +/* AMR voice frame length (in bytes, rounded), + * See also RFC 3267, chapter 3.6 */ +#define AMR_FT_0_LEN 12 /* 4.75 */ +#define AMR_FT_1_LEN 13 /* 5.15 */ +#define AMR_FT_2_LEN 15 /* 5.90 */ +#define AMR_FT_3_LEN 17 /* 6.70 */ +#define AMR_FT_4_LEN 19 /* 7.40 */ +#define AMR_FT_5_LEN 20 /* 7.95 */ +#define AMR_FT_6_LEN 26 /* 10.2 */ +#define AMR_FT_7_LEN 31 /* 12.2 */ +#define AMR_FT_SID_LEN 5 /* SID */ + int osmo_amr_ft_valid(uint8_t amr_ft); size_t osmo_amr_bytes(uint8_t amr_cmr); diff --git a/src/amr.c b/src/amr.c index 6f94a69..06cf429 100644 --- a/src/amr.c +++ b/src/amr.c @@ -28,15 +28,15 @@ */ static size_t amr_ft_to_bytes[AMR_FT_MAX] = { - [AMR_FT_0] = 12, - [AMR_FT_1] = 13, - [AMR_FT_2] = 15, - [AMR_FT_3] = 17, - [AMR_FT_4] = 19, - [AMR_FT_5] = 20, - [AMR_FT_6] = 26, - [AMR_FT_7] = 31, - [AMR_FT_SID] = 6, + [AMR_FT_0] = AMR_FT_0_LEN, + [AMR_FT_1] = AMR_FT_1_LEN, + [AMR_FT_2] = AMR_FT_2_LEN, + [AMR_FT_3] = AMR_FT_3_LEN, + [AMR_FT_4] = AMR_FT_4_LEN, + [AMR_FT_5] = AMR_FT_5_LEN, + [AMR_FT_6] = AMR_FT_6_LEN, + [AMR_FT_7] = AMR_FT_7_LEN, + [AMR_FT_SID] = AMR_FT_SID_LEN, }; size_t osmo_amr_bytes(uint8_t amr_ft) -- To view, visit https://gerrit.osmocom.org/13078 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I65b5da920d58015b875d6dcf17aacdc04b58955e Gerrit-Change-Number: 13078 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 12:54:39 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Wed, 27 Feb 2019 12:54:39 +0000 Subject: Change in osmo-ccid-firmware[master]: minor: rename MUX_SSTAT to MUX_STAT In-Reply-To: References: Message-ID: Hello Harald Welte, Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/13058 to look at the new patch set (#2). Change subject: minor: rename MUX_SSTAT to MUX_STAT ...................................................................... minor: rename MUX_SSTAT to MUX_STAT Change-Id: I5eee17de31fdce92346641772fc0c63d4c37507a --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/atmel_start_pins.h M sysmoOCTSIM/driver_init.c 3 files changed, 53 insertions(+), 6 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/58/13058/2 -- To view, visit https://gerrit.osmocom.org/13058 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I5eee17de31fdce92346641772fc0c63d4c37507a Gerrit-Change-Number: 13058 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 13:02:52 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Wed, 27 Feb 2019 13:02:52 +0000 Subject: Change in osmo-ccid-firmware[master]: add RMII clock output In-Reply-To: References: Message-ID: K?vin Redon has posted comments on this change. ( https://gerrit.osmocom.org/13054 ) Change subject: add RMII clock output ...................................................................... Patch Set 1: > I don't see how this could work without a hardware bugfix, see > https://projects.sysmocom.de/issues/4482 right. I also noticed this issue because the clock was already configured to output 20 MHz, but forgot about it again. -- To view, visit https://gerrit.osmocom.org/13054 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id8409779d2835b56bbae7db2e962034c82fa3b62 Gerrit-Change-Number: 13054 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-Comment-Date: Wed, 27 Feb 2019 13:02:52 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 13:02:58 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Wed, 27 Feb 2019 13:02:58 +0000 Subject: Change in osmo-ccid-firmware[master]: add RMII clock output In-Reply-To: References: Message-ID: K?vin Redon has abandoned this change. ( https://gerrit.osmocom.org/13054 ) Change subject: add RMII clock output ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/13054 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: abandon Gerrit-Change-Id: Id8409779d2835b56bbae7db2e962034c82fa3b62 Gerrit-Change-Number: 13054 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 13:06:52 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Wed, 27 Feb 2019 13:06:52 +0000 Subject: Change in osmo-ccid-firmware[master]: add debug tracing using SWO In-Reply-To: References: Message-ID: K?vin Redon has posted comments on this change. ( https://gerrit.osmocom.org/13055 ) Change subject: add debug tracing using SWO ...................................................................... Patch Set 1: > this is taking a quite different route than https://gerrit.osmocom.org/#/c/osmo-ccid-firmware/+/13035/ right, see comment in the other gerrit to start the discussion. > The problem I see with SWO is that it's only uni-directional, while > we typically have some kind of textual debug console in our > devices. > > I guess for R&D it doesn't matter if you have 7 or 8 SIM cards > active. For production you can then enable the last one. > > Maybe in the end it will have to be a single #define at compile > time that decides if we use SWO or UART7 as output? agree. > It would be > great to align the code bases and use the I/O abstraction that ASF4 > provides, see the patch I referenced above: https://gerrit.osmocom.org/#/c/osmo-ccid-firmware/+/13035/ I don't mind using the ASFv4 abstraction since we already started using it for the rest. I found just the code a bit to cumbersome, and it the end it does the same thing -- To view, visit https://gerrit.osmocom.org/13055 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4c6d66e7089971294d7c006fbb600e8085e58595 Gerrit-Change-Number: 13055 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-CC: Harald Welte Gerrit-Comment-Date: Wed, 27 Feb 2019 13:06:52 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 13:06:56 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Wed, 27 Feb 2019 13:06:56 +0000 Subject: Change in osmo-ccid-firmware[master]: add debug tracing using SWO In-Reply-To: References: Message-ID: K?vin Redon has abandoned this change. ( https://gerrit.osmocom.org/13055 ) Change subject: add debug tracing using SWO ...................................................................... Abandoned -- To view, visit https://gerrit.osmocom.org/13055 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: abandon Gerrit-Change-Id: I4c6d66e7089971294d7c006fbb600e8085e58595 Gerrit-Change-Number: 13055 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 13:10:53 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Wed, 27 Feb 2019 13:10:53 +0000 Subject: Change in osmo-ccid-firmware[master]: update ASFv4 library In-Reply-To: References: Message-ID: K?vin Redon has abandoned this change. ( https://gerrit.osmocom.org/13059 ) Change subject: update ASFv4 library ...................................................................... Abandoned I just found it easier to also integrate the line changes for future "git diff" (and this commit doesn't break the rest), but the -w option also exists for git. I'm fine with either way. -- To view, visit https://gerrit.osmocom.org/13059 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: abandon Gerrit-Change-Id: Ic08fd2494b63b611ac4b4e1f35c91bce9aa746c5 Gerrit-Change-Number: 13059 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 13:17:15 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Wed, 27 Feb 2019 13:17:15 +0000 Subject: Change in osmo-ccid-firmware[master]: Switch SERCOM7 (Debug UART) to sync mode + add STDIO In-Reply-To: References: Message-ID: K?vin Redon has posted comments on this change. ( https://gerrit.osmocom.org/13035 ) Change subject: Switch SERCOM7 (Debug UART) to sync mode + add STDIO ...................................................................... Patch Set 2: Code-Review+2 we decided to use SERCOM7 as UART debug for R&D because it provides an easy input. For the final production we can replace it with SWO. blocking UART could slow the code, but for R&D this is ok. SWO could have the advantage in the end to not block when no SWD adapter is connected to debug the code (no SWD disables SWO output) -- To view, visit https://gerrit.osmocom.org/13035 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ibf4ba961d4bbf8d787558f38f3d557422587aad3 Gerrit-Change-Number: 13035 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-Comment-Date: Wed, 27 Feb 2019 13:17:15 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 13:17:17 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Wed, 27 Feb 2019 13:17:17 +0000 Subject: Change in osmo-ccid-firmware[master]: Switch SERCOM7 (Debug UART) to sync mode + add STDIO In-Reply-To: References: Message-ID: K?vin Redon has submitted this change and it was merged. ( https://gerrit.osmocom.org/13035 ) Change subject: Switch SERCOM7 (Debug UART) to sync mode + add STDIO ...................................................................... Switch SERCOM7 (Debug UART) to sync mode + add STDIO this will allow us to do printf() Change-Id: Ibf4ba961d4bbf8d787558f38f3d557422587aad3 --- M sysmoOCTSIM/AtmelStart.gpdsc M sysmoOCTSIM/atmel_start.c M sysmoOCTSIM/atmel_start.h M sysmoOCTSIM/atmel_start_config.atstart A sysmoOCTSIM/config/stdio_redirect_config.h A sysmoOCTSIM/documentation/stdio.rst M sysmoOCTSIM/driver_init.c M sysmoOCTSIM/driver_init.h M sysmoOCTSIM/examples/driver_examples.c M sysmoOCTSIM/gcc/Makefile M sysmoOCTSIM/hpl/sercom/hpl_sercom.c M sysmoOCTSIM/main.c A sysmoOCTSIM/stdio_redirect/gcc/read.c A sysmoOCTSIM/stdio_redirect/gcc/write.c A sysmoOCTSIM/stdio_redirect/iar/read.c A sysmoOCTSIM/stdio_redirect/iar/write.c A sysmoOCTSIM/stdio_redirect/keil/Retarget.c A sysmoOCTSIM/stdio_redirect/stdio_io.c A sysmoOCTSIM/stdio_redirect/stdio_io.h A sysmoOCTSIM/stdio_start.c A sysmoOCTSIM/stdio_start.h 21 files changed, 769 insertions(+), 131 deletions(-) Approvals: K?vin Redon: Looks good to me, approved Jenkins Builder: Verified diff --git a/sysmoOCTSIM/AtmelStart.gpdsc b/sysmoOCTSIM/AtmelStart.gpdsc index 6546fb5..5d35944 100644 --- a/sysmoOCTSIM/AtmelStart.gpdsc +++ b/sysmoOCTSIM/AtmelStart.gpdsc @@ -36,6 +36,14 @@ + + + + + + + + @@ -43,6 +51,7 @@ #define ATMEL_START + @@ -155,6 +164,14 @@ + + + + + + + + @@ -162,6 +179,7 @@ + @@ -172,6 +190,7 @@ + @@ -191,6 +210,8 @@ + + @@ -204,6 +225,7 @@ + @@ -229,6 +251,9 @@ + + + diff --git a/sysmoOCTSIM/atmel_start.c b/sysmoOCTSIM/atmel_start.c index 9a5f36c..fc6016a 100644 --- a/sysmoOCTSIM/atmel_start.c +++ b/sysmoOCTSIM/atmel_start.c @@ -7,4 +7,5 @@ { system_init(); usb_init(); + stdio_redirect_init(); } diff --git a/sysmoOCTSIM/atmel_start.h b/sysmoOCTSIM/atmel_start.h index 953f947..92afa47 100644 --- a/sysmoOCTSIM/atmel_start.h +++ b/sysmoOCTSIM/atmel_start.h @@ -7,6 +7,7 @@ #include "driver_init.h" #include "usb_start.h" +#include "stdio_start.h" /** * Initializes MCU, drivers and middleware in the project diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index a301385..1bbad8f 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -82,6 +82,14 @@ dependencies: USB Device Stack Core Instance: USB_DEVICE_STACK_CORE_INSTANCE USB Class CDC: USB_CLASS_CDC + STDIO_REDIRECT_0: + user_label: STDIO_REDIRECT_0 + configuration: {} + definition: Atmel:STDIO_redirect:0.0.1::STDIO_Redirect + functionality: STDIO_Redirect + api: STDIO:Redirect:IO + dependencies: + Target IO: UART_debug drivers: CMCC: user_label: CMCC @@ -1276,9 +1284,9 @@ slow_gclk_selection: Generic clock generator 3 UART_debug: user_label: UART_debug - definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM7::driver_config_definition::UART::HAL:Driver:USART.Async + definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::SERCOM7::driver_config_definition::UART::HAL:Driver:USART.Sync functionality: USART - api: HAL:Driver:USART_Async + api: HAL:Driver:USART_Sync configuration: usart_advanced: false usart_arch_clock_mode: USART with internal clock diff --git a/sysmoOCTSIM/config/stdio_redirect_config.h b/sysmoOCTSIM/config/stdio_redirect_config.h new file mode 100644 index 0000000..3515c0c --- /dev/null +++ b/sysmoOCTSIM/config/stdio_redirect_config.h @@ -0,0 +1,9 @@ +/* Auto-generated config file stdio_redirect_config.h */ +#ifndef STDIO_REDIRECT_CONFIG_H +#define STDIO_REDIRECT_CONFIG_H + +// <<< Use Configuration Wizard in Context Menu >>> + +// <<< end of configuration section >>> + +#endif // STDIO_REDIRECT_CONFIG_H diff --git a/sysmoOCTSIM/documentation/stdio.rst b/sysmoOCTSIM/documentation/stdio.rst new file mode 100644 index 0000000..2864b49 --- /dev/null +++ b/sysmoOCTSIM/documentation/stdio.rst @@ -0,0 +1,34 @@ +STDIO redirection +================= + +The STDIO redirection provides means to redirect standard input/output to HAL +IO. + +On initialization, the HAL IO descriptor is assigned so that all input and +output is redirected to access it. The IO descriptor can also be changed +through stdio_io_set_io(). All stdin or stdout access is redirected to the +IO descriptor. When the IO descriptor is set to NULL, all input and output +are discarded. + +For GCC redirection, the stdout and stdin buffer are turned off, the +standard _read() and _write() are overridden. + +For IAR redirection, the __read() and __write() are overridden. + +For Keil redirection, the Retarget.c are modified to override fputc(), fgetc(), +etc. + +Features +-------- + +* Standard input/output redirection (e.g., printf to EDBG COM port) + +Dependencies +------------ + +* HAL IO driver + +Limitations +----------- + +* IO read/write operation should be synchronous diff --git a/sysmoOCTSIM/driver_init.c b/sysmoOCTSIM/driver_init.c index 1a58ad9..5808f01 100644 --- a/sysmoOCTSIM/driver_init.c +++ b/sysmoOCTSIM/driver_init.c @@ -32,9 +32,6 @@ /*! The buffer size for USART */ #define SIM6_BUFFER_SIZE 16 -/*! The buffer size for USART */ -#define UART_DEBUG_BUFFER_SIZE 16 - struct usart_async_descriptor SIM0; struct usart_async_descriptor SIM1; struct usart_async_descriptor SIM2; @@ -42,7 +39,6 @@ struct usart_async_descriptor SIM4; struct usart_async_descriptor SIM5; struct usart_async_descriptor SIM6; -struct usart_async_descriptor UART_debug; static uint8_t SIM0_buffer[SIM0_BUFFER_SIZE]; static uint8_t SIM1_buffer[SIM1_BUFFER_SIZE]; @@ -51,7 +47,8 @@ static uint8_t SIM4_buffer[SIM4_BUFFER_SIZE]; static uint8_t SIM5_buffer[SIM5_BUFFER_SIZE]; static uint8_t SIM6_buffer[SIM6_BUFFER_SIZE]; -static uint8_t UART_debug_buffer[UART_DEBUG_BUFFER_SIZE]; + +struct usart_sync_descriptor UART_debug; /** * \brief USART Clock initialization function @@ -312,26 +309,7 @@ SIM6_PORT_init(); } -/** - * \brief USART Clock initialization function - * - * Enables register interface and peripheral clock - */ -void UART_debug_CLOCK_init() -{ - - hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM7_GCLK_ID_CORE, CONF_GCLK_SERCOM7_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); - hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM7_GCLK_ID_SLOW, CONF_GCLK_SERCOM7_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); - - hri_mclk_set_APBDMASK_SERCOM7_bit(MCLK); -} - -/** - * \brief USART pinmux initialization function - * - * Set each required pin to USART functionality - */ -void UART_debug_PORT_init() +void UART_debug_PORT_init(void) { gpio_set_pin_function(UART_TX, PINMUX_PB30C_SERCOM7_PAD0); @@ -339,15 +317,18 @@ gpio_set_pin_function(UART_RX, PINMUX_PB31C_SERCOM7_PAD1); } -/** - * \brief USART initialization function - * - * Enables USART peripheral, clocks and initializes USART driver - */ +void UART_debug_CLOCK_init(void) +{ + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM7_GCLK_ID_CORE, CONF_GCLK_SERCOM7_CORE_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + hri_gclk_write_PCHCTRL_reg(GCLK, SERCOM7_GCLK_ID_SLOW, CONF_GCLK_SERCOM7_SLOW_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); + + hri_mclk_set_APBDMASK_SERCOM7_bit(MCLK); +} + void UART_debug_init(void) { UART_debug_CLOCK_init(); - usart_async_init(&UART_debug, SERCOM7, UART_debug_buffer, UART_DEBUG_BUFFER_SIZE, (void *)NULL); + usart_sync_init(&UART_debug, SERCOM7, (void *)NULL); UART_debug_PORT_init(); } @@ -860,6 +841,7 @@ SIM4_init(); SIM5_init(); SIM6_init(); + UART_debug_init(); USB_DEVICE_INSTANCE_init(); diff --git a/sysmoOCTSIM/driver_init.h b/sysmoOCTSIM/driver_init.h index a0fbb88..d809db8 100644 --- a/sysmoOCTSIM/driver_init.h +++ b/sysmoOCTSIM/driver_init.h @@ -28,7 +28,8 @@ #include #include #include -#include + +#include #include "hal_usb_device.h" @@ -39,7 +40,8 @@ extern struct usart_async_descriptor SIM4; extern struct usart_async_descriptor SIM5; extern struct usart_async_descriptor SIM6; -extern struct usart_async_descriptor UART_debug; + +extern struct usart_sync_descriptor UART_debug; void SIM0_PORT_init(void); void SIM0_CLOCK_init(void); diff --git a/sysmoOCTSIM/examples/driver_examples.c b/sysmoOCTSIM/examples/driver_examples.c index 14f1ae5..4ab0ef4 100644 --- a/sysmoOCTSIM/examples/driver_examples.c +++ b/sysmoOCTSIM/examples/driver_examples.c @@ -215,29 +215,12 @@ /** * Example of using UART_debug to write "Hello World" using the IO abstraction. - * - * Since the driver is asynchronous we need to use statically allocated memory for string - * because driver initiates transfer and then returns before the transmission is completed. - * - * Once transfer has been completed the tx_cb function will be called. */ - -static uint8_t example_UART_debug[12] = "Hello World!"; - -static void tx_cb_UART_debug(const struct usart_async_descriptor *const io_descr) -{ - /* Transfer completed */ -} - void UART_debug_example(void) { struct io_descriptor *io; + usart_sync_get_io_descriptor(&UART_debug, &io); + usart_sync_enable(&UART_debug); - usart_async_register_callback(&UART_debug, USART_ASYNC_TXC_CB, tx_cb_UART_debug); - /*usart_async_register_callback(&UART_debug, USART_ASYNC_RXC_CB, rx_cb); - usart_async_register_callback(&UART_debug, USART_ASYNC_ERROR_CB, err_cb);*/ - usart_async_get_io_descriptor(&UART_debug, &io); - usart_async_enable(&UART_debug); - - io_write(io, example_UART_debug, 12); + io_write(io, (uint8_t *)"Hello World!", 12); } diff --git a/sysmoOCTSIM/gcc/Makefile b/sysmoOCTSIM/gcc/Makefile index 5e3c38c..1c90257 100644 --- a/sysmoOCTSIM/gcc/Makefile +++ b/sysmoOCTSIM/gcc/Makefile @@ -26,32 +26,37 @@ # List the subdirectories for creating object files SUB_DIRS += \ \ -hpl/pm \ +hal/src \ +hpl/ramecc \ +examples \ +hpl/oscctrl \ +stdio_redirect/gcc \ gcc \ hpl/osc32kctrl \ -hpl/ramecc \ +usb \ hpl/dmac \ usb/class/cdc/device \ -hal/src \ -hpl/mclk \ -usb \ +stdio_redirect \ hal/utils/src \ -hpl/sercom \ -examples \ -hpl/gclk \ -usb/device \ -hpl/oscctrl \ -gcc/gcc \ hpl/usb \ -hpl/core \ -hpl/cmcc +hpl/pm \ +hpl/cmcc \ +hpl/gclk \ +gcc/gcc \ +hpl/mclk \ +usb/device \ +hpl/sercom \ +hpl/core # List the object files OBJS += \ hal/src/hal_io.o \ +stdio_redirect/stdio_io.o \ +stdio_redirect/gcc/write.o \ hpl/core/hpl_core_m4.o \ usb/class/cdc/device/cdcdf_acm.o \ hal/utils/src/utils_syscalls.o \ +stdio_redirect/gcc/read.o \ usb_start.o \ gcc/system_same54.o \ hpl/usb/hpl_usb.o \ @@ -63,8 +68,10 @@ hal/utils/src/utils_assert.o \ hpl/dmac/hpl_dmac.o \ hpl/oscctrl/hpl_oscctrl.o \ +hal/src/hal_usart_sync.o \ hpl/mclk/hpl_mclk.o \ hpl/ramecc/hpl_ramecc.o \ +stdio_start.o \ usb/usb_protocol.o \ hal/src/hal_init.o \ gcc/gcc/startup_same54.o \ @@ -90,9 +97,12 @@ OBJS_AS_ARGS += \ "hal/src/hal_io.o" \ +"stdio_redirect/stdio_io.o" \ +"stdio_redirect/gcc/write.o" \ "hpl/core/hpl_core_m4.o" \ "usb/class/cdc/device/cdcdf_acm.o" \ "hal/utils/src/utils_syscalls.o" \ +"stdio_redirect/gcc/read.o" \ "usb_start.o" \ "gcc/system_same54.o" \ "hpl/usb/hpl_usb.o" \ @@ -104,8 +114,10 @@ "hal/utils/src/utils_assert.o" \ "hpl/dmac/hpl_dmac.o" \ "hpl/oscctrl/hpl_oscctrl.o" \ +"hal/src/hal_usart_sync.o" \ "hpl/mclk/hpl_mclk.o" \ "hpl/ramecc/hpl_ramecc.o" \ +"stdio_start.o" \ "usb/usb_protocol.o" \ "hal/src/hal_init.o" \ "gcc/gcc/startup_same54.o" \ @@ -133,12 +145,14 @@ DEPS := $(OBJS:%.o=%.d) DEPS_AS_ARGS += \ +"stdio_redirect/stdio_io.d" \ "hal/utils/src/utils_event.d" \ "hal/src/hal_io.d" \ "hpl/ramecc/hpl_ramecc.d" \ "hpl/core/hpl_core_m4.d" \ "hal/utils/src/utils_syscalls.d" \ "usb/class/cdc/device/cdcdf_acm.d" \ +"stdio_redirect/gcc/write.d" \ "gcc/gcc/startup_same54.d" \ "hpl/usb/hpl_usb.d" \ "hal/utils/src/utils_list.d" \ @@ -149,12 +163,15 @@ "hpl/core/hpl_init.d" \ "hpl/pm/hpl_pm.d" \ "usb/usb_protocol.d" \ +"stdio_start.d" \ "hpl/gclk/hpl_gclk.d" \ "hal/src/hal_usb_device.d" \ "usb_start.d" \ "hal/src/hal_init.d" \ +"hal/src/hal_usart_sync.d" \ "hpl/mclk/hpl_mclk.d" \ "driver_init.d" \ +"stdio_redirect/gcc/read.d" \ "hal/src/hal_usart_async.d" \ "hpl/osc32kctrl/hpl_osc32kctrl.d" \ "main.d" \ @@ -218,7 +235,7 @@ @echo ARM/GNU C Compiler $(QUOTE)arm-none-eabi-gcc$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ -D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ --I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include" \ +-I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../config" -I"../stdio_redirect" -I"../" -I"../CMSIS/Include" -I"../include" \ -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" @echo Finished building: $< @@ -227,7 +244,7 @@ @echo ARM/GNU Assembler $(QUOTE)arm-none-eabi-as$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ -D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ --I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include" \ +-I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../config" -I"../stdio_redirect" -I"../" -I"../CMSIS/Include" -I"../include" \ -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" @echo Finished building: $< @@ -236,7 +253,7 @@ @echo ARM/GNU Preprocessing Assembler $(QUOTE)arm-none-eabi-gcc$(QUOTE) -x c -mthumb -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ -D__SAME54N19A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ --I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../CMSIS/Include" -I"../include" \ +-I"../" -I"../config" -I"../examples" -I"../hal/include" -I"../hal/utils/include" -I"../hpl/cmcc" -I"../hpl/core" -I"../hpl/dmac" -I"../hpl/gclk" -I"../hpl/mclk" -I"../hpl/osc32kctrl" -I"../hpl/oscctrl" -I"../hpl/pm" -I"../hpl/port" -I"../hpl/ramecc" -I"../hpl/sercom" -I"../hpl/usb" -I"../hri" -I"../" -I"../config" -I"../usb" -I"../usb/class/cdc" -I"../usb/class/cdc/device" -I"../usb/device" -I"../" -I"../config" -I"../stdio_redirect" -I"../" -I"../CMSIS/Include" -I"../include" \ -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" @echo Finished building: $< diff --git a/sysmoOCTSIM/hpl/sercom/hpl_sercom.c b/sysmoOCTSIM/hpl/sercom/hpl_sercom.c index f235115..b14e720 100644 --- a/sysmoOCTSIM/hpl/sercom/hpl_sercom.c +++ b/sysmoOCTSIM/hpl/sercom/hpl_sercom.c @@ -177,8 +177,6 @@ static struct _usart_async_device *_sercom6_dev = NULL; -static struct _usart_async_device *_sercom7_dev = NULL; - static uint8_t _get_sercom_index(const void *const hw); static uint8_t _sercom_get_irq_num(const void *const hw); static void _sercom_init_irq_param(const void *const hw, void *dev); @@ -667,10 +665,6 @@ if (hw == SERCOM6) { _sercom6_dev = (struct _usart_async_device *)dev; } - - if (hw == SERCOM7) { - _sercom7_dev = (struct _usart_async_device *)dev; - } } /** @@ -2634,35 +2628,6 @@ _sercom_usart_interrupt_handler(_sercom6_dev); } -/** - * \internal Sercom interrupt handler - */ -void SERCOM7_0_Handler(void) -{ - _sercom_usart_interrupt_handler(_sercom7_dev); -} -/** - * \internal Sercom interrupt handler - */ -void SERCOM7_1_Handler(void) -{ - _sercom_usart_interrupt_handler(_sercom7_dev); -} -/** - * \internal Sercom interrupt handler - */ -void SERCOM7_2_Handler(void) -{ - _sercom_usart_interrupt_handler(_sercom7_dev); -} -/** - * \internal Sercom interrupt handler - */ -void SERCOM7_3_Handler(void) -{ - _sercom_usart_interrupt_handler(_sercom7_dev); -} - int32_t _spi_m_sync_init(struct _spi_m_sync_dev *dev, void *const hw) { const struct sercomspi_regs_cfg *regs = _spi_get_regs((uint32_t)hw); diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c index 50e82c6..c79d5aa 100644 --- a/sysmoOCTSIM/main.c +++ b/sysmoOCTSIM/main.c @@ -27,20 +27,6 @@ #include "octsim_i2c.h" #include "ncn8025.h" -volatile static bool data_arrived = false; - -static void tx_cb_UART_debug(const struct usart_async_descriptor *const io_descr) -{ - /* Transfer completed */ - //gpio_toggle_pin_level(LED_system); -} - -static void rx_cb_UART_debug(const struct usart_async_descriptor *const io_descr) -{ - /* Receive completed */ - gpio_toggle_pin_level(USER_LED); - data_arrived = true; -} static void board_init() { @@ -65,23 +51,18 @@ { atmel_start_init(); - usart_async_register_callback(&UART_debug, USART_ASYNC_TXC_CB, tx_cb_UART_debug); - usart_async_register_callback(&UART_debug, USART_ASYNC_RXC_CB, rx_cb_UART_debug); - usart_async_enable(&UART_debug); + usart_sync_enable(&UART_debug); usb_start(); board_init(); - const char* welcome = "\r\n\r\nsysmocom sysmoOCTSIM\r\n"; - while (io_write(&UART_debug.io, (const uint8_t*)welcome, strlen(welcome)) != strlen(welcome)); // print welcome message + printf("\r\n\r\nsysmocom sysmoOCTSIM\r\n"); while (true) { // main loop - if (data_arrived) { // input on UART debug - data_arrived = false; // clear flag - uint8_t recv_char; // to store the input - while (io_read(&UART_debug.io, &recv_char, 1) == 1) { // read input - while (io_write(&UART_debug.io, &recv_char, 1) != 1); // echo back to output - } + if (usart_sync_is_rx_not_empty(&UART_debug)) { + gpio_toggle_pin_level(USER_LED); + int c = getchar(); + putchar(c); } } } diff --git a/sysmoOCTSIM/stdio_redirect/gcc/read.c b/sysmoOCTSIM/stdio_redirect/gcc/read.c new file mode 100644 index 0000000..90e4618 --- /dev/null +++ b/sysmoOCTSIM/stdio_redirect/gcc/read.c @@ -0,0 +1,53 @@ +/** + * \file + * + * \brief STDIO redirection + * + * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries. + * + * \asf_license_start + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip + * software and any derivatives exclusively with Microchip products. + * It is your responsibility to comply with third party license terms applicable + * to your use of third party software (including open source software) that + * may accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, + * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, + * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE + * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL + * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE + * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE + * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT + * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY + * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, + * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + * + * \asf_license_stop + * + */ + +#include +#include + +int __attribute__((weak)) _read(int file, char *ptr, int len); /* Remove GCC compiler warning */ + +int __attribute__((weak)) _read(int file, char *ptr, int len) +{ + int n = 0; + + if (file != 0) { + return -1; + } + + n = stdio_io_read((uint8_t *)ptr, len); + if (n < 0) { + return -1; + } + + return n; +} diff --git a/sysmoOCTSIM/stdio_redirect/gcc/write.c b/sysmoOCTSIM/stdio_redirect/gcc/write.c new file mode 100644 index 0000000..44fa815 --- /dev/null +++ b/sysmoOCTSIM/stdio_redirect/gcc/write.c @@ -0,0 +1,53 @@ +/** + * \file + * + * \brief STDIO redirection + * + * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries. + * + * \asf_license_start + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip + * software and any derivatives exclusively with Microchip products. + * It is your responsibility to comply with third party license terms applicable + * to your use of third party software (including open source software) that + * may accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, + * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, + * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE + * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL + * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE + * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE + * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT + * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY + * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, + * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + * + * \asf_license_stop + * + */ + +#include +#include + +int __attribute__((weak)) _write(int file, char *ptr, int len); /* Remove GCC compiler warning */ + +int __attribute__((weak)) _write(int file, char *ptr, int len) +{ + int n = 0; + + if ((file != 1) && (file != 2) && (file != 3)) { + return -1; + } + + n = stdio_io_write((const uint8_t *)ptr, len); + if (n < 0) { + return -1; + } + + return n; +} diff --git a/sysmoOCTSIM/stdio_redirect/iar/read.c b/sysmoOCTSIM/stdio_redirect/iar/read.c new file mode 100644 index 0000000..df192cb --- /dev/null +++ b/sysmoOCTSIM/stdio_redirect/iar/read.c @@ -0,0 +1,114 @@ +/** + * \file + * + * \brief STDIO redirection + * + * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries. + * + * \asf_license_start + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip + * software and any derivatives exclusively with Microchip products. + * It is your responsibility to comply with third party license terms applicable + * to your use of third party software (including open source software) that + * may accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, + * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, + * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE + * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL + * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE + * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE + * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT + * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY + * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, + * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + * + * \asf_license_stop + * + */ + +#include +#include + +#ifndef _UNIT_TEST_ +#include +#else +#define _STD_BEGIN +#define _STD_END +#define _LLIO_ERROR ((size_t)-1) /* For __read and __write. */ +#define _LLIO_STDIN 0 +#define _LLIO_STDOUT 1 +#define _LLIO_STDERR 2 +#endif + +#if (__VER__ < 8010000) +/* Refer http://ftp.iar.se/WWWfiles/arm/webic/doc/EWARM_MigrationGuide.ENU.pdf */ +_STD_BEGIN +#endif + +#pragma module_name = "?__read" + +/*! \brief Reads a number of bytes, at most \a size, into the memory area + * pointed to by \a buffer. + * + * \param handle File handle to read from. + * \param buffer Pointer to buffer to write read bytes to. + * \param size Number of bytes to read. + * + * \return The number of bytes read, \c 0 at the end of the file, or + * \c _LLIO_ERROR on failure. + */ +size_t __read(int handle, unsigned char *buffer, size_t size) +{ + int n = 0; + /* This implementation only reads from stdin. + * For all other file handles, it returns failure. */ + if (handle != _LLIO_STDIN) { + return _LLIO_ERROR; + } + + n = stdio_io_read((uint8_t *)buffer, size); + if (n < 0) { + return _LLIO_ERROR; + } + return n; +} + +/*! \brief This routine is required by IAR DLIB library since EWAVR V6.10 + * the implementation is empty to be compatible with old IAR version. + */ +int __close(int handle) +{ + (void)(handle); + return 0; +} + +#ifndef __GNUC__ +/*! \brief This routine is required by IAR DLIB library since EWAVR V6.10 + * the implementation is empty to be compatible with old IAR version. + */ +int remove(const char *val) +{ + (void)(val); + return 0; +} +#endif + +/*! \brief This routine is required by IAR DLIB library since EWAVR V6.10 + * the implementation is empty to be compatible with old IAR version. + */ +long __lseek(int handle, long val, int val2) +{ + (void)(handle); + (void)(val2); + return val; +} + +#if (__VER__ < 8010000) +/* Refer http://ftp.iar.se/WWWfiles/arm/webic/doc/EWARM_MigrationGuide.ENU.pdf */ +_STD_END +#endif diff --git a/sysmoOCTSIM/stdio_redirect/iar/write.c b/sysmoOCTSIM/stdio_redirect/iar/write.c new file mode 100644 index 0000000..7bc8f78 --- /dev/null +++ b/sysmoOCTSIM/stdio_redirect/iar/write.c @@ -0,0 +1,94 @@ +/** + * \file + * + * \brief STDIO redirection + * + * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries. + * + * \asf_license_start + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip + * software and any derivatives exclusively with Microchip products. + * It is your responsibility to comply with third party license terms applicable + * to your use of third party software (including open source software) that + * may accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, + * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, + * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE + * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL + * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE + * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE + * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT + * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY + * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, + * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + * + * \asf_license_stop + * + */ + +#include +#include + +#ifndef _UNIT_TEST_ +#include +#else +#define _STD_BEGIN +#define _STD_END +#define _LLIO_ERROR ((size_t)-1) /* For __read and __write. */ +#define _LLIO_STDIN 0 +#define _LLIO_STDOUT 1 +#define _LLIO_STDERR 2 +#endif + +#if (__VER__ < 8010000) +/* Refer http://ftp.iar.se/WWWfiles/arm/webic/doc/EWARM_MigrationGuide.ENU.pdf */ +_STD_BEGIN +#endif + +#pragma module_name = "?__write" + +/*! \brief Writes a number of bytes, at most \a size, from the memory area + * pointed to by \a buffer. + * + * If \a buffer is zero then \ref __write performs flushing of internal buffers, + * if any. In this case, \a handle can be \c -1 to indicate that all handles + * should be flushed. + * + * \param handle File handle to write to. + * \param buffer Pointer to buffer to read bytes to write from. + * \param size Number of bytes to write. + * + * \return The number of bytes written, or \c _LLIO_ERROR on failure. + */ +size_t __write(int handle, const unsigned char *buffer, size_t size) +{ + int n = 0; + + if (buffer == 0) { + /* This means that we should flush internal buffers. */ + return 0; + } + + /* This implementation only writes to stdout and stderr. + * For all other file handles, it returns failure. */ + if (handle != _LLIO_STDOUT && handle != _LLIO_STDERR) { + return _LLIO_ERROR; + } + + n = stdio_io_write((const uint8_t *)buffer, size); + if (n < 0) { + return _LLIO_ERROR; + } + + return n; +} + +#if (__VER__ < 8010000) +/* Refer http://ftp.iar.se/WWWfiles/arm/webic/doc/EWARM_MigrationGuide.ENU.pdf */ +_STD_END +#endif diff --git a/sysmoOCTSIM/stdio_redirect/keil/Retarget.c b/sysmoOCTSIM/stdio_redirect/keil/Retarget.c new file mode 100644 index 0000000..205e7e5 --- /dev/null +++ b/sysmoOCTSIM/stdio_redirect/keil/Retarget.c @@ -0,0 +1,107 @@ +/** + * \file + * + * \brief STDIO redirection + * + * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries. + * + * \asf_license_start + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip + * software and any derivatives exclusively with Microchip products. + * It is your responsibility to comply with third party license terms applicable + * to your use of third party software (including open source software) that + * may accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, + * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, + * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE + * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL + * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE + * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE + * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT + * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY + * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, + * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + * + * \asf_license_stop + * + */ + +#include + +#ifdef _UNIT_TEST_ +#undef fputc +#undef fgetc +#undef ferror +#define fputc ut_fputc +#define fgetc ut_fgetc +#define ferror ut_ferror +#endif + +#include + +/* Disable semihosting */ +#if defined(__GNUC__) && (__ARMCOMPILER_VERSION > 6000000) /* Keil MDK with ARM Compiler 6 */ +__asm(".global __use_no_semihosting\n\t"); +#else +#pragma import(__use_no_semihosting_swi) +#endif + +#ifndef __GNUC__ +struct __FILE { + int handle; +}; +#endif +FILE __stdout; +FILE __stdin; +FILE __stderr; + +int fputc(int ch, FILE *f) +{ + if ((f == stdout) || (f == stderr)) { + uint8_t tmp = (uint8_t)ch; + if (stdio_io_write(&tmp, 1) < 0) { + return EOF; + } + return ch; + } else { + return EOF; + } +} + +int fgetc(FILE *f) +{ + if (f == stdin) { + uint8_t tmp = 0; + if (stdio_io_read(&tmp, 1) < 0) { + return EOF; + } + return tmp; + } else { + return EOF; + } +} + +void _ttywrch(int ch) +{ + uint8_t tmp = (uint8_t)ch; + stdio_io_write(&tmp, 1); +} + +int ferror(FILE *f) +{ + (void)f; + /* Your implementation of ferror */ + return EOF; +} + +void _sys_exit(int return_code) +{ + (void)return_code; + while (1) { + }; /* endless loop */ +} diff --git a/sysmoOCTSIM/stdio_redirect/stdio_io.c b/sysmoOCTSIM/stdio_redirect/stdio_io.c new file mode 100644 index 0000000..7659f3d --- /dev/null +++ b/sysmoOCTSIM/stdio_redirect/stdio_io.c @@ -0,0 +1,74 @@ +/** + * \file + * + * \brief STDIO redirection terminal + * + * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries. + * + * \asf_license_start + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip + * software and any derivatives exclusively with Microchip products. + * It is your responsibility to comply with third party license terms applicable + * to your use of third party software (including open source software) that + * may accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, + * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, + * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE + * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL + * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE + * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE + * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT + * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY + * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, + * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + * + * \asf_license_stop + * + */ + +#include +#include + +/** IO descriptor for STDIO access. */ +static struct io_descriptor *stdio_io = NULL; + +void stdio_io_init(struct io_descriptor *io) +{ +#if defined(__GNUC__) + /* Specify that stdout and stdin should not be buffered. */ + setbuf(stdout, NULL); + setbuf(stdin, NULL); + /* Note: Already the case in IAR's Normal DLIB default configuration + * and AVR GCC library: + * - printf() emits one character at a time. + * - getchar() requests only 1 byte to exit. + */ +#endif + stdio_io = io; +} + +void stdio_io_set_io(struct io_descriptor *io) +{ + stdio_io = io; +} + +int32_t stdio_io_read(uint8_t *buf, const int32_t len) +{ + if (stdio_io == NULL) { + return 0; + } + return io_read(stdio_io, buf, len); +} + +int32_t stdio_io_write(const uint8_t *buf, const int32_t len) +{ + if (stdio_io == NULL) { + return 0; + } + return io_write(stdio_io, buf, len); +} diff --git a/sysmoOCTSIM/stdio_redirect/stdio_io.h b/sysmoOCTSIM/stdio_redirect/stdio_io.h new file mode 100644 index 0000000..973adad --- /dev/null +++ b/sysmoOCTSIM/stdio_redirect/stdio_io.h @@ -0,0 +1,81 @@ +/** + * \file + * + * \brief STDIO redirection terminal + * + * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries. + * + * \asf_license_start + * + * \page License + * + * Subject to your compliance with these terms, you may use Microchip + * software and any derivatives exclusively with Microchip products. + * It is your responsibility to comply with third party license terms applicable + * to your use of third party software (including open source software) that + * may accompany Microchip software. + * + * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, + * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, + * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE + * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL + * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE + * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE + * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT + * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY + * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, + * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. + * + * \asf_license_stop + * + */ + +#ifndef _STDIO_IO_H_INCLUDED +#define _STDIO_IO_H_INCLUDED + +#include + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** + * \brief Initialize STDIO access + * \param[in] io Pointer to IO descriptor, + * NULL to discard R/W without any error. + */ +void stdio_io_init(struct io_descriptor *io); + +/** + * \brief Change IO descriptor for terminal to R/W data + * \param[in] io Pointer to IO descriptor, + * NULL to discard R/W without any error. + */ +void stdio_io_set_io(struct io_descriptor *io); + +/** + * \brief Read through specified terminal + * \param[out] buf Pointer to buffer to place read data + * \param[in] len Data length in number of bytes + * \return status + * \retval >=0 number of bytes read + * \retval <0 error + */ +int32_t stdio_io_read(uint8_t *buf, const int32_t len); + +/** + * \brief Write through specified terminal + * \param[in] buf Pointer to buffer to place data to write + * \param[in] len Data length in number of bytes + * \return status + * \retval >=0 number of bytes read + * \retval <0 error + */ +int32_t stdio_io_write(const uint8_t *buf, const int32_t len); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* _STDIO_IO_H_INCLUDED */ diff --git a/sysmoOCTSIM/stdio_start.c b/sysmoOCTSIM/stdio_start.c new file mode 100644 index 0000000..7450a08 --- /dev/null +++ b/sysmoOCTSIM/stdio_start.c @@ -0,0 +1,23 @@ +/* + * Code generated from Atmel Start. + * + * This file will be overwritten when reconfiguring your Atmel Start project. + * Please copy examples or other code you want to keep to a separate file or main.c + * to avoid loosing it when reconfiguring. + */ + +#include "atmel_start.h" +#include "stdio_start.h" + +void STDIO_REDIRECT_0_example(void) +{ + /* Print welcome message */ + printf("\r\nHello ATMEL World!\r\n"); +} + +void stdio_redirect_init(void) +{ + + usart_sync_enable(&UART_debug); + stdio_io_init(&UART_debug.io); +} diff --git a/sysmoOCTSIM/stdio_start.h b/sysmoOCTSIM/stdio_start.h new file mode 100644 index 0000000..bee5325 --- /dev/null +++ b/sysmoOCTSIM/stdio_start.h @@ -0,0 +1,31 @@ +/* + * Code generated from Atmel Start. + * + * This file will be overwritten when reconfiguring your Atmel Start project. + * Please copy examples or other code you want to keep to a separate file or main.c + * to avoid loosing it when reconfiguring. + */ +#ifndef STDIO_MAIN_H +#define STDIO_MAIN_H + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#include + +#include +#include + +void STDIO_REDIRECT_0_example(void); + +/** + * \brief Initialize STDIO Redirect + */ +void stdio_redirect_init(void); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* STDIO_MAIN_H */ -- To view, visit https://gerrit.osmocom.org/13035 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ibf4ba961d4bbf8d787558f38f3d557422587aad3 Gerrit-Change-Number: 13035 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 13:18:59 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Wed, 27 Feb 2019 13:18:59 +0000 Subject: Change in osmo-ccid-firmware[master]: switch UART debug to SIM7 In-Reply-To: References: Message-ID: K?vin Redon has abandoned this change. ( https://gerrit.osmocom.org/13053 ) Change subject: switch UART debug to SIM7 ...................................................................... Abandoned SERCOM7 will be used as UART debug for now (R&D) and can be replaced in the future with SWO -- To view, visit https://gerrit.osmocom.org/13053 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: abandon Gerrit-Change-Id: Idfbd067b4b0e2034337732da2ff5b7cfef8fe4ae Gerrit-Change-Number: 13053 Gerrit-PatchSet: 1 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 13:19:12 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Wed, 27 Feb 2019 13:19:12 +0000 Subject: Change in osmo-ccid-firmware[master]: Add mnimalistic command line interface "command.c" In-Reply-To: References: Message-ID: K?vin Redon has posted comments on this change. ( https://gerrit.osmocom.org/13036 ) Change subject: Add mnimalistic command line interface "command.c" ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13036 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2d289228fb97ecde5602e9756f3d7c51fa65a3b7 Gerrit-Change-Number: 13036 Gerrit-PatchSet: 2 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-Comment-Date: Wed, 27 Feb 2019 13:19:12 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 13:22:01 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Wed, 27 Feb 2019 13:22:01 +0000 Subject: Change in osmo-ccid-firmware[master]: Add various SIM card related debug command In-Reply-To: References: Message-ID: K?vin Redon has posted comments on this change. ( https://gerrit.osmocom.org/13037 ) Change subject: Add various SIM card related debug command ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13037 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Id6131be60d37cba769c79952fa44f3ec6c976a38 Gerrit-Change-Number: 13037 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-Comment-Date: Wed, 27 Feb 2019 13:22:01 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 13:22:24 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Wed, 27 Feb 2019 13:22:24 +0000 Subject: Change in osmo-ccid-firmware[master]: minor: rename MUX_SSTAT to MUX_STAT In-Reply-To: References: Message-ID: K?vin Redon has posted comments on this change. ( https://gerrit.osmocom.org/13058 ) Change subject: minor: rename MUX_SSTAT to MUX_STAT ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13058 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5eee17de31fdce92346641772fc0c63d4c37507a Gerrit-Change-Number: 13058 Gerrit-PatchSet: 2 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon Gerrit-Comment-Date: Wed, 27 Feb 2019 13:22:24 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 13:22:33 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Wed, 27 Feb 2019 13:22:33 +0000 Subject: Change in osmo-ccid-firmware[master]: minor: rename MUX_SSTAT to MUX_STAT In-Reply-To: References: Message-ID: K?vin Redon has submitted this change and it was merged. ( https://gerrit.osmocom.org/13058 ) Change subject: minor: rename MUX_SSTAT to MUX_STAT ...................................................................... minor: rename MUX_SSTAT to MUX_STAT Change-Id: I5eee17de31fdce92346641772fc0c63d4c37507a --- M sysmoOCTSIM/atmel_start_config.atstart M sysmoOCTSIM/atmel_start_pins.h M sysmoOCTSIM/driver_init.c 3 files changed, 53 insertions(+), 6 deletions(-) Approvals: K?vin Redon: Looks good to me, approved Jenkins Builder: Verified diff --git a/sysmoOCTSIM/atmel_start_config.atstart b/sysmoOCTSIM/atmel_start_config.atstart index 1bbad8f..290fa89 100644 --- a/sysmoOCTSIM/atmel_start_config.atstart +++ b/sysmoOCTSIM/atmel_start_config.atstart @@ -1481,11 +1481,11 @@ mode: Digital input user_label: SWITCH configuration: null - MUX_SSTAT: + MUX_STAT: name: PC15 definition: Atmel:SAME54_Drivers:0.0.1::SAME54N19A-AF::pad::PC15 mode: Digital input - user_label: MUX_SSTAT + user_label: MUX_STAT configuration: null SIM1_IO: name: PA16 diff --git a/sysmoOCTSIM/atmel_start_pins.h b/sysmoOCTSIM/atmel_start_pins.h index 60b70bb..0264736 100644 --- a/sysmoOCTSIM/atmel_start_pins.h +++ b/sysmoOCTSIM/atmel_start_pins.h @@ -57,7 +57,7 @@ #define SIM2_INT GPIO(GPIO_PORTC, 2) #define SIM3_INT GPIO(GPIO_PORTC, 3) #define SWITCH GPIO(GPIO_PORTC, 14) -#define MUX_SSTAT GPIO(GPIO_PORTC, 15) +#define MUX_STAT GPIO(GPIO_PORTC, 15) #define SIM6_IO GPIO(GPIO_PORTC, 16) #define USER_LED GPIO(GPIO_PORTC, 26) #define SCL4 GPIO(GPIO_PORTC, 27) diff --git a/sysmoOCTSIM/driver_init.c b/sysmoOCTSIM/driver_init.c index 5808f01..06184ee 100644 --- a/sysmoOCTSIM/driver_init.c +++ b/sysmoOCTSIM/driver_init.c @@ -702,6 +702,53 @@ gpio_set_pin_function(SDA1, GPIO_PIN_FUNCTION_OFF); + // GPIO on PB30 + + gpio_set_pin_direction(UART_TX, + // Pin direction + // pad_direction + // Off + // In + // Out + GPIO_DIRECTION_OUT); + + gpio_set_pin_level(UART_TX, + // Initial level + // pad_initial_level + // Low + // High + false); + + gpio_set_pin_pull_mode(UART_TX, + // Pull configuration + // pad_pull_config + // Off + // Pull-up + // Pull-down + GPIO_PULL_OFF); + + gpio_set_pin_function(UART_TX, + // Pin function + // pad_function + // Auto : use driver pinmux if signal is imported by driver, else turn off function + // Auto + // Off + // A + // B + // C + // D + // E + // F + // G + // H + // I + // J + // K + // L + // M + // N + GPIO_PIN_FUNCTION_H); + // GPIO on PC00 // Set pin direction to input @@ -780,9 +827,9 @@ // GPIO on PC15 // Set pin direction to input - gpio_set_pin_direction(MUX_SSTAT, GPIO_DIRECTION_IN); + gpio_set_pin_direction(MUX_STAT, GPIO_DIRECTION_IN); - gpio_set_pin_pull_mode(MUX_SSTAT, + gpio_set_pin_pull_mode(MUX_STAT, // Pull configuration // pad_pull_config // Off @@ -790,7 +837,7 @@ // Pull-down GPIO_PULL_OFF); - gpio_set_pin_function(MUX_SSTAT, GPIO_PIN_FUNCTION_OFF); + gpio_set_pin_function(MUX_STAT, GPIO_PIN_FUNCTION_OFF); // GPIO on PC26 -- To view, visit https://gerrit.osmocom.org/13058 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I5eee17de31fdce92346641772fc0c63d4c37507a Gerrit-Change-Number: 13058 Gerrit-PatchSet: 3 Gerrit-Owner: K?vin Redon Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 13:44:10 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Wed, 27 Feb 2019 13:44:10 +0000 Subject: Change in osmo-ccid-firmware[master]: Add mnimalistic command line interface "command.c" In-Reply-To: References: Message-ID: K?vin Redon has submitted this change and it was merged. ( https://gerrit.osmocom.org/13036 ) Change subject: Add mnimalistic command line interface "command.c" ...................................................................... Add mnimalistic command line interface "command.c" This is a very simplistic command line interface parser which various parts of the code can use to register textual commands on the debug UART. Change-Id: I2d289228fb97ecde5602e9756f3d7c51fa65a3b7 --- A sysmoOCTSIM/command.c A sysmoOCTSIM/command.h M sysmoOCTSIM/gcc/Makefile M sysmoOCTSIM/main.c 4 files changed, 135 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified K?vin Redon: Looks good to me, approved diff --git a/sysmoOCTSIM/command.c b/sysmoOCTSIM/command.c new file mode 100644 index 0000000..9502f05 --- /dev/null +++ b/sysmoOCTSIM/command.c @@ -0,0 +1,101 @@ +#include +#include +#include + +#include + +#include "atmel_start.h" +#include "command.h" + +struct cmd_state { + const char *prompt; + char buf[128]; + unsigned int buf_idx; + const struct command_fn *cmd[32]; + unsigned int cmd_idx; +}; + +static struct cmd_state g_cmds; + +int command_register(const struct command_fn *cmd) +{ + if (g_cmds.cmd_idx >= ARRAY_SIZE(g_cmds.cmd)) + return -1; + g_cmds.cmd[g_cmds.cmd_idx++] = cmd; + return 0; +} + +DEFUN(help, help_cmd, "help", "Print command reference") +{ + unsigned int i; + printf("Help:\r\n"); + printf(" Command Help\r\n"); + printf(" ---------------- ----\r\n"); + for (i = 0; i < g_cmds.cmd_idx; i++) + printf(" %-16s %s\r\n", g_cmds.cmd[i]->command, g_cmds.cmd[i]->help); +} + +static void cmd_execute() +{ + char *argv[16]; + unsigned int i; + int argc = 0; + char *cur; + + printf("\r\n"); + memset(argv, 0, sizeof(argv)); + + for (cur = strtok(g_cmds.buf, " "); cur; cur = strtok(NULL, " ")) { + if (argc >= ARRAY_SIZE(argv)) + break; + argv[argc++] = cur; + } + + for (i = 0; i < g_cmds.cmd_idx; i++) { + if (!strcmp(g_cmds.cmd[i]->command, argv[0])) { + g_cmds.cmd[i]->fn(argc, argv); + return; + } + } + printf("Unknown command: '%s'\r\n", argv[0]); +} + +static void cmd_buf_reset(void) +{ + memset(g_cmds.buf, 0, sizeof(g_cmds.buf)); + g_cmds.buf_idx = 0; +} + +static void cmd_buf_append(char c) +{ + g_cmds.buf[g_cmds.buf_idx++] = c; +} + +void command_try_recv(void) +{ + unsigned int i = 0; + + /* yield CPU after maximum of 10 received characters */ + while (usart_sync_is_rx_not_empty(&UART_debug) && (i < 10)) { + int c = getchar(); + if (c < 0) + return; + putchar(c); + if (c == '\r' || c == '\n' || g_cmds.buf_idx >= sizeof(g_cmds.buf)-1) { + cmd_execute(); + cmd_buf_reset(); + printf(g_cmds.prompt); + return; + } + /* append character */ + cmd_buf_append(c); + + i++; + } +} + +void command_init(const char *prompt) +{ + g_cmds.prompt = prompt; + command_register(&help_cmd); +} diff --git a/sysmoOCTSIM/command.h b/sysmoOCTSIM/command.h new file mode 100644 index 0000000..cdf256d --- /dev/null +++ b/sysmoOCTSIM/command.h @@ -0,0 +1,20 @@ +#pragma once + +struct command_fn { + const char *command; + const char *help; + void (*fn)(int argc, char **argv); +}; + +#define DEFUN(funcname, cmdname, cmdstr, helpstr) \ + static void funcname(int argc, char **argv); \ + static struct command_fn cmdname = { \ + .command = cmdstr, \ + .help = helpstr, \ + .fn = funcname, \ + }; \ + static void funcname(int argc, char **argv) + +void command_init(const char *prompt); +int command_register(const struct command_fn *cmd); +void command_try_recv(void); diff --git a/sysmoOCTSIM/gcc/Makefile b/sysmoOCTSIM/gcc/Makefile index 1c90257..7496377 100644 --- a/sysmoOCTSIM/gcc/Makefile +++ b/sysmoOCTSIM/gcc/Makefile @@ -80,6 +80,7 @@ i2c_bitbang.o \ octsim_i2c.o \ ncn8025.o \ +command.o \ hpl/osc32kctrl/hpl_osc32kctrl.o \ examples/driver_examples.o \ driver_init.o \ @@ -126,6 +127,7 @@ "i2c_bitbang.o" \ "octsim_i2c.o" \ "ncn8025.o" \ +"command.o" \ "hpl/osc32kctrl/hpl_osc32kctrl.o" \ "examples/driver_examples.o" \ "driver_init.o" \ @@ -178,6 +180,7 @@ "i2c_bitbang.d" \ "octsim_i2c.d" \ "ncn8025.d" \ +"command.d" \ "examples/driver_examples.d" \ "hal/src/hal_cache.d" \ "hal/src/hal_sleep.d" \ diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c index c79d5aa..ef87162 100644 --- a/sysmoOCTSIM/main.c +++ b/sysmoOCTSIM/main.c @@ -27,6 +27,8 @@ #include "octsim_i2c.h" #include "ncn8025.h" +#include "command.h" + static void board_init() { @@ -47,6 +49,12 @@ hri_port_set_PINCFG_DRVSTR_bit(PORT, 0, 11); } +DEFUN(hello_fn, cmd_hello, + "hello", "Hello World example command") +{ + printf("Hello World!\r\n"); +} + int main(void) { atmel_start_init(); @@ -56,13 +64,11 @@ usb_start(); board_init(); + command_init("sysmoOCTSIM> "); + command_register(&cmd_hello); printf("\r\n\r\nsysmocom sysmoOCTSIM\r\n"); while (true) { // main loop - if (usart_sync_is_rx_not_empty(&UART_debug)) { - gpio_toggle_pin_level(USER_LED); - int c = getchar(); - putchar(c); - } + command_try_recv(); } } -- To view, visit https://gerrit.osmocom.org/13036 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I2d289228fb97ecde5602e9756f3d7c51fa65a3b7 Gerrit-Change-Number: 13036 Gerrit-PatchSet: 3 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 13:46:17 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Wed, 27 Feb 2019 13:46:17 +0000 Subject: Change in osmo-ccid-firmware[master]: Add various SIM card related debug command In-Reply-To: References: Message-ID: K?vin Redon has submitted this change and it was merged. ( https://gerrit.osmocom.org/13037 ) Change subject: Add various SIM card related debug command ...................................................................... Add various SIM card related debug command this allows commands like sim-status 0 # read the status sim-voltage 0 5 # set voltage to 5V sim-clkdiv 0 2 # set clock-divider to 2 (10 MHz) sim-reset 0 0 # disable reset sim-power 0 1 # enable power Change-Id: Id6131be60d37cba769c79952fa44f3ec6c976a38 --- M sysmoOCTSIM/main.c M sysmoOCTSIM/ncn8025.c M sysmoOCTSIM/ncn8025.h 3 files changed, 193 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified K?vin Redon: Looks good to me, approved diff --git a/sysmoOCTSIM/main.c b/sysmoOCTSIM/main.c index ef87162..dc67406 100644 --- a/sysmoOCTSIM/main.c +++ b/sysmoOCTSIM/main.c @@ -16,6 +16,8 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ +#include +#include #include #include #include @@ -55,6 +57,163 @@ printf("Hello World!\r\n"); } +static int validate_slotnr(int argc, char **argv, int idx) +{ + int slotnr; + if (argc < idx+1) { + printf("You have to specify the slot number (0..7)\r\n"); + return -1; + } + slotnr = atoi(argv[idx]); + if (slotnr < 0 || slotnr > 7) { + printf("You have to specify the slot number (0..7)\r\n"); + return -1; + } + return slotnr; +} + +DEFUN(sim_status, cmd_sim_status, "sim-status", "Get state of specified NCN8025") +{ + struct ncn8025_settings settings; + int slotnr = validate_slotnr(argc, argv, 1); + if (slotnr < 0) + return; + ncn8025_get(slotnr, &settings); + printf("SIM%d: ", slotnr); + ncn8025_dump(&settings); + printf("\r\n"); +} + +DEFUN(sim_power, cmd_sim_power, "sim-power", "Enable/disable SIM card power") +{ + struct ncn8025_settings settings; + int slotnr = validate_slotnr(argc, argv, 1); + int enable; + + if (slotnr < 0) + return; + + if (argc < 3) { + printf("You have to specify 0=disable or 1=enable\r\n"); + return; + } + enable = atoi(argv[2]); + ncn8025_get(slotnr, &settings); + if (enable) + settings.cmdvcc = true; + else + settings.cmdvcc = false; + ncn8025_set(slotnr, &settings); +} + +DEFUN(sim_reset, cmd_sim_reset, "sim-reset", "Enable/disable SIM reset") +{ + struct ncn8025_settings settings; + int slotnr = validate_slotnr(argc, argv, 1); + int enable; + + if (slotnr < 0) + return; + + if (argc < 3) { + printf("You have to specify 0=disable or 1=enable\r\n"); + return; + } + enable = atoi(argv[2]); + ncn8025_get(slotnr, &settings); + if (enable) + settings.rstin = true; + else + settings.rstin = false; + ncn8025_set(slotnr, &settings); +} + +DEFUN(sim_clkdiv, cmd_sim_clkdiv, "sim-clkdiv", "Set SIM clock divider (1,2,4,8)") +{ + struct ncn8025_settings settings; + int slotnr = validate_slotnr(argc, argv, 1); + int clkdiv; + + if (slotnr < 0) + return; + + if (argc < 3) { + printf("You have to specify a valid divider (1,2,4,8)\r\n"); + return; + } + clkdiv = atoi(argv[2]); + if (clkdiv != 1 && clkdiv != 2 && clkdiv != 4 && clkdiv != 8) { + printf("You have to specify a valid divider (1,2,4,8)\r\n"); + return; + } + ncn8025_get(slotnr, &settings); + switch (clkdiv) { + case 1: + settings.clkdiv = SIM_CLKDIV_1; + break; + case 2: + settings.clkdiv = SIM_CLKDIV_2; + break; + case 4: + settings.clkdiv = SIM_CLKDIV_4; + break; + case 8: + settings.clkdiv = SIM_CLKDIV_8; + break; + } + ncn8025_set(slotnr, &settings); +} + +DEFUN(sim_voltage, cmd_sim_voltage, "sim-voltage", "Set SIM voltage (5/3/1.8)") +{ + struct ncn8025_settings settings; + int slotnr = validate_slotnr(argc, argv, 1); + + if (slotnr < 0) + return; + + if (argc < 3) { + printf("You have to specify a valid voltage (5/3/1.8)\r\n"); + return; + } + ncn8025_get(slotnr, &settings); + if (!strcmp(argv[2], "5")) + settings.vsel = SIM_VOLT_5V0; + else if (!strcmp(argv[2], "3")) + settings.vsel = SIM_VOLT_3V0; + else if (!strcmp(argv[2], "1.8")) + settings.vsel = SIM_VOLT_1V8; + else { + printf("You have to specify a valid voltage (5/3/1.8)\r\n"); + return; + } + ncn8025_set(slotnr, &settings); +} + +DEFUN(sim_led, cmd_sim_led, "sim-led", "Set SIM LED (1=on, 0=off)") +{ + struct ncn8025_settings settings; + int slotnr = validate_slotnr(argc, argv, 1); + + if (slotnr < 0) + return; + + if (argc < 3) { + printf("You have to specify 0=disable or 1=enable\r\n"); + return; + } + ncn8025_get(slotnr, &settings); + if (atoi(argv[2])) + settings.led = true; + else + settings.led = false; + ncn8025_set(slotnr, &settings); +} + + + + + int main(void) { atmel_start_init(); @@ -66,6 +225,12 @@ board_init(); command_init("sysmoOCTSIM> "); command_register(&cmd_hello); + command_register(&cmd_sim_status); + command_register(&cmd_sim_power); + command_register(&cmd_sim_reset); + command_register(&cmd_sim_clkdiv); + command_register(&cmd_sim_voltage); + command_register(&cmd_sim_led); printf("\r\n\r\nsysmocom sysmoOCTSIM\r\n"); while (true) { // main loop diff --git a/sysmoOCTSIM/ncn8025.c b/sysmoOCTSIM/ncn8025.c index 99b93b8..5f9b03d 100644 --- a/sysmoOCTSIM/ncn8025.c +++ b/sysmoOCTSIM/ncn8025.c @@ -8,6 +8,7 @@ #include #include +#include #include #include #include "octsim_i2c.h" @@ -134,3 +135,29 @@ return rc; return ncn8025_set(slot, &def_settings); } + +static const char *volt_str[] = { + [SIM_VOLT_3V0] = "3.0", + [SIM_VOLT_5V0] = "5.0", + [SIM_VOLT_1V8] = "1.8", +}; + +static const unsigned int div_val[] = { + [SIM_CLKDIV_1] = 1, + [SIM_CLKDIV_2] = 2, + [SIM_CLKDIV_4] = 4, + [SIM_CLKDIV_8] = 8, +}; + +void ncn8025_dump(const struct ncn8025_settings *set) +{ + printf("VOLT=%s, CLKDIV=%u", volt_str[set->vsel], div_val[set->clkdiv]); + if (set->rstin) + printf(", RST"); + if (set->cmdvcc) + printf(", VCC"); + if (set->simpres) + printf(", SIMPRES"); + if (set->led) + printf(", LED"); +} diff --git a/sysmoOCTSIM/ncn8025.h b/sysmoOCTSIM/ncn8025.h index a392c5d..79e8b60 100644 --- a/sysmoOCTSIM/ncn8025.h +++ b/sysmoOCTSIM/ncn8025.h @@ -26,3 +26,4 @@ int ncn8025_set(uint8_t slot, const struct ncn8025_settings *set); int ncn8025_get(uint8_t slot, struct ncn8025_settings *set); int ncn8025_init(unsigned int slot); +void ncn8025_dump(const struct ncn8025_settings *set); -- To view, visit https://gerrit.osmocom.org/13037 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Id6131be60d37cba769c79952fa44f3ec6c976a38 Gerrit-Change-Number: 13037 Gerrit-PatchSet: 4 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Wed Feb 27 13:48:43 2019 From: gerrit-no-reply at lists.osmocom.org (=?UTF-8?Q?K=C3=A9vin_Redon?=) Date: Wed, 27 Feb 2019 13:48:43 +0000 Subject: Change in osmo-ccid-firmware[master]: ncn8025: Add support for reading SIMx_INT status In-Reply-To: References: Message-ID: K?vin Redon has submitted this change and it was merged. ( https://gerrit.osmocom.org/13038 ) Change subject: ncn8025: Add support for reading SIMx_INT status ...................................................................... ncn8025: Add support for reading SIMx_INT status Change-Id: Iab9edc1214bb22ee304daa834fd9e2376d42c97c --- M sysmoOCTSIM/ncn8025.c M sysmoOCTSIM/ncn8025.h 2 files changed, 22 insertions(+), 1 deletion(-) Approvals: Jenkins Builder: Verified K?vin Redon: Looks good to me, approved diff --git a/sysmoOCTSIM/ncn8025.c b/sysmoOCTSIM/ncn8025.c index 5f9b03d..61509bc 100644 --- a/sysmoOCTSIM/ncn8025.c +++ b/sysmoOCTSIM/ncn8025.c @@ -11,6 +11,7 @@ #include #include #include +#include "atmel_start_pins.h" #include "octsim_i2c.h" #include "ncn8025.h" @@ -86,6 +87,20 @@ return 0x03; } +static const uint8_t slot2int_pin(unsigned int slot) +{ + static const uint8_t slot2pin[8] = { SIM0_INT, SIM1_INT, SIM2_INT, SIM3_INT, + SIM4_INT, SIM5_INT, SIM6_INT, SIM7_INT }; + ASSERT(slot < ARRAY_SIZE(slot2pin)); + return slot2pin[slot]; +} + +bool ncn8025_interrupt_active(uint8_t slot) +{ + uint8_t pin = slot2int_pin(slot); + return !gpio_get_pin_level(pin); +} + /*! Set a given NCN8025 as described in 'set'. * \param[in] slot Slot number (0..7) @@ -111,7 +126,9 @@ rc = i2c_read_reg(adap, SX1503_ADDR, reg); if (rc < 0) return rc; - return ncn8025_decode(rc, set); + rc = ncn8025_decode(rc, set); + set->interrupt = ncn8025_interrupt_active(slot); + return rc; } /*! default settings we use at start-up: powered off, in reset, slowest clock, 3V */ @@ -156,6 +173,8 @@ printf(", RST"); if (set->cmdvcc) printf(", VCC"); + if (set->interrupt) + printf(", INT"); if (set->simpres) printf(", SIMPRES"); if (set->led) diff --git a/sysmoOCTSIM/ncn8025.h b/sysmoOCTSIM/ncn8025.h index 79e8b60..89b7f86 100644 --- a/sysmoOCTSIM/ncn8025.h +++ b/sysmoOCTSIM/ncn8025.h @@ -19,11 +19,13 @@ bool cmdvcc; /* high: active */ bool simpres; /* high: active */ bool led; /* high: active */ + bool interrupt; /* high: active */ enum ncn8025_sim_clkdiv clkdiv; /* raw 2bit value */ enum ncn8025_sim_voltage vsel; /* raw 2bit value */ }; int ncn8025_set(uint8_t slot, const struct ncn8025_settings *set); int ncn8025_get(uint8_t slot, struct ncn8025_settings *set); +bool ncn8025_interrupt_active(uint8_t slot); int ncn8025_init(unsigned int slot); void ncn8025_dump(const struct ncn8025_settings *set); -- To view, visit https://gerrit.osmocom.org/13038 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ccid-firmware Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iab9edc1214bb22ee304daa834fd9e2376d42c97c Gerrit-Change-Number: 13038 Gerrit-PatchSet: 4 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: K?vin Redon -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Wed Feb 27 14:22:51 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 27 Feb 2019 14:22:51 +0000 (UTC) Subject: =?UTF-8?Q?Jenkins_build_is_back_to_normal_:_master-osmo-trx_=C2=BB_--wit?= =?UTF-8?Q?h-sse,1,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#909?= In-Reply-To: <1288522371.520.1551260520127.JavaMail.jenkins@jenkins.osmocom.org> References: <1288522371.520.1551260520127.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1597385305.522.1551277371995.JavaMail.jenkins@jenkins.osmocom.org> See From gerrit-no-reply at lists.osmocom.org Wed Feb 27 14:41:52 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Wed, 27 Feb 2019 14:41:52 +0000 Subject: Change in osmo-bsc[master]: assignment_fsm: use activate.info.s15_s0 for ASS. COMPL. In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/13039 ) Change subject: assignment_fsm: use activate.info.s15_s0 for ASS. COMPL. ...................................................................... Patch Set 2: > (1 comment) I see the point, however, we should discuss tomorrow how this is should be fixed. -- To view, visit https://gerrit.osmocom.org/13039 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-bsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I9a7b3ce8646d641569eac24e202f44cdb5f67b3d Gerrit-Change-Number: 13039 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Assignee: Neels Hofmeyr Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: dexter Gerrit-Comment-Date: Wed, 27 Feb 2019 14:41:52 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Wed Feb 27 15:10:07 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Wed, 27 Feb 2019 15:10:07 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#414?= In-Reply-To: <510380265.486.1551193806645.JavaMail.jenkins@jenkins.osmocom.org> References: <510380265.486.1551193806645.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1906612510.523.1551280207050.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.69 KB...] + ./configure checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Wed Feb 27 15:18:15 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Wed, 27 Feb 2019 15:18:15 +0000 Subject: Change in gr-gsm[master]: grgsm_livemon: Use the osr variable in all blocks In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/13045 ) Change subject: grgsm_livemon: Use the osr variable in all blocks ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/13045 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: gr-gsm Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I4e85b898f05db636f18fdea6e5fee4fed6e0382a Gerrit-Change-Number: 13045 Gerrit-PatchSet: 1 Gerrit-Owner: Vasil Velichkov Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Piotr Krysik Gerrit-Reviewer: Vadim Yanitskiy Gerrit-Reviewer: Vasil Velichkov Gerrit-CC: Max Gerrit-Comment-Date: Wed, 27 Feb 2019 15:18:15 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From admin at opensuse.org Wed Feb 27 20:04:40 2019 From: admin at opensuse.org (OBS Notification) Date: Wed, 27 Feb 2019 20:04:40 +0000 Subject: Build failure of network:osmocom:nightly/libosmo-netif in xUbuntu_18.10/x86_64 In-Reply-To: References: Message-ID: <5c76ed76bd84a_123ede85f012726a@build.opensuse.org> Visit https://build.opensuse.org/package/live_build_log/network:osmocom:nightly/libosmo-netif/xUbuntu_18.10/x86_64 Package network:osmocom:nightly/libosmo-netif failed to build in xUbuntu_18.10/x86_64 Check out the package for editing: osc checkout network:osmocom:nightly libosmo-netif Last lines of build log: [ 201s] | #define HAVE_INTTYPES_H 1 [ 201s] | #define HAVE_STDINT_H 1 [ 201s] | #define HAVE_UNISTD_H 1 [ 201s] | #define HAVE_DLFCN_H 1 [ 201s] | #define LT_OBJDIR ".libs/" [ 201s] | #define STDC_HEADERS 1 [ 201s] | #define HAVE_EXECINFO_H 1 [ 201s] | #define HAVE_SYS_SELECT_H 1 [ 201s] | #define HAVE_SYS_SOCKET_H 1 [ 201s] | #define HAVE_SYSLOG_H 1 [ 201s] | #define HAVE_CTYPE_H 1 [ 201s] | #define HAVE_LIBSCTP 1 [ 201s] | [ 201s] | configure: exit 0 [ 201s] [ 201s] make[1]: *** [debian/rules:27: override_dh_auto_test] Error 1 [ 201s] make[1]: Leaving directory '/usr/src/packages/BUILD' [ 201s] make: *** [debian/rules:13: build] Error 2 [ 201s] dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 [ 201s] [ 201s] build73 failed "build libosmo-netif_0.4.0.15.af63.dsc" at Wed Feb 27 20:04:26 UTC 2019. [ 201s] [ 201s] ### VM INTERACTION START ### [ 204s] [ 191.302973] sysrq: SysRq : Power Off [ 204s] [ 191.306049] reboot: Power down [ 204s] ### VM INTERACTION END ### [ 204s] [ 204s] build73 failed "build libosmo-netif_0.4.0.15.af63.dsc" at Wed Feb 27 20:04:30 UTC 2019. [ 204s] -- Configure notifications at https://build.opensuse.org/user/notifications openSUSE Build Service (https://build.opensuse.org/) From gerrit-no-reply at lists.osmocom.org Thu Feb 28 05:53:42 2019 From: gerrit-no-reply at lists.osmocom.org (Vadim Yanitskiy) Date: Thu, 28 Feb 2019 05:53:42 +0000 Subject: Change in osmo-msc[master]: libmsc/sgs_vty.c: always write server address and VLR name In-Reply-To: References: Message-ID: Vadim Yanitskiy has posted comments on this change. ( https://gerrit.osmocom.org/13017 ) Change subject: libmsc/sgs_vty.c: always write server address and VLR name ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/13017 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If045e42fca0315b0777eb86c44bf934ce58b340b Gerrit-Change-Number: 13017 Gerrit-PatchSet: 4 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-CC: Neels Hofmeyr Gerrit-Comment-Date: Thu, 28 Feb 2019 05:53:42 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 10:27:13 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Feb 2019 10:27:13 +0000 Subject: Change in docker-playground[master]: PCU: Add SNS tests to [EXECUTE] section of config file Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13079 Change subject: PCU: Add SNS tests to [EXECUTE] section of config file ...................................................................... PCU: Add SNS tests to [EXECUTE] section of config file Change-Id: I82949f75c65877ca8baf1018a335c03731c0a4e9 --- M ttcn3-pcu-test/PCU_Tests.cfg 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/79/13079/1 diff --git a/ttcn3-pcu-test/PCU_Tests.cfg b/ttcn3-pcu-test/PCU_Tests.cfg index 07af661..43ce941 100644 --- a/ttcn3-pcu-test/PCU_Tests.cfg +++ b/ttcn3-pcu-test/PCU_Tests.cfg @@ -21,3 +21,4 @@ [EXECUTE] PCU_Tests_RAW.control +PCU_Tests_RAW_SNS.control -- To view, visit https://gerrit.osmocom.org/13079 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I82949f75c65877ca8baf1018a335c03731c0a4e9 Gerrit-Change-Number: 13079 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 10:30:34 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Feb 2019 10:30:34 +0000 Subject: Change in docker-playground[master]: PCU: Add SNS tests to [EXECUTE] section of config file In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13079 ) Change subject: PCU: Add SNS tests to [EXECUTE] section of config file ...................................................................... Patch Set 1: Verified+1 Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13079 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I82949f75c65877ca8baf1018a335c03731c0a4e9 Gerrit-Change-Number: 13079 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Thu, 28 Feb 2019 10:30:34 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 10:30:35 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Feb 2019 10:30:35 +0000 Subject: Change in docker-playground[master]: PCU: Add SNS tests to [EXECUTE] section of config file In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13079 ) Change subject: PCU: Add SNS tests to [EXECUTE] section of config file ...................................................................... PCU: Add SNS tests to [EXECUTE] section of config file Change-Id: I82949f75c65877ca8baf1018a335c03731c0a4e9 --- M ttcn3-pcu-test/PCU_Tests.cfg 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Harald Welte: Looks good to me, approved; Verified diff --git a/ttcn3-pcu-test/PCU_Tests.cfg b/ttcn3-pcu-test/PCU_Tests.cfg index 07af661..43ce941 100644 --- a/ttcn3-pcu-test/PCU_Tests.cfg +++ b/ttcn3-pcu-test/PCU_Tests.cfg @@ -21,3 +21,4 @@ [EXECUTE] PCU_Tests_RAW.control +PCU_Tests_RAW_SNS.control -- To view, visit https://gerrit.osmocom.org/13079 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: docker-playground Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I82949f75c65877ca8baf1018a335c03731c0a4e9 Gerrit-Change-Number: 13079 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 10:31:09 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Feb 2019 10:31:09 +0000 Subject: Change in osmo-msc[master]: libmsc/sgs_vty.c: always write server address and VLR name In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13017 ) Change subject: libmsc/sgs_vty.c: always write server address and VLR name ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13017 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: If045e42fca0315b0777eb86c44bf934ce58b340b Gerrit-Change-Number: 13017 Gerrit-PatchSet: 4 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-CC: Neels Hofmeyr Gerrit-Comment-Date: Thu, 28 Feb 2019 10:31:09 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 10:31:20 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Feb 2019 10:31:20 +0000 Subject: Change in osmo-msc[master]: libmsc/msc_vty.c: drop dead comparison against null In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13018 ) Change subject: libmsc/msc_vty.c: drop dead comparison against null ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13018 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib2933a20471ebff9dfe1d9fdddf39d177504c951 Gerrit-Change-Number: 13018 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 28 Feb 2019 10:31:20 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 10:31:22 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Feb 2019 10:31:22 +0000 Subject: Change in osmo-msc[master]: libmsc/sgs_vty.c: always write server address and VLR name In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13017 ) Change subject: libmsc/sgs_vty.c: always write server address and VLR name ...................................................................... libmsc/sgs_vty.c: always write server address and VLR name Comparing an array to null is not useful, because the expression will always evaluate as true. Let's just always write SGs server address and VLR name, no mater whether default values are used or not, same as we do for the HLR address and port. Change-Id: If045e42fca0315b0777eb86c44bf934ce58b340b Fixes: CID#190871 Array compared against 0 (NO_EFFECT) --- M src/libmsc/sgs_vty.c M tests/test_nodes.vty 2 files changed, 4 insertions(+), 6 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/libmsc/sgs_vty.c b/src/libmsc/sgs_vty.c index 5b26178..8c94301 100644 --- a/src/libmsc/sgs_vty.c +++ b/src/libmsc/sgs_vty.c @@ -158,12 +158,9 @@ char str_buf[256]; vty_out(vty, "sgs%s", VTY_NEWLINE); - if (sgs->cfg.local_port != SGS_PORT_DEFAULT) - vty_out(vty, " local-port %u%s", sgs->cfg.local_port, VTY_NEWLINE); - if (sgs->cfg.local_addr) - vty_out(vty, " local-ip %s%s", sgs->cfg.local_addr, VTY_NEWLINE); - if (sgs->cfg.vlr_name) - vty_out(vty, " vlr-name %s%s", sgs->cfg.vlr_name, VTY_NEWLINE); + vty_out(vty, " local-port %u%s", sgs->cfg.local_port, VTY_NEWLINE); + vty_out(vty, " local-ip %s%s", sgs->cfg.local_addr, VTY_NEWLINE); + vty_out(vty, " vlr-name %s%s", sgs->cfg.vlr_name, VTY_NEWLINE); for (i = 0; i < ARRAY_SIZE(sgs->cfg.timer); i++) { if (sgs->cfg.timer[i] == sgs_state_timer_defaults[i]) diff --git a/tests/test_nodes.vty b/tests/test_nodes.vty index fb9e5f0..8aceb86 100644 --- a/tests/test_nodes.vty +++ b/tests/test_nodes.vty @@ -147,6 +147,7 @@ remote-ip 127.0.0.1 remote-port 4222 sgs + local-port 29118 local-ip 0.0.0.0 vlr-name vlr.example.net end -- To view, visit https://gerrit.osmocom.org/13017 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: If045e42fca0315b0777eb86c44bf934ce58b340b Gerrit-Change-Number: 13017 Gerrit-PatchSet: 4 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Vadim Yanitskiy Gerrit-CC: Neels Hofmeyr -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 10:31:22 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Feb 2019 10:31:22 +0000 Subject: Change in osmo-msc[master]: libmsc/msc_vty.c: drop dead comparison against null In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13018 ) Change subject: libmsc/msc_vty.c: drop dead comparison against null ...................................................................... libmsc/msc_vty.c: drop dead comparison against null Since vsub->sgs.mme_name is allocated statically, comparing it to null doesn't make sense - it's always != NULL. Change-Id: Ib2933a20471ebff9dfe1d9fdddf39d177504c951 Fixes: CID#178166 Array compared against 0 (NO_EFFECT) --- M src/libmsc/msc_vty.c 1 file changed, 1 insertion(+), 1 deletion(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved Pau Espin Pedrol: Looks good to me, but someone else must approve diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c index 5aa533b..2adb2a4 100644 --- a/src/libmsc/msc_vty.c +++ b/src/libmsc/msc_vty.c @@ -749,7 +749,7 @@ /* SGs related */ vty_out(vty, " SGs-state: %s%s", osmo_fsm_inst_state_name(vsub->sgs_fsm), VTY_NEWLINE); - if (vsub->sgs.mme_name && strlen(vsub->sgs.mme_name)) + if (strlen(vsub->sgs.mme_name)) vty_out(vty, " SGs-MME: %s%s", vsub->sgs.mme_name, VTY_NEWLINE); else vty_out(vty, " SGs-MME: (none)%s", VTY_NEWLINE); -- To view, visit https://gerrit.osmocom.org/13018 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Ib2933a20471ebff9dfe1d9fdddf39d177504c951 Gerrit-Change-Number: 13018 Gerrit-PatchSet: 3 Gerrit-Owner: Vadim Yanitskiy Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Pau Espin Pedrol -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 10:32:13 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Feb 2019 10:32:13 +0000 Subject: Change in libosmo-netif[master]: AMR: add spec reference for AMR frame types In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13077 ) Change subject: AMR: add spec reference for AMR frame types ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13077 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I39a602ae96570c9609680ff67e0946a696091cbe Gerrit-Change-Number: 13077 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Thu, 28 Feb 2019 10:32:13 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 10:41:40 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Feb 2019 10:41:40 +0000 Subject: Change in libosmo-netif[master]: AMR: add define constants for AMR payload length In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13078 ) Change subject: AMR: add define constants for AMR payload length ...................................................................... Patch Set 1: (1 comment) I would also argue the fix and the "cosmetic" change should be separate patches. Thanks! https://gerrit.osmocom.org/#/c/13078/1/include/osmocom/netif/amr.h File include/osmocom/netif/amr.h: https://gerrit.osmocom.org/#/c/13078/1/include/osmocom/netif/amr.h at 86 PS1, Line 86: /* AMR voice frame length (in bytes, rounded), might be good to qualify what kind of length. Length of the AMR codec data after TOC? Length of the RTP payload after RTP header? ... -- To view, visit https://gerrit.osmocom.org/13078 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I65b5da920d58015b875d6dcf17aacdc04b58955e Gerrit-Change-Number: 13078 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Harald Welte Gerrit-Comment-Date: Thu, 28 Feb 2019 10:41:40 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 10:41:43 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Feb 2019 10:41:43 +0000 Subject: Change in libosmo-netif[master]: AMR: add spec reference for AMR frame types In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13077 ) Change subject: AMR: add spec reference for AMR frame types ...................................................................... AMR: add spec reference for AMR frame types Change-Id: I39a602ae96570c9609680ff67e0946a696091cbe --- M include/osmocom/netif/amr.h 1 file changed, 3 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/include/osmocom/netif/amr.h b/include/osmocom/netif/amr.h index b0ab8a3..5b48bcb 100644 --- a/include/osmocom/netif/amr.h +++ b/include/osmocom/netif/amr.h @@ -69,6 +69,9 @@ return (uint8_t *)amrh + sizeof(struct amr_hdr); } +/* AMR voice frame type identifiers + * See also 3GPP TS 26.101, Table 1a: Interpretation of Frame Type, Mode + * Indication and Mode Request fields */ #define AMR_FT_0 0 /* 4.75 */ #define AMR_FT_1 1 /* 5.15 */ #define AMR_FT_2 2 /* 5.90 */ -- To view, visit https://gerrit.osmocom.org/13077 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I39a602ae96570c9609680ff67e0946a696091cbe Gerrit-Change-Number: 13077 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 10:58:48 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Feb 2019 10:58:48 +0000 Subject: Change in libosmo-netif[master]: debian: Add BuildDepends on libpcap0.8-dev Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13080 Change subject: debian: Add BuildDepends on libpcap0.8-dev ...................................................................... debian: Add BuildDepends on libpcap0.8-dev The debian packaging wants to execute "make check" which in turn wants to build the jitterbuffer tests, which in turn require pcap.h to be present, which is provided by libpcap0.8-dev. Closes: OS#3818 Change-Id: Iab471de9fb276a436332241337539eab544f965a --- M debian/control 1 file changed, 1 insertion(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmo-netif refs/changes/80/13080/1 diff --git a/debian/control b/debian/control index b6bc17d..a9a486d 100644 --- a/debian/control +++ b/debian/control @@ -14,6 +14,7 @@ libosmocore-dev, libosmo-abis-dev, pkg-config, + libpcap0.8-dev, libsctp-dev, libortp-dev Standards-Version: 3.9.6 -- To view, visit https://gerrit.osmocom.org/13080 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Iab471de9fb276a436332241337539eab544f965a Gerrit-Change-Number: 13080 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 12:00:45 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Feb 2019 12:00:45 +0000 Subject: Change in libosmo-netif[master]: debian: Add BuildDepends on libpcap0.8-dev In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13080 ) Change subject: debian: Add BuildDepends on libpcap0.8-dev ...................................................................... Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13080 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iab471de9fb276a436332241337539eab544f965a Gerrit-Change-Number: 13080 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Thu, 28 Feb 2019 12:00:45 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 12:00:46 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Feb 2019 12:00:46 +0000 Subject: Change in libosmo-netif[master]: debian: Add BuildDepends on libpcap0.8-dev In-Reply-To: References: Message-ID: Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/13080 ) Change subject: debian: Add BuildDepends on libpcap0.8-dev ...................................................................... debian: Add BuildDepends on libpcap0.8-dev The debian packaging wants to execute "make check" which in turn wants to build the jitterbuffer tests, which in turn require pcap.h to be present, which is provided by libpcap0.8-dev. Closes: OS#3818 Change-Id: Iab471de9fb276a436332241337539eab544f965a --- M debian/control 1 file changed, 1 insertion(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/debian/control b/debian/control index b6bc17d..a9a486d 100644 --- a/debian/control +++ b/debian/control @@ -14,6 +14,7 @@ libosmocore-dev, libosmo-abis-dev, pkg-config, + libpcap0.8-dev, libsctp-dev, libortp-dev Standards-Version: 3.9.6 -- To view, visit https://gerrit.osmocom.org/13080 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iab471de9fb276a436332241337539eab544f965a Gerrit-Change-Number: 13080 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 13:27:19 2019 From: gerrit-no-reply at lists.osmocom.org (Pau Espin Pedrol) Date: Thu, 28 Feb 2019 13:27:19 +0000 Subject: Change in osmo-hlr[master]: hlr.c: move hlr_ctx to the top In-Reply-To: References: Message-ID: Pau Espin Pedrol has posted comments on this change. ( https://gerrit.osmocom.org/13050 ) Change subject: hlr.c: move hlr_ctx to the top ...................................................................... Patch Set 1: Code-Review+1 -- To view, visit https://gerrit.osmocom.org/13050 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-hlr Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5edf0a233ff323a63e321a1ca47736b5b212d1bb Gerrit-Change-Number: 13050 Gerrit-PatchSet: 1 Gerrit-Owner: osmith Gerrit-Reviewer: Daniel Willmann Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Max Gerrit-Reviewer: Neels Hofmeyr Gerrit-Reviewer: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 28 Feb 2019 13:27:19 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 14:07:50 2019 From: gerrit-no-reply at lists.osmocom.org (Keith Whyte) Date: Thu, 28 Feb 2019 14:07:50 +0000 Subject: Change in openbsc[master]: Don't deliver alert notifications to an ESME that is not yet bound. In-Reply-To: References: Message-ID: Keith Whyte has posted comments on this change. ( https://gerrit.osmocom.org/12602 ) Change subject: Don't deliver alert notifications to an ESME that is not yet bound. ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/12602 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0e5d55d3fb6ac46d253902df2fe304e1b0fc8bbf Gerrit-Change-Number: 12602 Gerrit-PatchSet: 2 Gerrit-Owner: Keith Whyte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Harald Welte Gerrit-Comment-Date: Thu, 28 Feb 2019 14:07:50 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 14:11:48 2019 From: gerrit-no-reply at lists.osmocom.org (Keith Whyte) Date: Thu, 28 Feb 2019 14:11:48 +0000 Subject: Change in openbsc[master]: Don't deliver alert notifications to an ESME that is not yet bound. In-Reply-To: References: Message-ID: Keith Whyte has posted comments on this change. ( https://gerrit.osmocom.org/12602 ) Change subject: Don't deliver alert notifications to an ESME that is not yet bound. ...................................................................... Patch Set 2: (1 comment) https://gerrit.osmocom.org/#/c/12602/2/openbsc/src/libmsc/smpp_openbsc.c File openbsc/src/libmsc/smpp_openbsc.c: https://gerrit.osmocom.org/#/c/12602/2/openbsc/src/libmsc/smpp_openbsc.c at 283 PS2, Line 283: if (!esme->bind_flags) { note that without this patch, the program will crash at line 288 because esme->acl is not initialised. -- To view, visit https://gerrit.osmocom.org/12602 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0e5d55d3fb6ac46d253902df2fe304e1b0fc8bbf Gerrit-Change-Number: 12602 Gerrit-PatchSet: 2 Gerrit-Owner: Keith Whyte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Keith Whyte Gerrit-CC: Harald Welte Gerrit-Comment-Date: Thu, 28 Feb 2019 14:11:48 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 14:17:37 2019 From: gerrit-no-reply at lists.osmocom.org (Keith Whyte) Date: Thu, 28 Feb 2019 14:17:37 +0000 Subject: Change in osmo-msc[master]: Don't deliver alert notifications to ESME not yet bound. In-Reply-To: References: Message-ID: Keith Whyte has posted comments on this change. ( https://gerrit.osmocom.org/12599 ) Change subject: Don't deliver alert notifications to ESME not yet bound. ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/12599 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iec92d4c145ca050c2e212139572eeaae581b99df Gerrit-Change-Number: 12599 Gerrit-PatchSet: 3 Gerrit-Owner: Keith Whyte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Keith Whyte Gerrit-CC: Harald Welte Gerrit-Comment-Date: Thu, 28 Feb 2019 14:17:37 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 14:29:13 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 28 Feb 2019 14:29:13 +0000 Subject: Change in libosmocore[master]: gsm0808_utils: fix gsm48 multirate configuration generator Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/13081 Change subject: gsm0808_utils: fix gsm48 multirate configuration generator ...................................................................... gsm0808_utils: fix gsm48 multirate configuration generator The function gsm0808_sc_cfg_from_gsm48_mr_cfg() takes an S15 to S0 bitmask and converts that bitmask into an AMR multirate configuration struct. Unfortunately the current implementation implements 3GPP TS 28.062, Table 7.11.3.1.3-2 wrongly in some aspects. Lets fix this. - Fix wrong interpretation of the bitpatterns - 5,15K is invalid and must never be selected - Make sure that no more than 4 rates are selected in the active set - Extend unit-test Change-Id: I6fd7f4073b84093742c322752f2fd878d1071e15 Related: SYS#4470 --- M include/osmocom/gsm/gsm0808_utils.h M include/osmocom/gsm/protocol/gsm_08_08.h M src/gsm/gsm0808_utils.c M tests/gsm0808/gsm0808_test.c M tests/gsm0808/gsm0808_test.ok 5 files changed, 306 insertions(+), 62 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/81/13081/1 diff --git a/include/osmocom/gsm/gsm0808_utils.h b/include/osmocom/gsm/gsm0808_utils.h index 2b48be7..4967987 100644 --- a/include/osmocom/gsm/gsm0808_utils.h +++ b/include/osmocom/gsm/gsm0808_utils.h @@ -127,7 +127,7 @@ int gsm0808_speech_codec_from_chan_type(struct gsm0808_speech_codec *sc, uint8_t perm_spch); uint16_t gsm0808_sc_cfg_from_gsm48_mr_cfg(const struct gsm48_multi_rate_conf *cfg, bool fr); -void gsm48_mr_cfg_from_gsm0808_sc_cfg(struct gsm48_multi_rate_conf *cfg, uint16_t s15_s0); +int gsm48_mr_cfg_from_gsm0808_sc_cfg(struct gsm48_multi_rate_conf *cfg, uint16_t s15_s0); /*! \returns 3GPP TS 08.08 ?3.2.2.5 Class of a given Cause */ static inline enum gsm0808_cause_class gsm0808_cause_class(enum gsm0808_cause cause) diff --git a/include/osmocom/gsm/protocol/gsm_08_08.h b/include/osmocom/gsm/protocol/gsm_08_08.h index 67dc6ee..aa01ee5 100644 --- a/include/osmocom/gsm/protocol/gsm_08_08.h +++ b/include/osmocom/gsm/protocol/gsm_08_08.h @@ -553,6 +553,20 @@ GSM0808_SC_CFG_DEFAULT_AMR_12_2 = 0xc082 }; +/*! Single speech codec configurations broken down by reate. + * See also: 3GPP TS 28.062, Table 7.11.3.1.3-2: Preferred Configurations for + * the Adaptive Multi-Rate Codec Types. */ +enum gsm0808_speech_codec_rate { + GSM0808_SC_CFG_AMR_4_75 = 0x0001, + GSM0808_SC_CFG_AMR_4_75_5_90_7_40_12_20 = 0x0002, + GSM0808_SC_CFG_AMR_5_90 = 0x0004, + GSM0808_SC_CFG_AMR_6_70 = 0x0008, + GSM0808_SC_CFG_AMR_7_40 = 0x0010, + GSM0808_SC_CFG_AMR_7_95 = 0x0020, + GSM0808_SC_CFG_AMR_10_2 = 0x0040, + GSM0808_SC_CFG_AMR_12_2 = 0x0080, +}; + /* 3GPP TS 48.008 3.2.2.103 Speech Codec List */ #define SPEECH_CODEC_MAXLEN 255 struct gsm0808_speech_codec_list { diff --git a/src/gsm/gsm0808_utils.c b/src/gsm/gsm0808_utils.c index 606899e..6b7a8ef 100644 --- a/src/gsm/gsm0808_utils.c +++ b/src/gsm/gsm0808_utils.c @@ -1346,42 +1346,82 @@ /*! Determine a GSM 04.08 AMR configuration struct from a set of speech codec * configuration bits (S0-S15) * \param[out] cfg AMR configuration in GSM 04.08 format. - * \param[in] s15_s0 configuration bits (S0-S15). */ -void gsm48_mr_cfg_from_gsm0808_sc_cfg(struct gsm48_multi_rate_conf *cfg, - uint16_t s15_s0) + * \param[in] s15_s0 configuration bits (S15-S0). + * \returns zero when successful; negative on error */ +int gsm48_mr_cfg_from_gsm0808_sc_cfg(struct gsm48_multi_rate_conf *cfg, + uint16_t s15_s0) { + unsigned int count = 0; + + /* Note: See also: 3GPP TS 28.062 + * Table 7.11.3.1.3-2: Preferred Configurations for the Adaptive + * Multi-Rate Codec Types */ + memset(cfg, 0, sizeof(*cfg)); /* Strip option bits */ s15_s0 &= 0x00ff; - /* Rate 5,15k must always be present */ - cfg->m5_15 = 1; + /* Rate 5,15k can never be selected (see table) */ + cfg->m5_15 = 0; - if ((s15_s0 & GSM0808_SC_CFG_DEFAULT_AMR_4_75 & 0xff) == - (GSM0808_SC_CFG_DEFAULT_AMR_4_75 & 0xff)) + if (s15_s0 & GSM0808_SC_CFG_AMR_4_75_5_90_7_40_12_20 & 0xff) { + /* Table Table 7.11.3.1.3-2 lists one mode that selects 4 + * rates at once (Config-NB-Code = 1). The rates selected + * are known to be compatible between GERAN and UTRAN, since + * an active set must not contain more than four rates at + * a time, we ignore all other settings as they are either + * redundaned or excess settings (invalid) */ cfg->m4_75 = 1; - if ((s15_s0 & GSM0808_SC_CFG_DEFAULT_AMR_5_90 & 0xff) == - (GSM0808_SC_CFG_DEFAULT_AMR_5_90 & 0xff)) cfg->m5_90 = 1; - if ((s15_s0 & GSM0808_SC_CFG_DEFAULT_AMR_6_70 & 0xff) == - (GSM0808_SC_CFG_DEFAULT_AMR_6_70 & 0xff)) - cfg->m6_70 = 1; - if ((s15_s0 & GSM0808_SC_CFG_DEFAULT_AMR_7_40 & 0xff) == - (GSM0808_SC_CFG_DEFAULT_AMR_7_40 & 0xff)) cfg->m7_40 = 1; - if ((s15_s0 & GSM0808_SC_CFG_DEFAULT_AMR_7_95 & 0xff) == - (GSM0808_SC_CFG_DEFAULT_AMR_7_95 & 0xff)) - cfg->m7_95 = 1; - if ((s15_s0 & GSM0808_SC_CFG_DEFAULT_AMR_10_2 & 0xff) == - (GSM0808_SC_CFG_DEFAULT_AMR_10_2 & 0xff)) - cfg->m10_2 = 1; - if ((s15_s0 & GSM0808_SC_CFG_DEFAULT_AMR_12_2 & 0xff) == - (GSM0808_SC_CFG_DEFAULT_AMR_12_2 & 0xff)) cfg->m12_2 = 1; + count += 4; + } + + /* Check the bits in s15_s0 and set the flags for the + * respective rates. */ + if (s15_s0 & GSM0808_SC_CFG_AMR_4_75 && !cfg->m4_75) { + cfg->m4_75 = 1; + count++; + } + if (s15_s0 & GSM0808_SC_CFG_AMR_5_90 && !cfg->m5_90) { + cfg->m5_90 = 1; + count++; + } + if (s15_s0 & GSM0808_SC_CFG_AMR_6_70) { + cfg->m6_70 = 1; + count++; + } + if (s15_s0 & GSM0808_SC_CFG_AMR_7_40 && !cfg->m7_40) { + cfg->m7_40 = 1; + count++; + } + if (s15_s0 & GSM0808_SC_CFG_AMR_7_95) { + cfg->m7_95 = 1; + count++; + } + if (s15_s0 & GSM0808_SC_CFG_AMR_10_2) { + cfg->m10_2 = 1; + count++; + } + if (s15_s0 & GSM0808_SC_CFG_AMR_12_2 && !cfg->m12_2) { + cfg->m12_2 = 1; + count++; + } + + /* The resulting multirate-configuration must not contain an active + * set of more than four codec rates. The active set also must contain + * at least one rate. */ + if (count > 4) + return -EINVAL; + if (count == 0) + return -EINVAL; cfg->ver = 1; cfg->icmi = 1; + + return 0; } int gsm0808_get_cipher_reject_cause(const struct tlv_parsed *tp) diff --git a/tests/gsm0808/gsm0808_test.c b/tests/gsm0808/gsm0808_test.c index af90d00..def7771 100644 --- a/tests/gsm0808/gsm0808_test.c +++ b/tests/gsm0808/gsm0808_test.c @@ -1907,12 +1907,13 @@ static void test_gsm48_mr_cfg_from_gsm0808_sc_cfg_single(uint16_t s15_s0) { struct gsm48_multi_rate_conf cfg; + int rc; printf("Input:\n"); printf(" S15-S0 = %04x = 0b" OSMO_BIN_SPEC OSMO_BIN_SPEC "\n", s15_s0, OSMO_BIN_PRINT(s15_s0 >> 8), OSMO_BIN_PRINT(s15_s0)); - gsm48_mr_cfg_from_gsm0808_sc_cfg(&cfg, s15_s0); + rc = gsm48_mr_cfg_from_gsm0808_sc_cfg(&cfg, s15_s0); printf("Output:\n"); printf(" m4_75= %u smod= %u\n", cfg.m4_75, cfg.smod); @@ -1924,6 +1925,9 @@ printf(" m10_2= %u\n", cfg.m10_2); printf(" m12_2= %u\n", cfg.m12_2); + if (rc != 0) + printf(" Result invalid!\n"); + printf("\n"); } @@ -1931,7 +1935,8 @@ { printf("Testing gsm48_mr_cfg_from_gsm0808_sc_cfg():\n"); - /* Only one codec per setting */ + /* Test with settings as defined in 3GPP TS 28.062, Table 7.11.3.1.3-2, + * (up to four codecs may become selected) */ test_gsm48_mr_cfg_from_gsm0808_sc_cfg_single (GSM0808_SC_CFG_DEFAULT_AMR_4_75); test_gsm48_mr_cfg_from_gsm0808_sc_cfg_single @@ -1949,15 +1954,40 @@ test_gsm48_mr_cfg_from_gsm0808_sc_cfg_single (GSM0808_SC_CFG_DEFAULT_AMR_12_2); - /* Combinations */ + /* Test with settings as defined in 3GPP TS 28.062, Table 7.11.3.1.3-2, + * but pick only one distinctive setting at a time */ + test_gsm48_mr_cfg_from_gsm0808_sc_cfg_single(GSM0808_SC_CFG_AMR_4_75); test_gsm48_mr_cfg_from_gsm0808_sc_cfg_single - (GSM0808_SC_CFG_DEFAULT_AMR_4_75 | GSM0808_SC_CFG_DEFAULT_AMR_6_70 | - GSM0808_SC_CFG_DEFAULT_AMR_10_2); + (GSM0808_SC_CFG_AMR_4_75_5_90_7_40_12_20); + test_gsm48_mr_cfg_from_gsm0808_sc_cfg_single(GSM0808_SC_CFG_AMR_5_90); + test_gsm48_mr_cfg_from_gsm0808_sc_cfg_single(GSM0808_SC_CFG_AMR_6_70); + test_gsm48_mr_cfg_from_gsm0808_sc_cfg_single(GSM0808_SC_CFG_AMR_7_40); + test_gsm48_mr_cfg_from_gsm0808_sc_cfg_single(GSM0808_SC_CFG_AMR_7_95); + test_gsm48_mr_cfg_from_gsm0808_sc_cfg_single(GSM0808_SC_CFG_AMR_10_2); + test_gsm48_mr_cfg_from_gsm0808_sc_cfg_single(GSM0808_SC_CFG_AMR_12_2); + + /* Arbitrary, but valid combinations */ + test_gsm48_mr_cfg_from_gsm0808_sc_cfg_single(GSM0808_SC_CFG_AMR_7_40 | + GSM0808_SC_CFG_AMR_6_70 | + GSM0808_SC_CFG_AMR_10_2); + test_gsm48_mr_cfg_from_gsm0808_sc_cfg_single(GSM0808_SC_CFG_AMR_7_95 | + GSM0808_SC_CFG_AMR_4_75); + test_gsm48_mr_cfg_from_gsm0808_sc_cfg_single(GSM0808_SC_CFG_AMR_5_90 | + GSM0808_SC_CFG_AMR_12_2); test_gsm48_mr_cfg_from_gsm0808_sc_cfg_single - (GSM0808_SC_CFG_DEFAULT_AMR_10_2 | GSM0808_SC_CFG_DEFAULT_AMR_12_2 | - GSM0808_SC_CFG_DEFAULT_AMR_7_40); + (GSM0808_SC_CFG_AMR_4_75_5_90_7_40_12_20 | GSM0808_SC_CFG_AMR_5_90 | + GSM0808_SC_CFG_AMR_12_2); + + /* Invalid combinations */ test_gsm48_mr_cfg_from_gsm0808_sc_cfg_single - (GSM0808_SC_CFG_DEFAULT_AMR_7_95 | GSM0808_SC_CFG_DEFAULT_AMR_12_2); + (GSM0808_SC_CFG_AMR_4_75_5_90_7_40_12_20 | GSM0808_SC_CFG_AMR_6_70); + test_gsm48_mr_cfg_from_gsm0808_sc_cfg_single(GSM0808_SC_CFG_AMR_7_40 | + GSM0808_SC_CFG_AMR_6_70 | + GSM0808_SC_CFG_AMR_10_2 | + GSM0808_SC_CFG_AMR_7_95 | + GSM0808_SC_CFG_AMR_4_75); + test_gsm48_mr_cfg_from_gsm0808_sc_cfg_single(0x0000); + test_gsm48_mr_cfg_from_gsm0808_sc_cfg_single(0xffff); } struct test_cell_id_matching_data { @@ -2292,7 +2322,6 @@ test_gsm0808_enc_dec_cell_id_ci(); test_gsm0808_enc_dec_cell_id_lac_and_ci(); test_gsm0808_enc_dec_cell_id_global(); - test_gsm0808_sc_cfg_from_gsm48_mr_cfg(); test_gsm48_mr_cfg_from_gsm0808_sc_cfg(); diff --git a/tests/gsm0808/gsm0808_test.ok b/tests/gsm0808/gsm0808_test.ok index e7df007..b26a0a1 100644 --- a/tests/gsm0808/gsm0808_test.ok +++ b/tests/gsm0808/gsm0808_test.ok @@ -315,43 +315,44 @@ S15-S0 = ff03 = 0b1111111100000011 Output: m4_75= 1 smod= 0 - m5_15= 1 spare= 0 - m5_90= 0 icmi= 1 + m5_15= 0 spare= 0 + m5_90= 1 icmi= 1 m6_70= 0 nscb= 0 - m7_40= 0 ver= 1 + m7_40= 1 ver= 1 m7_95= 0 m10_2= 0 - m12_2= 0 + m12_2= 1 Input: S15-S0 = 0000 = 0b0000000000000000 Output: m4_75= 0 smod= 0 - m5_15= 1 spare= 0 - m5_90= 0 icmi= 1 + m5_15= 0 spare= 0 + m5_90= 0 icmi= 0 m6_70= 0 nscb= 0 - m7_40= 0 ver= 1 + m7_40= 0 ver= 0 m7_95= 0 m10_2= 0 m12_2= 0 + Result invalid! Input: S15-S0 = ff06 = 0b1111111100000110 Output: - m4_75= 0 smod= 0 - m5_15= 1 spare= 0 + m4_75= 1 smod= 0 + m5_15= 0 spare= 0 m5_90= 1 icmi= 1 m6_70= 0 nscb= 0 - m7_40= 0 ver= 1 + m7_40= 1 ver= 1 m7_95= 0 m10_2= 0 - m12_2= 0 + m12_2= 1 Input: S15-S0 = 3e08 = 0b0011111000001000 Output: m4_75= 0 smod= 0 - m5_15= 1 spare= 0 + m5_15= 0 spare= 0 m5_90= 0 icmi= 1 m6_70= 1 nscb= 0 m7_40= 0 ver= 1 @@ -362,20 +363,20 @@ Input: S15-S0 = 0c12 = 0b0000110000010010 Output: - m4_75= 0 smod= 0 - m5_15= 1 spare= 0 - m5_90= 0 icmi= 1 + m4_75= 1 smod= 0 + m5_15= 0 spare= 0 + m5_90= 1 icmi= 1 m6_70= 0 nscb= 0 m7_40= 1 ver= 1 m7_95= 0 m10_2= 0 - m12_2= 0 + m12_2= 1 Input: S15-S0 = c020 = 0b1100000000100000 Output: m4_75= 0 smod= 0 - m5_15= 1 spare= 0 + m5_15= 0 spare= 0 m5_90= 0 icmi= 1 m6_70= 0 nscb= 0 m7_40= 0 ver= 1 @@ -387,7 +388,7 @@ S15-S0 = 3040 = 0b0011000001000000 Output: m4_75= 0 smod= 0 - m5_15= 1 spare= 0 + m5_15= 0 spare= 0 m5_90= 0 icmi= 1 m6_70= 0 nscb= 0 m7_40= 0 ver= 1 @@ -398,51 +399,211 @@ Input: S15-S0 = c082 = 0b1100000010000010 Output: - m4_75= 0 smod= 0 - m5_15= 1 spare= 0 - m5_90= 0 icmi= 1 + m4_75= 1 smod= 0 + m5_15= 0 spare= 0 + m5_90= 1 icmi= 1 m6_70= 0 nscb= 0 - m7_40= 0 ver= 1 + m7_40= 1 ver= 1 m7_95= 0 m10_2= 0 m12_2= 1 Input: - S15-S0 = ff4b = 0b1111111101001011 + S15-S0 = 0001 = 0b0000000000000001 Output: m4_75= 1 smod= 0 - m5_15= 1 spare= 0 + m5_15= 0 spare= 0 + m5_90= 0 icmi= 1 + m6_70= 0 nscb= 0 + m7_40= 0 ver= 1 + m7_95= 0 + m10_2= 0 + m12_2= 0 + +Input: + S15-S0 = 0002 = 0b0000000000000010 +Output: + m4_75= 1 smod= 0 + m5_15= 0 spare= 0 + m5_90= 1 icmi= 1 + m6_70= 0 nscb= 0 + m7_40= 1 ver= 1 + m7_95= 0 + m10_2= 0 + m12_2= 1 + +Input: + S15-S0 = 0004 = 0b0000000000000100 +Output: + m4_75= 0 smod= 0 + m5_15= 0 spare= 0 + m5_90= 1 icmi= 1 + m6_70= 0 nscb= 0 + m7_40= 0 ver= 1 + m7_95= 0 + m10_2= 0 + m12_2= 0 + +Input: + S15-S0 = 0008 = 0b0000000000001000 +Output: + m4_75= 0 smod= 0 + m5_15= 0 spare= 0 m5_90= 0 icmi= 1 m6_70= 1 nscb= 0 m7_40= 0 ver= 1 m7_95= 0 + m10_2= 0 + m12_2= 0 + +Input: + S15-S0 = 0010 = 0b0000000000010000 +Output: + m4_75= 0 smod= 0 + m5_15= 0 spare= 0 + m5_90= 0 icmi= 1 + m6_70= 0 nscb= 0 + m7_40= 1 ver= 1 + m7_95= 0 + m10_2= 0 + m12_2= 0 + +Input: + S15-S0 = 0020 = 0b0000000000100000 +Output: + m4_75= 0 smod= 0 + m5_15= 0 spare= 0 + m5_90= 0 icmi= 1 + m6_70= 0 nscb= 0 + m7_40= 0 ver= 1 + m7_95= 1 + m10_2= 0 + m12_2= 0 + +Input: + S15-S0 = 0040 = 0b0000000001000000 +Output: + m4_75= 0 smod= 0 + m5_15= 0 spare= 0 + m5_90= 0 icmi= 1 + m6_70= 0 nscb= 0 + m7_40= 0 ver= 1 + m7_95= 0 m10_2= 1 m12_2= 0 Input: - S15-S0 = fcd2 = 0b1111110011010010 + S15-S0 = 0080 = 0b0000000010000000 Output: m4_75= 0 smod= 0 - m5_15= 1 spare= 0 + m5_15= 0 spare= 0 m5_90= 0 icmi= 1 m6_70= 0 nscb= 0 - m7_40= 1 ver= 1 + m7_40= 0 ver= 1 m7_95= 0 - m10_2= 1 + m10_2= 0 m12_2= 1 Input: - S15-S0 = c0a2 = 0b1100000010100010 + S15-S0 = 0058 = 0b0000000001011000 Output: m4_75= 0 smod= 0 - m5_15= 1 spare= 0 + m5_15= 0 spare= 0 + m5_90= 0 icmi= 1 + m6_70= 1 nscb= 0 + m7_40= 1 ver= 1 + m7_95= 0 + m10_2= 1 + m12_2= 0 + +Input: + S15-S0 = 0021 = 0b0000000000100001 +Output: + m4_75= 1 smod= 0 + m5_15= 0 spare= 0 m5_90= 0 icmi= 1 m6_70= 0 nscb= 0 m7_40= 0 ver= 1 m7_95= 1 m10_2= 0 + m12_2= 0 + +Input: + S15-S0 = 0084 = 0b0000000010000100 +Output: + m4_75= 0 smod= 0 + m5_15= 0 spare= 0 + m5_90= 1 icmi= 1 + m6_70= 0 nscb= 0 + m7_40= 0 ver= 1 + m7_95= 0 + m10_2= 0 m12_2= 1 +Input: + S15-S0 = 0086 = 0b0000000010000110 +Output: + m4_75= 1 smod= 0 + m5_15= 0 spare= 0 + m5_90= 1 icmi= 1 + m6_70= 0 nscb= 0 + m7_40= 1 ver= 1 + m7_95= 0 + m10_2= 0 + m12_2= 1 + +Input: + S15-S0 = 000a = 0b0000000000001010 +Output: + m4_75= 1 smod= 0 + m5_15= 0 spare= 0 + m5_90= 1 icmi= 0 + m6_70= 1 nscb= 0 + m7_40= 1 ver= 0 + m7_95= 0 + m10_2= 0 + m12_2= 1 + Result invalid! + +Input: + S15-S0 = 0079 = 0b0000000001111001 +Output: + m4_75= 1 smod= 0 + m5_15= 0 spare= 0 + m5_90= 0 icmi= 0 + m6_70= 1 nscb= 0 + m7_40= 1 ver= 0 + m7_95= 1 + m10_2= 1 + m12_2= 0 + Result invalid! + +Input: + S15-S0 = 0000 = 0b0000000000000000 +Output: + m4_75= 0 smod= 0 + m5_15= 0 spare= 0 + m5_90= 0 icmi= 0 + m6_70= 0 nscb= 0 + m7_40= 0 ver= 0 + m7_95= 0 + m10_2= 0 + m12_2= 0 + Result invalid! + +Input: + S15-S0 = ffff = 0b1111111111111111 +Output: + m4_75= 1 smod= 0 + m5_15= 0 spare= 0 + m5_90= 1 icmi= 0 + m6_70= 1 nscb= 0 + m7_40= 1 ver= 0 + m7_95= 1 + m10_2= 1 + m12_2= 1 + Result invalid! + test_cell_id_matching [0] LAC:23 LAC:23 MATCH -- To view, visit https://gerrit.osmocom.org/13081 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I6fd7f4073b84093742c322752f2fd878d1071e15 Gerrit-Change-Number: 13081 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 15:09:23 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 28 Feb 2019 15:09:23 +0000 Subject: Change in osmo-mgw[master]: AMR: Add option to convert between bw-effient and octet aligned mode Message-ID: dexter has uploaded this change for review. ( https://gerrit.osmocom.org/13082 Change subject: AMR: Add option to convert between bw-effient and octet aligned mode ...................................................................... AMR: Add option to convert between bw-effient and octet aligned mode RFC3267 specifies two framing modes for AMR packets. An octet aligned mode is specified where all fields of the AMR packets are aligned to octet boundaries. The second framing mode is the bandwith efficient mode where the fields are directly packed one after another. Which format is used is usually communicated by out of band means, however it is still possible to distinguish the framing mode by looking at the frame. Once the framing mode is distinguished, the packet can be converted into the opposite framing mode. - Add new VTY rtp-patch options - Add conversion function Change-Id: Id46a3622a6b1995d5fce4bc611d409bcb4aef13b Depends: libosmo-netif I5b5a0fa644d8dbb1f04f9d7e35312683c7b3d196 Related: OS#3807 --- M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_internal.h M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_vty.c 5 files changed, 82 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/82/13082/1 diff --git a/include/osmocom/mgcp/mgcp.h b/include/osmocom/mgcp/mgcp.h index 5886a65..4c5ec7d 100644 --- a/include/osmocom/mgcp/mgcp.h +++ b/include/osmocom/mgcp/mgcp.h @@ -191,6 +191,7 @@ int force_constant_ssrc; /* 0: don't, 1: once */ int force_aligned_timing; bool rfc5993_hr_convert; + bool amr_oa_bwe_convert; /* spec handling */ int force_realloc; diff --git a/include/osmocom/mgcp/mgcp_internal.h b/include/osmocom/mgcp/mgcp_internal.h index a6239c2..c82c5e1 100644 --- a/include/osmocom/mgcp/mgcp_internal.h +++ b/include/osmocom/mgcp/mgcp_internal.h @@ -129,6 +129,7 @@ /* should we perform align_rtp_timestamp_offset() (1) or not (0) */ int force_aligned_timing; bool rfc5993_hr_convert; + bool amr_oa_bwe_convert; /* Each end has a separate socket for RTP and RTCP */ struct osmo_fd rtp; diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c index 33738bc..ce9949f 100644 --- a/src/libosmo-mgcp/mgcp_network.c +++ b/src/libosmo-mgcp/mgcp_network.c @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -686,6 +687,40 @@ } } +/* For AMR RTP two framing modes are defined RFC3267. There is a bandwith + * efficient encoding scheme where all fields are packed together one after + * another and an octet aligned mode where all fields are aligned to octet + * boundaries. This function is used to convert between the two modes */ +static void amr_oa_bwe_convert(struct mgcp_endpoint *endp, char *data, int *len) +{ + /* NOTE: *data has an overall length of RTP_BUF_SIZE, so there is + * plenty of space available to store the slightly larger, converted + * data */ + + struct rtp_hdr *rtp_hdr; + unsigned int payload_len; + int rc; + + OSMO_ASSERT(*len >= sizeof(struct rtp_hdr)); + rtp_hdr = (struct rtp_hdr *)data; + + payload_len = *len - sizeof(struct rtp_hdr); + + if (osmo_amr_is_oa(rtp_hdr->data, payload_len)) + rc = osmo_amr_oa_to_bwe(rtp_hdr->data, payload_len); + else + rc = osmo_amr_bwe_to_oa(rtp_hdr->data, payload_len); + + if (rc < 0) { + LOGP(DRTP, LOGL_ERROR, + "endpoint:0x%x AMR RTP packet conversion failed\n", + ENDPOINT_NUMBER(endp)); + return; + } + + *len = rc + sizeof(struct rtp_hdr); +} + /* Forward data to a debug tap. This is debug function that is intended for * debugging the voice traffic with tools like gstreamer */ static void forward_data(int fd, struct mgcp_rtp_tap *tap, const char *buf, @@ -799,6 +834,11 @@ "GSM-HR-08") == 0) rfc5993_hr_convert(endp, buf, &buflen); + else if (rtp_end->amr_oa_bwe_convert + && strcmp(conn_src->end.codec->subtype_name, + "AMR") == 0) + amr_oa_bwe_convert(endp, buf, &buflen); + LOGP(DRTP, LOGL_DEBUG, "endpoint:0x%x process/send to %s %s " "rtp_port:%u rtcp_port:%u\n", diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c index 82db02f..77f75de 100644 --- a/src/libosmo-mgcp/mgcp_protocol.c +++ b/src/libosmo-mgcp/mgcp_protocol.c @@ -653,6 +653,7 @@ rtp->force_aligned_timing = tcfg->force_aligned_timing; rtp->force_constant_ssrc = patch_ssrc ? 1 : 0; rtp->rfc5993_hr_convert = tcfg->rfc5993_hr_convert; + rtp->amr_oa_bwe_convert = tcfg->amr_oa_bwe_convert; LOGP(DLMGCP, LOGL_DEBUG, "Configuring RTP endpoint: local port %d%s%s\n", diff --git a/src/libosmo-mgcp/mgcp_vty.c b/src/libosmo-mgcp/mgcp_vty.c index a47376b..803853e 100644 --- a/src/libosmo-mgcp/mgcp_vty.c +++ b/src/libosmo-mgcp/mgcp_vty.c @@ -38,6 +38,7 @@ #define RTP_PATCH_STR "Modify RTP packet header in both directions\n" #define RTP_KEEPALIVE_STR "Send dummy UDP packet to net RTP destination\n" #define RTP_TS101318_RFC5993_CONV_STR "Convert GSM-HR from TS101318 to RFC5993 and vice versa\n" +#define RTP_AMR_OA_BWE_CONV_STR "Convert AMR from octet-aligned to bandwith-efficient mode and vice versa\n" static struct mgcp_config *g_cfg = NULL; @@ -744,6 +745,22 @@ return CMD_SUCCESS; } +DEFUN(cfg_mgcp_patch_rtp_amr_oa_bwe, + cfg_mgcp_patch_rtp_amr_oa_bwe_cmd, + "rtp-patch amr-oa-bwe", RTP_PATCH_STR RTP_AMR_OA_BWE_CONV_STR) +{ + g_cfg->trunk.amr_oa_bwe_convert = true; + return CMD_SUCCESS; +} + +DEFUN(cfg_mgcp_no_patch_rtp_amr_oa_bwe, + cfg_mgcp_no_patch_rtp_amr_oa_bwe_cmd, + "no rtp-patch amr-oa-bwe", NO_STR RTP_PATCH_STR RTP_AMR_OA_BWE_CONV_STR) +{ + g_cfg->trunk.amr_oa_bwe_convert = false; + return CMD_SUCCESS; +} + DEFUN(cfg_mgcp_no_patch_rtp, cfg_mgcp_no_patch_rtp_cmd, "no rtp-patch", NO_STR RTP_PATCH_STR) { @@ -1040,6 +1057,24 @@ return CMD_SUCCESS; } +DEFUN(cfg_trunk_patch_rtp_amr_oa_bwe, + cfg_trunk_patch_rtp_amr_oa_bwe_cmd, + "rtp-patch amr-oa-bwe", RTP_PATCH_STR RTP_AMR_OA_BWE_CONV_STR) +{ + struct mgcp_trunk_config *trunk = vty->index; + trunk->amr_oa_bwe_convert = true; + return CMD_SUCCESS; +} + +DEFUN(cfg_trunk_no_patch_rtp_amr_oa_bwe, + cfg_trunk_no_patch_rtp_amr_oa_bwe_cmd, + "no rtp-patch amr-oa-bwe", NO_STR RTP_PATCH_STR RTP_AMR_OA_BWE_CONV_STR) +{ + struct mgcp_trunk_config *trunk = vty->index; + trunk->amr_oa_bwe_convert = false; + return CMD_SUCCESS; +} + DEFUN(cfg_trunk_no_patch_rtp, cfg_trunk_no_patch_rtp_cmd, "no rtp-patch", NO_STR RTP_PATCH_STR) { @@ -1448,6 +1483,8 @@ install_element(MGCP_NODE, &cfg_mgcp_no_patch_rtp_cmd); install_element(MGCP_NODE, &cfg_mgcp_patch_rtp_rfc5993hr_cmd); install_element(MGCP_NODE, &cfg_mgcp_no_patch_rtp_rfc5993hr_cmd); + install_element(MGCP_NODE, &cfg_mgcp_patch_rtp_amr_oa_bwe_cmd); + install_element(MGCP_NODE, &cfg_mgcp_no_patch_rtp_amr_oa_bwe_cmd); install_element(MGCP_NODE, &cfg_mgcp_sdp_fmtp_extra_cmd); install_element(MGCP_NODE, &cfg_mgcp_sdp_payload_send_ptime_cmd); install_element(MGCP_NODE, &cfg_mgcp_no_sdp_payload_send_ptime_cmd); @@ -1481,6 +1518,8 @@ install_element(TRUNK_NODE, &cfg_trunk_patch_rtp_ts_cmd); install_element(TRUNK_NODE, &cfg_trunk_patch_rtp_rfc5993hr_cmd); install_element(TRUNK_NODE, &cfg_trunk_no_patch_rtp_rfc5993hr_cmd); + install_element(TRUNK_NODE, &cfg_trunk_patch_rtp_amr_oa_bwe_cmd); + install_element(TRUNK_NODE, &cfg_trunk_no_patch_rtp_amr_oa_bwe_cmd); install_element(TRUNK_NODE, &cfg_trunk_no_patch_rtp_ts_cmd); install_element(TRUNK_NODE, &cfg_trunk_no_patch_rtp_cmd); install_element(TRUNK_NODE, &cfg_trunk_sdp_fmtp_extra_cmd); -- To view, visit https://gerrit.osmocom.org/13082 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: Id46a3622a6b1995d5fce4bc611d409bcb4aef13b Gerrit-Change-Number: 13082 Gerrit-PatchSet: 1 Gerrit-Owner: dexter -------------- next part -------------- An HTML attachment was scrubbed... URL: From jenkins at lists.osmocom.org Thu Feb 28 15:10:06 2019 From: jenkins at lists.osmocom.org (jenkins at lists.osmocom.org) Date: Thu, 28 Feb 2019 15:10:06 +0000 (UTC) Subject: =?UTF-8?Q?Build_failed_in_Jenkins:_ma?= =?UTF-8?Q?ster-asn1c_=C2=BB_a1=3Ddefault,a2=3Dd?= =?UTF-8?Q?efault,a3=3Ddefault,a4=3Ddefault,osmocom-master-debian9_#415?= In-Reply-To: <1906612510.523.1551280207050.JavaMail.jenkins@jenkins.osmocom.org> References: <1906612510.523.1551280207050.JavaMail.jenkins@jenkins.osmocom.org> Message-ID: <1252247193.542.1551366606650.JavaMail.jenkins@jenkins.osmocom.org> See ------------------------------------------ [...truncated 3.69 KB...] + ./configure checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking target system type... x86_64-unknown-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking for style of include used by make... GNU checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking dependency style of gcc... gcc3 checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for /usr/bin/ld option to reload object files... -r checking for BSD-compatible nm... /usr/bin/nm -B checking whether ln -s works... yes checking how to recognise dependent libraries... pass_all checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking dependency style of g++... gcc3 checking how to run the C++ preprocessor... g++ -E checking for g77... no checking for f77... no checking for xlf... no checking for frt... no checking for pgf77... no checking for cf77... no checking for fort77... no checking for fl32... no checking for af77... no checking for f90... no checking for xlf90... no checking for pgf90... no checking for pghpf... no checking for epcf90... no checking for gfortran... no checking for g95... no checking for f95... no checking for fort... no checking for xlf95... no checking for ifort... no checking for ifc... no checking for efc... no checking for pgf95... no checking for lf95... no checking for ftn... no checking whether we are using the GNU Fortran 77 compiler... no checking whether accepts -g... no checking the maximum length of command line arguments... 32768 checking command to parse /usr/bin/nm -B output from gcc object... ok checking for objdir... .libs checking for ar... ar checking for ranlib... ranlib checking for strip... strip checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC checking if gcc PIC flag -fPIC works... yes checking if gcc static flag -static works... yes checking if gcc supports -c -o file.o... yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes configure: creating libtool appending configuration tag "CXX" to libtool checking for ld used by g++... /usr/bin/ld -m elf_x86_64 checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking for g++ option to produce PIC... -fPIC checking if g++ PIC flag -fPIC works... yes checking if g++ static flag -static works... yes checking if g++ supports -c -o file.o... yes checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate appending configuration tag "F77" to libtool checking for autoconf... /usr/bin/autoconf checking for autoheader... /usr/bin/autoheader checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking dependency style of gcc... (cached) gcc3 checking how to run the C preprocessor... gcc -E checking for a BSD-compatible install... /usr/bin/install -c checking whether ln -s works... yes checking whether make sets $(MAKE)... (cached) yes checking for bison... bison -y checking for flex... flex checking for yywrap in -lfl... yes checking lex output file root... lex.yy checking whether yytext is a pointer... yes checking for ar... /usr/bin/ar checking for ANSI C header files... (cached) yes checking sys/param.h usability... yes checking sys/param.h presence... yes checking for sys/param.h... yes checking whether byte ordering is bigendian... no checking for off_t... yes checking for size_t... yes checking whether struct tm is in sys/time.h or time.h... time.h checking for intmax_t... yes checking for library containing getopt... none required checking for strtoimax... yes checking for strtoll... yes checking for mergesort... no checking for mkstemps... yes configure: creating ./config.status config.status: creating skeletons/standard-modules/Makefile config.status: creating skeletons/tests/Makefile config.status: creating libasn1compiler/Makefile config.status: creating libasn1parser/Makefile config.status: creating libasn1print/Makefile config.status: creating asn1c/webcgi/Makefile config.status: creating asn1c/tests/Makefile config.status: creating libasn1fix/Makefile config.status: creating skeletons/Makefile config.status: creating examples/Makefile config.status: creating tests/Makefile config.status: creating asn1c/Makefile config.status: creating doc/Makefile config.status: creating asn1c.spec config.status: creating Makefile config.status: creating config.h config.status: executing depfiles commands + make -j 8 make all-recursive make[1]: Entering directory ' Making all in libasn1parser make[2]: Entering directory ' if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF ".deps/asn1parser.Tpo" -c -o asn1parser.lo asn1parser.c; \ then mv -f ".deps/asn1parser.Tpo" ".deps/asn1parser.Plo"; else rm -f ".deps/asn1parser.Tpo"; exit 1; fi bison -y -p asn1p_ -d asn1p_y.y if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF ".deps/asn1p_l.Tpo" -c -o asn1p_l.lo asn1p_l.c; \ then mv -f ".deps/asn1p_l.Tpo" ".deps/asn1p_l.Plo"; else rm -f ".deps/asn1p_l.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF ".deps/asn1p_module.Tpo" -c -o asn1p_module.lo asn1p_module.c; \ then mv -f ".deps/asn1p_module.Tpo" ".deps/asn1p_module.Plo"; else rm -f ".deps/asn1p_module.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF ".deps/asn1p_oid.Tpo" -c -o asn1p_oid.lo asn1p_oid.c; \ then mv -f ".deps/asn1p_oid.Tpo" ".deps/asn1p_oid.Plo"; else rm -f ".deps/asn1p_oid.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF ".deps/asn1p_value.Tpo" -c -o asn1p_value.lo asn1p_value.c; \ then mv -f ".deps/asn1p_value.Tpo" ".deps/asn1p_value.Plo"; else rm -f ".deps/asn1p_value.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF ".deps/asn1p_expr.Tpo" -c -o asn1p_expr.lo asn1p_expr.c; \ then mv -f ".deps/asn1p_expr.Tpo" ".deps/asn1p_expr.Plo"; else rm -f ".deps/asn1p_expr.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF ".deps/asn1p_xports.Tpo" -c -o asn1p_xports.lo asn1p_xports.c; \ then mv -f ".deps/asn1p_xports.Tpo" ".deps/asn1p_xports.Plo"; else rm -f ".deps/asn1p_xports.Tpo"; exit 1; fi asn1p_y.y: warning: 2 shift/reduce conflicts [-Wconflicts-sr] mkdir .libs gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -fPIC -DPIC -o .libs/asn1p_module.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -fPIC -DPIC -o .libs/asn1parser.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -fPIC -DPIC -o .libs/asn1p_xports.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -fPIC -DPIC -o .libs/asn1p_l.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -fPIC -DPIC -o .libs/asn1p_expr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -fPIC -DPIC -o .libs/asn1p_oid.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -fPIC -DPIC -o .libs/asn1p_value.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_xports.lo -MD -MP -MF .deps/asn1p_xports.Tpo -c asn1p_xports.c -o asn1p_xports.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_module.lo -MD -MP -MF .deps/asn1p_module.Tpo -c asn1p_module.c -o asn1p_module.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1parser.lo -MD -MP -MF .deps/asn1parser.Tpo -c asn1parser.c -o asn1parser.o >/dev/null 2>&1 asn1p_l.c:3521:12: warning: 'input' defined but not used [-Wunused-function] static int input() ^~~~~ if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF ".deps/asn1p_constr.Tpo" -c -o asn1p_constr.lo asn1p_constr.c; \ then mv -f ".deps/asn1p_constr.Tpo" ".deps/asn1p_constr.Plo"; else rm -f ".deps/asn1p_constr.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_oid.lo -MD -MP -MF .deps/asn1p_oid.Tpo -c asn1p_oid.c -o asn1p_oid.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_value.lo -MD -MP -MF .deps/asn1p_value.Tpo -c asn1p_value.c -o asn1p_value.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF ".deps/asn1p_param.Tpo" -c -o asn1p_param.lo asn1p_param.c; \ then mv -f ".deps/asn1p_param.Tpo" ".deps/asn1p_param.Plo"; else rm -f ".deps/asn1p_param.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_expr.lo -MD -MP -MF .deps/asn1p_expr.Tpo -c asn1p_expr.c -o asn1p_expr.o >/dev/null 2>&1 if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF ".deps/asn1p_class.Tpo" -c -o asn1p_class.lo asn1p_class.c; \ then mv -f ".deps/asn1p_class.Tpo" ".deps/asn1p_class.Plo"; else rm -f ".deps/asn1p_class.Tpo"; exit 1; fi if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF ".deps/asn1p_ref.Tpo" -c -o asn1p_ref.lo asn1p_ref.c; \ then mv -f ".deps/asn1p_ref.Tpo" ".deps/asn1p_ref.Plo"; else rm -f ".deps/asn1p_ref.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -fPIC -DPIC -o .libs/asn1p_constr.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -fPIC -DPIC -o .libs/asn1p_param.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -fPIC -DPIC -o .libs/asn1p_class.o if test -f y.tab.h; then \ to=`echo "asn1p_y_H" | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`; \ sed -e "/^#/!b" -e "s/Y_TAB_H/$to/g" -e "s|y\.tab\.h|asn1p_y.h|" \ y.tab.h >asn1p_y.ht; \ rm -f y.tab.h; \ if cmp -s asn1p_y.ht asn1p_y.h; then \ rm -f asn1p_y.ht ;\ else \ mv asn1p_y.ht asn1p_y.h; \ fi; \ fi if test -f y.output; then \ mv y.output asn1p_y.output; \ fi sed '/^#/ s|y\.tab\.c|asn1p_y.c|' y.tab.c >asn1p_y.ct && mv asn1p_y.ct asn1p_y.c rm -f y.tab.c if /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF ".deps/asn1p_y.Tpo" -c -o asn1p_y.lo asn1p_y.c; \ then mv -f ".deps/asn1p_y.Tpo" ".deps/asn1p_y.Plo"; else rm -f ".deps/asn1p_y.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -fPIC -DPIC -o .libs/asn1p_ref.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_constr.lo -MD -MP -MF .deps/asn1p_constr.Tpo -c asn1p_constr.c -o asn1p_constr.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_param.lo -MD -MP -MF .deps/asn1p_param.Tpo -c asn1p_param.c -o asn1p_param.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_class.lo -MD -MP -MF .deps/asn1p_class.Tpo -c asn1p_class.c -o asn1p_class.o >/dev/null 2>&1 gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_y.lo -MD -MP -MF .deps/asn1p_y.Tpo -c asn1p_y.c -fPIC -DPIC -o .libs/asn1p_y.o gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_ref.lo -MD -MP -MF .deps/asn1p_ref.Tpo -c asn1p_ref.c -o asn1p_ref.o >/dev/null 2>&1 asn1p_y.y: In function 'asn1p_parse': asn1p_y.y:357:13: error: 'param' undeclared (first use in this function) *(void **)param = $1; ^~~~~ asn1p_y.y:357:13: note: each undeclared identifier is reported only once for each function it appears in gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -Wall -Wshadow -Wcast-qual -Wcast-align -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -MT asn1p_l.lo -MD -MP -MF .deps/asn1p_l.Tpo -c asn1p_l.c -o asn1p_l.o >/dev/null 2>&1 Makefile:299: recipe for target 'asn1p_y.lo' failed make[2]: *** [asn1p_y.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: Leaving directory ' Makefile:302: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory ' Makefile:212: recipe for target 'all' failed make: *** [all] Error 2 Build step 'Execute shell' marked build as failure [WARNINGS]Skipping publisher since build result is FAILURE From gerrit-no-reply at lists.osmocom.org Thu Feb 28 15:15:16 2019 From: gerrit-no-reply at lists.osmocom.org (Keith Whyte) Date: Thu, 28 Feb 2019 15:15:16 +0000 Subject: Change in openbsc[master]: Make alert notifications vty configurable per ESME In-Reply-To: References: Message-ID: Keith Whyte has posted comments on this change. ( https://gerrit.osmocom.org/12601 ) Change subject: Make alert notifications vty configurable per ESME ...................................................................... Patch Set 1: > To be fair, this wasn't really obvious or otherwise it would have been catched in the review. As I finally getting around to fixing it, I realise that the full patch set I originally submitted it did not introduce this crash. The previous check for esme->bind_flags was rejected (correctly, for erroneuos functionality, not coding) I've submitted https://gerrit.osmocom.org/#/c/osmo-msc/+/12599/ and https://gerrit.osmocom.org/#/c/openbsc/+/12602/ -- To view, visit https://gerrit.osmocom.org/12601 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I2b52f2778b24eebc82b2e5e2fb3c2250b1f9e5b0 Gerrit-Change-Number: 12601 Gerrit-PatchSet: 1 Gerrit-Owner: Keith Whyte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Keith Whyte Gerrit-CC: osmith Gerrit-Comment-Date: Thu, 28 Feb 2019 15:15:16 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 15:16:00 2019 From: gerrit-no-reply at lists.osmocom.org (Keith Whyte) Date: Thu, 28 Feb 2019 15:16:00 +0000 Subject: Change in openbsc[master]: Don't deliver alert notifications to an ESME that is not yet bound. In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/12602 to look at the new patch set (#4). Change subject: Don't deliver alert notifications to an ESME that is not yet bound. ...................................................................... Don't deliver alert notifications to an ESME that is not yet bound. We create a new ESME in smsc->esme_list on establishment of a TCP connection, yet we do not know the system id or anything else, until the ESME identifies and authenticates. So do not send alert notifications until we know the bind status (and system_id) Change-Id: I0e5d55d3fb6ac46d253902df2fe304e1b0fc8bbf --- M openbsc/src/libmsc/smpp_openbsc.c M openbsc/src/libmsc/smpp_smsc.c M openbsc/src/libmsc/smpp_smsc.h 3 files changed, 10 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/02/12602/4 -- To view, visit https://gerrit.osmocom.org/12602 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I0e5d55d3fb6ac46d253902df2fe304e1b0fc8bbf Gerrit-Change-Number: 12602 Gerrit-PatchSet: 4 Gerrit-Owner: Keith Whyte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Keith Whyte Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 15:43:39 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Feb 2019 15:43:39 +0000 Subject: Change in openbsc[master]: Don't deliver alert notifications to an ESME that is not yet bound. In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12602 ) Change subject: Don't deliver alert notifications to an ESME that is not yet bound. ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12602 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I0e5d55d3fb6ac46d253902df2fe304e1b0fc8bbf Gerrit-Change-Number: 12602 Gerrit-PatchSet: 4 Gerrit-Owner: Keith Whyte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Keith Whyte Gerrit-Comment-Date: Thu, 28 Feb 2019 15:43:39 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 15:45:03 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Feb 2019 15:45:03 +0000 Subject: Change in osmo-msc[master]: Don't deliver alert notifications to ESME not yet bound. In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/12599 ) Change subject: Don't deliver alert notifications to ESME not yet bound. ...................................................................... Patch Set 4: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/12599 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Iec92d4c145ca050c2e212139572eeaae581b99df Gerrit-Change-Number: 12599 Gerrit-PatchSet: 4 Gerrit-Owner: Keith Whyte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Keith Whyte Gerrit-Comment-Date: Thu, 28 Feb 2019 15:45:03 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 15:47:50 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Feb 2019 15:47:50 +0000 Subject: Change in libosmocore[master]: gsm0808_utils: fix gsm48 multirate configuration generator In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13081 ) Change subject: gsm0808_utils: fix gsm48 multirate configuration generator ...................................................................... Patch Set 1: (1 comment) https://gerrit.osmocom.org/#/c/13081/1/src/gsm/gsm0808_utils.c File src/gsm/gsm0808_utils.c: https://gerrit.osmocom.org/#/c/13081/1/src/gsm/gsm0808_utils.c at 1417 PS1, Line 1417: return -EINVAL; EINVAL should be returned if the input data was wrong. However, here it looks more like the check is reporting an implementation error of this function. If some input data is given that results in more than 4 codecs to be chosen, then this function is broken because it didn't constrain itself to four. Wouldn't it make more sense to simply check after each count++ if we now have 4. And if we have four, return those four rather than adding more and then returning EINVAL? -- To view, visit https://gerrit.osmocom.org/13081 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I6fd7f4073b84093742c322752f2fd878d1071e15 Gerrit-Change-Number: 13081 Gerrit-PatchSet: 1 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Harald Welte Gerrit-Comment-Date: Thu, 28 Feb 2019 15:47:50 +0000 Gerrit-HasComments: Yes Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 15:48:09 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Feb 2019 15:48:09 +0000 Subject: Change in osmo-gsm-tester[master]: pyflakes: Remove imports of unused modules In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13070 ) Change subject: pyflakes: Remove imports of unused modules ...................................................................... Patch Set 3: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13070 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7496030e5857078cd66a36a5e46c9a50217ce6e3 Gerrit-Change-Number: 13070 Gerrit-PatchSet: 3 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Thu, 28 Feb 2019 15:48:09 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 15:48:25 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Feb 2019 15:48:25 +0000 Subject: Change in osmo-gsm-tester[master]: pyflakes: Remove assigned but unread variables In-Reply-To: References: Message-ID: Harald Welte has posted comments on this change. ( https://gerrit.osmocom.org/13071 ) Change subject: pyflakes: Remove assigned but unread variables ...................................................................... Patch Set 2: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/13071 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie257ac051739ea6f846d1aac2c8f778638b5f8a6 Gerrit-Change-Number: 13071 Gerrit-PatchSet: 2 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Comment-Date: Thu, 28 Feb 2019 15:48:25 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 16:15:18 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Thu, 28 Feb 2019 16:15:18 +0000 Subject: Change in osmo-gsm-tester[master]: pyflakes: Remove imports of unused modules In-Reply-To: References: Message-ID: Holger Freyther has posted comments on this change. ( https://gerrit.osmocom.org/13070 ) Change subject: pyflakes: Remove imports of unused modules ...................................................................... Patch Set 3: Verified+1 -- To view, visit https://gerrit.osmocom.org/13070 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I7496030e5857078cd66a36a5e46c9a50217ce6e3 Gerrit-Change-Number: 13070 Gerrit-PatchSet: 3 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Comment-Date: Thu, 28 Feb 2019 16:15:18 +0000 Gerrit-HasComments: No Gerrit-HasLabels: Yes -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 16:17:19 2019 From: gerrit-no-reply at lists.osmocom.org (Holger Freyther) Date: Thu, 28 Feb 2019 16:17:19 +0000 Subject: Change in osmo-gsm-tester[master]: pyflakes: Remove assigned but unread variables In-Reply-To: References: Message-ID: Holger Freyther has posted comments on this change. ( https://gerrit.osmocom.org/13071 ) Change subject: pyflakes: Remove assigned but unread variables ...................................................................... Patch Set 2: Gerrit/Jenkins doesn't trigger a build for it. I tried to manually trigger it but nothing seem to match. *strange* -- To view, visit https://gerrit.osmocom.org/13071 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-gsm-tester Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ie257ac051739ea6f846d1aac2c8f778638b5f8a6 Gerrit-Change-Number: 13071 Gerrit-PatchSet: 2 Gerrit-Owner: Holger Freyther Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Holger Freyther Gerrit-Comment-Date: Thu, 28 Feb 2019 16:17:19 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 16:55:36 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 28 Feb 2019 16:55:36 +0000 Subject: Change in libosmocore[master]: gsm0808_utils: fix gsm48 multirate configuration generator In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/13081 to look at the new patch set (#2). Change subject: gsm0808_utils: fix gsm48 multirate configuration generator ...................................................................... gsm0808_utils: fix gsm48 multirate configuration generator The function gsm0808_sc_cfg_from_gsm48_mr_cfg() takes an S15 to S0 bitmask and converts that bitmask into an AMR multirate configuration struct. Unfortunately the current implementation implements 3GPP TS 28.062, Table 7.11.3.1.3-2 wrongly in some aspects. Lets fix this. - Fix wrong interpretation of the bitpatterns - 5,15K is invalid and must never be selected - Make sure that no more than 4 rates are selected in the active set - Extend unit-test Change-Id: I6fd7f4073b84093742c322752f2fd878d1071e15 Related: SYS#4470 --- M include/osmocom/gsm/gsm0808_utils.h M include/osmocom/gsm/protocol/gsm_08_08.h M src/gsm/gsm0808_utils.c M tests/gsm0808/gsm0808_test.c M tests/gsm0808/gsm0808_test.ok 5 files changed, 306 insertions(+), 62 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/81/13081/2 -- To view, visit https://gerrit.osmocom.org/13081 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: I6fd7f4073b84093742c322752f2fd878d1071e15 Gerrit-Change-Number: 13081 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 16:56:16 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 28 Feb 2019 16:56:16 +0000 Subject: Change in libosmo-netif[master]: AMR: add functions to convert between bw-efficient and octet-aligned In-Reply-To: References: Message-ID: dexter has posted comments on this change. ( https://gerrit.osmocom.org/13049 ) Change subject: AMR: add functions to convert between bw-efficient and octet-aligned ...................................................................... Set Ready For Review -- To view, visit https://gerrit.osmocom.org/13049 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmo-netif Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: I5b5a0fa644d8dbb1f04f9d7e35312683c7b3d196 Gerrit-Change-Number: 13049 Gerrit-PatchSet: 4 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-CC: Harald Welte Gerrit-CC: Pau Espin Pedrol Gerrit-Comment-Date: Thu, 28 Feb 2019 16:56:16 +0000 Gerrit-HasComments: No Gerrit-HasLabels: No -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 16:56:45 2019 From: gerrit-no-reply at lists.osmocom.org (dexter) Date: Thu, 28 Feb 2019 16:56:45 +0000 Subject: Change in osmo-mgw[master]: AMR: Add option to convert between bw-effient and octet aligned mode In-Reply-To: References: Message-ID: Hello Jenkins Builder, I'd like you to reexamine a change. Please visit https://gerrit.osmocom.org/13082 to look at the new patch set (#2). Change subject: AMR: Add option to convert between bw-effient and octet aligned mode ...................................................................... AMR: Add option to convert between bw-effient and octet aligned mode RFC3267 specifies two framing modes for AMR packets. An octet aligned mode is specified where all fields of the AMR packets are aligned to octet boundaries. The second framing mode is the bandwith efficient mode where the fields are directly packed one after another. Which format is used is usually communicated by out of band means, however it is still possible to distinguish the framing mode by looking at the frame. Once the framing mode is distinguished, the packet can be converted into the opposite framing mode. - Add new VTY rtp-patch options - Add conversion function Change-Id: Id46a3622a6b1995d5fce4bc611d409bcb4aef13b Depends: libosmo-netif I5b5a0fa644d8dbb1f04f9d7e35312683c7b3d196 Related: OS#3807 --- M include/osmocom/mgcp/mgcp.h M include/osmocom/mgcp/mgcp_internal.h M src/libosmo-mgcp/mgcp_network.c M src/libosmo-mgcp/mgcp_protocol.c M src/libosmo-mgcp/mgcp_vty.c 5 files changed, 83 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/82/13082/2 -- To view, visit https://gerrit.osmocom.org/13082 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-mgw Gerrit-Branch: master Gerrit-MessageType: newpatchset Gerrit-Change-Id: Id46a3622a6b1995d5fce4bc611d409bcb4aef13b Gerrit-Change-Number: 13082 Gerrit-PatchSet: 2 Gerrit-Owner: dexter Gerrit-Reviewer: Jenkins Builder (1000002) -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 18:10:17 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Feb 2019 18:10:17 +0000 Subject: Change in simtrace2[master]: Add minimal board-support for Olimex SAM3-P256 Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13083 Change subject: Add minimal board-support for Olimex SAM3-P256 ...................................................................... Add minimal board-support for Olimex SAM3-P256 This is a general purpose evaluation board, and it makes sense to support it particularly for the DFU bootloader. Change-Id: I85aea8f1441158f991493c5fc767fdcad405545e --- A firmware/libboard/sam3p256/include/board.h A firmware/libboard/sam3p256/source/board_sam3p256.c M hardware/board_gpio.gnumeric 3 files changed, 605 insertions(+), 33 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/83/13083/1 diff --git a/firmware/libboard/sam3p256/include/board.h b/firmware/libboard/sam3p256/include/board.h new file mode 100644 index 0000000..bd2ab49 --- /dev/null +++ b/firmware/libboard/sam3p256/include/board.h @@ -0,0 +1,148 @@ +/* Olimiex SAM3S-P256 board definition + * + * (C) 2019 by Harald Welte + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA + */ +#pragma once +#include "board_common.h" +#include "simtrace_usb.h" + +/* Name of the board */ +#define BOARD_NAME "SAM3S-P256" +/* Board definition */ +#define simtrace + +/** oscillator used as main clock source (in Hz) */ +#define BOARD_MAINOSC 12000000 +/** desired main clock frequency (in Hz, based on BOARD_MAINOSC) */ +#define BOARD_MCK 58000000 + +/** Pin configuration **/ +/* Button to force bootloader start (shorted to ground when pressed */ +#define PIN_BOOTLOADER_SW {PIO_PA20, PIOA, ID_PIOA, PIO_INPUT, PIO_DEFAULT} +#if 0 +/* Enable powering the card using the second 3.3 V output of the LDO (active high) */ +#define SIM_PWEN_PIN {SIM_PWEN, PIOA, ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT} +/* Enable powering the SIM card */ +#define PWR_PINS SIM_PWEN_PIN +/* Card presence pin */ +#define SW_SIM PIO_PA8 +/* Pull card presence pin high (shorted to ground in card slot when card is present) */ +#define SMARTCARD_CONNECT_PIN {SW_SIM, PIOA, ID_PIOA, PIO_INPUT, PIO_PULLUP | PIO_DEBOUNCE | PIO_DEGLITCH | PIO_IT_EDGE } + +/** Smart card connection **/ +/* Card RST reset signal input (active low; RST_SIM in schematic) */ +#define PIN_SIM_RST {PIO_PA7, PIOA, ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT} +/* Card I/O data signal input/output (I/O_SIM in schematic) */ +#define PIN_SIM_IO {PIO_PA6A_TXD0, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT} +/* Card CLK clock input (CLK_SIM in schematic) */ +#define PIN_SIM_CLK {PIO_PA2B_SCK0, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT} +/* Pin to measure card I/O timing (to start measuring the ETU on I/O activity; connected I/O_SIM in schematic) */ +#define PIN_SIM_IO_INPUT {PIO_PA1B_TIOB0, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT} +/* Pin used as clock input (to measure the ETU duration; connected to CLK_SIM in schematic) */ +#define PIN_SIM_CLK_INPUT {PIO_PA4B_TCLK0, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT} +/* Pins used to measure ETU timing (using timer counter) */ +#define PINS_TC PIN_SIM_IO_INPUT, PIN_SIM_CLK_INPUT + +/** Phone connection **/ +/* Phone USIM slot 1 VCC pin (VCC_PHONE in schematic) */ +#define PIN_USIM1_VCC {PIO_PA25, PIOA, ID_PIOA, PIO_INPUT, PIO_DEFAULT} +/* Phone USIM slot 1 RST pin (active low; RST_PHONE in schematic) */ +#define PIN_USIM1_nRST {PIO_PA24, PIOA, ID_PIOA, PIO_INPUT, PIO_IT_RISE_EDGE | PIO_DEGLITCH } +/* Phone I/O data signal input/output (I/O_PHONE in schematic) */ +#define PIN_PHONE_IO {PIO_PA22A_TXD1, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT} +/* Phone CLK clock input (CLK_PHONE in schematic) */ +#define PIN_PHONE_CLK {PIO_PA23A_SCK1, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT} +/* Pin used for phone USIM slot 1 communication */ +#define PINS_USIM1 PIN_PHONE_IO, PIN_PHONE_CLK, PIN_PHONE_CLK_INPUT, PIN_USIM1_VCC, PIN_PHONE_IO_INPUT, PIN_USIM1_nRST +/* Phone I/O data signal input/output (unused USART RX input; connected to I/O_PHONE in schematic) */ +#define PIN_PHONE_IO_INPUT {PIO_PA21A_RXD1, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT} +/* Pin used as clock input (to measure the ETU duration; connected to CLK_PHONE in schematic) */ +#define PIN_PHONE_CLK_INPUT {PIO_PA29B_TCLK2, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT} + +/** Default pin configuration **/ +/* Disconnect VPP, CLK, and RST lines between card and phone using bus switch (high sets bus switch to high-impedance) */ +#define PIN_SC_SW_DEFAULT {PIO_PA20, PIOA, ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT} +/* Disconnect I/O line between card and phone using bus switch (high sets bus switch to high-impedance) */ +#define PIN_IO_SW_DEFAULT {PIO_PA19, PIOA, ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT} +/* Disconnect all lines (VPP, CLK, RST, and I/O) between card and phone */ +#define PINS_BUS_DEFAULT PIN_SC_SW_DEFAULT, PIN_IO_SW_DEFAULT + +/** Sniffer configuration **/ +/* Connect VPP, CLK, and RST lines between card and phone using bus switch (low connects signals on bus switch) */ +#define PIN_SC_SW_SNIFF {PIO_PA20, PIOA, ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT} +/* Connect I/O line between card and phone using bus switch (low connects signals on bus switch) */ +#define PIN_IO_SW_SNIFF {PIO_PA19, PIOA, ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT} +/* Connect all lines (VPP, CLK, RST, and I/O) between card and phone */ +#define PINS_BUS_SNIFF PIN_SC_SW_SNIFF, PIN_IO_SW_SNIFF +/* Card RST reset signal input (use as input since the phone will drive it) */ +#define PIN_SIM_RST_SNIFF {PIO_PA7, PIOA, ID_PIOA, PIO_INPUT, PIO_DEGLITCH | PIO_IT_EDGE} +/* Pins used to sniff phone-card communication */ +#define PINS_SIM_SNIFF PIN_SIM_IO, PIN_SIM_CLK, PIN_SIM_RST_SNIFF +/* Disable power converter 4.5-6V to 3.3V (active high) */ +#define PIN_SIM_PWEN_SNIFF {SIM_PWEN, PIOA, ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT} +/* Enable power switch to forward VCC_PHONE to VCC_SIM (active high) */ +#define PIN_VCC_FWD_SNIFF {VCC_FWD, PIOA, ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT} +/* Use phone VCC to power card */ +#define PINS_PWR_SNIFF PIN_SIM_PWEN_SNIFF, PIN_VCC_FWD_SNIFF + +/** CCID configuration */ +/* Card RST reset signal input (active low; RST_SIM in schematic) */ +#define PIN_ISO7816_RSTMC {PIO_PA7, PIOA, ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT} +/* ISO7816-communication related pins */ +#define PINS_ISO7816 PIN_SIM_IO, PIN_SIM_CLK, PIN_ISO7816_RSTMC // SIM_PWEN_PIN, PIN_SIM_IO2, PIN_SIM_CLK2 + +/** External SPI flash interface **/ +/* SPI MISO pin definition */ +#define PIN_SPI_MISO {PIO_PA12A_MISO, PIOA, PIOA, PIO_PERIPH_A, PIO_PULLUP} +/* SPI MOSI pin definition */ +#define PIN_SPI_MOSI {PIO_PA13A_MOSI, PIOA, PIOA, PIO_PERIPH_A, PIO_DEFAULT} +/* SPI SCK pin definition */ +#define PIN_SPI_SCK {PIO_PA14A_SPCK, PIOA, PIOA, PIO_PERIPH_A, PIO_DEFAULT} +/* SPI pins definition. Contains MISO, MOSI & SCK */ +#define PINS_SPI PIN_SPI_MISO, PIN_SPI_MOSI, PIN_SPI_SCK +/* SPI chip select 0 pin definition */ +#define PIN_SPI_NPCS0 {PIO_PA11A_NPCS0, PIOA, PIOA, PIO_PERIPH_A, PIO_DEFAULT} +/* SPI flash write protect pin (active low, pulled low) */ +#define PIN_SPI_WP {PA15, PIOA, ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT} +#endif + +/** Pin configuration to control USB pull-up on D+ + * @details the USB pull-up on D+ is enable by default on the board but can be disabled by setting PA16 high + */ +#define PIN_USB_PULLUP {PIO_PA16, PIOA, ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT} + +/** USB definitions */ +/* OpenMoko SIMtrace 2 USB vendor ID */ +#define BOARD_USB_VENDOR_ID USB_VENDOR_OPENMOKO +/* OpenMoko SIMtrace 2 USB product ID (main application/runtime mode) */ +#define BOARD_USB_PRODUCT_ID USB_PRODUCT_SIMTRACE2 +/* OpenMoko SIMtrace 2 DFU USB product ID (DFU bootloader/DFU mode) */ +#define BOARD_DFU_USB_PRODUCT_ID USB_PRODUCT_SIMTRACE2_DFU +/* USB release number (bcdDevice, shown as 0.00) */ +#define BOARD_USB_RELEASE 0x000 +/* Indicate SIMtrace is bus power in USB attributes */ +#define BOARD_USB_BMATTRIBUTES USBConfigurationDescriptor_BUSPOWERED_NORWAKEUP + +/** Supported modes */ +/* SIMtrace board supports sniffer mode */ +#define HAVE_SNIFFER +/* SIMtrace board supports CCID mode */ +//#define HAVE_CCID +/* SIMtrace board supports card emulation mode */ +//#define HAVE_CARDEM +/* SIMtrace board supports man-in-the-middle mode */ +//#define HAVE_MITM diff --git a/firmware/libboard/sam3p256/source/board_sam3p256.c b/firmware/libboard/sam3p256/source/board_sam3p256.c new file mode 100644 index 0000000..4b6a451 --- /dev/null +++ b/firmware/libboard/sam3p256/source/board_sam3p256.c @@ -0,0 +1,68 @@ +/* Olimex SAM3S-P256 specific application code + * + * (C) 2017,2019 by Harald Welte + * (C) 2018 by sysmocom -s.f.m.c. GmbH, Author: Kevin Redon + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA + */ +#include "board.h" +#include "simtrace.h" +#include "utils.h" +#include "sim_switch.h" +#include +#include "usb_buf.h" + +void board_exec_dbg_cmd(int ch) +{ + switch (ch) { + case '?': + printf("\t?\thelp\n\r"); + printf("\tR\treset SAM3\n\r"); + break; + case 'R': + printf("Asking NVIC to reset us\n\r"); + USBD_Disconnect(); + NVIC_SystemReset(); + break; + default: + printf("Unknown command '%c'\n\r", ch); + break; + } +} + +void board_main_top(void) +{ +#ifndef APPLICATION_dfu + usb_buf_init(); + + /* Initialize checking for card insert/remove events */ + //card_present_init(); +#endif +} + +int board_override_enter_dfu(void) +{ + const Pin bl_sw_pin = PIN_BOOTLOADER_SW; + + PIO_Configure(&bl_sw_pin, 1); + + /* Enter DFU bootloader in case the respective button is pressed */ + if (PIO_Get(&bl_sw_pin) == 0) { + /* do not print to early since the console is not initialized yet */ + //printf("BOOTLOADER switch pressed -> Force DFU\n\r"); + return 1; + } else + return 0; +} diff --git a/hardware/board_gpio.gnumeric b/hardware/board_gpio.gnumeric index 3d76b0a..1ec9ff6 100644 --- a/hardware/board_gpio.gnumeric +++ b/hardware/board_gpio.gnumeric @@ -1,6 +1,6 @@ - + WorkbookView::show_horizontal_scrollbar @@ -25,7 +25,7 @@ - 2017-05-05T14:31:27Z + 2019-02-28T17:12:35Z 2017-03-05T18:42:38Z @@ -35,11 +35,11 @@ Sheet2 Sheet3 - + Sheet1 - 7 + 9 67 1 @@ -1057,127 +1057,452 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1190,15 +1515,27 @@ - - - + + + + + + + + + + + + + + Pins / Ios of SAM3 based devices SIMtrace v1.x Quad Modem OWHW + SAM3-P256 Pin Number Pin Name Used Function @@ -1207,6 +1544,8 @@ Signal Name Used Function Signal Name + Used Function + Signal Name 1 ADVREF ADVREF @@ -1245,6 +1584,7 @@ LED_RED PA17 LED_RED + LED2 10 PA18 PA18 @@ -1253,6 +1593,7 @@ LED_GREEN PA18 LED_GREEN + LED1 11 PA21/RXD1/PCK1 RXD1 @@ -1261,6 +1602,7 @@ ST_USIM1_IO RXD1 ST_USIM1_IO + RXD1 12 VDDCORE 13 @@ -1270,6 +1612,7 @@ AD2 VERSION_DETECT12 NC + B1 14 PA22/TXD1/NPCS3 TXD1 @@ -1278,6 +1621,7 @@ ST_USIM1_IO TXD1 ST_USIM1_IO + TXD1 15 PA23/SCK1/PWM0 SCK1 @@ -1293,6 +1637,7 @@ PA20 !CONNECT_ST_USIM1 NC + B2 17 GND 18 @@ -1305,6 +1650,7 @@ WWAN2 PA16 UDP_PUP_CTL + DP_PUP 20 PA15/TF/TIOA1 PA15 @@ -1320,6 +1666,7 @@ ST12_ST34_SELECT PA14 SET_USIM2_PRES + SPCK 22 PA13/MOSI/PWM2 MOSI @@ -1327,6 +1674,7 @@ PA13 HUB_RESET NC + MOSI 23 PA24/RTS1/PWM1 PA24 @@ -1359,6 +1707,7 @@ SIMPRES1 PA12 SET_USIM1_PRES + MISO 28 PA11/NPCS0/PWM0 NPCS0 @@ -1366,6 +1715,7 @@ PA11 _SIMTRACE34_ERASE NC + NPCS0 29 PA10/DTXD/NCPS2 DTXD @@ -1374,6 +1724,7 @@ SIMTRACE1_DTXD DTXD SIMTRACE_DTXD + DTXD 30 PA9/DRXDNPCS1 DRXD @@ -1382,6 +1733,7 @@ SIMTRACE1_DRXD DRXD SIMTRACE_DRXD + DRXD 31 PA8/CTS0/ADTRG PA8 @@ -1389,6 +1741,7 @@ PA8 SIMPRES2 / ST12_PRTPWR-OVERRIDE NC + DM_PUP 32 PA7/RTS0/PWM3 PA7 @@ -1424,6 +1777,7 @@ ST_USIM2_CLK TCLK0 ST_USIM2_CLK + TWCK 37 PA27/DTR1/TIOB2 NC @@ -1470,6 +1824,7 @@ NC NC NC + TWD 44 PA2/PWM2/SCK0 SCK0 @@ -1522,6 +1877,7 @@ BOTLOADER_SW PA31 SCL + NPCS1 53 TCK TCK @@ -1565,7 +1921,7 @@ 64 VDDPLL - + -- To view, visit https://gerrit.osmocom.org/13083 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I85aea8f1441158f991493c5fc767fdcad405545e Gerrit-Change-Number: 13083 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 18:17:38 2019 From: gerrit-no-reply at lists.osmocom.org (Keith Whyte) Date: Thu, 28 Feb 2019 18:17:38 +0000 Subject: Change in openbsc[master]: Don't deliver alert notifications to an ESME that is not yet bound. In-Reply-To: References: Message-ID: Keith Whyte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12602 ) Change subject: Don't deliver alert notifications to an ESME that is not yet bound. ...................................................................... Don't deliver alert notifications to an ESME that is not yet bound. We create a new ESME in smsc->esme_list on establishment of a TCP connection, yet we do not know the system id or anything else, until the ESME identifies and authenticates. So do not send alert notifications until we know the bind status (and system_id) Change-Id: I0e5d55d3fb6ac46d253902df2fe304e1b0fc8bbf --- M openbsc/src/libmsc/smpp_openbsc.c M openbsc/src/libmsc/smpp_smsc.c M openbsc/src/libmsc/smpp_smsc.h 3 files changed, 10 insertions(+), 5 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/openbsc/src/libmsc/smpp_openbsc.c b/openbsc/src/libmsc/smpp_openbsc.c index f463e1c..67b2a66 100644 --- a/openbsc/src/libmsc/smpp_openbsc.c +++ b/openbsc/src/libmsc/smpp_openbsc.c @@ -279,6 +279,11 @@ /* we currently send an alert notification to each ESME that is * connected, and do not require a (non-existant) delivery * pending flag to be set before. */ + if (!esme->bind_flags) { + LOGP(DSMPP, LOGL_INFO, + "ESME is not (yet) bound, skipping alert\n"); + continue; + } if (!esme->acl->alert_notifications) { LOGP(DSMPP, LOGL_DEBUG, "[%s] is not set to receive Alert Notifications\n", esme->system_id); diff --git a/openbsc/src/libmsc/smpp_smsc.c b/openbsc/src/libmsc/smpp_smsc.c index 35097b4..1cee3fe 100644 --- a/openbsc/src/libmsc/smpp_smsc.c +++ b/openbsc/src/libmsc/smpp_smsc.c @@ -49,11 +49,6 @@ memset(str, 0, sizeof(*str)); \ rc = smpp34_unpack(type, str, data, len) -enum emse_bind { - ESME_BIND_RX = 0x01, - ESME_BIND_TX = 0x02, -}; - const struct value_string smpp_status_strs[] = { { ESME_ROK, "No Error" }, { ESME_RINVMSGLEN, "Message Length is invalid" }, diff --git a/openbsc/src/libmsc/smpp_smsc.h b/openbsc/src/libmsc/smpp_smsc.h index 2398201..ad1af76 100644 --- a/openbsc/src/libmsc/smpp_smsc.h +++ b/openbsc/src/libmsc/smpp_smsc.h @@ -19,6 +19,11 @@ #define MODE_7BIT 7 #define MODE_8BIT 8 +enum esme_bind { + ESME_BIND_RX = 0x01, + ESME_BIND_TX = 0x02, +}; + enum esme_read_state { READ_ST_IN_LEN = 0, READ_ST_IN_MSG = 1, -- To view, visit https://gerrit.osmocom.org/12602 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: openbsc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: I0e5d55d3fb6ac46d253902df2fe304e1b0fc8bbf Gerrit-Change-Number: 12602 Gerrit-PatchSet: 4 Gerrit-Owner: Keith Whyte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Keith Whyte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 18:18:30 2019 From: gerrit-no-reply at lists.osmocom.org (Keith Whyte) Date: Thu, 28 Feb 2019 18:18:30 +0000 Subject: Change in osmo-msc[master]: Don't deliver alert notifications to ESME not yet bound. In-Reply-To: References: Message-ID: Keith Whyte has submitted this change and it was merged. ( https://gerrit.osmocom.org/12599 ) Change subject: Don't deliver alert notifications to ESME not yet bound. ...................................................................... Don't deliver alert notifications to ESME not yet bound. We create a new ESME in smsc->esme_list on establishment of a TCP connection, yet we do not know the system id or anything else, until the ESME identifies and authenticates. So do not send alert notifications until we know the bind status (and system_id) Change-Id: Iec92d4c145ca050c2e212139572eeaae581b99df --- M src/libmsc/smpp_openbsc.c 1 file changed, 5 insertions(+), 0 deletions(-) Approvals: Jenkins Builder: Verified Harald Welte: Looks good to me, approved diff --git a/src/libmsc/smpp_openbsc.c b/src/libmsc/smpp_openbsc.c index fb9b0f8..9156445 100644 --- a/src/libmsc/smpp_openbsc.c +++ b/src/libmsc/smpp_openbsc.c @@ -284,6 +284,11 @@ /* we currently send an alert notification to each ESME that is * connected, and do not require a (non-existant) delivery * pending flag to be set before. */ + if (!esme->bind_flags) { + LOGP(DSMPP, LOGL_DEBUG, + "ESME is not (yet) bound, skipping alert\n"); + continue; + } if (!esme->acl->alert_notifications) { LOGP(DSMPP, LOGL_DEBUG, "[%s] is not set to receive Alert Notifications\n", -- To view, visit https://gerrit.osmocom.org/12599 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-MessageType: merged Gerrit-Change-Id: Iec92d4c145ca050c2e212139572eeaae581b99df Gerrit-Change-Number: 12599 Gerrit-PatchSet: 4 Gerrit-Owner: Keith Whyte Gerrit-Reviewer: Harald Welte Gerrit-Reviewer: Jenkins Builder (1000002) Gerrit-Reviewer: Keith Whyte -------------- next part -------------- An HTML attachment was scrubbed... URL: From gerrit-no-reply at lists.osmocom.org Thu Feb 28 19:06:57 2019 From: gerrit-no-reply at lists.osmocom.org (Harald Welte) Date: Thu, 28 Feb 2019 19:06:57 +0000 Subject: Change in simtrace2[master]: Add freq_ctr app Message-ID: Harald Welte has uploaded this change for review. ( https://gerrit.osmocom.org/13084 Change subject: Add freq_ctr app ...................................................................... Add freq_ctr app The freq_ctr app is a small application that is implementing a simplistic direct-mode frequency counter using the internal 32.768kHz oscillator and two TC blocks. One of them is used to generate a 1Hz signal, which is then subsequently used by the other TC to trigger a counter read after exactly 1s. This is in itself not something useful on a simtrace2 device. However, it is a separate 'app' and I prefer to have the code here in master over some obscure branch that's easy to forget about. Change-Id: I2249bfb8dd6a88d85d406f3b33537377133d0939 --- A firmware/apps/freq_ctr/Makefile A firmware/apps/freq_ctr/freq_ctr.c A firmware/apps/freq_ctr/main.c A firmware/apps/freq_ctr/usb_strings.txt 4 files changed, 122 insertions(+), 0 deletions(-) git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/84/13084/1 diff --git a/firmware/apps/freq_ctr/Makefile b/firmware/apps/freq_ctr/Makefile new file mode 100644 index 0000000..1097e9c --- /dev/null +++ b/firmware/apps/freq_ctr/Makefile @@ -0,0 +1,3 @@ +C_FILES += $(C_LIBUSB_RT) + +C_FILES += freq_ctr.c diff --git a/firmware/apps/freq_ctr/freq_ctr.c b/firmware/apps/freq_ctr/freq_ctr.c new file mode 100644 index 0000000..ad6497c --- /dev/null +++ b/firmware/apps/freq_ctr/freq_ctr.c @@ -0,0 +1,55 @@ +#include +#include "utils.h" +#include "tc_etu.h" +#include "chip.h" + + +/* pins for Channel 0 of TC-block 0 */ +#define PIN_TIOA0 {PIO_PA0, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT} + +/* pins for Channel 1 of TC-block 0 */ +#define PIN_TIOA1 {PIO_PA15, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT} +#define PIN_TCLK1 {PIO_PA28, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT} + +static const Pin pins_tc[] = { PIN_TIOA0, PIN_TIOA1, PIN_TCLK1 }; + +static TcChannel *tc1 = &TC0->TC_CHANNEL[1]; + +void TC1_IrqHandler(void) +{ + uint32_t sr = tc1->TC_SR; + printf("TC1=%lu; SR=0x%08lx\r\n", tc1->TC_RA, sr); +} + +void freq_ctr_init(void) +{ + TcChannel *tc0 = &TC0->TC_CHANNEL[0]; + + PIO_Configure(pins_tc, ARRAY_SIZE(pins_tc)); + + PMC_EnablePeripheral(ID_TC0); + PMC_EnablePeripheral(ID_TC1); + + /* route TCLK1 to XC1 */ + TC0->TC_BMR &= ~TC_BMR_TC1XC1S_Msk; + TC0->TC_BMR |= TC_BMR_TC1XC1S_TCLK1; + + /* TC0 in wveform mode: Run from SCLK. Raise TIOA on RA; lower TIOA on RC + trigger */ + tc0->TC_CMR = TC_CMR_TCCLKS_TIMER_CLOCK5 | TC_CMR_BURST_NONE | + TC_CMR_EEVTEDG_NONE | TC_CMR_WAVSEL_UP_RC | TC_CMR_WAVE | + TC_CMR_ACPA_SET | TC_CMR_ACPC_CLEAR; + tc0->TC_RA = 16384; /* set high at 16384 */ + tc0->TC_RC = 32786; /* set low at 32786 */ + + /* TC1 in capture mode: Run from XC1. Trigger on TIOA rising. Load RA on rising */ + tc1->TC_CMR = TC_CMR_TCCLKS_XC1 | TC_CMR_BURST_NONE | + TC_CMR_ETRGEDG_RISING | TC_CMR_ABETRG | TC_CMR_LDRA_RISING; + /* Interrupt us if the external trigger happens */ + tc1->TC_IER = TC_IER_ETRGS; + NVIC_EnableIRQ(TC1_IRQn); + + TC0->TC_BCR = TC_BCR_SYNC; + + tc0->TC_CCR = TC_CCR_CLKEN|TC_CCR_SWTRG; + tc1->TC_CCR = TC_CCR_CLKEN|TC_CCR_SWTRG; +} diff --git a/firmware/apps/freq_ctr/main.c b/firmware/apps/freq_ctr/main.c new file mode 100644 index 0000000..761bc17 --- /dev/null +++ b/firmware/apps/freq_ctr/main.c @@ -0,0 +1,54 @@ + +#include "board.h" +#include "utils.h" +#include "osmocom/core/timer.h" + +extern void freq_ctr_init(void); + +/* returns '1' in case we should break any endless loop */ +static void check_exec_dbg_cmd(void) +{ + int ch; + + if (!UART_IsRxReady()) + return; + + ch = UART_GetChar(); + + board_exec_dbg_cmd(ch); +} + + +extern int main(void) +{ + led_init(); + led_blink(LED_RED, BLINK_ALWAYS_ON); + led_blink(LED_GREEN, BLINK_ALWAYS_ON); + + /* Enable watchdog for 2000 ms, with no window */ + WDT_Enable(WDT, WDT_MR_WDRSTEN | WDT_MR_WDDBGHLT | WDT_MR_WDIDLEHLT | + (WDT_GetPeriod(2000) << 16) | WDT_GetPeriod(2000)); + + PIO_InitializeInterrupts(0); + + + printf("\n\r\n\r" + "=============================================================================\n\r" + "Freq Ctr firmware " GIT_VERSION " (C) 2019 by Harald Welte\n\r" + "=============================================================================\n\r"); + + board_main_top(); + + TRACE_INFO("starting frequency counter...\n\r"); + freq_ctr_init(); + + TRACE_INFO("entering main loop...\n\r"); + while (1) { + WDT_Restart(WDT); + + check_exec_dbg_cmd(); + osmo_timers_prepare(); + osmo_timers_update(); + } + +} diff --git a/firmware/apps/freq_ctr/usb_strings.txt b/firmware/apps/freq_ctr/usb_strings.txt new file mode 100644 index 0000000..0e797ac --- /dev/null +++ b/firmware/apps/freq_ctr/usb_strings.txt @@ -0,0 +1,10 @@ +sysmocom - s.f.m.c. GmbH +SIMtrace 2 compatible device +SIMtrace Sniffer +SIMtrace CCID +SIMtrace Phone +SIMtrace MITM +CardEmulator Modem 1 +CardEmulator Modem 2 +CardEmulator Modem 3 +CardEmulator Modem 4 -- To view, visit https://gerrit.osmocom.org/13084 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: simtrace2 Gerrit-Branch: master Gerrit-MessageType: newchange Gerrit-Change-Id: I2249bfb8dd6a88d85d406f3b33537377133d0939 Gerrit-Change-Number: 13084 Gerrit-PatchSet: 1 Gerrit-Owner: Harald Welte -------------- next part -------------- An HTML attachment was scrubbed... URL: